diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index 7c0e26579..1d7ffef95 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -11,7 +11,7 @@ import ( "sync" "github.com/Sirupsen/logrus" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/apps/v1beta1" @@ -62,7 +62,7 @@ type Cluster struct { mu sync.Mutex masterLess bool userSyncStrategy spec.UserSyncer - deleteOptions *meta_v1.DeleteOptions + deleteOptions *metav1.DeleteOptions podEventsQueue *cache.FIFO teamsAPIClient *teams.API @@ -78,7 +78,7 @@ type compareStatefulsetResult struct { // New creates a new cluster. This function should be called from a controller. func New(cfg Config, kubeClient k8sutil.KubernetesClient, pgSpec spec.Postgresql, logger *logrus.Entry) *Cluster { - lg := logger.WithField("pkg", "cluster").WithField("cluster-name", pgSpec.Metadata.Name) + lg := logger.WithField("pkg", "cluster").WithField("cluster-name", pgSpec.Name) kubeResources := kubeResources{Secrets: make(map[types.UID]*v1.Secret), Service: make(map[PostgresRole]*v1.Service)} orphanDependents := true @@ -101,7 +101,7 @@ func New(cfg Config, kubeClient k8sutil.KubernetesClient, pgSpec spec.Postgresql kubeResources: kubeResources, masterLess: false, userSyncStrategy: users.DefaultUserSyncStrategy{}, - deleteOptions: &meta_v1.DeleteOptions{OrphanDependents: &orphanDependents}, + deleteOptions: &metav1.DeleteOptions{OrphanDependents: &orphanDependents}, podEventsQueue: podEventsQueue, KubeClient: kubeClient, teamsAPIClient: teams.NewTeamsAPI(cfg.OpConfig.TeamsAPIUrl, logger.Logger), @@ -111,7 +111,7 @@ func New(cfg Config, kubeClient k8sutil.KubernetesClient, pgSpec spec.Postgresql } func (c *Cluster) clusterName() spec.NamespacedName { - return util.NameFromMeta(c.Metadata) + return util.NameFromMeta(c.ObjectMeta) } func (c *Cluster) teamName() string { @@ -128,7 +128,7 @@ func (c *Cluster) setStatus(status spec.PostgresStatus) { request := []byte(fmt.Sprintf(`{"status": %s}`, string(b))) //TODO: Look into/wait for k8s go client methods _, err = c.KubeClient.RESTClient.Patch(types.MergePatchType). - RequestURI(c.Metadata.GetSelfLink()). + RequestURI(c.GetSelfLink()). Body(request). DoRaw() @@ -407,7 +407,7 @@ func (c *Cluster) Update(newSpec *spec.Postgresql) error { c.setStatus(spec.ClusterStatusUpdating) c.logger.Debugf("Cluster update from version %q to %q", - c.Metadata.ResourceVersion, newSpec.Metadata.ResourceVersion) + c.ResourceVersion, newSpec.ResourceVersion) /* Make sure we update when this function exists */ defer func() { diff --git a/pkg/cluster/exec.go b/pkg/cluster/exec.go index 1f6cb76e2..e00715a5d 100644 --- a/pkg/cluster/exec.go +++ b/pkg/cluster/exec.go @@ -4,7 +4,7 @@ import ( "bytes" "fmt" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" remotecommandconsts "k8s.io/apimachinery/pkg/util/remotecommand" "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/pkg/api/v1" @@ -19,7 +19,7 @@ func (c *Cluster) ExecCommand(podName *spec.NamespacedName, command ...string) ( execErr bytes.Buffer ) - pod, err := c.KubeClient.Pods(podName.Namespace).Get(podName.Name, meta_v1.GetOptions{}) + pod, err := c.KubeClient.Pods(podName.Namespace).Get(podName.Name, metav1.GetOptions{}) if err != nil { return "", fmt.Errorf("could not get pod info: %v", err) } diff --git a/pkg/cluster/k8sres.go b/pkg/cluster/k8sres.go index 48d5bcaa6..3ddefbb90 100644 --- a/pkg/cluster/k8sres.go +++ b/pkg/cluster/k8sres.go @@ -6,7 +6,7 @@ import ( "sort" "k8s.io/apimachinery/pkg/api/resource" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/apps/v1beta1" @@ -211,7 +211,7 @@ func (c *Cluster) generatePodTemplate(resourceRequirements *v1.ResourceRequireme envVars := []v1.EnvVar{ { Name: "SCOPE", - Value: c.Metadata.Name, + Value: c.Name, }, { Name: "PGROOT", @@ -274,7 +274,7 @@ func (c *Cluster) generatePodTemplate(resourceRequirements *v1.ResourceRequireme } privilegedMode := bool(true) container := v1.Container{ - Name: c.Metadata.Name, + Name: c.Name, Image: c.OpConfig.DockerImage, ImagePullPolicy: v1.PullAlways, Resources: *resourceRequirements, @@ -312,9 +312,9 @@ func (c *Cluster) generatePodTemplate(resourceRequirements *v1.ResourceRequireme } template := v1.PodTemplateSpec{ - ObjectMeta: meta_v1.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Labels: c.labelsSet(), - Namespace: c.Metadata.Name, + Namespace: c.Name, }, Spec: podSpec, } @@ -338,14 +338,14 @@ func (c *Cluster) generateStatefulSet(spec spec.PostgresSpec) (*v1beta1.Stateful } statefulSet := &v1beta1.StatefulSet{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: c.Metadata.Name, - Namespace: c.Metadata.Namespace, + ObjectMeta: metav1.ObjectMeta{ + Name: c.Name, + Namespace: c.Namespace, Labels: c.labelsSet(), }, Spec: v1beta1.StatefulSetSpec{ Replicas: &spec.NumberOfInstances, - ServiceName: c.Metadata.Name, + ServiceName: c.Name, Template: *podTemplate, VolumeClaimTemplates: []v1.PersistentVolumeClaim{*volumeClaimTemplate}, }, @@ -355,7 +355,7 @@ func (c *Cluster) generateStatefulSet(spec spec.PostgresSpec) (*v1beta1.Stateful } func generatePersistentVolumeClaimTemplate(volumeSize, volumeStorageClass string) (*v1.PersistentVolumeClaim, error) { - metadata := meta_v1.ObjectMeta{ + metadata := metav1.ObjectMeta{ Name: constants.DataVolumeName, } if volumeStorageClass != "" { @@ -387,7 +387,7 @@ func generatePersistentVolumeClaimTemplate(volumeSize, volumeStorageClass string func (c *Cluster) generateUserSecrets() (secrets map[string]*v1.Secret) { secrets = make(map[string]*v1.Secret, len(c.pgUsers)) - namespace := c.Metadata.Namespace + namespace := c.Namespace for username, pgUser := range c.pgUsers { //Skip users with no password i.e. human users (they'll be authenticated using pam) secret := c.generateSingleUserSecret(namespace, pgUser) @@ -413,7 +413,7 @@ func (c *Cluster) generateSingleUserSecret(namespace string, pgUser spec.PgUser) } username := pgUser.Name secret := v1.Secret{ - ObjectMeta: meta_v1.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: c.credentialSecretName(username), Namespace: namespace, Labels: c.labelsSet(), @@ -430,7 +430,7 @@ func (c *Cluster) generateSingleUserSecret(namespace string, pgUser spec.PgUser) func (c *Cluster) generateService(role PostgresRole, newSpec *spec.PostgresSpec) *v1.Service { dnsNameFunction := c.masterDnsName - name := c.Metadata.Name + name := c.Name if role == Replica { dnsNameFunction = c.replicaDnsName name = name + "-repl" @@ -469,9 +469,9 @@ func (c *Cluster) generateService(role PostgresRole, newSpec *spec.PostgresSpec) } service := &v1.Service{ - ObjectMeta: meta_v1.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: name, - Namespace: c.Metadata.Namespace, + Namespace: c.Namespace, Labels: c.roleLabelsSet(role), Annotations: annotations, }, @@ -483,9 +483,9 @@ func (c *Cluster) generateService(role PostgresRole, newSpec *spec.PostgresSpec) func (c *Cluster) generateMasterEndpoints(subsets []v1.EndpointSubset) *v1.Endpoints { endpoints := &v1.Endpoints{ - ObjectMeta: meta_v1.ObjectMeta{ - Name: c.Metadata.Name, - Namespace: c.Metadata.Namespace, + ObjectMeta: metav1.ObjectMeta{ + Name: c.Name, + Namespace: c.Namespace, Labels: c.roleLabelsSet(Master), }, } diff --git a/pkg/cluster/pg.go b/pkg/cluster/pg.go index fd677006c..d06da2b81 100644 --- a/pkg/cluster/pg.go +++ b/pkg/cluster/pg.go @@ -22,7 +22,7 @@ var getUserSQL = `SELECT a.rolname, COALESCE(a.rolpassword, ''), a.rolsuper, a.r ORDER BY 1;` func (c *Cluster) pgConnectionString() string { - hostname := fmt.Sprintf("%s.%s.svc.cluster.local", c.Metadata.Name, c.Metadata.Namespace) + hostname := fmt.Sprintf("%s.%s.svc.cluster.local", c.Name, c.Namespace) username := c.systemUsers[constants.SuperuserKeyName].Name password := c.systemUsers[constants.SuperuserKeyName].Password diff --git a/pkg/cluster/pod.go b/pkg/cluster/pod.go index b3e490a4c..2b7ed438e 100644 --- a/pkg/cluster/pod.go +++ b/pkg/cluster/pod.go @@ -3,7 +3,7 @@ package cluster import ( "fmt" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/pkg/api/v1" "github.com/zalando-incubator/postgres-operator/pkg/spec" @@ -12,8 +12,8 @@ import ( ) func (c *Cluster) listPods() ([]v1.Pod, error) { - ns := c.Metadata.Namespace - listOptions := meta_v1.ListOptions{ + ns := c.Namespace + listOptions := metav1.ListOptions{ LabelSelector: c.labelsSet().String(), } @@ -114,9 +114,9 @@ func (c *Cluster) recreatePod(pod v1.Pod) error { func (c *Cluster) recreatePods() error { ls := c.labelsSet() - namespace := c.Metadata.Namespace + namespace := c.Namespace - listOptions := meta_v1.ListOptions{ + listOptions := metav1.ListOptions{ LabelSelector: ls.String(), } diff --git a/pkg/cluster/resources.go b/pkg/cluster/resources.go index 1ee9bd61c..426890314 100644 --- a/pkg/cluster/resources.go +++ b/pkg/cluster/resources.go @@ -3,7 +3,7 @@ package cluster import ( "fmt" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/apps/v1beta1" @@ -16,8 +16,8 @@ import ( ) func (c *Cluster) loadResources() error { - ns := c.Metadata.Namespace - listOptions := meta_v1.ListOptions{ + ns := c.Namespace + listOptions := metav1.ListOptions{ LabelSelector: c.labelsSet().String(), } @@ -172,7 +172,7 @@ func (c *Cluster) replaceStatefulSet(newStatefulSet *v1beta1.StatefulSet) error orphanDepencies := true oldStatefulset := c.Statefulset - options := meta_v1.DeleteOptions{OrphanDependents: &orphanDepencies} + options := metav1.DeleteOptions{OrphanDependents: &orphanDepencies} if err := c.KubeClient.StatefulSets(oldStatefulset.Namespace).Delete(oldStatefulset.Name, &options); err != nil { return fmt.Errorf("could not delete statefulset %q: %v", statefulSetName, err) } @@ -183,7 +183,7 @@ func (c *Cluster) replaceStatefulSet(newStatefulSet *v1beta1.StatefulSet) error err := retryutil.Retry(constants.StatefulsetDeletionInterval, constants.StatefulsetDeletionTimeout, func() (bool, error) { - _, err := c.KubeClient.StatefulSets(oldStatefulset.Namespace).Get(oldStatefulset.Name, meta_v1.GetOptions{}) + _, err := c.KubeClient.StatefulSets(oldStatefulset.Namespace).Get(oldStatefulset.Name, metav1.GetOptions{}) return err != nil, nil }) @@ -263,7 +263,7 @@ func (c *Cluster) updateService(role PostgresRole, newService *v1.Service) error if role == Master { // for the master service we need to re-create the endpoint as well. Get the up-to-date version of // the addresses stored in it before the service is deleted (deletion of the service removes the endpooint) - currentEndpoint, err = c.KubeClient.Endpoints(c.Service[role].Namespace).Get(c.Service[role].Name, meta_v1.GetOptions{}) + currentEndpoint, err = c.KubeClient.Endpoints(c.Service[role].Namespace).Get(c.Service[role].Name, metav1.GetOptions{}) if err != nil { return fmt.Errorf("could not get current cluster endpoints: %v", err) } @@ -372,7 +372,7 @@ func (c *Cluster) applySecrets() error { secret, err := c.KubeClient.Secrets(secretSpec.Namespace).Create(secretSpec) if k8sutil.ResourceAlreadyExists(err) { var userMap map[string]spec.PgUser - curSecret, err := c.KubeClient.Secrets(secretSpec.Namespace).Get(secretSpec.Name, meta_v1.GetOptions{}) + curSecret, err := c.KubeClient.Secrets(secretSpec.Namespace).Get(secretSpec.Name, metav1.GetOptions{}) if err != nil { return fmt.Errorf("could not get current secret: %v", err) } diff --git a/pkg/cluster/util.go b/pkg/cluster/util.go index f7a7a16b1..58f92fac1 100644 --- a/pkg/cluster/util.go +++ b/pkg/cluster/util.go @@ -6,7 +6,7 @@ import ( "strings" "time" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/pkg/apis/apps/v1beta1" @@ -124,7 +124,7 @@ func (c *Cluster) getOAuthToken() (string, error) { // Temporary getting postgresql-operator secret from the NamespaceDefault credentialsSecret, err := c.KubeClient. Secrets(c.OpConfig.OAuthTokenSecretName.Namespace). - Get(c.OpConfig.OAuthTokenSecretName.Name, meta_v1.GetOptions{}) + Get(c.OpConfig.OAuthTokenSecretName.Name, metav1.GetOptions{}) if err != nil { c.logger.Debugf("Oauth token secret name: %q", c.OpConfig.OAuthTokenSecretName) @@ -194,10 +194,10 @@ func (c *Cluster) waitForPodDeletion(podEvents chan spec.PodEvent) error { func (c *Cluster) waitStatefulsetReady() error { return retryutil.Retry(c.OpConfig.ResourceCheckInterval, c.OpConfig.ResourceCheckTimeout, func() (bool, error) { - listOptions := meta_v1.ListOptions{ + listOptions := metav1.ListOptions{ LabelSelector: c.labelsSet().String(), } - ss, err := c.KubeClient.StatefulSets(c.Metadata.Namespace).List(listOptions) + ss, err := c.KubeClient.StatefulSets(c.Namespace).List(listOptions) if err != nil { return false, err } @@ -212,17 +212,17 @@ func (c *Cluster) waitStatefulsetReady() error { func (c *Cluster) waitPodLabelsReady() error { ls := c.labelsSet() - namespace := c.Metadata.Namespace + namespace := c.Namespace - listOptions := meta_v1.ListOptions{ + listOptions := metav1.ListOptions{ LabelSelector: ls.String(), } - masterListOption := meta_v1.ListOptions{ + masterListOption := metav1.ListOptions{ LabelSelector: labels.Merge(ls, labels.Set{ c.OpConfig.PodRoleLabel: constants.PodRoleMaster, }).String(), } - replicaListOption := meta_v1.ListOptions{ + replicaListOption := metav1.ListOptions{ LabelSelector: labels.Merge(ls, labels.Set{ c.OpConfig.PodRoleLabel: constants.PodRoleReplica, }).String(), @@ -278,7 +278,7 @@ func (c *Cluster) labelsSet() labels.Set { for k, v := range c.OpConfig.ClusterLabels { lbls[k] = v } - lbls[c.OpConfig.ClusterNameLabel] = c.Metadata.Name + lbls[c.OpConfig.ClusterNameLabel] = c.Name return labels.Set(lbls) } @@ -308,7 +308,7 @@ func (c *Cluster) credentialSecretName(username string) string { // and must start and end with an alphanumeric character return fmt.Sprintf(constants.UserSecretTemplate, strings.Replace(username, "_", "-", -1), - c.Metadata.Name) + c.Name) } func (c *Cluster) podSpiloRole(pod *v1.Pod) string { diff --git a/pkg/cluster/volumes.go b/pkg/cluster/volumes.go index 03115d96b..d2ed26f90 100644 --- a/pkg/cluster/volumes.go +++ b/pkg/cluster/volumes.go @@ -6,7 +6,7 @@ import ( "strings" "k8s.io/apimachinery/pkg/api/resource" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/pkg/api/v1" "github.com/zalando-incubator/postgres-operator/pkg/spec" @@ -17,8 +17,8 @@ import ( ) func (c *Cluster) listPersistentVolumeClaims() ([]v1.PersistentVolumeClaim, error) { - ns := c.Metadata.Namespace - listOptions := meta_v1.ListOptions{ + ns := c.Namespace + listOptions := metav1.ListOptions{ LabelSelector: c.labelsSet().String(), } @@ -70,7 +70,7 @@ func (c *Cluster) listPersistentVolumes() ([]*v1.PersistentVolume, error) { continue } } - pv, err := c.KubeClient.PersistentVolumes().Get(pvc.Spec.VolumeName, meta_v1.GetOptions{}) + pv, err := c.KubeClient.PersistentVolumes().Get(pvc.Spec.VolumeName, metav1.GetOptions{}) if err != nil { return nil, fmt.Errorf("could not get PersistentVolume: %v", err) } diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go index a95b2187d..8601a4203 100644 --- a/pkg/controller/controller.go +++ b/pkg/controller/controller.go @@ -5,7 +5,7 @@ import ( "sync" "github.com/Sirupsen/logrus" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/pkg/api/v1" "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" @@ -33,7 +33,7 @@ type Controller struct { logger *logrus.Entry KubeClient k8sutil.KubernetesClient - RestClient rest.Interface + RestClient rest.Interface // kubernetes API group REST client clustersMu sync.RWMutex clusters map[spec.NamespacedName]*cluster.Cluster @@ -78,7 +78,7 @@ func (c *Controller) initOperatorConfig() { if c.config.ConfigMapName != (spec.NamespacedName{}) { configMap, err := c.KubeClient.ConfigMaps(c.config.ConfigMapName.Namespace). - Get(c.config.ConfigMapName.Name, meta_v1.GetOptions{}) + Get(c.config.ConfigMapName.Name, metav1.GetOptions{}) if err != nil { panic(err) } diff --git a/pkg/controller/pod.go b/pkg/controller/pod.go index 12ca13422..4d073216a 100644 --- a/pkg/controller/pod.go +++ b/pkg/controller/pod.go @@ -1,9 +1,7 @@ package controller import ( - "sync" - - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/pkg/api/v1" @@ -12,11 +10,11 @@ import ( "github.com/zalando-incubator/postgres-operator/pkg/util" ) -func (c *Controller) podListFunc(options meta_v1.ListOptions) (runtime.Object, error) { +func (c *Controller) podListFunc(options metav1.ListOptions) (runtime.Object, error) { var labelSelector string var fieldSelector string - opts := meta_v1.ListOptions{ + opts := metav1.ListOptions{ LabelSelector: labelSelector, FieldSelector: fieldSelector, Watch: options.Watch, @@ -27,11 +25,11 @@ func (c *Controller) podListFunc(options meta_v1.ListOptions) (runtime.Object, e return c.KubeClient.Pods(c.opConfig.Namespace).List(opts) } -func (c *Controller) podWatchFunc(options meta_v1.ListOptions) (watch.Interface, error) { +func (c *Controller) podWatchFunc(options metav1.ListOptions) (watch.Interface, error) { var labelSelector string var fieldSelector string - opts := meta_v1.ListOptions{ + opts := metav1.ListOptions{ LabelSelector: labelSelector, FieldSelector: fieldSelector, Watch: options.Watch, diff --git a/pkg/controller/postgresql.go b/pkg/controller/postgresql.go index 09afbf89d..f0161ae97 100644 --- a/pkg/controller/postgresql.go +++ b/pkg/controller/postgresql.go @@ -8,7 +8,7 @@ import ( "sync/atomic" "time" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/watch" @@ -27,14 +27,14 @@ func (c *Controller) clusterResync(stopCh <-chan struct{}, wg *sync.WaitGroup) { for { select { case <-ticker.C: - c.clusterListFunc(meta_v1.ListOptions{ResourceVersion: "0"}) + c.clusterListFunc(metav1.ListOptions{ResourceVersion: "0"}) case <-stopCh: return } } } -func (c *Controller) clusterListFunc(options meta_v1.ListOptions) (runtime.Object, error) { +func (c *Controller) clusterListFunc(options metav1.ListOptions) (runtime.Object, error) { var list spec.PostgresqlList var activeClustersCnt, failedClustersCnt int @@ -42,7 +42,7 @@ func (c *Controller) clusterListFunc(options meta_v1.ListOptions) (runtime.Objec Get(). Namespace(c.opConfig.Namespace). Resource(constants.ResourceName). - VersionedParams(&options, meta_v1.ParameterCodec) + VersionedParams(&options, metav1.ParameterCodec) b, err := req.DoRaw() if err != nil { @@ -101,13 +101,13 @@ func (d *tprDecoder) Decode() (action watch.EventType, object runtime.Object, er return e.Type, &e.Object, nil } -func (c *Controller) clusterWatchFunc(options meta_v1.ListOptions) (watch.Interface, error) { +func (c *Controller) clusterWatchFunc(options metav1.ListOptions) (watch.Interface, error) { options.Watch = true r, err := c.RestClient. Get(). Namespace(c.opConfig.Namespace). Resource(constants.ResourceName). - VersionedParams(&options, meta_v1.ParameterCodec). + VersionedParams(&options, metav1.ParameterCodec). FieldsSelectorParam(nil). Stream() @@ -131,9 +131,9 @@ func (c *Controller) processEvent(obj interface{}) error { logger := c.logger.WithField("worker", event.WorkerID) if event.EventType == spec.EventAdd || event.EventType == spec.EventSync { - clusterName = util.NameFromMeta(event.NewSpec.Metadata) + clusterName = util.NameFromMeta(event.NewSpec.ObjectMeta) } else { - clusterName = util.NameFromMeta(event.OldSpec.Metadata) + clusterName = util.NameFromMeta(event.OldSpec.ObjectMeta) } c.clustersMu.RLock() @@ -248,8 +248,8 @@ func (c *Controller) queueClusterEvent(old, new *spec.Postgresql, eventType spec ) if old != nil { //update, delete - uid = old.Metadata.GetUID() - clusterName = util.NameFromMeta(old.Metadata) + uid = old.GetUID() + clusterName = util.NameFromMeta(old.ObjectMeta) if eventType == spec.EventUpdate && new.Error == nil && old.Error != nil { eventType = spec.EventSync clusterError = new.Error @@ -257,8 +257,8 @@ func (c *Controller) queueClusterEvent(old, new *spec.Postgresql, eventType spec clusterError = old.Error } } else { //add, sync - uid = new.Metadata.GetUID() - clusterName = util.NameFromMeta(new.Metadata) + uid = new.GetUID() + clusterName = util.NameFromMeta(new.ObjectMeta) clusterError = new.Error } @@ -303,7 +303,7 @@ func (c *Controller) postgresqlUpdate(prev, cur interface{}) { if !ok { c.logger.Errorf("could not cast to postgresql spec") } - if pgOld.Metadata.ResourceVersion == pgNew.Metadata.ResourceVersion { + if pgOld.ResourceVersion == pgNew.ResourceVersion { return } if reflect.DeepEqual(pgOld.Spec, pgNew.Spec) { diff --git a/pkg/controller/util.go b/pkg/controller/util.go index 2ea4f65b9..f02f27955 100644 --- a/pkg/controller/util.go +++ b/pkg/controller/util.go @@ -4,7 +4,7 @@ import ( "fmt" "hash/crc32" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/pkg/api/v1" extv1beta "k8s.io/client-go/pkg/apis/extensions/v1beta1" @@ -30,7 +30,7 @@ func (c *Controller) makeClusterConfig() cluster.Config { func thirdPartyResource(TPRName string) *extv1beta.ThirdPartyResource { return &extv1beta.ThirdPartyResource{ - ObjectMeta: meta_v1.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ //ThirdPartyResources are cluster-wide Name: TPRName, }, @@ -69,7 +69,7 @@ func (c *Controller) getInfrastructureRoles(rolesSecret *spec.NamespacedName) (r infraRolesSecret, err := c.KubeClient. Secrets(rolesSecret.Namespace). - Get(rolesSecret.Name, meta_v1.GetOptions{}) + Get(rolesSecret.Name, metav1.GetOptions{}) if err != nil { c.logger.Debugf("Infrastructure roles secret name: %q", *rolesSecret) return nil, fmt.Errorf("could not get infrastructure roles secret: %v", err) diff --git a/pkg/controller/util_test.go b/pkg/controller/util_test.go index 6bea382d6..88c51258e 100644 --- a/pkg/controller/util_test.go +++ b/pkg/controller/util_test.go @@ -5,7 +5,7 @@ import ( "reflect" "testing" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" v1core "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/client-go/pkg/api/v1" @@ -21,7 +21,7 @@ type mockSecret struct { v1core.SecretInterface } -func (c *mockSecret) Get(name string, options meta_v1.GetOptions) (*v1.Secret, error) { +func (c *mockSecret) Get(name string, options metav1.GetOptions) (*v1.Secret, error) { if name != testInfrastructureRolesSecretName { return nil, fmt.Errorf("NotFound") } @@ -70,7 +70,7 @@ func TestPodClusterName(t *testing.T) { }, { &v1.Pod{ - ObjectMeta: meta_v1.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Namespace: v1.NamespaceDefault, Labels: map[string]string{ mockController.opConfig.ClusterNameLabel: "testcluster", diff --git a/pkg/spec/postgresql.go b/pkg/spec/postgresql.go index 469d841cc..8598c66cd 100644 --- a/pkg/spec/postgresql.go +++ b/pkg/spec/postgresql.go @@ -6,8 +6,7 @@ import ( "strings" "time" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) // MaintenanceWindow describes the time window when the operator is allowed to do maintenance on a cluster. @@ -70,8 +69,8 @@ const ( // Postgresql defines PostgreSQL Third Party (resource) Object. type Postgresql struct { - meta_v1.TypeMeta `json:",inline"` - Metadata meta_v1.ObjectMeta `json:"metadata"` + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata"` Spec PostgresSpec `json:"spec"` Status PostgresStatus `json:"status,omitempty"` @@ -98,8 +97,8 @@ type PostgresSpec struct { // PostgresqlList defines a list of PostgreSQL clusters. type PostgresqlList struct { - meta_v1.TypeMeta `json:",inline"` - Metadata meta_v1.ListMeta `json:"metadata"` + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata"` Items []Postgresql `json:"items"` } @@ -190,25 +189,6 @@ func (m *MaintenanceWindow) UnmarshalJSON(data []byte) error { return nil } -// GetObject implements Object interface for PostgreSQL TPR spec object. -func (p *Postgresql) GetObjectKind() schema.ObjectKind { - return &p.TypeMeta -} - -// GetObjectMeta implements ObjectMetaAccessor interface for PostgreSQL TPR spec object. -func (p *Postgresql) GetObjectMeta() meta_v1.Object { - return &p.Metadata -} - -func (pl *PostgresqlList) GetObjectKind() schema.ObjectKind { - return &pl.TypeMeta -} - -// GetListMeta implements ListMetaAccessor interface for PostgreSQL TPR List spec object. -func (pl *PostgresqlList) GetListMeta() meta_v1.List { - return &pl.Metadata -} - func extractClusterName(clusterName string, teamName string) (string, error) { teamNameLen := len(teamName) if len(clusterName) < teamNameLen+2 { @@ -226,10 +206,6 @@ func extractClusterName(clusterName string, teamName string) (string, error) { return clusterName[teamNameLen+1:], nil } -// The code below is used only to work around a known problem with third-party -// resources and ugorji. If/when these issues are resolved, the code below -// should no longer be required. -// type postgresqlListCopy PostgresqlList type postgresqlCopy Postgresql @@ -239,7 +215,7 @@ func (p *Postgresql) UnmarshalJSON(data []byte) error { err := json.Unmarshal(data, &tmp) if err != nil { - metaErr := json.Unmarshal(data, &tmp.Metadata) + metaErr := json.Unmarshal(data, &tmp.ObjectMeta) if metaErr != nil { return err } @@ -253,7 +229,7 @@ func (p *Postgresql) UnmarshalJSON(data []byte) error { } tmp2 := Postgresql(tmp) - clusterName, err := extractClusterName(tmp2.Metadata.Name, tmp2.Spec.TeamID) + clusterName, err := extractClusterName(tmp2.ObjectMeta.Name, tmp2.Spec.TeamID) if err == nil { tmp2.Spec.ClusterName = clusterName } else { diff --git a/pkg/spec/postgresql_test.go b/pkg/spec/postgresql_test.go index cbdc75e0a..7c67bf0a9 100644 --- a/pkg/spec/postgresql_test.go +++ b/pkg/spec/postgresql_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) var parseTimeTests = []struct { @@ -103,11 +103,11 @@ var unmarshalCluster = []struct { "kind": "Postgresql","apiVersion": "acid.zalan.do/v1", "metadata": {"name": "acid-testcluster1"}, "spec": {"teamId": 100}}`), Postgresql{ - TypeMeta: meta_v1.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "Postgresql", APIVersion: "acid.zalan.do/v1", }, - Metadata: meta_v1.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "acid-testcluster1", }, Status: ClusterStatusInvalid, @@ -183,11 +183,11 @@ var unmarshalCluster = []struct { } }`), Postgresql{ - TypeMeta: meta_v1.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "Postgresql", APIVersion: "acid.zalan.do/v1", }, - Metadata: meta_v1.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "acid-testcluster1", }, Spec: PostgresSpec{ @@ -249,11 +249,11 @@ var unmarshalCluster = []struct { { []byte(`{"kind": "Postgresql","apiVersion": "acid.zalan.do/v1","metadata": {"name": "teapot-testcluster1"}, "spec": {"teamId": "acid"}}`), Postgresql{ - TypeMeta: meta_v1.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "Postgresql", APIVersion: "acid.zalan.do/v1", }, - Metadata: meta_v1.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "teapot-testcluster1", }, Spec: PostgresSpec{TeamID: "acid"}, @@ -277,16 +277,16 @@ var postgresqlList = []struct { }{ {[]byte(`{"apiVersion":"v1","items":[{"apiVersion":"acid.zalan.do/v1","kind":"Postgresql","metadata":{"labels":{"team":"acid"},"name":"acid-testcluster42","namespace":"default","resourceVersion":"30446957","selfLink":"/apis/acid.zalan.do/v1/namespaces/default/postgresqls/acid-testcluster42","uid":"857cd208-33dc-11e7-b20a-0699041e4b03"},"spec":{"allowedSourceRanges":["185.85.220.0/22"],"numberOfInstances":1,"postgresql":{"version":"9.6"},"teamId":"acid","volume":{"size":"10Gi"}},"status":"Running"}],"kind":"List","metadata":{},"resourceVersion":"","selfLink":""}`), PostgresqlList{ - TypeMeta: meta_v1.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "List", APIVersion: "v1", }, Items: []Postgresql{{ - TypeMeta: meta_v1.TypeMeta{ + TypeMeta: metav1.TypeMeta{ Kind: "Postgresql", APIVersion: "acid.zalan.do/v1", }, - Metadata: meta_v1.ObjectMeta{ + ObjectMeta: metav1.ObjectMeta{ Name: "acid-testcluster42", Namespace: "default", Labels: map[string]string{"team": "acid"}, @@ -445,8 +445,8 @@ func TestPostgresMeta(t *testing.T) { t.Errorf("GetObjectKindMeta expected: %v, got: %v", tt.out.TypeMeta, a) } - if a := tt.out.GetObjectMeta(); reflect.DeepEqual(a, tt.out.Metadata) { - t.Errorf("GetObjectMeta expected: %v, got: %v", tt.out.Metadata, a) + if a := tt.out.GetObjectMeta(); reflect.DeepEqual(a, tt.out.ObjectMeta) { + t.Errorf("GetObjectMeta expected: %v, got: %v", tt.out.ObjectMeta, a) } } } @@ -475,8 +475,8 @@ func TestPostgresListMeta(t *testing.T) { t.Errorf("GetObjectKindMeta expected: %v, got: %v", tt.out.TypeMeta, a) } - if a := tt.out.GetListMeta(); reflect.DeepEqual(a, tt.out.Metadata) { - t.Errorf("GetObjectMeta expected: %v, got: %v", tt.out.Metadata, a) + if a := tt.out.GetListMeta(); reflect.DeepEqual(a, tt.out.ListMeta) { + t.Errorf("GetObjectMeta expected: %v, got: %v", tt.out.ListMeta, a) } return diff --git a/pkg/util/util.go b/pkg/util/util.go index d4e4c4c9c..c66622679 100644 --- a/pkg/util/util.go +++ b/pkg/util/util.go @@ -8,7 +8,7 @@ import ( "time" "github.com/motomux/pretty" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/zalando-incubator/postgres-operator/pkg/spec" ) @@ -34,7 +34,7 @@ func RandomPassword(n int) string { } // NameFromMeta converts a metadata object to the NamespacedName name representation. -func NameFromMeta(meta meta_v1.ObjectMeta) spec.NamespacedName { +func NameFromMeta(meta metav1.ObjectMeta) spec.NamespacedName { return spec.NamespacedName{ Namespace: meta.Namespace, Name: meta.Name, diff --git a/pkg/util/util_test.go b/pkg/util/util_test.go index 53b5dfc46..cfd37c033 100644 --- a/pkg/util/util_test.go +++ b/pkg/util/util_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/zalando-incubator/postgres-operator/pkg/spec" ) @@ -53,7 +53,7 @@ func TestRandomPassword(t *testing.T) { } func TestNameFromMeta(t *testing.T) { - meta := meta_v1.ObjectMeta{ + meta := metav1.ObjectMeta{ Name: "testcluster", Namespace: "default", }