From ccfc81adf8147a81e10c6018f94110275a5e8775 Mon Sep 17 00:00:00 2001 From: suyog shinde Date: Fri, 15 Nov 2024 13:54:06 -0600 Subject: [PATCH] Remove resourcepolicycontroller.go and it's references Remove commented code for platformcontroller.go remove commented code remove commented code remove unused fucntions GetValuesTypes, getChartValueTypes,flatten remove unused imports Remove unused imports, functions, and references; clean up commented code for improved readability. --- platform-operator/main.go | 12 +- platform-operator/platformcontroller.go | 380 ++++-------------- platform-operator/resourcepolicycontroller.go | 315 --------------- 3 files changed, 82 insertions(+), 625 deletions(-) delete mode 100644 platform-operator/resourcepolicycontroller.go diff --git a/platform-operator/main.go b/platform-operator/main.go index eecfd843..fc72ad04 100644 --- a/platform-operator/main.go +++ b/platform-operator/main.go @@ -1,10 +1,10 @@ package main import ( - "flag" - "time" "context" + "flag" "sync" + "time" "github.com/golang/glog" kubeinformers "k8s.io/client-go/informers" @@ -47,7 +47,6 @@ func main() { kubeInformerFactory := kubeinformers.NewSharedInformerFactory(kubeClient, time.Second*30) platformInformerFactory := informers.NewSharedInformerFactory(platformOperatorClient, time.Second*30) platformController := NewPlatformController(kubeClient, platformOperatorClient, kubeInformerFactory, platformInformerFactory) - //resourcePolicyController := NewResourcePolicyController(kubeClient, platformOperatorClient, kubeInformerFactory, platformInformerFactory) var wg sync.WaitGroup wg.Add(1) @@ -57,13 +56,6 @@ func main() { platformController.Run(1, ctx.Done()) }() - /* - go func() { - defer wg.Done() - resourcePolicyController.Run(1, ctx.Done()) - }() - */ - go kubeInformerFactory.Start(ctx.Done()) go platformInformerFactory.Start(ctx.Done()) diff --git a/platform-operator/platformcontroller.go b/platform-operator/platformcontroller.go index ca683d42..006a4db9 100644 --- a/platform-operator/platformcontroller.go +++ b/platform-operator/platformcontroller.go @@ -1,25 +1,23 @@ package main import ( + "context" + gerrors "errors" "fmt" - "time" "io/ioutil" "log" + "reflect" "strconv" "strings" - "context" - gerrors "errors" - "reflect" + "time" - _ "github.com/lib/pq" "net/http" "net/url" - - "gopkg.in/yaml.v3" + + _ "github.com/lib/pq" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" - apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" "github.com/golang/glog" corev1 "k8s.io/api/core/v1" @@ -63,10 +61,10 @@ const ( MessageResourceSynced = "PlatformStack synced successfully" // Annotations to put on Consumer CRDs. - CREATED_BY_KEY = "created-by" + CREATED_BY_KEY = "created-by" CREATED_BY_VALUE = "kubeplus" - HELMER_HOST = "localhost" - HELMER_PORT = "8090" + HELMER_HOST = "localhost" + HELMER_PORT = "8090" ) // Controller is the controller implementation for Foo resources @@ -76,10 +74,10 @@ type Controller struct { // sampleclientset is a clientset for our own API group platformStackclientset clientset.Interface - deploymentsLister appslisters.DeploymentLister - deploymentsSynced cache.InformerSynced - platformStacksLister listers.ResourceCompositionLister - platformStacksSynced cache.InformerSynced + deploymentsLister appslisters.DeploymentLister + deploymentsSynced cache.InformerSynced + platformStacksLister listers.ResourceCompositionLister + platformStacksSynced cache.InformerSynced // workqueue is a rate limited work queue. This is used to queue work to be // processed instead of performing it as soon as a change happens. This @@ -115,14 +113,14 @@ func NewPlatformController( recorder := eventBroadcaster.NewRecorder(scheme.Scheme, corev1.EventSource{Component: controllerAgentName}) controller := &Controller{ - kubeclientset: kubeclientset, - platformStackclientset: platformStackclientset, - deploymentsLister: deploymentInformer.Lister(), - deploymentsSynced: deploymentInformer.Informer().HasSynced, - platformStacksLister: platformStackInformer.Lister(), - platformStacksSynced: platformStackInformer.Informer().HasSynced, - workqueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "PlatformStacks"), - recorder: recorder, + kubeclientset: kubeclientset, + platformStackclientset: platformStackclientset, + deploymentsLister: deploymentInformer.Lister(), + deploymentsSynced: deploymentInformer.Informer().HasSynced, + platformStacksLister: platformStackInformer.Lister(), + platformStacksSynced: platformStackInformer.Informer().HasSynced, + workqueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "PlatformStacks"), + recorder: recorder, } glog.Info("Setting up event handlers") @@ -132,8 +130,6 @@ func NewPlatformController( UpdateFunc: func(old, new interface{}) { newDepl := new.(*platformworkflowv1alpha1.ResourceComposition) oldDepl := old.(*platformworkflowv1alpha1.ResourceComposition) - //fmt.Println("New Version:%s", newDepl.ResourceVersion) - //fmt.Println("Old Version:%s", oldDepl.ResourceVersion) if newDepl.ResourceVersion == oldDepl.ResourceVersion { // Periodic resync will send update events for all known Deployments. // Two different versions of the same Deployment will always have different RVs. @@ -144,9 +140,9 @@ func NewPlatformController( } }, DeleteFunc: func(obj interface{}) { - _, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) + _, err := cache.DeletionHandlingMetaNamespaceKeyFunc(obj) if err == nil { - controller.deleteFoo(obj) + controller.deleteFoo(obj) } }, }) @@ -297,14 +293,13 @@ func (c *Controller) handleObject(obj interface{}) { } } - func (c *Controller) deleteFoo(obj interface{}) { fmt.Println("Inside delete Foo") var err error if _, err = cache.MetaNamespaceKeyFunc(obj); err != nil { - panic(err) + panic(err) } foo := obj.(*platformworkflowv1alpha1.ResourceComposition) @@ -333,13 +328,11 @@ func (c *Controller) deleteFoo(obj interface{}) { action := "delete" handleCRD(foo.Name, kind, version, group, plural, action, namespace, chartURL, chartName) - resPolicySpec := foo.Spec.ResPolicy - //fmt.Printf("ResPolicySpec:%v\n",resPolicySpec) + resPolicySpec := foo.Spec.ResPolicy deleteResourcePolicy(resPolicySpec, namespace) - resMonitorSpec := foo.Spec.ResMonitor - //fmt.Printf("ResMonitorSpec:%v\n",resMonitorSpec) + resMonitorSpec := foo.Spec.ResMonitor deleteResourceMonitor(resMonitorSpec, namespace) @@ -367,11 +360,11 @@ func (c *Controller) updateFoo(oldObj, newObj interface{}) { } fmt.Printf("GHI - update\n") fmt.Printf("NS:%s", namespace) - kind := newFoo.Spec.NewResource.Resource.Kind - group := newFoo.Spec.NewResource.Resource.Group - version := newFoo.Spec.NewResource.Resource.Version - plural := newFoo.Spec.NewResource.Resource.Plural - chartURL := newFoo.Spec.NewResource.ChartURL + kind := newFoo.Spec.NewResource.Resource.Kind + group := newFoo.Spec.NewResource.Resource.Group + version := newFoo.Spec.NewResource.Resource.Version + plural := newFoo.Spec.NewResource.Resource.Plural + chartURL := newFoo.Spec.NewResource.ChartURL chartName := newFoo.Spec.NewResource.ChartName fmt.Printf("Kind:%s, Version:%s Group:%s, Plural:%s\n", kind, version, group, plural) fmt.Printf("ChartURL:%s, ChartName:%s\n", chartURL, chartName) @@ -442,14 +435,14 @@ func (c *Controller) syncHandler(key string) error { return nil } - resPolicySpec := foo.Spec.ResPolicy - fmt.Printf("ResPolicySpec:%v\n",resPolicySpec) + resPolicySpec := foo.Spec.ResPolicy + fmt.Printf("ResPolicySpec:%v\n", resPolicySpec) // Instantiate ResourcePolicy object createResourcePolicy(resPolicySpec, namespace) - resMonitorSpec := foo.Spec.ResMonitor - fmt.Printf("ResMonitorSpec:%v\n",resMonitorSpec) + resMonitorSpec := foo.Spec.ResMonitor + fmt.Printf("ResMonitorSpec:%v\n", resMonitorSpec) // Instantiate ResourceMonitor object createResourceMonitor(resMonitorSpec, namespace) @@ -469,23 +462,22 @@ func (c *Controller) updateResourceCompositionStatus(foo *platformworkflowv1alph timeout := 300 count := 0 for { - _, err := c.platformStackclientset.WorkflowsV1alpha1().ResourceCompositions(namespace).Update(context.Background(), fooCopy, metav1.UpdateOptions{}) - //_, err := c.sampleclientset.MoodlecontrollerV1().Moodles(foo.Namespace).Update(fooCopy) - if err != nil { - fmt.Printf("Platformcontroller.go : ERROR in UpdateResourceCompositionStatus %e\n", err) - fmt.Printf("Platformcontroller.go : ERROR %v\n", err) - time.Sleep(1 * time.Second) - count = count + 1 - } else { - fmt.Printf("Successfully updated Resource Composition status.") - break - } - if count >= timeout { - fmt.Printf("\n--") - fmt.Printf("CR instance %v not ready till timeout.\n", foo) - fmt.Printf("---") - break - } + _, err := c.platformStackclientset.WorkflowsV1alpha1().ResourceCompositions(namespace).Update(context.Background(), fooCopy, metav1.UpdateOptions{}) + if err != nil { + fmt.Printf("Platformcontroller.go : ERROR in UpdateResourceCompositionStatus %e\n", err) + fmt.Printf("Platformcontroller.go : ERROR %v\n", err) + time.Sleep(1 * time.Second) + count = count + 1 + } else { + fmt.Printf("Successfully updated Resource Composition status.") + break + } + if count >= timeout { + fmt.Printf("\n--") + fmt.Printf("CR instance %v not ready till timeout.\n", foo) + fmt.Printf("---") + break + } } } @@ -510,15 +502,11 @@ func createResourceMonitor(resMonitorSpec interface{}, namespace string) { } } -func deleteResourceMonitor(resMonitorSpec interface{}, namespace string) { +func deleteResourceMonitor(resMonitorSpec interface{}, namespace string) { fmt.Println("Inside deleteResourceMonitor") resMonitorObject := resMonitorSpec.(platformworkflowv1alpha1.ResourceMonitor) inputResMonitorName := resMonitorObject.ObjectMeta.Name - /*namespace := resMonitorObject.ObjectMeta.Namespace - if namespace == "" { - namespace = "default" - }*/ - fmt.Printf("ResMonitor:%s, Namespace:%s\n",inputResMonitorName,namespace) + fmt.Printf("ResMonitor:%s, Namespace:%s\n", inputResMonitorName, namespace) // Using Typed client config, err := rest.InClusterConfig() @@ -566,15 +554,11 @@ func createResourcePolicy(resPolicySpec interface{}, namespace string) { } } -func deleteResourcePolicy(resPolicySpec interface{}, namespace string) { +func deleteResourcePolicy(resPolicySpec interface{}, namespace string) { fmt.Println("Inside deleteResourcePolicy.") resPolicyObject := resPolicySpec.(platformworkflowv1alpha1.ResourcePolicy) inputResPolicyName := resPolicyObject.ObjectMeta.Name - /*namespace := resPolicyObject.ObjectMeta.Namespace - if namespace == "" { - namespace = "default" - }*/ - fmt.Printf("ResPolicy:%s, Namespace:%s\n",inputResPolicyName,namespace) + fmt.Printf("ResPolicy:%s, Namespace:%s\n", inputResPolicyName, namespace) // Using Typed client config, err := rest.InClusterConfig() @@ -601,91 +585,6 @@ func deleteResourcePolicy(resPolicySpec interface{}, namespace string) { } } -func flatten(yaml_contents map[string]interface{}, types_dict map[string]apiextensionsv1beta1.JSONSchemaProps) map[string]apiextensionsv1beta1.JSONSchemaProps { - for key, value := range yaml_contents { - //fmt.Printf("Key:%s ", key) - //fmt.Printf("Value:%s Type:%T\n", value, value) - _, ok := value.(string) - if ok { - //str_dict := map[string]apiextensionsv1beta1.JSONSchemaProps{"type": apiextensionsv1beta1.JSONSchemaProps{Type: "string"}} - types_dict[key] = apiextensionsv1beta1.JSONSchemaProps{Type: "string"} - } - _, ok = value.(int) - if ok { - //str_dict := map[string]apiextensionsv1beta1.JSONSchemaProps{"type": apiextensionsv1beta1.JSONSchemaProps{Type: "integer"}} - types_dict[key] = apiextensionsv1beta1.JSONSchemaProps{Type: "integer"} - } - _, ok = value.(bool) - if ok { - //str_dict := map[string]apiextensionsv1beta1.JSONSchemaProps{"type": apiextensionsv1beta1.JSONSchemaProps{Type: "boolean"}} - types_dict[key] = apiextensionsv1beta1.JSONSchemaProps{Type: "boolean"} - } - _, ok = value.(map[string]interface{}) - if ok { - value1, _ := value.(map[string]interface{}) - inner_prop_dict := make(map[string]apiextensionsv1beta1.JSONSchemaProps) - inner_prop_dict = flatten(value1, inner_prop_dict) - - var jsonSchemaInner apiextensionsv1beta1.JSONSchemaProps - jsonSchemaInner.Type = "object" - jsonSchemaInner.Properties = inner_prop_dict - - types_dict[key] = jsonSchemaInner - } - _, ok = value.([]interface{}) - if ok { - items_dict := make(map[string]apiextensionsv1beta1.JSONSchemaProps) - items_dict["type"] = apiextensionsv1beta1.JSONSchemaProps{Type: "string"} - //prop_dict["items"] = items_dict - - var jsonSchemaInner apiextensionsv1beta1.JSONSchemaProps - jsonSchemaInner.Type = "array" - jsonSchemaInner.Properties = items_dict - - types_dict[key] = jsonSchemaInner - } - - } - //fmt.Println(types_dict) - return types_dict -} - -func getChartValueTypes(data []byte) map[string]apiextensionsv1beta1.JSONSchemaProps { - - // Create a map to hold the YAML data - var yaml_contents map[string]interface{} - - openAPIV3SchemaPropertiesInnerDetails := make(map[string]apiextensionsv1beta1.JSONSchemaProps) - - // Unmarshal the YAML data into the map - err := yaml.Unmarshal(data, &yaml_contents) - if err != nil { - fmt.Println(err) - return openAPIV3SchemaPropertiesInnerDetails - } - - /*attr_types := make(map[string]apiextensionsv1beta1.JSONSchemaProps) - openAPIV3SchemaObj := make(map[string]apiextensionsv1beta1.JSONSchemaProps) - openAPIV3SchemaProperties := make(map[string]apiextensionsv1beta1.JSONSchemaProps) - openAPIV3SchemaPropertiesInner := make(map[string]apiextensionsv1beta1.JSONSchemaProps) - */ - - openAPIV3SchemaPropertiesInnerDetails = flatten(yaml_contents, openAPIV3SchemaPropertiesInnerDetails) - //fmt.Println(openAPIV3SchemaPropertiesInnerDetails) - //fmt.Println("=====") - - /*openAPIV3SchemaPropertiesInner["type"] = apiextensionsv1beta1.JSONSchemaProps{Type: "object"} - openAPIV3SchemaPropertiesInner["properties"] = openAPIV3SchemaPropertiesInnerDetails - openAPIV3SchemaProperties["spec"] = openAPIV3SchemaPropertiesInner - openAPIV3SchemaObj["type"] = apiextensionsv1beta1.JSONSchemaProps{Type: "object"} - openAPIV3SchemaObj["properties"] = openAPIV3SchemaProperties - attr_types["openAPIV3Schema"] = openAPIV3SchemaObj - - attr_types_json, _ := json.Marshal(attr_types)*/ - return openAPIV3SchemaPropertiesInnerDetails - -} - func handleCRD(rescomposition, kind, version, group, plural, action, namespace, chartURL, chartName string) error { fmt.Printf("Inside handleCRD %s\n", action) cfg, err := rest.InClusterConfig() @@ -700,88 +599,6 @@ func handleCRD(rescomposition, kind, version, group, plural, action, namespace, fmt.Printf("Getting values.yaml of the service Helm chart\n") - //chartValuesBytes := GetValuesYaml(rescomposition, namespace) - /* - valuesYaml := string(chartValuesBytes) - fmt.Printf("%v\n", valuesYaml) - lines := strings.Split(valuesYaml, "\n") - - properties := make([]string,0) - for i:=0; i