From 8215ed05e201d9d5c5c5c2a3600e15a08fb17fcf Mon Sep 17 00:00:00 2001 From: AWS Controllers for Kubernetes Bot <82905295+ack-bot@users.noreply.github.com> Date: Mon, 9 Sep 2024 18:34:53 -0700 Subject: [PATCH] Update to ACK runtime `v0.38.0`, code-generator `v0.38.1` (#60) ### 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 `v1.0.12` to `v1.0.13` Once this PR is merged, release `v1.0.13` will be automatically created for `emrcontainers-controller` **Please close this PR, if you do not want the new patch release for `emrcontainers-controller`** ---------- #### stdout for `make build-controller`: ``` building ack-generate ... ok. ==== building emrcontainers-controller ==== Copying common custom resource definitions into emrcontainers Building Kubernetes API objects for emrcontainers Generating deepcopy code for emrcontainers Generating custom resource definitions for emrcontainers Building service controller for emrcontainers Generating RBAC manifests for emrcontainers Running gofmt against generated code for emrcontainers Updating additional GitHub repository maintenance files ==== building emrcontainers-controller release artifacts ==== Building release artifacts for emrcontainers-v1.0.13 Generating common custom resource definitions Generating custom resource definitions for emrcontainers Generating RBAC manifests for emrcontainers ``` ---------- 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/job_run/manager_factory.go | 6 +++++- pkg/resource/job_run/references.go | 13 ++++++++----- pkg/resource/virtual_cluster/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 53fa427..2bcd583 100644 --- 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:53:27Z" - build_hash: 587b90dc860e91ee9a763e9e3bc4d3f1b2fbddb7 + build_date: "2024-08-29T17:07:42Z" + build_hash: f8f98563404066ac3340db0a049d2e530e5c51cc go_version: go1.22.5 - version: v0.36.0 + version: v0.38.1 api_directory_checksum: 8c038bde341a2f28283e47ad34e7fd7e1e5c64ba api_version: v1alpha1 aws_sdk_go_version: v1.44.93 diff --git a/config/controller/kustomization.yaml b/config/controller/kustomization.yaml index b5a69c1..ab739b2 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/emrcontainers-controller - newTag: 1.0.12 + newTag: 1.0.13 diff --git a/go.mod b/go.mod index b25fdcb..51a86dd 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/aws-sdk-go v1.49.0 github.com/ghodss/yaml v1.0.0 github.com/go-logr/logr v1.4.1 diff --git a/go.sum b/go.sum index 422dea1..058d86a 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/aws-sdk-go v1.49.0 h1:g9BkW1fo9GqKfwg2+zCD+TW/D36Ux+vtfJ8guF4AYmY= github.com/aws/aws-sdk-go v1.49.0/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 80c5d37..f132954 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 name: emrcontainers-chart description: A Helm chart for the ACK service controller for Amazon EMR on EKS (EMRContainers) -version: 1.0.12 -appVersion: 1.0.12 +version: 1.0.13 +appVersion: 1.0.13 home: https://github.com/aws-controllers-k8s/emrcontainers-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 f410d50..8e53885 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/emrcontainers-controller:1.0.12". +This chart deploys "public.ecr.aws/aws-controllers-k8s/emrcontainers-controller:1.0.13". 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 a529bb9..5eaef91 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -4,7 +4,7 @@ image: repository: public.ecr.aws/aws-controllers-k8s/emrcontainers-controller - tag: 1.0.12 + tag: 1.0.13 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/job_run/manager_factory.go b/pkg/resource/job_run/manager_factory.go index 2261601..4d2d3ad 100644 --- a/pkg/resource/job_run/manager_factory.go +++ b/pkg/resource/job_run/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/job_run/references.go b/pkg/resource/job_run/references.go index d39dc1d..0544986 100644 --- a/pkg/resource/job_run/references.go +++ b/pkg/resource/job_run/references.go @@ -130,12 +130,8 @@ func getReferencedResourceState_VirtualCluster( 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( @@ -148,6 +144,13 @@ func getReferencedResourceState_VirtualCluster( "VirtualCluster", 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( "VirtualCluster", diff --git a/pkg/resource/virtual_cluster/manager_factory.go b/pkg/resource/virtual_cluster/manager_factory.go index 5246401..f6c99b2 100644 --- a/pkg/resource/virtual_cluster/manager_factory.go +++ b/pkg/resource/virtual_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()