diff --git a/pkg/cluster/cluster_test.go b/pkg/cluster/cluster_test.go index bf3cb58ae6815e9d2b58c4b7d5efc6049ad9112a..897ed6c0d786e4beb237e41e6f09a7204beb3166 100644 --- a/pkg/cluster/cluster_test.go +++ b/pkg/cluster/cluster_test.go @@ -71,11 +71,11 @@ var cl = New( Spec: acidv1.PostgresSpec{ EnableConnectionPooler: util.True(), Streams: []acidv1.Stream{ - acidv1.Stream{ + { ApplicationId: "test-app", Database: "test_db", Tables: map[string]acidv1.StreamTable{ - "test_table": acidv1.StreamTable{ + "test_table": { EventType: "test-app.test", }, }, @@ -95,6 +95,7 @@ func TestCreate(t *testing.T) { client := k8sutil.KubernetesClient{ DeploymentsGetter: clientSet.AppsV1(), + CronJobsGetter: clientSet.BatchV1(), EndpointsGetter: clientSet.CoreV1(), PersistentVolumeClaimsGetter: clientSet.CoreV1(), PodDisruptionBudgetsGetter: clientSet.PolicyV1(), @@ -111,6 +112,7 @@ func TestCreate(t *testing.T) { Namespace: clusterNamespace, }, Spec: acidv1.PostgresSpec{ + EnableLogicalBackup: true, Volume: acidv1.Volume{ Size: "1Gi", }, @@ -1504,7 +1506,7 @@ func newCronJob(image, schedule string, vars []v1.EnvVar, mounts []v1.VolumeMoun Template: v1.PodTemplateSpec{ Spec: v1.PodSpec{ Containers: []v1.Container{ - v1.Container{ + { Name: "logical-backup", Image: image, Env: vars, diff --git a/pkg/cluster/connection_pooler_test.go b/pkg/cluster/connection_pooler_test.go index e6472d017b404def8447f3b0b01d8a078ba75ec0..78d1c2527ef1bc66bbb470c41a9b128da4b7632b 100644 --- a/pkg/cluster/connection_pooler_test.go +++ b/pkg/cluster/connection_pooler_test.go @@ -969,7 +969,7 @@ func TestPoolerTLS(t *testing.T) { TLS: &acidv1.TLSDescription{ SecretName: tlsSecretName, CAFile: "ca.crt"}, AdditionalVolumes: []acidv1.AdditionalVolume{ - acidv1.AdditionalVolume{ + { Name: tlsSecretName, MountPath: mountPath, VolumeSource: v1.VolumeSource{ diff --git a/pkg/cluster/k8sres.go b/pkg/cluster/k8sres.go index 8934b6b492954e2e30d9ca929c1e8ebc3adae808..91e19e4c920e42e97aaab08493e2eb3c0d4d91c6 100644 --- a/pkg/cluster/k8sres.go +++ b/pkg/cluster/k8sres.go @@ -739,7 +739,7 @@ func (c *Cluster) generateSidecarContainers(sidecars []acidv1.Sidecar, } // adds common fields to sidecars -func patchSidecarContainers(in []v1.Container, volumeMounts []v1.VolumeMount, superUserName string, credentialsSecretName string, logger *logrus.Entry) []v1.Container { +func patchSidecarContainers(in []v1.Container, volumeMounts []v1.VolumeMount, superUserName string, credentialsSecretName string) []v1.Container { result := []v1.Container{} for _, container := range in { @@ -1444,7 +1444,7 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef containerName, containerName) } - sidecarContainers = patchSidecarContainers(sidecarContainers, volumeMounts, c.OpConfig.SuperUsername, c.credentialSecretName(c.OpConfig.SuperUsername), c.logger) + sidecarContainers = patchSidecarContainers(sidecarContainers, volumeMounts, c.OpConfig.SuperUsername, c.credentialSecretName(c.OpConfig.SuperUsername)) tolerationSpec := tolerations(&spec.Tolerations, c.OpConfig.PodToleration) effectivePodPriorityClassName := util.Coalesce(spec.PodPriorityClassName, c.OpConfig.PodPriorityClassName) @@ -1598,7 +1598,7 @@ func (c *Cluster) generatePodAnnotations(spec *acidv1.PostgresSpec) map[string]s for k, v := range c.OpConfig.CustomPodAnnotations { annotations[k] = v } - if spec != nil || spec.PodAnnotations != nil { + if spec.PodAnnotations != nil { for k, v := range spec.PodAnnotations { annotations[k] = v } @@ -1875,18 +1875,16 @@ func (c *Cluster) generatePersistentVolumeClaimTemplate(volumeSize, volumeStorag func (c *Cluster) generateUserSecrets() map[string]*v1.Secret { secrets := make(map[string]*v1.Secret, len(c.pgUsers)+len(c.systemUsers)) - 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(pgUser.Namespace, pgUser) + secret := c.generateSingleUserSecret(pgUser) if secret != nil { secrets[username] = secret } - namespace = pgUser.Namespace } /* special case for the system user */ for _, systemUser := range c.systemUsers { - secret := c.generateSingleUserSecret(namespace, systemUser) + secret := c.generateSingleUserSecret(systemUser) if secret != nil { secrets[systemUser.Name] = secret } @@ -1895,7 +1893,7 @@ func (c *Cluster) generateUserSecrets() map[string]*v1.Secret { return secrets } -func (c *Cluster) generateSingleUserSecret(namespace string, pgUser spec.PgUser) *v1.Secret { +func (c *Cluster) generateSingleUserSecret(pgUser spec.PgUser) *v1.Secret { //Skip users with no password i.e. human users (they'll be authenticated using pam) if pgUser.Password == "" { if pgUser.Origin != spec.RoleOriginTeamsAPI { diff --git a/pkg/cluster/k8sres_test.go b/pkg/cluster/k8sres_test.go index f1886168769684a47edf1a9447476daec0e883d6..07c05962da3901ad47024ec5643458e9f36be114 100644 --- a/pkg/cluster/k8sres_test.go +++ b/pkg/cluster/k8sres_test.go @@ -1451,9 +1451,9 @@ func TestNodeAffinity(t *testing.T) { nodeAff := &v1.NodeAffinity{ RequiredDuringSchedulingIgnoredDuringExecution: &v1.NodeSelector{ NodeSelectorTerms: []v1.NodeSelectorTerm{ - v1.NodeSelectorTerm{ + { MatchExpressions: []v1.NodeSelectorRequirement{ - v1.NodeSelectorRequirement{ + { Key: "test-label", Operator: v1.NodeSelectorOpIn, Values: []string{ @@ -1673,7 +1673,7 @@ func TestTLS(t *testing.T) { TLS: &acidv1.TLSDescription{ SecretName: tlsSecretName, CAFile: "ca.crt"}, AdditionalVolumes: []acidv1.AdditionalVolume{ - acidv1.AdditionalVolume{ + { Name: tlsSecretName, MountPath: mountPath, VolumeSource: v1.VolumeSource{ @@ -2162,17 +2162,17 @@ func TestSidecars(t *testing.T) { Size: "1G", }, Sidecars: []acidv1.Sidecar{ - acidv1.Sidecar{ + { Name: "cluster-specific-sidecar", }, - acidv1.Sidecar{ + { Name: "cluster-specific-sidecar-with-resources", Resources: &acidv1.Resources{ ResourceRequests: acidv1.ResourceDescription{CPU: k8sutil.StringToPointer("210m"), Memory: k8sutil.StringToPointer("0.8Gi")}, ResourceLimits: acidv1.ResourceDescription{CPU: k8sutil.StringToPointer("510m"), Memory: k8sutil.StringToPointer("1.4Gi")}, }, }, - acidv1.Sidecar{ + { Name: "replace-sidecar", DockerImage: "override-image", }, @@ -2200,11 +2200,11 @@ func TestSidecars(t *testing.T) { "deprecated-global-sidecar": "image:123", }, SidecarContainers: []v1.Container{ - v1.Container{ + { Name: "global-sidecar", }, // will be replaced by a cluster specific sidecar with the same name - v1.Container{ + { Name: "replace-sidecar", Image: "replaced-image", }, @@ -2259,7 +2259,7 @@ func TestSidecars(t *testing.T) { }, } mounts := []v1.VolumeMount{ - v1.VolumeMount{ + { Name: "pgdata", MountPath: "/home/postgres/pgdata", }, @@ -2516,17 +2516,17 @@ func TestGenerateService(t *testing.T) { Size: "1G", }, Sidecars: []acidv1.Sidecar{ - acidv1.Sidecar{ + { Name: "cluster-specific-sidecar", }, - acidv1.Sidecar{ + { Name: "cluster-specific-sidecar-with-resources", Resources: &acidv1.Resources{ ResourceRequests: acidv1.ResourceDescription{CPU: k8sutil.StringToPointer("210m"), Memory: k8sutil.StringToPointer("0.8Gi")}, ResourceLimits: acidv1.ResourceDescription{CPU: k8sutil.StringToPointer("510m"), Memory: k8sutil.StringToPointer("1.4Gi")}, }, }, - acidv1.Sidecar{ + { Name: "replace-sidecar", DockerImage: "override-image", }, @@ -2555,11 +2555,11 @@ func TestGenerateService(t *testing.T) { "deprecated-global-sidecar": "image:123", }, SidecarContainers: []v1.Container{ - v1.Container{ + { Name: "global-sidecar", }, // will be replaced by a cluster specific sidecar with the same name - v1.Container{ + { Name: "replace-sidecar", Image: "replaced-image", }, @@ -2654,27 +2654,27 @@ func newLBFakeClient() (k8sutil.KubernetesClient, *fake.Clientset) { func getServices(serviceType v1.ServiceType, sourceRanges []string, extTrafficPolicy, clusterName string) []v1.ServiceSpec { return []v1.ServiceSpec{ - v1.ServiceSpec{ + { ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyType(extTrafficPolicy), LoadBalancerSourceRanges: sourceRanges, Ports: []v1.ServicePort{{Name: "postgresql", Port: 5432, TargetPort: intstr.IntOrString{IntVal: 5432}}}, Type: serviceType, }, - v1.ServiceSpec{ + { ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyType(extTrafficPolicy), LoadBalancerSourceRanges: sourceRanges, Ports: []v1.ServicePort{{Name: clusterName + "-pooler", Port: 5432, TargetPort: intstr.IntOrString{IntVal: 5432}}}, Selector: map[string]string{"connection-pooler": clusterName + "-pooler"}, Type: serviceType, }, - v1.ServiceSpec{ + { ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyType(extTrafficPolicy), LoadBalancerSourceRanges: sourceRanges, Ports: []v1.ServicePort{{Name: "postgresql", Port: 5432, TargetPort: intstr.IntOrString{IntVal: 5432}}}, Selector: map[string]string{"spilo-role": "replica", "application": "spilo", "cluster-name": clusterName}, Type: serviceType, }, - v1.ServiceSpec{ + { ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyType(extTrafficPolicy), LoadBalancerSourceRanges: sourceRanges, Ports: []v1.ServicePort{{Name: clusterName + "-pooler-repl", Port: 5432, TargetPort: intstr.IntOrString{IntVal: 5432}}}, @@ -2894,7 +2894,7 @@ func TestGenerateResourceRequirements(t *testing.T) { }, Spec: acidv1.PostgresSpec{ Sidecars: []acidv1.Sidecar{ - acidv1.Sidecar{ + { Name: sidecarName, }, }, @@ -3095,7 +3095,7 @@ func TestGenerateResourceRequirements(t *testing.T) { }, Spec: acidv1.PostgresSpec{ Sidecars: []acidv1.Sidecar{ - acidv1.Sidecar{ + { Name: sidecarName, Resources: &acidv1.Resources{ ResourceRequests: acidv1.ResourceDescription{CPU: k8sutil.StringToPointer("10m"), Memory: k8sutil.StringToPointer("10Mi")}, @@ -3184,7 +3184,7 @@ func TestGenerateResourceRequirements(t *testing.T) { }, Spec: acidv1.PostgresSpec{ Sidecars: []acidv1.Sidecar{ - acidv1.Sidecar{ + { Name: sidecarName, Resources: &acidv1.Resources{ ResourceRequests: acidv1.ResourceDescription{CPU: k8sutil.StringToPointer("10m"), Memory: k8sutil.StringToPointer("10Mi")}, diff --git a/pkg/cluster/streams.go b/pkg/cluster/streams.go index f083766734e97ab7dffca1f5f99a042f61ee6ff9..3d9cbae11aa58c9226ffaf00b5b5990add4fc7e1 100644 --- a/pkg/cluster/streams.go +++ b/pkg/cluster/streams.go @@ -185,7 +185,7 @@ func (c *Cluster) generateFabricEventStream(appId string) *zalandov1.FabricEvent } for tableName, table := range stream.Tables { streamSource := c.getEventStreamSource(stream, tableName, table.IdColumn) - streamFlow := getEventStreamFlow(stream, table.PayloadColumn) + streamFlow := getEventStreamFlow(table.PayloadColumn) streamSink := getEventStreamSink(stream, table.EventType) streamRecovery := getEventStreamRecovery(stream, table.RecoveryEventType, table.EventType) @@ -232,7 +232,7 @@ func (c *Cluster) getEventStreamSource(stream acidv1.Stream, tableName string, i } } -func getEventStreamFlow(stream acidv1.Stream, payloadColumn *string) zalandov1.EventStreamFlow { +func getEventStreamFlow(payloadColumn *string) zalandov1.EventStreamFlow { return zalandov1.EventStreamFlow{ Type: constants.EventStreamFlowPgGenericType, PayloadColumn: payloadColumn, diff --git a/pkg/cluster/streams_test.go b/pkg/cluster/streams_test.go index 6091210b574a79c6e35cbdc4288af7eeb4a4e73b..92d28663eb404386030d86ff1edf407332e9535f 100644 --- a/pkg/cluster/streams_test.go +++ b/pkg/cluster/streams_test.go @@ -56,12 +56,12 @@ var ( ApplicationId: appId, Database: "foo", Tables: map[string]acidv1.StreamTable{ - "data.bar": acidv1.StreamTable{ + "data.bar": { EventType: "stream-type-a", IdColumn: k8sutil.StringToPointer("b_id"), PayloadColumn: k8sutil.StringToPointer("b_payload"), }, - "data.foobar": acidv1.StreamTable{ + "data.foobar": { EventType: "stream-type-b", RecoveryEventType: "stream-type-b-dlq", }, @@ -94,7 +94,7 @@ var ( "team": "acid", }, OwnerReferences: []metav1.OwnerReference{ - metav1.OwnerReference{ + { APIVersion: "apps/v1", Kind: "StatefulSet", Name: "acid-test-cluster", @@ -105,7 +105,7 @@ var ( Spec: zalandov1.FabricEventStreamSpec{ ApplicationId: appId, EventStreams: []zalandov1.EventStream{ - zalandov1.EventStream{ + { EventStreamFlow: zalandov1.EventStreamFlow{ PayloadColumn: k8sutil.StringToPointer("b_payload"), Type: constants.EventStreamFlowPgGenericType, @@ -144,7 +144,7 @@ var ( Type: constants.EventStreamSourcePGType, }, }, - zalandov1.EventStream{ + { EventStreamFlow: zalandov1.EventStreamFlow{ Type: constants.EventStreamFlowPgGenericType, }, @@ -241,7 +241,7 @@ func TestHasSlotsInSync(t *testing.T) { "type": "logical", }, Publication: map[string]acidv1.StreamTable{ - "test1": acidv1.StreamTable{ + "test1": { EventType: "stream-type-a", }, }, @@ -249,7 +249,7 @@ func TestHasSlotsInSync(t *testing.T) { }, }, actualSlots: map[string]map[string]string{ - slotName: map[string]string{ + slotName: { "databases": dbName, "plugin": constants.EventStreamSourcePluginType, "type": "logical", @@ -268,7 +268,7 @@ func TestHasSlotsInSync(t *testing.T) { "type": "logical", }, Publication: map[string]acidv1.StreamTable{ - "test1": acidv1.StreamTable{ + "test1": { EventType: "stream-type-a", }, }, @@ -289,7 +289,7 @@ func TestHasSlotsInSync(t *testing.T) { "type": "logical", }, Publication: map[string]acidv1.StreamTable{ - "test1": acidv1.StreamTable{ + "test1": { EventType: "stream-type-a", }, }, @@ -312,7 +312,7 @@ func TestHasSlotsInSync(t *testing.T) { "type": "logical", }, Publication: map[string]acidv1.StreamTable{ - "test1": acidv1.StreamTable{ + "test1": { EventType: "stream-type-a", }, }, @@ -326,7 +326,7 @@ func TestHasSlotsInSync(t *testing.T) { "type": "logical", }, Publication: map[string]acidv1.StreamTable{ - "test2": acidv1.StreamTable{ + "test2": { EventType: "stream-type-b", }, }, @@ -334,7 +334,7 @@ func TestHasSlotsInSync(t *testing.T) { }, }, actualSlots: map[string]map[string]string{ - slotName: map[string]string{ + slotName: { "databases": dbName, "plugin": constants.EventStreamSourcePluginType, "type": "logical", @@ -353,7 +353,7 @@ func TestHasSlotsInSync(t *testing.T) { "type": "logical", }, Publication: map[string]acidv1.StreamTable{ - "test1": acidv1.StreamTable{ + "test1": { EventType: "stream-type-a", }, }, @@ -367,7 +367,7 @@ func TestHasSlotsInSync(t *testing.T) { "type": "logical", }, Publication: map[string]acidv1.StreamTable{ - "test2": acidv1.StreamTable{ + "test2": { EventType: "stream-type-b", }, }, @@ -375,7 +375,7 @@ func TestHasSlotsInSync(t *testing.T) { }, }, actualSlots: map[string]map[string]string{ - slotName: map[string]string{ + slotName: { "databases": dbName, "plugin": constants.EventStreamSourcePluginType, "type": "logical", @@ -394,7 +394,7 @@ func TestHasSlotsInSync(t *testing.T) { "type": "logical", }, Publication: map[string]acidv1.StreamTable{ - "test1": acidv1.StreamTable{ + "test1": { EventType: "stream-type-a", }, }, @@ -408,7 +408,7 @@ func TestHasSlotsInSync(t *testing.T) { "type": "logical", }, Publication: map[string]acidv1.StreamTable{ - "test2": acidv1.StreamTable{ + "test2": { EventType: "stream-type-b", }, }, @@ -416,7 +416,7 @@ func TestHasSlotsInSync(t *testing.T) { }, }, actualSlots: map[string]map[string]string{ - slotName: map[string]string{ + slotName: { "databases": dbName, "plugin": constants.EventStreamSourcePluginType, "type": "logical", diff --git a/pkg/cluster/sync_test.go b/pkg/cluster/sync_test.go index 46d1be5b72863568af35af2b57d18d08b5185e29..d45a193cb164c1244de093638a9be5ff10a22c8c 100644 --- a/pkg/cluster/sync_test.go +++ b/pkg/cluster/sync_test.go @@ -644,7 +644,7 @@ func TestUpdateSecret(t *testing.T) { ApplicationId: appId, Database: dbname, Tables: map[string]acidv1.StreamTable{ - "data.foo": acidv1.StreamTable{ + "data.foo": { EventType: "stream-type-b", }, }, diff --git a/pkg/controller/util.go b/pkg/controller/util.go index 5a3b23edcf7496bc0ee1fb8b4047f68a8c1ab3dc..59e608ad0a07f796b598e632d6f8b2d6821d2415 100644 --- a/pkg/controller/util.go +++ b/pkg/controller/util.go @@ -76,9 +76,8 @@ func (c *Controller) createOperatorCRD(desiredCrd *apiextv1.CustomResourceDefini context.TODO(), crd.Name, types.MergePatchType, patch, metav1.PatchOptions{}); err != nil { return fmt.Errorf("could not update customResourceDefinition %q: %v", crd.Name, err) } - } else { - c.logger.Infof("customResourceDefinition %q has been registered", crd.Name) } + c.logger.Infof("customResourceDefinition %q is registered", crd.Name) return wait.PollUntilContextTimeout(context.TODO(), c.config.CRDReadyWaitInterval, c.config.CRDReadyWaitTimeout, false, func(ctx context.Context) (bool, error) { c, err := c.KubeClient.CustomResourceDefinitions().Get(context.TODO(), desiredCrd.Name, metav1.GetOptions{}) diff --git a/pkg/controller/util_test.go b/pkg/controller/util_test.go index a4ca1772831f7b199425a9d81c71ce57a78b5f90..4c3a9b3564230ecae3130025f0a123bf3a6ebcb4 100644 --- a/pkg/controller/util_test.go +++ b/pkg/controller/util_test.go @@ -132,7 +132,7 @@ func TestOldInfrastructureRoleFormat(t *testing.T) { for _, test := range testTable { roles, err := utilTestController.getInfrastructureRoles( []*config.InfrastructureRole{ - &config.InfrastructureRole{ + { SecretName: test.secretName, UserKey: "user", PasswordKey: "password", @@ -163,7 +163,7 @@ func TestNewInfrastructureRoleFormat(t *testing.T) { // one secret with one configmap { []spec.NamespacedName{ - spec.NamespacedName{ + { Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesNewSecretName, }, @@ -187,11 +187,11 @@ func TestNewInfrastructureRoleFormat(t *testing.T) { // multiple standalone secrets { []spec.NamespacedName{ - spec.NamespacedName{ + { Namespace: v1.NamespaceDefault, Name: "infrastructureroles-new-test1", }, - spec.NamespacedName{ + { Namespace: v1.NamespaceDefault, Name: "infrastructureroles-new-test2", }, @@ -248,7 +248,7 @@ func TestInfrastructureRoleDefinitions(t *testing.T) { // only new CRD format { []*config.InfrastructureRole{ - &config.InfrastructureRole{ + { SecretName: spec.NamespacedName{ Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesNewSecretName, @@ -262,7 +262,7 @@ func TestInfrastructureRoleDefinitions(t *testing.T) { spec.NamespacedName{}, "", []*config.InfrastructureRole{ - &config.InfrastructureRole{ + { SecretName: spec.NamespacedName{ Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesNewSecretName, @@ -280,7 +280,7 @@ func TestInfrastructureRoleDefinitions(t *testing.T) { spec.NamespacedName{}, "secretname: infrastructureroles-new-test, userkey: test-user, passwordkey: test-password, rolekey: test-role", []*config.InfrastructureRole{ - &config.InfrastructureRole{ + { SecretName: spec.NamespacedName{ Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesNewSecretName, @@ -298,7 +298,7 @@ func TestInfrastructureRoleDefinitions(t *testing.T) { spec.NamespacedName{}, "secretname: infrastructureroles-new-test, userkey: test-user, passwordkey: test-password, defaultrolevalue: test-role", []*config.InfrastructureRole{ - &config.InfrastructureRole{ + { SecretName: spec.NamespacedName{ Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesNewSecretName, @@ -319,7 +319,7 @@ func TestInfrastructureRoleDefinitions(t *testing.T) { }, "", []*config.InfrastructureRole{ - &config.InfrastructureRole{ + { SecretName: spec.NamespacedName{ Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesOldSecretName, @@ -334,7 +334,7 @@ func TestInfrastructureRoleDefinitions(t *testing.T) { // both formats for CRD { []*config.InfrastructureRole{ - &config.InfrastructureRole{ + { SecretName: spec.NamespacedName{ Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesNewSecretName, @@ -351,7 +351,7 @@ func TestInfrastructureRoleDefinitions(t *testing.T) { }, "", []*config.InfrastructureRole{ - &config.InfrastructureRole{ + { SecretName: spec.NamespacedName{ Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesNewSecretName, @@ -361,7 +361,7 @@ func TestInfrastructureRoleDefinitions(t *testing.T) { RoleKey: "test-role", Template: false, }, - &config.InfrastructureRole{ + { SecretName: spec.NamespacedName{ Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesOldSecretName, @@ -382,7 +382,7 @@ func TestInfrastructureRoleDefinitions(t *testing.T) { }, "secretname: infrastructureroles-new-test, userkey: test-user, passwordkey: test-password, rolekey: test-role", []*config.InfrastructureRole{ - &config.InfrastructureRole{ + { SecretName: spec.NamespacedName{ Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesNewSecretName, @@ -392,7 +392,7 @@ func TestInfrastructureRoleDefinitions(t *testing.T) { RoleKey: "test-role", Template: false, }, - &config.InfrastructureRole{ + { SecretName: spec.NamespacedName{ Namespace: v1.NamespaceDefault, Name: testInfrastructureRolesOldSecretName, diff --git a/pkg/util/k8sutil/k8sutil.go b/pkg/util/k8sutil/k8sutil.go index 7ae402fe3561ebac628ec78790e84dea046e19f1..de1fb605a1de996ca4985ced9d307f7c6c750c40 100644 --- a/pkg/util/k8sutil/k8sutil.go +++ b/pkg/util/k8sutil/k8sutil.go @@ -7,8 +7,6 @@ import ( b64 "encoding/base64" "encoding/json" - clientbatchv1 "k8s.io/client-go/kubernetes/typed/batch/v1" - apiacidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1" zalandoclient "github.com/zalando/postgres-operator/pkg/generated/clientset/versioned" acidv1 "github.com/zalando/postgres-operator/pkg/generated/clientset/versioned/typed/acid.zalan.do/v1" @@ -24,6 +22,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/kubernetes" appsv1 "k8s.io/client-go/kubernetes/typed/apps/v1" + batchv1 "k8s.io/client-go/kubernetes/typed/batch/v1" corev1 "k8s.io/client-go/kubernetes/typed/core/v1" policyv1 "k8s.io/client-go/kubernetes/typed/policy/v1" rbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1" @@ -59,9 +58,9 @@ type KubernetesClient struct { appsv1.StatefulSetsGetter appsv1.DeploymentsGetter rbacv1.RoleBindingsGetter + batchv1.CronJobsGetter policyv1.PodDisruptionBudgetsGetter apiextv1client.CustomResourceDefinitionsGetter - clientbatchv1.CronJobsGetter acidv1.OperatorConfigurationsGetter acidv1.PostgresTeamsGetter acidv1.PostgresqlsGetter @@ -373,7 +372,7 @@ func (mock *mockDeployment) Get(ctx context.Context, name string, opts metav1.Ge Template: v1.PodTemplateSpec{ Spec: v1.PodSpec{ Containers: []v1.Container{ - v1.Container{ + { Image: "pooler:1.0", }, },