From 27ccb5979093abfba6c4dae67e7ada9f75d21fd8 Mon Sep 17 00:00:00 2001 From: AWS Controllers for Kubernetes Bot <82905295+ack-bot@users.noreply.github.com> Date: Fri, 30 Aug 2024 16:20:41 -0700 Subject: [PATCH] Update to ACK runtime `v0.38.0`, code-generator `v0.38.1` (#43) ### Update to ACK runtime `v0.38.0`, code-generator `v0.38.1` ---------- * ACK code-generator `v0.38.1` [release notes](https://github.com/aws-controllers-k8s/code-generator/releases/tag/v0.38.1) * ACK runtime `v0.38.0` [release notes](https://github.com/aws-controllers-k8s/runtime/releases/tag/v0.38.0) ---------- NOTE: This PR increments the release version of service controller from `v0.0.11` to `v0.0.12` Once this PR is merged, release `v0.0.12` will be automatically created for `kafka-controller` **Please close this PR, if you do not want the new patch release for `kafka-controller`** ---------- #### stdout for `make build-controller`: ``` building ack-generate ... ok. ==== building kafka-controller ==== Copying common custom resource definitions into kafka Building Kubernetes API objects for kafka Generating deepcopy code for kafka Generating custom resource definitions for kafka Building service controller for kafka Generating RBAC manifests for kafka Running gofmt against generated code for kafka Updating additional GitHub repository maintenance files ==== building kafka-controller release artifacts ==== Building release artifacts for kafka-v0.0.12 Generating common custom resource definitions Generating custom resource definitions for kafka Generating RBAC manifests for kafka ``` ---------- By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. --- apis/v1alpha1/ack-generate-metadata.yaml | 6 +++--- config/controller/kustomization.yaml | 2 +- go.mod | 2 +- go.sum | 4 ++-- helm/Chart.yaml | 4 ++-- helm/templates/NOTES.txt | 2 +- helm/values.yaml | 10 ++++++---- pkg/resource/cluster/manager_factory.go | 6 +++++- pkg/resource/cluster/references.go | 13 ++++++++----- pkg/resource/configuration/manager_factory.go | 6 +++++- 10 files changed, 34 insertions(+), 21 deletions(-) diff --git a/apis/v1alpha1/ack-generate-metadata.yaml b/apis/v1alpha1/ack-generate-metadata.yaml index 57d85b6..a204a85 100755 --- a/apis/v1alpha1/ack-generate-metadata.yaml +++ b/apis/v1alpha1/ack-generate-metadata.yaml @@ -1,8 +1,8 @@ ack_generate_info: - build_date: "2024-08-06T02:52:29Z" - build_hash: 587b90dc860e91ee9a763e9e3bc4d3f1b2fbddb7 + build_date: "2024-08-29T17:08:47Z" + build_hash: f8f98563404066ac3340db0a049d2e530e5c51cc go_version: go1.22.5 - version: v0.36.0 + version: v0.38.1 api_directory_checksum: 619ff4b8739eb9cbf1a2d71d97046be2cb8e1587 api_version: v1alpha1 aws_sdk_go_version: v1.44.158 diff --git a/config/controller/kustomization.yaml b/config/controller/kustomization.yaml index 607b1ce..cffb716 100644 --- a/config/controller/kustomization.yaml +++ b/config/controller/kustomization.yaml @@ -6,4 +6,4 @@ kind: Kustomization images: - name: controller newName: public.ecr.aws/aws-controllers-k8s/kafka-controller - newTag: 0.0.11 + newTag: 0.0.12 diff --git a/go.mod b/go.mod index ce4ce45..87d63c9 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.22.0 toolchain go1.22.5 require ( - github.com/aws-controllers-k8s/runtime v0.36.0 + github.com/aws-controllers-k8s/runtime v0.38.0 github.com/aws-controllers-k8s/secretsmanager-controller v0.0.7 github.com/aws/aws-sdk-go v1.49.0 github.com/go-logr/logr v1.4.1 diff --git a/go.sum b/go.sum index 9d1f4df..e053161 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -github.com/aws-controllers-k8s/runtime v0.36.0 h1:XEMVGfUwsT9QMShihuCLHlape+daJWyYtXj45s/iJiU= -github.com/aws-controllers-k8s/runtime v0.36.0/go.mod h1:gI2pWb20UGLP2SnHf1a1VzTd7iVVy+/I9VAzT0Y+Dew= +github.com/aws-controllers-k8s/runtime v0.38.0 h1:gSEpmBm7OwTPd2kIOU+AIDIivi3teSm5FFrhROfu4wg= +github.com/aws-controllers-k8s/runtime v0.38.0/go.mod h1:gI2pWb20UGLP2SnHf1a1VzTd7iVVy+/I9VAzT0Y+Dew= github.com/aws-controllers-k8s/secretsmanager-controller v0.0.7 h1:b+RT3ilVlahCSskt91YU784Bj0bF/hff4KaqmVCbisQ= github.com/aws-controllers-k8s/secretsmanager-controller v0.0.7/go.mod h1:jVR+yHku29dFDsWDx0NaCfmoSQ0MdT6tiOydxZjAYyc= github.com/aws/aws-sdk-go v1.49.0 h1:g9BkW1fo9GqKfwg2+zCD+TW/D36Ux+vtfJ8guF4AYmY= diff --git a/helm/Chart.yaml b/helm/Chart.yaml index e77ac26..2980ed5 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 name: kafka-chart description: A Helm chart for the ACK service controller for Amazon Managed Streaming for Apache Kafka (MSK) -version: 0.0.11 -appVersion: 0.0.11 +version: 0.0.12 +appVersion: 0.0.12 home: https://github.com/aws-controllers-k8s/kafka-controller icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png sources: diff --git a/helm/templates/NOTES.txt b/helm/templates/NOTES.txt index 7240d71..069add1 100644 --- a/helm/templates/NOTES.txt +++ b/helm/templates/NOTES.txt @@ -1,5 +1,5 @@ {{ .Chart.Name }} has been installed. -This chart deploys "public.ecr.aws/aws-controllers-k8s/kafka-controller:0.0.11". +This chart deploys "public.ecr.aws/aws-controllers-k8s/kafka-controller:0.0.12". Check its status by running: kubectl --namespace {{ .Release.Namespace }} get pods -l "app.kubernetes.io/instance={{ .Release.Name }}" diff --git a/helm/values.yaml b/helm/values.yaml index d9b7075..6024950 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -4,7 +4,7 @@ image: repository: public.ecr.aws/aws-controllers-k8s/kafka-controller - tag: 0.0.11 + tag: 0.0.12 pullPolicy: IfNotPresent pullSecrets: [] @@ -157,6 +157,8 @@ leaderElection: # Configuration for feature gates. These are optional controller features that # can be individually enabled ("true") or disabled ("false") by adding key/value # pairs below. -featureGates: {} - # featureGate1: true - # featureGate2: false +featureGates: + # Enables the Service level granularity for CARM. See https://github.com/aws-controllers-k8s/community/issues/2031 + ServiceLevelCARM: false + # Enables the Team level granularity for CARM. See https://github.com/aws-controllers-k8s/community/issues/2031 + TeamLevelCARM: false diff --git a/pkg/resource/cluster/manager_factory.go b/pkg/resource/cluster/manager_factory.go index e35ec25..7298c89 100644 --- a/pkg/resource/cluster/manager_factory.go +++ b/pkg/resource/cluster/manager_factory.go @@ -53,8 +53,12 @@ func (f *resourceManagerFactory) ManagerFor( sess *session.Session, id ackv1alpha1.AWSAccountID, region ackv1alpha1.AWSRegion, + roleARN ackv1alpha1.AWSResourceName, ) (acktypes.AWSResourceManager, error) { - rmId := fmt.Sprintf("%s/%s", id, region) + // We use the account ID, region, and role ARN to uniquely identify a + // resource manager. This helps us to avoid creating multiple resource + // managers for the same account/region/roleARN combination. + rmId := fmt.Sprintf("%s/%s/%s", id, region, roleARN) f.RLock() rm, found := f.rmCache[rmId] f.RUnlock() diff --git a/pkg/resource/cluster/references.go b/pkg/resource/cluster/references.go index 79a805b..2828603 100644 --- a/pkg/resource/cluster/references.go +++ b/pkg/resource/cluster/references.go @@ -136,12 +136,8 @@ func getReferencedResourceState_Secret( if err != nil { return err } - var refResourceSynced, refResourceTerminal bool + var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && - cond.Status == corev1.ConditionTrue { - refResourceSynced = true - } if cond.Type == ackv1alpha1.ConditionTypeTerminal && cond.Status == corev1.ConditionTrue { return ackerr.ResourceReferenceTerminalFor( @@ -154,6 +150,13 @@ func getReferencedResourceState_Secret( "Secret", namespace, name) } + var refResourceSynced bool + for _, cond := range obj.Status.Conditions { + if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + cond.Status == corev1.ConditionTrue { + refResourceSynced = true + } + } if !refResourceSynced { return ackerr.ResourceReferenceNotSyncedFor( "Secret", diff --git a/pkg/resource/configuration/manager_factory.go b/pkg/resource/configuration/manager_factory.go index 6910f47..026060b 100644 --- a/pkg/resource/configuration/manager_factory.go +++ b/pkg/resource/configuration/manager_factory.go @@ -53,8 +53,12 @@ func (f *resourceManagerFactory) ManagerFor( sess *session.Session, id ackv1alpha1.AWSAccountID, region ackv1alpha1.AWSRegion, + roleARN ackv1alpha1.AWSResourceName, ) (acktypes.AWSResourceManager, error) { - rmId := fmt.Sprintf("%s/%s", id, region) + // We use the account ID, region, and role ARN to uniquely identify a + // resource manager. This helps us to avoid creating multiple resource + // managers for the same account/region/roleARN combination. + rmId := fmt.Sprintf("%s/%s/%s", id, region, roleARN) f.RLock() rm, found := f.rmCache[rmId] f.RUnlock()