@@ -163,7 +163,7 @@ func ShowCluster(name, selector string) msgs.ShowClusterResponse {
163163func getDeployments (cluster * crv1.Pgcluster ) ([]msgs.ShowClusterDeployment , error ) {
164164 output := make ([]msgs.ShowClusterDeployment , 0 )
165165
166- selector := "pg-cluster =" + cluster .Spec .Name
166+ selector := util . LABEL_PG_CLUSTER + " =" + cluster .Spec .Name
167167 deployments , err := kubeapi .GetDeployments (apiserver .Clientset , selector , apiserver .Namespace )
168168 if err != nil {
169169 return output , err
@@ -189,7 +189,7 @@ func getPods(cluster *crv1.Pgcluster) ([]msgs.ShowClusterPod, error) {
189189
190190 output := make ([]msgs.ShowClusterPod , 0 )
191191
192- selector := "crunchy-pgpool !=true,pg-cluster =" + cluster .Spec .Name
192+ selector := util . LABEL_PGPOOL + " !=true," + util . LABEL_PG_CLUSTER + " =" + cluster .Spec .Name
193193
194194 pods , err := kubeapi .GetPods (apiserver .Clientset , selector , apiserver .Namespace )
195195 if err != nil {
@@ -216,7 +216,7 @@ func getPods(cluster *crv1.Pgcluster) ([]msgs.ShowClusterPod, error) {
216216func getServices (cluster * crv1.Pgcluster ) ([]msgs.ShowClusterService , error ) {
217217
218218 output := make ([]msgs.ShowClusterService , 0 )
219- selector := "pg-cluster =" + cluster .Spec .Name
219+ selector := util . LABEL_PG_CLUSTER + " =" + cluster .Spec .Name
220220
221221 services , err := kubeapi .GetServices (apiserver .Clientset , selector , apiserver .Namespace )
222222 if err != nil {
@@ -238,7 +238,7 @@ func getServices(cluster *crv1.Pgcluster) ([]msgs.ShowClusterService, error) {
238238func getSecrets (cluster * crv1.Pgcluster ) ([]msgs.ShowClusterSecret , error ) {
239239
240240 output := make ([]msgs.ShowClusterSecret , 0 )
241- selector := "pgpool!=true,pg-database =" + cluster .Spec .Name
241+ selector := "pgpool!=true," + util . LABEL_PG_DATABASE + " =" + cluster .Spec .Name
242242
243243 secrets , err := kubeapi .GetSecrets (apiserver .Clientset , selector , apiserver .Namespace )
244244 if err != nil {
@@ -303,17 +303,6 @@ func TestCluster(name, selector string) msgs.ClusterTestResponse {
303303 return response
304304 }
305305
306- /**
307- //get the replicas for this cluster
308- log.Debug("calling getReplicas")
309- detail.Replicas, err = getReplicas(&c)
310- if err != nil {
311- response.Status.Code = msgs.Error
312- response.Status.Msg = err.Error()
313- return response
314- }
315- */
316-
317306 //get the secrets for this cluster
318307 detail .Secrets , err = getSecrets (& c )
319308 if err != nil {
@@ -443,34 +432,37 @@ func CreateCluster(request *msgs.CreateClusterRequest) msgs.CreateClusterRespons
443432 }
444433
445434 //set the metrics flag with the global setting first
446- userLabelsMap ["crunchy_collect" ] = strconv .FormatBool (apiserver .MetricsFlag )
435+ userLabelsMap [util . LABEL_COLLECT ] = strconv .FormatBool (apiserver .MetricsFlag )
447436 if err != nil {
448437 log .Error (err )
449438 }
450439
451440 //if metrics is chosen on the pgo command, stick it into the user labels
452441 if request .MetricsFlag {
453- userLabelsMap ["crunchy_collect" ] = "true"
442+ userLabelsMap [util .LABEL_COLLECT ] = "true"
443+ }
444+ if request .AutofailFlag {
445+ userLabelsMap [util .LABEL_AUTOFAIL ] = "true"
454446 }
455447
456448 if request .ArchiveFlag {
457- userLabelsMap ["archive" ] = "true"
449+ userLabelsMap [util . LABEL_ARCHIVE ] = "true"
458450 log .Debug ("archive set to true in user labels" )
459451 } else {
460452 log .Debug ("using ArchiveMode from pgo.yaml" )
461- userLabelsMap ["archive" ] = apiserver .Pgo .Cluster .ArchiveMode
453+ userLabelsMap [util . LABEL_ARCHIVE ] = apiserver .Pgo .Cluster .ArchiveMode
462454 }
463- userLabelsMap ["archive-timeout" ] = apiserver .Pgo .Cluster .ArchiveTimeout
455+ userLabelsMap [util . LABEL_ARCHIVE_TIMEOUT ] = apiserver .Pgo .Cluster .ArchiveTimeout
464456
465457 if request .PgpoolFlag {
466- userLabelsMap ["crunchy-pgpool" ] = "true"
467- userLabelsMap ["pgpool-secret" ] = request .PgpoolSecret
458+ userLabelsMap [util . LABEL_PGPOOL ] = "true"
459+ userLabelsMap [util . LABEL_PGPOOL_SECRET ] = request .PgpoolSecret
468460 log .Debug ("userLabelsMap" )
469461 log .Debugf ("%v" , userLabelsMap )
470462 }
471463
472464 if existsGlobalConfig () {
473- userLabelsMap ["custom-config" ] = util .GLOBAL_CUSTOM_CONFIGMAP
465+ userLabelsMap [util . LABEL_CUSTOM_CONFIG ] = util .GLOBAL_CUSTOM_CONFIGMAP
474466 }
475467
476468 if request .StorageConfig != "" {
@@ -506,8 +498,8 @@ func CreateCluster(request *msgs.CreateClusterRequest) msgs.CreateClusterRespons
506498 resp .Status .Msg = request .NodeLabel + " node label value was not valid .. check node labels for correct values to specify"
507499 return resp
508500 }
509- userLabelsMap ["NodeLabelKey" ] = parts [0 ]
510- userLabelsMap ["NodeLabelValue" ] = parts [1 ]
501+ userLabelsMap [util . LABEL_NODE_LABEL_KEY ] = parts [0 ]
502+ userLabelsMap [util . LABEL_NODE_LABEL_VALUE ] = parts [1 ]
511503 }
512504
513505 if request .ReplicaStorageConfig != "" {
@@ -548,7 +540,7 @@ func CreateCluster(request *msgs.CreateClusterRequest) msgs.CreateClusterRespons
548540
549541 // Create an instance of our CRD
550542 newInstance := getClusterParams (request , clusterName , userLabelsMap )
551- validateConfigPolicies (request .Policies )
543+ validateConfigPolicies (clusterName , request .Policies )
552544
553545 t := time .Now ()
554546 newInstance .Spec .PswLastUpdate = t .Format (time .RFC3339 )
@@ -566,18 +558,19 @@ func CreateCluster(request *msgs.CreateClusterRequest) msgs.CreateClusterRespons
566558
567559}
568560
569- func validateConfigPolicies (PoliciesFlag string ) error {
561+ func validateConfigPolicies (clusterName , PoliciesFlag string ) error {
570562 var err error
571563 var configPolicies string
564+
572565 if PoliciesFlag == "" {
573- log .Println (apiserver .Pgo .Cluster .Policies + " is Pgo.Cluster.Policies" )
566+ log .Debug (apiserver .Pgo .Cluster .Policies + " is Pgo.Cluster.Policies" )
574567 configPolicies = apiserver .Pgo .Cluster .Policies
575568 } else {
576569 configPolicies = PoliciesFlag
577570 }
571+
578572 if configPolicies == "" {
579- log .Debug ("no policies are specified" )
580- err = errors .New ("no policies are specified" )
573+ log .Debug ("no policies are specified in either pgo.yaml or from user" )
581574 return err
582575 }
583576
@@ -598,8 +591,31 @@ func validateConfigPolicies(PoliciesFlag string) error {
598591 log .Error ("error getting pgpolicy " + v + err .Error ())
599592 return err
600593 }
594+ //create a pgtask to add the policy after the db is ready
595+ }
596+
597+ spec := crv1.PgtaskSpec {}
598+ spec .StorageSpec = crv1.PgStorageSpec {}
599+ spec .TaskType = crv1 .PgtaskAddPolicies
600+ spec .Status = "requested"
601+ spec .Parameters = make (map [string ]string )
602+ for _ , v := range policies {
603+ spec .Parameters [v ] = v
604+ }
605+ spec .Name = clusterName + "-policies"
606+ labels := make (map [string ]string )
607+ labels [util .LABEL_PG_CLUSTER ] = clusterName
608+
609+ newInstance := & crv1.Pgtask {
610+ ObjectMeta : meta_v1.ObjectMeta {
611+ Name : spec .Name ,
612+ Labels : labels ,
613+ },
614+ Spec : spec ,
601615 }
602616
617+ kubeapi .Createpgtask (apiserver .RESTClient , newInstance , apiserver .Namespace )
618+
603619 return err
604620}
605621
@@ -718,7 +734,7 @@ func getClusterParams(request *msgs.CreateClusterRequest, name string, userLabel
718734
719735func validateSecretFrom (secretname string ) error {
720736 var err error
721- selector := "pg-database =" + secretname
737+ selector := util . LABEL_PG_DATABASE + " =" + secretname
722738 secrets , err := kubeapi .GetSecrets (apiserver .Clientset , selector , apiserver .Namespace )
723739 if err != nil {
724740 return err
@@ -730,8 +746,6 @@ func validateSecretFrom(secretname string) error {
730746 pguserFound := false
731747
732748 for _ , s := range secrets .Items {
733- //fmt.Println("")
734- //fmt.Println("secret : " + s.ObjectMeta.Name)
735749 if s .ObjectMeta .Name == secretname + crv1 .PrimarySecretSuffix {
736750 pgprimaryFound = true
737751 } else if s .ObjectMeta .Name == secretname + crv1 .RootSecretSuffix {
@@ -790,9 +804,6 @@ func createDeleteDataTasks(clusterName string, storageSpec crv1.PgStorageSpec, d
790804 log .Debug ("got the cluster..." )
791805
792806 for _ , element := range pods {
793- //log.Debugf("the pod details ... %v\n", element)
794- //get the pgdata pvc for each pod
795-
796807 //create pgtask CRD
797808 spec := crv1.PgtaskSpec {}
798809 if element .Primary {
@@ -811,6 +822,9 @@ func createDeleteDataTasks(clusterName string, storageSpec crv1.PgStorageSpec, d
811822 },
812823 Spec : spec ,
813824 }
825+ newInstance .ObjectMeta .Labels = make (map [string ]string )
826+ newInstance .ObjectMeta .Labels [util .LABEL_PG_CLUSTER ] = clusterName
827+ newInstance .ObjectMeta .Labels [util .LABEL_RMDATA ] = "true"
814828
815829 err = kubeapi .Createpgtask (apiserver .RESTClient ,
816830 newInstance , apiserver .Namespace )
@@ -831,11 +845,12 @@ func createDeleteDataTasks(clusterName string, storageSpec crv1.PgStorageSpec, d
831845 //proceed with backups removal
832846 spec := crv1.PgtaskSpec {}
833847 spec .Name = clusterName + "-backups"
834- spec .TaskType = crv1 .PgtaskDeleteData
848+ spec .TaskType = crv1 .PgtaskDeleteBackups
835849 spec .StorageSpec = storageSpec
836850
837851 spec .Parameters = make (map [string ]string )
838852 spec .Parameters [backupPVCName ] = backupPVCName
853+ spec .Parameters [util .LABEL_PG_CLUSTER ] = clusterName
839854
840855 newInstance := & crv1.Pgtask {
841856 ObjectMeta : meta_v1.ObjectMeta {
@@ -896,7 +911,7 @@ func getReplicas(cluster *crv1.Pgcluster) ([]msgs.ShowClusterReplica, error) {
896911 output := make ([]msgs.ShowClusterReplica , 0 )
897912 replicaList := crv1.PgreplicaList {}
898913
899- selector := "pg-cluster =" + cluster .Spec .Name
914+ selector := util . LABEL_PG_CLUSTER + " =" + cluster .Spec .Name
900915
901916 err := kubeapi .GetpgreplicasBySelector (apiserver .RESTClient ,
902917 & replicaList , selector , apiserver .Namespace )
0 commit comments