From d1a784409ee483c37a6241a79dbe6878e8a9b536 Mon Sep 17 00:00:00 2001 From: AWS Controllers for Kubernetes Bot <82905295+ack-bot@users.noreply.github.com> Date: Wed, 14 Feb 2024 08:59:02 -0600 Subject: [PATCH] Update to ACK runtime `v0.30.0`, code-generator `v0.30.0` (#114) ### Update to ACK runtime `v0.30.0`, code-generator `v0.30.0` ---------- * ACK code-generator `v0.30.0` [release notes](https://github.com/aws-controllers-k8s/code-generator/releases/tag/v0.30.0) * ACK runtime `v0.30.0` [release notes](https://github.com/aws-controllers-k8s/runtime/releases/tag/v0.30.0) ---------- NOTE: This PR increments the release version of service controller from `v1.0.9` to `v1.0.10` Once this PR is merged, release `v1.0.10` will be automatically created for `applicationautoscaling-controller` **Please close this PR, if you do not want the new patch release for `applicationautoscaling-controller`** ---------- #### stdout for `make build-controller`: ``` building ack-generate ... ok. ==== building applicationautoscaling-controller ==== Copying common custom resource definitions into applicationautoscaling Building Kubernetes API objects for applicationautoscaling Generating deepcopy code for applicationautoscaling Generating custom resource definitions for applicationautoscaling Building service controller for applicationautoscaling Generating RBAC manifests for applicationautoscaling Running gofmt against generated code for applicationautoscaling Updating additional GitHub repository maintenance files ==== building applicationautoscaling-controller release artifacts ==== Building release artifacts for applicationautoscaling-v1.0.10 Generating common custom resource definitions Generating custom resource definitions for applicationautoscaling Generating RBAC manifests for applicationautoscaling ``` ---------- 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 | 8 +- apis/v1alpha1/zz_generated.deepcopy.go | 1 - config/controller/kustomization.yaml | 2 +- ...ling.services.k8s.aws_scalabletargets.yaml | 408 +++++++++------ ...ling.services.k8s.aws_scalingpolicies.yaml | 479 ++++++++++++------ .../services.k8s.aws_adoptedresources.yaml | 206 ++++---- .../bases/services.k8s.aws_fieldexports.yaml | 54 +- config/rbac/cluster-role-controller.yaml | 1 - go.mod | 58 +-- go.sum | 158 +++--- helm/Chart.yaml | 4 +- ...ling.services.k8s.aws_scalabletargets.yaml | 408 +++++++++------ ...ling.services.k8s.aws_scalingpolicies.yaml | 479 ++++++++++++------ .../services.k8s.aws_adoptedresources.yaml | 209 ++++---- helm/crds/services.k8s.aws_fieldexports.yaml | 54 +- helm/templates/NOTES.txt | 2 +- helm/templates/_helpers.tpl | 16 +- helm/templates/cluster-role-binding.yaml | 13 +- helm/templates/cluster-role-controller.yaml | 11 +- helm/templates/deployment.yaml | 22 +- .../leader-election-role-binding.yaml | 2 +- helm/templates/metrics-service.yaml | 10 +- helm/templates/service-account.yaml | 8 +- helm/values.yaml | 2 +- 24 files changed, 1581 insertions(+), 1034 deletions(-) diff --git a/apis/v1alpha1/ack-generate-metadata.yaml b/apis/v1alpha1/ack-generate-metadata.yaml index b24b931..13815f4 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-01-29T07:07:26Z" - build_hash: 92f531cde5631865cfc3dfa778cbc9611f3a64c3 - go_version: go1.21.5 - version: v0.29.2 + build_date: "2024-02-14T03:59:47Z" + build_hash: 947081ffebdeefcf2c61c4ca6d7e68810bdf9d08 + go_version: go1.22.0 + version: v0.30.0 api_directory_checksum: 81d152c4602b014d435a9ba3d716ed5112273013 api_version: v1alpha1 aws_sdk_go_version: v1.44.93 diff --git a/apis/v1alpha1/zz_generated.deepcopy.go b/apis/v1alpha1/zz_generated.deepcopy.go index 8350082..ced021e 100644 --- a/apis/v1alpha1/zz_generated.deepcopy.go +++ b/apis/v1alpha1/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. // diff --git a/config/controller/kustomization.yaml b/config/controller/kustomization.yaml index 6a2861d..808deb7 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/applicationautoscaling-controller - newTag: 1.0.9 + newTag: 1.0.10 diff --git a/config/crd/bases/applicationautoscaling.services.k8s.aws_scalabletargets.yaml b/config/crd/bases/applicationautoscaling.services.k8s.aws_scalabletargets.yaml index 00855d6..2905844 100644 --- a/config/crd/bases/applicationautoscaling.services.k8s.aws_scalabletargets.yaml +++ b/config/crd/bases/applicationautoscaling.services.k8s.aws_scalabletargets.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: scalabletargets.applicationautoscaling.services.k8s.aws spec: group: applicationautoscaling.services.k8s.aws @@ -21,156 +20,261 @@ spec: description: ScalableTarget is the Schema for the ScalableTargets API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "ScalableTargetSpec defines the desired state of ScalableTarget. - \n Represents a scalable target." + description: |- + ScalableTargetSpec defines the desired state of ScalableTarget. + + + Represents a scalable target. properties: maxCapacity: - description: "The maximum value that you plan to scale out to. When - a scaling policy is in effect, Application Auto Scaling can scale - out (expand) as needed to the maximum capacity limit in response - to changing demand. This property is required when registering a - new scalable target. \n Although you can specify a large maximum - capacity, note that service quotas may impose lower limits. Each - service has its own default quotas for the maximum capacity of the - resource. If you want to specify a higher limit, you can request - an increase. For more information, consult the documentation for - that service. For information about the default quotas for each - service, see Service Endpoints and Quotas (https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) - in the Amazon Web Services General Reference." + description: |- + The maximum value that you plan to scale out to. When a scaling policy is + in effect, Application Auto Scaling can scale out (expand) as needed to the + maximum capacity limit in response to changing demand. This property is required + when registering a new scalable target. + + + Although you can specify a large maximum capacity, note that service quotas + may impose lower limits. Each service has its own default quotas for the + maximum capacity of the resource. If you want to specify a higher limit, + you can request an increase. For more information, consult the documentation + for that service. For information about the default quotas for each service, + see Service Endpoints and Quotas (https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) + in the Amazon Web Services General Reference. format: int64 type: integer minCapacity: - description: "The minimum value that you plan to scale in to. When - a scaling policy is in effect, Application Auto Scaling can scale - in (contract) as needed to the minimum capacity limit in response - to changing demand. This property is required when registering a - new scalable target. \n For certain resources, the minimum value - allowed is 0. This includes Lambda provisioned concurrency, Spot - Fleet, ECS services, Aurora DB clusters, EMR clusters, and custom - resources. For all other resources, the minimum value allowed is - 1." + description: |- + The minimum value that you plan to scale in to. When a scaling policy is + in effect, Application Auto Scaling can scale in (contract) as needed to + the minimum capacity limit in response to changing demand. This property + is required when registering a new scalable target. + + + For certain resources, the minimum value allowed is 0. This includes Lambda + provisioned concurrency, Spot Fleet, ECS services, Aurora DB clusters, EMR + clusters, and custom resources. For all other resources, the minimum value + allowed is 1. format: int64 type: integer resourceID: - description: "The identifier of the resource that is associated with - the scalable target. This string consists of the resource type and - unique identifier. \n * ECS service - The resource type is service - and the unique identifier is the cluster name and service name. - Example: service/default/sample-webapp. \n * Spot Fleet - The resource - type is spot-fleet-request and the unique identifier is the Spot - Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. - \n * EMR cluster - The resource type is instancegroup and the unique - identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. - \n * AppStream 2.0 fleet - The resource type is fleet and the unique - identifier is the fleet name. Example: fleet/sample-fleet. \n * - DynamoDB table - The resource type is table and the unique identifier - is the table name. Example: table/my-table. \n * DynamoDB global - secondary index - The resource type is index and the unique identifier - is the index name. Example: table/my-table/index/my-table-index. - \n * Aurora DB cluster - The resource type is cluster and the unique - identifier is the cluster name. Example: cluster:my-db-cluster. - \n * SageMaker endpoint variant - The resource type is variant and - the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. - \n * Custom resources are not supported with a resource type. This - parameter must specify the OutputValue from the CloudFormation template - stack used to access the resources. The unique identifier is defined - by the service provider. More information is available in our GitHub - repository (https://github.com/aws/aws-auto-scaling-custom-resource). - \n * Amazon Comprehend document classification endpoint - The resource - type and unique identifier are specified using the endpoint ARN. - Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. - \n * Amazon Comprehend entity recognizer endpoint - The resource - type and unique identifier are specified using the endpoint ARN. - Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. - \n * Lambda provisioned concurrency - The resource type is function - and the unique identifier is the function name with a function version - or alias name suffix that is not $LATEST. Example: function:my-function:prod - or function:my-function:1. \n * Amazon Keyspaces table - The resource - type is table and the unique identifier is the table name. Example: - keyspace/mykeyspace/table/mytable. \n * Amazon MSK cluster - The - resource type and unique identifier are specified using the cluster - ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. - \n * Amazon ElastiCache replication group - The resource type is - replication-group and the unique identifier is the replication group - name. Example: replication-group/mycluster. \n * Neptune cluster - - The resource type is cluster and the unique identifier is the - cluster name. Example: cluster:mycluster." + description: |- + The identifier of the resource that is associated with the scalable target. + This string consists of the resource type and unique identifier. + + + * ECS service - The resource type is service and the unique identifier + is the cluster name and service name. Example: service/default/sample-webapp. + + + * Spot Fleet - The resource type is spot-fleet-request and the unique + identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. + + + * EMR cluster - The resource type is instancegroup and the unique identifier + is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. + + + * AppStream 2.0 fleet - The resource type is fleet and the unique identifier + is the fleet name. Example: fleet/sample-fleet. + + + * DynamoDB table - The resource type is table and the unique identifier + is the table name. Example: table/my-table. + + + * DynamoDB global secondary index - The resource type is index and the + unique identifier is the index name. Example: table/my-table/index/my-table-index. + + + * Aurora DB cluster - The resource type is cluster and the unique identifier + is the cluster name. Example: cluster:my-db-cluster. + + + * SageMaker endpoint variant - The resource type is variant and the unique + identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. + + + * Custom resources are not supported with a resource type. This parameter + must specify the OutputValue from the CloudFormation template stack used + to access the resources. The unique identifier is defined by the service + provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). + + + * Amazon Comprehend document classification endpoint - The resource type + and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + + + * Amazon Comprehend entity recognizer endpoint - The resource type and + unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. + + + * Lambda provisioned concurrency - The resource type is function and the + unique identifier is the function name with a function version or alias + name suffix that is not $LATEST. Example: function:my-function:prod or + function:my-function:1. + + + * Amazon Keyspaces table - The resource type is table and the unique identifier + is the table name. Example: keyspace/mykeyspace/table/mytable. + + + * Amazon MSK cluster - The resource type and unique identifier are specified + using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + + + * Amazon ElastiCache replication group - The resource type is replication-group + and the unique identifier is the replication group name. Example: replication-group/mycluster. + + + * Neptune cluster - The resource type is cluster and the unique identifier + is the cluster name. Example: cluster:mycluster. type: string roleARN: - description: "This parameter is required for services that do not - support service-linked roles (such as Amazon EMR), and it must specify - the ARN of an IAM role that allows Application Auto Scaling to modify - the scalable target on your behalf. \n If the service supports service-linked - roles, Application Auto Scaling uses a service-linked role, which - it creates if it does not yet exist. For more information, see Application - Auto Scaling IAM roles (https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-roles)." + description: |- + This parameter is required for services that do not support service-linked + roles (such as Amazon EMR), and it must specify the ARN of an IAM role that + allows Application Auto Scaling to modify the scalable target on your behalf. + + + If the service supports service-linked roles, Application Auto Scaling uses + a service-linked role, which it creates if it does not yet exist. For more + information, see Application Auto Scaling IAM roles (https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-roles). type: string scalableDimension: - description: "The scalable dimension associated with the scalable - target. This string consists of the service namespace, resource - type, and scaling property. \n * ecs:service:DesiredCount - The - desired task count of an ECS service. \n * elasticmapreduce:instancegroup:InstanceCount - - The instance count of an EMR Instance Group. \n * ec2:spot-fleet-request:TargetCapacity - - The target capacity of a Spot Fleet. \n * appstream:fleet:DesiredCapacity - - The desired capacity of an AppStream 2.0 fleet. \n * dynamodb:table:ReadCapacityUnits - - The provisioned read capacity for a DynamoDB table. \n * dynamodb:table:WriteCapacityUnits - - The provisioned write capacity for a DynamoDB table. \n * dynamodb:index:ReadCapacityUnits - - The provisioned read capacity for a DynamoDB global secondary - index. \n * dynamodb:index:WriteCapacityUnits - The provisioned - write capacity for a DynamoDB global secondary index. \n * rds:cluster:ReadReplicaCount - - The count of Aurora Replicas in an Aurora DB cluster. Available - for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible - edition. \n * sagemaker:variant:DesiredInstanceCount - The number - of EC2 instances for an SageMaker model endpoint variant. \n * custom-resource:ResourceType:Property - - The scalable dimension for a custom resource provided by your - own application or service. \n * comprehend:document-classifier-endpoint:DesiredInferenceUnits - - The number of inference units for an Amazon Comprehend document - classification endpoint. \n * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - - The number of inference units for an Amazon Comprehend entity - recognizer endpoint. \n * lambda:function:ProvisionedConcurrency - - The provisioned concurrency for a Lambda function. \n * cassandra:table:ReadCapacityUnits - - The provisioned read capacity for an Amazon Keyspaces table. \n - * cassandra:table:WriteCapacityUnits - The provisioned write capacity - for an Amazon Keyspaces table. \n * kafka:broker-storage:VolumeSize - - The provisioned volume size (in GiB) for brokers in an Amazon - MSK cluster. \n * elasticache:replication-group:NodeGroups - The - number of node groups for an Amazon ElastiCache replication group. - \n * elasticache:replication-group:Replicas - The number of replicas - per node group for an Amazon ElastiCache replication group. \n * - neptune:cluster:ReadReplicaCount - The count of read replicas in - an Amazon Neptune DB cluster." + description: |- + The scalable dimension associated with the scalable target. This string consists + of the service namespace, resource type, and scaling property. + + + * ecs:service:DesiredCount - The desired task count of an ECS service. + + + * elasticmapreduce:instancegroup:InstanceCount - The instance count of + an EMR Instance Group. + + + * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot + Fleet. + + + * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream + 2.0 fleet. + + + * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for + a DynamoDB table. + + + * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for + a DynamoDB table. + + + * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for + a DynamoDB global secondary index. + + + * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for + a DynamoDB global secondary index. + + + * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora + DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible + edition. + + + * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances + for an SageMaker model endpoint variant. + + + * custom-resource:ResourceType:Property - The scalable dimension for a + custom resource provided by your own application or service. + + + * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + number of inference units for an Amazon Comprehend document classification + endpoint. + + + * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number + of inference units for an Amazon Comprehend entity recognizer endpoint. + + + * lambda:function:ProvisionedConcurrency - The provisioned concurrency + for a Lambda function. + + + * cassandra:table:ReadCapacityUnits - The provisioned read capacity for + an Amazon Keyspaces table. + + + * cassandra:table:WriteCapacityUnits - The provisioned write capacity + for an Amazon Keyspaces table. + + + * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + for brokers in an Amazon MSK cluster. + + + * elasticache:replication-group:NodeGroups - The number of node groups + for an Amazon ElastiCache replication group. + + + * elasticache:replication-group:Replicas - The number of replicas per + node group for an Amazon ElastiCache replication group. + + + * neptune:cluster:ReadReplicaCount - The count of read replicas in an + Amazon Neptune DB cluster. type: string serviceNamespace: - description: The namespace of the Amazon Web Services service that - provides the resource. For a resource provided by your own application - or service, use custom-resource instead. + description: |- + The namespace of the Amazon Web Services service that provides the resource. + For a resource provided by your own application or service, use custom-resource + instead. type: string suspendedState: - description: "An embedded object that contains attributes and attribute - values that are used to suspend and resume automatic scaling. Setting - the value of an attribute to true suspends the specified scaling - activities. Setting it to false (default) resumes the specified - scaling activities. \n Suspension Outcomes \n * For DynamicScalingInSuspended, - while a suspension is in effect, all scale-in activities that are - triggered by a scaling policy are suspended. \n * For DynamicScalingOutSuspended, - while a suspension is in effect, all scale-out activities that are - triggered by a scaling policy are suspended. \n * For ScheduledScalingSuspended, - while a suspension is in effect, all scaling activities that involve - scheduled actions are suspended. \n For more information, see Suspending - and resuming scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) - in the Application Auto Scaling User Guide." + description: |- + An embedded object that contains attributes and attribute values that are + used to suspend and resume automatic scaling. Setting the value of an attribute + to true suspends the specified scaling activities. Setting it to false (default) + resumes the specified scaling activities. + + + Suspension Outcomes + + + * For DynamicScalingInSuspended, while a suspension is in effect, all + scale-in activities that are triggered by a scaling policy are suspended. + + + * For DynamicScalingOutSuspended, while a suspension is in effect, all + scale-out activities that are triggered by a scaling policy are suspended. + + + * For ScheduledScalingSuspended, while a suspension is in effect, all + scaling activities that involve scheduled actions are suspended. + + + For more information, see Suspending and resuming scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) + in the Application Auto Scaling User Guide. properties: dynamicScalingInSuspended: type: boolean @@ -188,24 +292,26 @@ spec: description: ScalableTargetStatus defines the observed state of ScalableTarget properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + TODO(vijat@): Find a better strategy for resources that do not have ARN in CreateOutputResponse + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -216,14 +322,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/config/crd/bases/applicationautoscaling.services.k8s.aws_scalingpolicies.yaml b/config/crd/bases/applicationautoscaling.services.k8s.aws_scalingpolicies.yaml index 36464e2..f32091c 100644 --- a/config/crd/bases/applicationautoscaling.services.k8s.aws_scalingpolicies.yaml +++ b/config/crd/bases/applicationautoscaling.services.k8s.aws_scalingpolicies.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: scalingpolicies.applicationautoscaling.services.k8s.aws spec: group: applicationautoscaling.services.k8s.aws @@ -21,123 +20,229 @@ spec: description: ScalingPolicy is the Schema for the ScalingPolicies API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "ScalingPolicySpec defines the desired state of ScalingPolicy. - \n Represents a scaling policy to use with Application Auto Scaling. - \n For more information about configuring scaling policies for a specific - service, see Getting started with Application Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) - in the Application Auto Scaling User Guide." + description: |- + ScalingPolicySpec defines the desired state of ScalingPolicy. + + + Represents a scaling policy to use with Application Auto Scaling. + + + For more information about configuring scaling policies for a specific service, + see Getting started with Application Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) + in the Application Auto Scaling User Guide. properties: policyName: description: The name of the scaling policy. type: string policyType: - description: "The policy type. This parameter is required if you are - creating a scaling policy. \n The following policy types are supported: - \n TargetTrackingScaling—Not supported for Amazon EMR \n StepScaling—Not - supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, - Amazon MSK, Amazon ElastiCache, or Neptune. \n For more information, - see Target tracking scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) + description: |- + The policy type. This parameter is required if you are creating a scaling + policy. + + + The following policy types are supported: + + + TargetTrackingScaling—Not supported for Amazon EMR + + + StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon + Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. + + + For more information, see Target tracking scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and Step scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) - in the Application Auto Scaling User Guide." + in the Application Auto Scaling User Guide. type: string resourceID: - description: "The identifier of the resource associated with the scaling - policy. This string consists of the resource type and unique identifier. - \n * ECS service - The resource type is service and the unique identifier - is the cluster name and service name. Example: service/default/sample-webapp. - \n * Spot Fleet - The resource type is spot-fleet-request and the - unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. - \n * EMR cluster - The resource type is instancegroup and the unique - identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. - \n * AppStream 2.0 fleet - The resource type is fleet and the unique - identifier is the fleet name. Example: fleet/sample-fleet. \n * - DynamoDB table - The resource type is table and the unique identifier - is the table name. Example: table/my-table. \n * DynamoDB global - secondary index - The resource type is index and the unique identifier - is the index name. Example: table/my-table/index/my-table-index. - \n * Aurora DB cluster - The resource type is cluster and the unique - identifier is the cluster name. Example: cluster:my-db-cluster. - \n * SageMaker endpoint variant - The resource type is variant and - the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. - \n * Custom resources are not supported with a resource type. This - parameter must specify the OutputValue from the CloudFormation template - stack used to access the resources. The unique identifier is defined - by the service provider. More information is available in our GitHub - repository (https://github.com/aws/aws-auto-scaling-custom-resource). - \n * Amazon Comprehend document classification endpoint - The resource - type and unique identifier are specified using the endpoint ARN. - Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. - \n * Amazon Comprehend entity recognizer endpoint - The resource - type and unique identifier are specified using the endpoint ARN. - Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. - \n * Lambda provisioned concurrency - The resource type is function - and the unique identifier is the function name with a function version - or alias name suffix that is not $LATEST. Example: function:my-function:prod - or function:my-function:1. \n * Amazon Keyspaces table - The resource - type is table and the unique identifier is the table name. Example: - keyspace/mykeyspace/table/mytable. \n * Amazon MSK cluster - The - resource type and unique identifier are specified using the cluster - ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. - \n * Amazon ElastiCache replication group - The resource type is - replication-group and the unique identifier is the replication group - name. Example: replication-group/mycluster. \n * Neptune cluster - - The resource type is cluster and the unique identifier is the - cluster name. Example: cluster:mycluster." + description: |- + The identifier of the resource associated with the scaling policy. This string + consists of the resource type and unique identifier. + + + * ECS service - The resource type is service and the unique identifier + is the cluster name and service name. Example: service/default/sample-webapp. + + + * Spot Fleet - The resource type is spot-fleet-request and the unique + identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. + + + * EMR cluster - The resource type is instancegroup and the unique identifier + is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. + + + * AppStream 2.0 fleet - The resource type is fleet and the unique identifier + is the fleet name. Example: fleet/sample-fleet. + + + * DynamoDB table - The resource type is table and the unique identifier + is the table name. Example: table/my-table. + + + * DynamoDB global secondary index - The resource type is index and the + unique identifier is the index name. Example: table/my-table/index/my-table-index. + + + * Aurora DB cluster - The resource type is cluster and the unique identifier + is the cluster name. Example: cluster:my-db-cluster. + + + * SageMaker endpoint variant - The resource type is variant and the unique + identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. + + + * Custom resources are not supported with a resource type. This parameter + must specify the OutputValue from the CloudFormation template stack used + to access the resources. The unique identifier is defined by the service + provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). + + + * Amazon Comprehend document classification endpoint - The resource type + and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + + + * Amazon Comprehend entity recognizer endpoint - The resource type and + unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. + + + * Lambda provisioned concurrency - The resource type is function and the + unique identifier is the function name with a function version or alias + name suffix that is not $LATEST. Example: function:my-function:prod or + function:my-function:1. + + + * Amazon Keyspaces table - The resource type is table and the unique identifier + is the table name. Example: keyspace/mykeyspace/table/mytable. + + + * Amazon MSK cluster - The resource type and unique identifier are specified + using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + + + * Amazon ElastiCache replication group - The resource type is replication-group + and the unique identifier is the replication group name. Example: replication-group/mycluster. + + + * Neptune cluster - The resource type is cluster and the unique identifier + is the cluster name. Example: cluster:mycluster. type: string scalableDimension: - description: "The scalable dimension. This string consists of the - service namespace, resource type, and scaling property. \n * ecs:service:DesiredCount - - The desired task count of an ECS service. \n * elasticmapreduce:instancegroup:InstanceCount - - The instance count of an EMR Instance Group. \n * ec2:spot-fleet-request:TargetCapacity - - The target capacity of a Spot Fleet. \n * appstream:fleet:DesiredCapacity - - The desired capacity of an AppStream 2.0 fleet. \n * dynamodb:table:ReadCapacityUnits - - The provisioned read capacity for a DynamoDB table. \n * dynamodb:table:WriteCapacityUnits - - The provisioned write capacity for a DynamoDB table. \n * dynamodb:index:ReadCapacityUnits - - The provisioned read capacity for a DynamoDB global secondary - index. \n * dynamodb:index:WriteCapacityUnits - The provisioned - write capacity for a DynamoDB global secondary index. \n * rds:cluster:ReadReplicaCount - - The count of Aurora Replicas in an Aurora DB cluster. Available - for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible - edition. \n * sagemaker:variant:DesiredInstanceCount - The number - of EC2 instances for an SageMaker model endpoint variant. \n * custom-resource:ResourceType:Property - - The scalable dimension for a custom resource provided by your - own application or service. \n * comprehend:document-classifier-endpoint:DesiredInferenceUnits - - The number of inference units for an Amazon Comprehend document - classification endpoint. \n * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - - The number of inference units for an Amazon Comprehend entity - recognizer endpoint. \n * lambda:function:ProvisionedConcurrency - - The provisioned concurrency for a Lambda function. \n * cassandra:table:ReadCapacityUnits - - The provisioned read capacity for an Amazon Keyspaces table. \n - * cassandra:table:WriteCapacityUnits - The provisioned write capacity - for an Amazon Keyspaces table. \n * kafka:broker-storage:VolumeSize - - The provisioned volume size (in GiB) for brokers in an Amazon - MSK cluster. \n * elasticache:replication-group:NodeGroups - The - number of node groups for an Amazon ElastiCache replication group. - \n * elasticache:replication-group:Replicas - The number of replicas - per node group for an Amazon ElastiCache replication group. \n * - neptune:cluster:ReadReplicaCount - The count of read replicas in - an Amazon Neptune DB cluster." + description: |- + The scalable dimension. This string consists of the service namespace, resource + type, and scaling property. + + + * ecs:service:DesiredCount - The desired task count of an ECS service. + + + * elasticmapreduce:instancegroup:InstanceCount - The instance count of + an EMR Instance Group. + + + * ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot + Fleet. + + + * appstream:fleet:DesiredCapacity - The desired capacity of an AppStream + 2.0 fleet. + + + * dynamodb:table:ReadCapacityUnits - The provisioned read capacity for + a DynamoDB table. + + + * dynamodb:table:WriteCapacityUnits - The provisioned write capacity for + a DynamoDB table. + + + * dynamodb:index:ReadCapacityUnits - The provisioned read capacity for + a DynamoDB global secondary index. + + + * dynamodb:index:WriteCapacityUnits - The provisioned write capacity for + a DynamoDB global secondary index. + + + * rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora + DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible + edition. + + + * sagemaker:variant:DesiredInstanceCount - The number of EC2 instances + for an SageMaker model endpoint variant. + + + * custom-resource:ResourceType:Property - The scalable dimension for a + custom resource provided by your own application or service. + + + * comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + number of inference units for an Amazon Comprehend document classification + endpoint. + + + * comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number + of inference units for an Amazon Comprehend entity recognizer endpoint. + + + * lambda:function:ProvisionedConcurrency - The provisioned concurrency + for a Lambda function. + + + * cassandra:table:ReadCapacityUnits - The provisioned read capacity for + an Amazon Keyspaces table. + + + * cassandra:table:WriteCapacityUnits - The provisioned write capacity + for an Amazon Keyspaces table. + + + * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + for brokers in an Amazon MSK cluster. + + + * elasticache:replication-group:NodeGroups - The number of node groups + for an Amazon ElastiCache replication group. + + + * elasticache:replication-group:Replicas - The number of replicas per + node group for an Amazon ElastiCache replication group. + + + * neptune:cluster:ReadReplicaCount - The count of read replicas in an + Amazon Neptune DB cluster. type: string serviceNamespace: - description: The namespace of the Amazon Web Services service that - provides the resource. For a resource provided by your own application - or service, use custom-resource instead. + description: |- + The namespace of the Amazon Web Services service that provides the resource. + For a resource provided by your own application or service, use custom-resource + instead. type: string stepScalingPolicyConfiguration: - description: "A step scaling policy. \n This parameter is required - if you are creating a policy and the policy type is StepScaling." + description: |- + A step scaling policy. + + + This parameter is required if you are creating a policy and the policy type + is StepScaling. properties: adjustmentType: type: string @@ -151,27 +256,44 @@ spec: type: integer stepAdjustments: items: - description: "Represents a step adjustment for a StepScalingPolicyConfiguration - (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html). - Describes an adjustment based on the difference between the - value of the aggregated CloudWatch metric and the breach threshold - that you've defined for the alarm. \n For the following examples, - suppose that you have an alarm with a breach threshold of - 50: \n * To trigger the adjustment when the metric is greater - than or equal to 50 and less than 60, specify a lower bound - of 0 and an upper bound of 10. \n * To trigger the adjustment - when the metric is greater than 40 and less than or equal - to 50, specify a lower bound of -10 and an upper bound of - 0. \n There are a few rules for the step adjustments for your - step policy: \n * The ranges of your step adjustments can't - overlap or have a gap. \n * At most one step adjustment can - have a null lower bound. If one step adjustment has a negative - lower bound, then there must be a step adjustment with a null - lower bound. \n * At most one step adjustment can have a null - upper bound. If one step adjustment has a positive upper bound, - then there must be a step adjustment with a null upper bound. - \n * The upper and lower bound can't be null in the same step - adjustment." + description: |- + Represents a step adjustment for a StepScalingPolicyConfiguration (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html). + Describes an adjustment based on the difference between the value of the + aggregated CloudWatch metric and the breach threshold that you've defined + for the alarm. + + + For the following examples, suppose that you have an alarm with a breach + threshold of 50: + + + * To trigger the adjustment when the metric is greater than or equal to + 50 and less than 60, specify a lower bound of 0 and an upper bound of + 10. + + + * To trigger the adjustment when the metric is greater than 40 and less + than or equal to 50, specify a lower bound of -10 and an upper bound of + 0. + + + There are a few rules for the step adjustments for your step policy: + + + * The ranges of your step adjustments can't overlap or have a gap. + + + * At most one step adjustment can have a null lower bound. If one step + adjustment has a negative lower bound, then there must be a step adjustment + with a null lower bound. + + + * At most one step adjustment can have a null upper bound. If one step + adjustment has a positive upper bound, then there must be a step adjustment + with a null upper bound. + + + * The upper and lower bound can't be null in the same step adjustment. properties: metricIntervalLowerBound: type: number @@ -184,29 +306,42 @@ spec: type: array type: object targetTrackingScalingPolicyConfiguration: - description: "A target tracking scaling policy. Includes support for - predefined or customized metrics. \n This parameter is required - if you are creating a policy and the policy type is TargetTrackingScaling." + description: |- + A target tracking scaling policy. Includes support for predefined or customized + metrics. + + + This parameter is required if you are creating a policy and the policy type + is TargetTrackingScaling. properties: customizedMetricSpecification: - description: "Represents a CloudWatch metric of your choosing - for a target tracking scaling policy to use with Application - Auto Scaling. \n For information about the available metrics - for a service, see Amazon Web Services Services That Publish - CloudWatch Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) - in the Amazon CloudWatch User Guide. \n To create your customized - metric specification: \n * Add values for each required parameter - from CloudWatch. You can use an existing metric, or a new metric - that you create. To use your own metric, you must first publish - the metric to CloudWatch. For more information, see Publish - Custom Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) - in the Amazon CloudWatch User Guide. \n * Choose a metric that - changes proportionally with capacity. The value of the metric - should increase or decrease in inverse proportion to the number - of capacity units. That is, the value of the metric should decrease - when capacity increases, and increase when capacity decreases. - \n For more information about CloudWatch, see Amazon CloudWatch - Concepts (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)." + description: |- + Represents a CloudWatch metric of your choosing for a target tracking scaling + policy to use with Application Auto Scaling. + + + For information about the available metrics for a service, see Amazon Web + Services Services That Publish CloudWatch Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) + in the Amazon CloudWatch User Guide. + + + To create your customized metric specification: + + + * Add values for each required parameter from CloudWatch. You can use + an existing metric, or a new metric that you create. To use your own metric, + you must first publish the metric to CloudWatch. For more information, + see Publish Custom Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) + in the Amazon CloudWatch User Guide. + + + * Choose a metric that changes proportionally with capacity. The value + of the metric should increase or decrease in inverse proportion to the + number of capacity units. That is, the value of the metric should decrease + when capacity increases, and increase when capacity decreases. + + + For more information about CloudWatch, see Amazon CloudWatch Concepts (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html). properties: dimensions: items: @@ -231,14 +366,16 @@ spec: disableScaleIn: type: boolean predefinedMetricSpecification: - description: "Represents a predefined metric for a target tracking - scaling policy to use with Application Auto Scaling. \n Only - the Amazon Web Services that you're using send metrics to Amazon - CloudWatch. To determine whether a desired metric already exists - by looking up its namespace and dimension using the CloudWatch - metrics dashboard in the console, follow the procedure in Building - dashboards with CloudWatch (https://docs.aws.amazon.com/autoscaling/application/userguide/monitoring-cloudwatch.html) - in the Application Auto Scaling User Guide." + description: |- + Represents a predefined metric for a target tracking scaling policy to use + with Application Auto Scaling. + + + Only the Amazon Web Services that you're using send metrics to Amazon CloudWatch. + To determine whether a desired metric already exists by looking up its namespace + and dimension using the CloudWatch metrics dashboard in the console, follow + the procedure in Building dashboards with CloudWatch (https://docs.aws.amazon.com/autoscaling/application/userguide/monitoring-cloudwatch.html) + in the Application Auto Scaling User Guide. properties: predefinedMetricType: type: string @@ -264,24 +401,26 @@ spec: description: ScalingPolicyStatus defines the observed state of ScalingPolicy properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + TODO(vijat@): Find a better strategy for resources that do not have ARN in CreateOutputResponse + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -305,14 +444,16 @@ spec: type: object type: array conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/config/crd/common/bases/services.k8s.aws_adoptedresources.yaml b/config/crd/common/bases/services.k8s.aws_adoptedresources.yaml index 7dca541..65eff73 100644 --- a/config/crd/common/bases/services.k8s.aws_adoptedresources.yaml +++ b/config/crd/common/bases/services.k8s.aws_adoptedresources.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: adoptedresources.services.k8s.aws spec: group: services.k8s.aws @@ -21,14 +20,19 @@ spec: description: AdoptedResource is the schema for the AdoptedResource API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -42,126 +46,149 @@ spec: additionalKeys: additionalProperties: type: string - description: AdditionalKeys represents any additional arbitrary - identifiers used when describing the target resource. + description: |- + AdditionalKeys represents any additional arbitrary identifiers used when + describing the target resource. type: object arn: - description: ARN is the AWS Resource Name for the resource. It - is a globally unique identifier. + description: |- + ARN is the AWS Resource Name for the resource. It is a globally + unique identifier. type: string nameOrID: - description: NameOrId is a user-supplied string identifier for - the resource. It may or may not be globally unique, depending - on the type of resource. + description: |- + NameOrId is a user-supplied string identifier for the resource. It may + or may not be globally unique, depending on the type of resource. type: string type: object kubernetes: - description: ResourceWithMetadata provides the values necessary to - create a Kubernetes resource and override any of its metadata values. + description: |- + ResourceWithMetadata provides the values necessary to create a + Kubernetes resource and override any of its metadata values. properties: group: type: string kind: type: string metadata: - description: "ObjectMeta is metadata that all persisted resources - must have, which includes all objects users must create. It - is not possible to use `metav1.ObjectMeta` inside spec, as the - controller-gen automatically converts this to an arbitrary string-string - map. https://github.com/kubernetes-sigs/controller-tools/issues/385 - \n Active discussion about inclusion of this field in the spec - is happening in this PR: https://github.com/kubernetes-sigs/controller-tools/pull/395 - \n Until this is allowed, or if it never is, we will produce - a subset of the object meta that contains only the fields which - the user is allowed to modify in the metadata." + description: |- + ObjectMeta is metadata that all persisted resources must have, which includes all objects + users must create. + It is not possible to use `metav1.ObjectMeta` inside spec, as the controller-gen + automatically converts this to an arbitrary string-string map. + https://github.com/kubernetes-sigs/controller-tools/issues/385 + + + Active discussion about inclusion of this field in the spec is happening in this PR: + https://github.com/kubernetes-sigs/controller-tools/pull/395 + + + Until this is allowed, or if it never is, we will produce a subset of the object meta + that contains only the fields which the user is allowed to modify in the metadata. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map - stored with a resource that may be set by external tools - to store and retrieve arbitrary metadata. They are not queryable - and should be preserved when modifying objects. More info: - http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object generateName: - description: "GenerateName is an optional prefix, used by - the server, to generate a unique name ONLY IF the Name field - has not been provided. If this field is used, the name returned - to the client will be different than the name passed. This - value will also be combined with a unique suffix. The provided - value has the same validation rules as the Name field, and - may be truncated by the length of the suffix required to - make the value unique on the server. \n If this field is - specified and the generated name exists, the server will - NOT return a 409 - instead, it will either return 201 Created - or 500 with Reason ServerTimeout indicating a unique name - could not be found in the time allotted, and the client - should retry (optionally after the time indicated in the - Retry-After header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" + description: |- + GenerateName is an optional prefix, used by the server, to generate a unique + name ONLY IF the Name field has not been provided. + If this field is used, the name returned to the client will be different + than the name passed. This value will also be combined with a unique suffix. + The provided value has the same validation rules as the Name field, + and may be truncated by the length of the suffix required to make the value + unique on the server. + + + If this field is specified and the generated name exists, the server will + NOT return a 409 - instead, it will either return 201 Created or 500 with Reason + ServerTimeout indicating a unique name could not be found in the time allotted, and the client + should retry (optionally after the time indicated in the Retry-After header). + + + Applied only if Name is not specified. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency type: string labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used - to organize and categorize (scope and select) objects. May - match selectors of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object name: - description: 'Name must be unique within a namespace. Is required - when creating resources, although some resources may allow - a client to request the generation of an appropriate name - automatically. Name is primarily intended for creation idempotence - and configuration definition. Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/identifiers#names' + description: |- + Name must be unique within a namespace. Is required when creating resources, although + some resources may allow a client to request the generation of an appropriate name + automatically. Name is primarily intended for creation idempotence and configuration + definition. + Cannot be updated. + More info: http://kubernetes.io/docs/user-guide/identifiers#names type: string namespace: - description: "Namespace defines the space within each name - must be unique. An empty namespace is equivalent to the - \"default\" namespace, but \"default\" is the canonical - representation. Not all objects are required to be scoped - to a namespace - the value of this field for those objects - will be empty. \n Must be a DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" + description: |- + Namespace defines the space within each name must be unique. An empty namespace is + equivalent to the "default" namespace, but "default" is the canonical representation. + Not all objects are required to be scoped to a namespace - the value of this field for + those objects will be empty. + + + Must be a DNS_LABEL. + Cannot be updated. + More info: http://kubernetes.io/docs/user-guide/namespaces type: string ownerReferences: - description: List of objects depended by this object. If ALL - objects in the list have been deleted, this object will - be garbage collected. If this object is managed by a controller, - then an entry in this list will point to this controller, - with the controller field set to true. There cannot be more - than one managing controller. + description: |- + List of objects depended by this object. If ALL objects in the list have + been deleted, this object will be garbage collected. If this object is managed by a controller, + then an entry in this list will point to this controller, with the controller field set to true. + There cannot be more than one managing controller. items: - description: OwnerReference contains enough information - to let you identify an owning object. An owning object - must be in the same namespace as the dependent, or be - cluster-scoped, so there is no namespace field. + description: |- + OwnerReference contains enough information to let you identify an owning + object. An owning object must be in the same namespace as the dependent, or + be cluster-scoped, so there is no namespace field. properties: apiVersion: description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner has the "foregroundDeletion" - finalizer, then the owner cannot be deleted from the - key-value store until this reference is removed. Defaults - to false. To set this field, a user needs "delete" - permission of the owner, otherwise 422 (Unprocessable - Entity) will be returned. + description: |- + If true, AND if the owner has the "foregroundDeletion" finalizer, then + the owner cannot be deleted from the key-value store until this + reference is removed. + See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + for how the garbage collector interacts with this field and enforces the foreground deletion. + Defaults to false. + To set this field, a user needs "delete" permission of the owner, + otherwise 422 (Unprocessable Entity) will be returned. type: boolean controller: description: If true, this reference points to the managing controller. type: boolean kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names type: string uid: - description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids type: string required: - apiVersion @@ -185,13 +212,14 @@ spec: AdoptedResource. properties: conditions: - description: A collection of `ackv1alpha1.Condition` objects that - describe the various terminal states of the adopted resource CR - and its target custom resource + description: |- + A collection of `ackv1alpha1.Condition` objects that describe the various + terminal states of the adopted resource CR and its target custom resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/config/crd/common/bases/services.k8s.aws_fieldexports.yaml b/config/crd/common/bases/services.k8s.aws_fieldexports.yaml index 4a7ab61..4d3a8f1 100644 --- a/config/crd/common/bases/services.k8s.aws_fieldexports.yaml +++ b/config/crd/common/bases/services.k8s.aws_fieldexports.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: fieldexports.services.k8s.aws spec: group: services.k8s.aws @@ -21,14 +20,19 @@ spec: description: FieldExport is the schema for the FieldExport API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -36,15 +40,17 @@ spec: description: FieldExportSpec defines the desired state of the FieldExport. properties: from: - description: ResourceFieldSelector provides the values necessary to - identify an individual field on an individual K8s resource. + description: |- + ResourceFieldSelector provides the values necessary to identify an individual + field on an individual K8s resource. properties: path: type: string resource: - description: NamespacedResource provides all the values necessary - to identify an ACK resource of a given type (within the same - namespace as the custom resource containing this type). + description: |- + NamespacedResource provides all the values necessary to identify an ACK + resource of a given type (within the same namespace as the custom resource + containing this type). properties: group: type: string @@ -62,16 +68,18 @@ spec: - resource type: object to: - description: FieldExportTarget provides the values necessary to identify - the output path for a field export. + description: |- + FieldExportTarget provides the values necessary to identify the + output path for a field export. properties: key: description: Key overrides the default value (`.`) for the FieldExport target type: string kind: - description: FieldExportOutputType represents all types that can - be produced by a field export operation + description: |- + FieldExportOutputType represents all types that can be produced by a field + export operation enum: - configmap - secret @@ -94,12 +102,14 @@ spec: description: FieldExportStatus defines the observed status of the FieldExport. properties: conditions: - description: A collection of `ackv1alpha1.Condition` objects that - describe the various recoverable states of the field CR + description: |- + A collection of `ackv1alpha1.Condition` objects that describe the various + recoverable states of the field CR items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/config/rbac/cluster-role-controller.yaml b/config/rbac/cluster-role-controller.yaml index d6750e1..66f05ff 100644 --- a/config/rbac/cluster-role-controller.yaml +++ b/config/rbac/cluster-role-controller.yaml @@ -2,7 +2,6 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - creationTimestamp: null name: ack-applicationautoscaling-controller rules: - apiGroups: diff --git a/go.mod b/go.mod index d93b3df..93b6af6 100644 --- a/go.mod +++ b/go.mod @@ -5,18 +5,18 @@ go 1.21 toolchain go1.21.5 require ( - github.com/aws-controllers-k8s/runtime v0.29.2 + github.com/aws-controllers-k8s/runtime v0.30.0 github.com/aws/aws-sdk-go v1.49.0 github.com/ghodss/yaml v1.0.0 - github.com/go-logr/logr v1.2.4 - github.com/google/go-cmp v0.5.9 + github.com/go-logr/logr v1.4.1 + github.com/google/go-cmp v0.6.0 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.8.2 + github.com/stretchr/testify v1.8.4 go.uber.org/zap v1.26.0 - k8s.io/api v0.28.3 - k8s.io/apimachinery v0.28.3 - k8s.io/client-go v0.28.3 - sigs.k8s.io/controller-runtime v0.16.3 + k8s.io/api v0.29.0 + k8s.io/apimachinery v0.29.0 + k8s.io/client-go v0.29.0 + sigs.k8s.io/controller-runtime v0.17.0 ) require ( @@ -25,9 +25,9 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/evanphx/json-patch/v5 v5.6.0 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/go-logr/zapr v1.2.4 // indirect + github.com/evanphx/json-patch/v5 v5.8.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/go-logr/zapr v1.3.0 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.3 // indirect @@ -45,38 +45,38 @@ require ( github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.16.0 // indirect - github.com/prometheus/client_model v0.4.0 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.10.1 // indirect + github.com/prometheus/client_golang v1.18.0 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.45.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/samber/lo v1.37.0 // indirect github.com/stretchr/objx v0.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/oauth2 v0.12.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.28.3 // indirect - k8s.io/component-base v0.28.3 // indirect - k8s.io/klog/v2 v2.100.1 // indirect - k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect - k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect + k8s.io/apiextensions-apiserver v0.29.0 // indirect + k8s.io/component-base v0.29.0 // indirect + k8s.io/klog/v2 v2.110.1 // indirect + k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index c25cce4..2fa2e20 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,7 @@ -github.com/aws-controllers-k8s/runtime v0.29.2 h1:t6wwoKqFmtbblMcwFivpWp1FZa0gkczoUsk+maIsiRA= -github.com/aws-controllers-k8s/runtime v0.29.2/go.mod h1:mZa9l+/l+tlbxWVmMWWbUC3oAHUbeTzlI7xTOMdYHpA= +github.com/aws-controllers-k8s/runtime v0.30.0 h1:AibYRdi/7xUA3t8BA0u8g+J+OioaTAT6R4Vq8hxLiYw= +github.com/aws-controllers-k8s/runtime v0.30.0/go.mod h1:Pv1ozlUaO11KO2mwPN/HzhAtZ70ZDE9UP24mjsbkul0= 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/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= @@ -17,17 +16,17 @@ github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxER github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= -github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/evanphx/json-patch/v5 v5.8.0 h1:lRj6N9Nci7MvzrXuX6HFzU8XjmhPiXPlsKEy1u0KQro= +github.com/evanphx/json-patch/v5 v5.8.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= -github.com/go-logr/zapr v1.2.4/go.mod h1:FyHWQIzQORZ0QVE1BtVHv3cKtNLuXsbNLtpuhNapBOA= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= +github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= @@ -40,7 +39,6 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= @@ -49,8 +47,9 @@ github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvR github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -66,7 +65,6 @@ github.com/itchyny/timefmt-go v0.1.3 h1:7M3LGVDsqcd0VZH2U+x393obrzZisp7C0uEe921i github.com/itchyny/timefmt-go v0.1.3/go.mod h1:0osSSCQSASBJMsIZnhAaF1C2fCBTJZXrnj37mG8/c+A= github.com/jaypipes/envutil v1.0.0 h1:u6Vwy9HwruFihoZrL0bxDLCa/YNadGVwKyPElNmZWow= github.com/jaypipes/envutil v1.0.0/go.mod h1:vgIRDly+xgBq0eeZRcflOHMMobMwgC6MkMbxo/Nw65M= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -77,7 +75,6 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -89,8 +86,8 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -98,23 +95,22 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= -github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= -github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= -github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/onsi/ginkgo/v2 v2.14.0 h1:vSmGj2Z5YPb9JwCWT6z6ihcUvDhuXLc3sJiqd3jMKAY= +github.com/onsi/ginkgo/v2 v2.14.0/go.mod h1:JkUdW7JkN0V6rFvsHcJ478egV3XH9NxpD27Hal/PhZw= +github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= +github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= -github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= -github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= -github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= -github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= +github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/samber/lo v1.37.0 h1:XjVcB8g6tgUp8rsPsJ2CvhClfImrpL04YpQHXeHPhRw= @@ -126,23 +122,17 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= -go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -150,55 +140,42 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= +golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= -golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= +golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -209,10 +186,9 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= @@ -225,27 +201,27 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.28.3 h1:Gj1HtbSdB4P08C8rs9AR94MfSGpRhJgsS+GF9V26xMM= -k8s.io/api v0.28.3/go.mod h1:MRCV/jr1dW87/qJnZ57U5Pak65LGmQVkKTzf3AtKFHc= -k8s.io/apiextensions-apiserver v0.28.3 h1:Od7DEnhXHnHPZG+W9I97/fSQkVpVPQx2diy+2EtmY08= -k8s.io/apiextensions-apiserver v0.28.3/go.mod h1:NE1XJZ4On0hS11aWWJUTNkmVB03j9LM7gJSisbRt8Lc= -k8s.io/apimachinery v0.28.3 h1:B1wYx8txOaCQG0HmYF6nbpU8dg6HvA06x5tEffvOe7A= -k8s.io/apimachinery v0.28.3/go.mod h1:uQTKmIqs+rAYaq+DFaoD2X7pcjLOqbQX2AOiO0nIpb8= -k8s.io/client-go v0.28.3 h1:2OqNb72ZuTZPKCl+4gTKvqao0AMOl9f3o2ijbAj3LI4= -k8s.io/client-go v0.28.3/go.mod h1:LTykbBp9gsA7SwqirlCXBWtK0guzfhpoW4qSm7i9dxo= -k8s.io/component-base v0.28.3 h1:rDy68eHKxq/80RiMb2Ld/tbH8uAE75JdCqJyi6lXMzI= -k8s.io/component-base v0.28.3/go.mod h1:fDJ6vpVNSk6cRo5wmDa6eKIG7UlIQkaFmZN2fYgIUD8= -k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= -k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ= -k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= -k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= -k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= -sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= +k8s.io/api v0.29.0 h1:NiCdQMY1QOp1H8lfRyeEf8eOwV6+0xA6XEE44ohDX2A= +k8s.io/api v0.29.0/go.mod h1:sdVmXoz2Bo/cb77Pxi71IPTSErEW32xa4aXwKH7gfBA= +k8s.io/apiextensions-apiserver v0.29.0 h1:0VuspFG7Hj+SxyF/Z/2T0uFbI5gb5LRgEyUVE3Q4lV0= +k8s.io/apiextensions-apiserver v0.29.0/go.mod h1:TKmpy3bTS0mr9pylH0nOt/QzQRrW7/h7yLdRForMZwc= +k8s.io/apimachinery v0.29.0 h1:+ACVktwyicPz0oc6MTMLwa2Pw3ouLAfAon1wPLtG48o= +k8s.io/apimachinery v0.29.0/go.mod h1:eVBxQ/cwiJxH58eK/jd/vAk4mrxmVlnpBH5J2GbMeis= +k8s.io/client-go v0.29.0 h1:KmlDtFcrdUzOYrBhXHgKw5ycWzc3ryPX5mQe0SkG3y8= +k8s.io/client-go v0.29.0/go.mod h1:yLkXH4HKMAywcrD82KMSmfYg2DlE8mepPR4JGSo5n38= +k8s.io/component-base v0.29.0 h1:T7rjd5wvLnPBV1vC4zWd/iWRbV8Mdxs+nGaoaFzGw3s= +k8s.io/component-base v0.29.0/go.mod h1:sADonFTQ9Zc9yFLghpDpmNXEdHyQmFIGbiuZbqAXQ1M= +k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= +k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.17.0 h1:fjJQf8Ukya+VjogLO6/bNX9HE6Y2xpsO5+fyS26ur/s= +sigs.k8s.io/controller-runtime v0.17.0/go.mod h1:+MngTvIQQQhfXtwfdGw/UOQ/aIaqsYywfCINOtwMO/s= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 3fe7f03..9cd64a1 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 name: applicationautoscaling-chart description: A Helm chart for the ACK service controller for AWS Auto Scaling (AutoScaling) -version: 1.0.9 -appVersion: 1.0.9 +version: 1.0.10 +appVersion: 1.0.10 home: https://github.com/aws-controllers-k8s/applicationautoscaling-controller icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png sources: diff --git a/helm/crds/applicationautoscaling.services.k8s.aws_scalabletargets.yaml b/helm/crds/applicationautoscaling.services.k8s.aws_scalabletargets.yaml index 42baa99..49291e9 100644 --- a/helm/crds/applicationautoscaling.services.k8s.aws_scalabletargets.yaml +++ b/helm/crds/applicationautoscaling.services.k8s.aws_scalabletargets.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: scalabletargets.applicationautoscaling.services.k8s.aws spec: group: applicationautoscaling.services.k8s.aws @@ -21,156 +20,261 @@ spec: description: ScalableTarget is the Schema for the ScalableTargets API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "ScalableTargetSpec defines the desired state of ScalableTarget. - \n Represents a scalable target." + description: |- + ScalableTargetSpec defines the desired state of ScalableTarget. + + + Represents a scalable target. properties: maxCapacity: - description: "The maximum value that you plan to scale out to. When - a scaling policy is in effect, Application Auto Scaling can scale - out (expand) as needed to the maximum capacity limit in response - to changing demand. This property is required when registering a - new scalable target. \n Although you can specify a large maximum - capacity, note that service quotas may impose lower limits. Each - service has its own default quotas for the maximum capacity of the - resource. If you want to specify a higher limit, you can request - an increase. For more information, consult the documentation for - that service. For information about the default quotas for each - service, see Service Endpoints and Quotas (https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) - in the Amazon Web Services General Reference." + description: |- + The maximum value that you plan to scale out to. When a scaling policy is + in effect, Application Auto Scaling can scale out (expand) as needed to the + maximum capacity limit in response to changing demand. This property is required + when registering a new scalable target. + + + Although you can specify a large maximum capacity, note that service quotas + may impose lower limits. Each service has its own default quotas for the + maximum capacity of the resource. If you want to specify a higher limit, + you can request an increase. For more information, consult the documentation + for that service. For information about the default quotas for each service, + see Service Endpoints and Quotas (https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) + in the Amazon Web Services General Reference. format: int64 type: integer minCapacity: - description: "The minimum value that you plan to scale in to. When - a scaling policy is in effect, Application Auto Scaling can scale - in (contract) as needed to the minimum capacity limit in response - to changing demand. This property is required when registering a - new scalable target. \n For certain resources, the minimum value - allowed is 0. This includes Lambda provisioned concurrency, Spot - Fleet, ECS services, Aurora DB clusters, EMR clusters, and custom - resources. For all other resources, the minimum value allowed is - 1." + description: |- + The minimum value that you plan to scale in to. When a scaling policy is + in effect, Application Auto Scaling can scale in (contract) as needed to + the minimum capacity limit in response to changing demand. This property + is required when registering a new scalable target. + + + For certain resources, the minimum value allowed is 0. This includes Lambda + provisioned concurrency, Spot Fleet, ECS services, Aurora DB clusters, EMR + clusters, and custom resources. For all other resources, the minimum value + allowed is 1. format: int64 type: integer resourceID: - description: "The identifier of the resource that is associated with - the scalable target. This string consists of the resource type and - unique identifier. \n - ECS service - The resource type is service - and the unique identifier is the cluster name and service name. - Example: service/default/sample-webapp. \n - Spot Fleet - The resource - type is spot-fleet-request and the unique identifier is the Spot - Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. - \n - EMR cluster - The resource type is instancegroup and the unique - identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. - \n - AppStream 2.0 fleet - The resource type is fleet and the unique - identifier is the fleet name. Example: fleet/sample-fleet. \n - - DynamoDB table - The resource type is table and the unique identifier - is the table name. Example: table/my-table. \n - DynamoDB global - secondary index - The resource type is index and the unique identifier - is the index name. Example: table/my-table/index/my-table-index. - \n - Aurora DB cluster - The resource type is cluster and the unique - identifier is the cluster name. Example: cluster:my-db-cluster. - \n - SageMaker endpoint variant - The resource type is variant and - the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. - \n - Custom resources are not supported with a resource type. This - parameter must specify the OutputValue from the CloudFormation template - stack used to access the resources. The unique identifier is defined - by the service provider. More information is available in our GitHub - repository (https://github.com/aws/aws-auto-scaling-custom-resource). - \n - Amazon Comprehend document classification endpoint - The resource - type and unique identifier are specified using the endpoint ARN. - Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. - \n - Amazon Comprehend entity recognizer endpoint - The resource - type and unique identifier are specified using the endpoint ARN. - Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. - \n - Lambda provisioned concurrency - The resource type is function - and the unique identifier is the function name with a function version - or alias name suffix that is not $LATEST. Example: function:my-function:prod - or function:my-function:1. \n - Amazon Keyspaces table - The resource - type is table and the unique identifier is the table name. Example: - keyspace/mykeyspace/table/mytable. \n - Amazon MSK cluster - The - resource type and unique identifier are specified using the cluster - ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. - \n - Amazon ElastiCache replication group - The resource type is - replication-group and the unique identifier is the replication group - name. Example: replication-group/mycluster. \n - Neptune cluster - - The resource type is cluster and the unique identifier is the - cluster name. Example: cluster:mycluster." + description: |- + The identifier of the resource that is associated with the scalable target. + This string consists of the resource type and unique identifier. + + + - ECS service - The resource type is service and the unique identifier + is the cluster name and service name. Example: service/default/sample-webapp. + + + - Spot Fleet - The resource type is spot-fleet-request and the unique + identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. + + + - EMR cluster - The resource type is instancegroup and the unique identifier + is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. + + + - AppStream 2.0 fleet - The resource type is fleet and the unique identifier + is the fleet name. Example: fleet/sample-fleet. + + + - DynamoDB table - The resource type is table and the unique identifier + is the table name. Example: table/my-table. + + + - DynamoDB global secondary index - The resource type is index and the + unique identifier is the index name. Example: table/my-table/index/my-table-index. + + + - Aurora DB cluster - The resource type is cluster and the unique identifier + is the cluster name. Example: cluster:my-db-cluster. + + + - SageMaker endpoint variant - The resource type is variant and the unique + identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. + + + - Custom resources are not supported with a resource type. This parameter + must specify the OutputValue from the CloudFormation template stack used + to access the resources. The unique identifier is defined by the service + provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). + + + - Amazon Comprehend document classification endpoint - The resource type + and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + + + - Amazon Comprehend entity recognizer endpoint - The resource type and + unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. + + + - Lambda provisioned concurrency - The resource type is function and the + unique identifier is the function name with a function version or alias + name suffix that is not $LATEST. Example: function:my-function:prod or + function:my-function:1. + + + - Amazon Keyspaces table - The resource type is table and the unique identifier + is the table name. Example: keyspace/mykeyspace/table/mytable. + + + - Amazon MSK cluster - The resource type and unique identifier are specified + using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + + + - Amazon ElastiCache replication group - The resource type is replication-group + and the unique identifier is the replication group name. Example: replication-group/mycluster. + + + - Neptune cluster - The resource type is cluster and the unique identifier + is the cluster name. Example: cluster:mycluster. type: string roleARN: - description: "This parameter is required for services that do not - support service-linked roles (such as Amazon EMR), and it must specify - the ARN of an IAM role that allows Application Auto Scaling to modify - the scalable target on your behalf. \n If the service supports service-linked - roles, Application Auto Scaling uses a service-linked role, which - it creates if it does not yet exist. For more information, see Application - Auto Scaling IAM roles (https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-roles)." + description: |- + This parameter is required for services that do not support service-linked + roles (such as Amazon EMR), and it must specify the ARN of an IAM role that + allows Application Auto Scaling to modify the scalable target on your behalf. + + + If the service supports service-linked roles, Application Auto Scaling uses + a service-linked role, which it creates if it does not yet exist. For more + information, see Application Auto Scaling IAM roles (https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-roles). type: string scalableDimension: - description: "The scalable dimension associated with the scalable - target. This string consists of the service namespace, resource - type, and scaling property. \n - ecs:service:DesiredCount - The - desired task count of an ECS service. \n - elasticmapreduce:instancegroup:InstanceCount - - The instance count of an EMR Instance Group. \n - ec2:spot-fleet-request:TargetCapacity - - The target capacity of a Spot Fleet. \n - appstream:fleet:DesiredCapacity - - The desired capacity of an AppStream 2.0 fleet. \n - dynamodb:table:ReadCapacityUnits - - The provisioned read capacity for a DynamoDB table. \n - dynamodb:table:WriteCapacityUnits - - The provisioned write capacity for a DynamoDB table. \n - dynamodb:index:ReadCapacityUnits - - The provisioned read capacity for a DynamoDB global secondary - index. \n - dynamodb:index:WriteCapacityUnits - The provisioned - write capacity for a DynamoDB global secondary index. \n - rds:cluster:ReadReplicaCount - - The count of Aurora Replicas in an Aurora DB cluster. Available - for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible - edition. \n - sagemaker:variant:DesiredInstanceCount - The number - of EC2 instances for an SageMaker model endpoint variant. \n - custom-resource:ResourceType:Property - - The scalable dimension for a custom resource provided by your - own application or service. \n - comprehend:document-classifier-endpoint:DesiredInferenceUnits - - The number of inference units for an Amazon Comprehend document - classification endpoint. \n - comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - - The number of inference units for an Amazon Comprehend entity - recognizer endpoint. \n - lambda:function:ProvisionedConcurrency - - The provisioned concurrency for a Lambda function. \n - cassandra:table:ReadCapacityUnits - - The provisioned read capacity for an Amazon Keyspaces table. \n - - cassandra:table:WriteCapacityUnits - The provisioned write capacity - for an Amazon Keyspaces table. \n - kafka:broker-storage:VolumeSize - - The provisioned volume size (in GiB) for brokers in an Amazon - MSK cluster. \n - elasticache:replication-group:NodeGroups - The - number of node groups for an Amazon ElastiCache replication group. - \n - elasticache:replication-group:Replicas - The number of replicas - per node group for an Amazon ElastiCache replication group. \n - - neptune:cluster:ReadReplicaCount - The count of read replicas in - an Amazon Neptune DB cluster." + description: |- + The scalable dimension associated with the scalable target. This string consists + of the service namespace, resource type, and scaling property. + + + - ecs:service:DesiredCount - The desired task count of an ECS service. + + + - elasticmapreduce:instancegroup:InstanceCount - The instance count of + an EMR Instance Group. + + + - ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot + Fleet. + + + - appstream:fleet:DesiredCapacity - The desired capacity of an AppStream + 2.0 fleet. + + + - dynamodb:table:ReadCapacityUnits - The provisioned read capacity for + a DynamoDB table. + + + - dynamodb:table:WriteCapacityUnits - The provisioned write capacity for + a DynamoDB table. + + + - dynamodb:index:ReadCapacityUnits - The provisioned read capacity for + a DynamoDB global secondary index. + + + - dynamodb:index:WriteCapacityUnits - The provisioned write capacity for + a DynamoDB global secondary index. + + + - rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora + DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible + edition. + + + - sagemaker:variant:DesiredInstanceCount - The number of EC2 instances + for an SageMaker model endpoint variant. + + + - custom-resource:ResourceType:Property - The scalable dimension for a + custom resource provided by your own application or service. + + + - comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + number of inference units for an Amazon Comprehend document classification + endpoint. + + + - comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number + of inference units for an Amazon Comprehend entity recognizer endpoint. + + + - lambda:function:ProvisionedConcurrency - The provisioned concurrency + for a Lambda function. + + + - cassandra:table:ReadCapacityUnits - The provisioned read capacity for + an Amazon Keyspaces table. + + + - cassandra:table:WriteCapacityUnits - The provisioned write capacity + for an Amazon Keyspaces table. + + + - kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + for brokers in an Amazon MSK cluster. + + + - elasticache:replication-group:NodeGroups - The number of node groups + for an Amazon ElastiCache replication group. + + + - elasticache:replication-group:Replicas - The number of replicas per + node group for an Amazon ElastiCache replication group. + + + - neptune:cluster:ReadReplicaCount - The count of read replicas in an + Amazon Neptune DB cluster. type: string serviceNamespace: - description: The namespace of the Amazon Web Services service that - provides the resource. For a resource provided by your own application - or service, use custom-resource instead. + description: |- + The namespace of the Amazon Web Services service that provides the resource. + For a resource provided by your own application or service, use custom-resource + instead. type: string suspendedState: - description: "An embedded object that contains attributes and attribute - values that are used to suspend and resume automatic scaling. Setting - the value of an attribute to true suspends the specified scaling - activities. Setting it to false (default) resumes the specified - scaling activities. \n Suspension Outcomes \n - For DynamicScalingInSuspended, - while a suspension is in effect, all scale-in activities that are - triggered by a scaling policy are suspended. \n - For DynamicScalingOutSuspended, - while a suspension is in effect, all scale-out activities that are - triggered by a scaling policy are suspended. \n - For ScheduledScalingSuspended, - while a suspension is in effect, all scaling activities that involve - scheduled actions are suspended. \n For more information, see Suspending - and resuming scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) - in the Application Auto Scaling User Guide." + description: |- + An embedded object that contains attributes and attribute values that are + used to suspend and resume automatic scaling. Setting the value of an attribute + to true suspends the specified scaling activities. Setting it to false (default) + resumes the specified scaling activities. + + + Suspension Outcomes + + + - For DynamicScalingInSuspended, while a suspension is in effect, all + scale-in activities that are triggered by a scaling policy are suspended. + + + - For DynamicScalingOutSuspended, while a suspension is in effect, all + scale-out activities that are triggered by a scaling policy are suspended. + + + - For ScheduledScalingSuspended, while a suspension is in effect, all + scaling activities that involve scheduled actions are suspended. + + + For more information, see Suspending and resuming scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-suspend-resume-scaling.html) + in the Application Auto Scaling User Guide. properties: dynamicScalingInSuspended: type: boolean @@ -188,24 +292,26 @@ spec: description: ScalableTargetStatus defines the observed state of ScalableTarget properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + TODO(vijat@): Find a better strategy for resources that do not have ARN in CreateOutputResponse + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -216,14 +322,16 @@ spec: - region type: object conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/helm/crds/applicationautoscaling.services.k8s.aws_scalingpolicies.yaml b/helm/crds/applicationautoscaling.services.k8s.aws_scalingpolicies.yaml index 7433e17..bfad93c 100644 --- a/helm/crds/applicationautoscaling.services.k8s.aws_scalingpolicies.yaml +++ b/helm/crds/applicationautoscaling.services.k8s.aws_scalingpolicies.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: scalingpolicies.applicationautoscaling.services.k8s.aws spec: group: applicationautoscaling.services.k8s.aws @@ -21,123 +20,229 @@ spec: description: ScalingPolicy is the Schema for the ScalingPolicies API properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: - description: "ScalingPolicySpec defines the desired state of ScalingPolicy. - \n Represents a scaling policy to use with Application Auto Scaling. - \n For more information about configuring scaling policies for a specific - service, see Getting started with Application Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) - in the Application Auto Scaling User Guide." + description: |- + ScalingPolicySpec defines the desired state of ScalingPolicy. + + + Represents a scaling policy to use with Application Auto Scaling. + + + For more information about configuring scaling policies for a specific service, + see Getting started with Application Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) + in the Application Auto Scaling User Guide. properties: policyName: description: The name of the scaling policy. type: string policyType: - description: "The policy type. This parameter is required if you are - creating a scaling policy. \n The following policy types are supported: - \n # TargetTrackingScaling—Not supported for Amazon EMR \n StepScaling—Not - supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, - Amazon MSK, Amazon ElastiCache, or Neptune. \n For more information, - see Target tracking scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) + description: |- + The policy type. This parameter is required if you are creating a scaling + policy. + + + The following policy types are supported: + + + # TargetTrackingScaling—Not supported for Amazon EMR + + + StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon + Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. + + + For more information, see Target tracking scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and Step scaling policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) - in the Application Auto Scaling User Guide." + in the Application Auto Scaling User Guide. type: string resourceID: - description: "The identifier of the resource associated with the scaling - policy. This string consists of the resource type and unique identifier. - \n - ECS service - The resource type is service and the unique identifier - is the cluster name and service name. Example: service/default/sample-webapp. - \n - Spot Fleet - The resource type is spot-fleet-request and the - unique identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. - \n - EMR cluster - The resource type is instancegroup and the unique - identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. - \n - AppStream 2.0 fleet - The resource type is fleet and the unique - identifier is the fleet name. Example: fleet/sample-fleet. \n - - DynamoDB table - The resource type is table and the unique identifier - is the table name. Example: table/my-table. \n - DynamoDB global - secondary index - The resource type is index and the unique identifier - is the index name. Example: table/my-table/index/my-table-index. - \n - Aurora DB cluster - The resource type is cluster and the unique - identifier is the cluster name. Example: cluster:my-db-cluster. - \n - SageMaker endpoint variant - The resource type is variant and - the unique identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. - \n - Custom resources are not supported with a resource type. This - parameter must specify the OutputValue from the CloudFormation template - stack used to access the resources. The unique identifier is defined - by the service provider. More information is available in our GitHub - repository (https://github.com/aws/aws-auto-scaling-custom-resource). - \n - Amazon Comprehend document classification endpoint - The resource - type and unique identifier are specified using the endpoint ARN. - Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. - \n - Amazon Comprehend entity recognizer endpoint - The resource - type and unique identifier are specified using the endpoint ARN. - Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. - \n - Lambda provisioned concurrency - The resource type is function - and the unique identifier is the function name with a function version - or alias name suffix that is not $LATEST. Example: function:my-function:prod - or function:my-function:1. \n - Amazon Keyspaces table - The resource - type is table and the unique identifier is the table name. Example: - keyspace/mykeyspace/table/mytable. \n - Amazon MSK cluster - The - resource type and unique identifier are specified using the cluster - ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. - \n - Amazon ElastiCache replication group - The resource type is - replication-group and the unique identifier is the replication group - name. Example: replication-group/mycluster. \n - Neptune cluster - - The resource type is cluster and the unique identifier is the - cluster name. Example: cluster:mycluster." + description: |- + The identifier of the resource associated with the scaling policy. This string + consists of the resource type and unique identifier. + + + - ECS service - The resource type is service and the unique identifier + is the cluster name and service name. Example: service/default/sample-webapp. + + + - Spot Fleet - The resource type is spot-fleet-request and the unique + identifier is the Spot Fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE. + + + - EMR cluster - The resource type is instancegroup and the unique identifier + is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0. + + + - AppStream 2.0 fleet - The resource type is fleet and the unique identifier + is the fleet name. Example: fleet/sample-fleet. + + + - DynamoDB table - The resource type is table and the unique identifier + is the table name. Example: table/my-table. + + + - DynamoDB global secondary index - The resource type is index and the + unique identifier is the index name. Example: table/my-table/index/my-table-index. + + + - Aurora DB cluster - The resource type is cluster and the unique identifier + is the cluster name. Example: cluster:my-db-cluster. + + + - SageMaker endpoint variant - The resource type is variant and the unique + identifier is the resource ID. Example: endpoint/my-end-point/variant/KMeansClustering. + + + - Custom resources are not supported with a resource type. This parameter + must specify the OutputValue from the CloudFormation template stack used + to access the resources. The unique identifier is defined by the service + provider. More information is available in our GitHub repository (https://github.com/aws/aws-auto-scaling-custom-resource). + + + - Amazon Comprehend document classification endpoint - The resource type + and unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE. + + + - Amazon Comprehend entity recognizer endpoint - The resource type and + unique identifier are specified using the endpoint ARN. Example: arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE. + + + - Lambda provisioned concurrency - The resource type is function and the + unique identifier is the function name with a function version or alias + name suffix that is not $LATEST. Example: function:my-function:prod or + function:my-function:1. + + + - Amazon Keyspaces table - The resource type is table and the unique identifier + is the table name. Example: keyspace/mykeyspace/table/mytable. + + + - Amazon MSK cluster - The resource type and unique identifier are specified + using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + + + - Amazon ElastiCache replication group - The resource type is replication-group + and the unique identifier is the replication group name. Example: replication-group/mycluster. + + + - Neptune cluster - The resource type is cluster and the unique identifier + is the cluster name. Example: cluster:mycluster. type: string scalableDimension: - description: "The scalable dimension. This string consists of the - service namespace, resource type, and scaling property. \n - ecs:service:DesiredCount - - The desired task count of an ECS service. \n - elasticmapreduce:instancegroup:InstanceCount - - The instance count of an EMR Instance Group. \n - ec2:spot-fleet-request:TargetCapacity - - The target capacity of a Spot Fleet. \n - appstream:fleet:DesiredCapacity - - The desired capacity of an AppStream 2.0 fleet. \n - dynamodb:table:ReadCapacityUnits - - The provisioned read capacity for a DynamoDB table. \n - dynamodb:table:WriteCapacityUnits - - The provisioned write capacity for a DynamoDB table. \n - dynamodb:index:ReadCapacityUnits - - The provisioned read capacity for a DynamoDB global secondary - index. \n - dynamodb:index:WriteCapacityUnits - The provisioned - write capacity for a DynamoDB global secondary index. \n - rds:cluster:ReadReplicaCount - - The count of Aurora Replicas in an Aurora DB cluster. Available - for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible - edition. \n - sagemaker:variant:DesiredInstanceCount - The number - of EC2 instances for an SageMaker model endpoint variant. \n - custom-resource:ResourceType:Property - - The scalable dimension for a custom resource provided by your - own application or service. \n - comprehend:document-classifier-endpoint:DesiredInferenceUnits - - The number of inference units for an Amazon Comprehend document - classification endpoint. \n - comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - - The number of inference units for an Amazon Comprehend entity - recognizer endpoint. \n - lambda:function:ProvisionedConcurrency - - The provisioned concurrency for a Lambda function. \n - cassandra:table:ReadCapacityUnits - - The provisioned read capacity for an Amazon Keyspaces table. \n - - cassandra:table:WriteCapacityUnits - The provisioned write capacity - for an Amazon Keyspaces table. \n - kafka:broker-storage:VolumeSize - - The provisioned volume size (in GiB) for brokers in an Amazon - MSK cluster. \n - elasticache:replication-group:NodeGroups - The - number of node groups for an Amazon ElastiCache replication group. - \n - elasticache:replication-group:Replicas - The number of replicas - per node group for an Amazon ElastiCache replication group. \n - - neptune:cluster:ReadReplicaCount - The count of read replicas in - an Amazon Neptune DB cluster." + description: |- + The scalable dimension. This string consists of the service namespace, resource + type, and scaling property. + + + - ecs:service:DesiredCount - The desired task count of an ECS service. + + + - elasticmapreduce:instancegroup:InstanceCount - The instance count of + an EMR Instance Group. + + + - ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot + Fleet. + + + - appstream:fleet:DesiredCapacity - The desired capacity of an AppStream + 2.0 fleet. + + + - dynamodb:table:ReadCapacityUnits - The provisioned read capacity for + a DynamoDB table. + + + - dynamodb:table:WriteCapacityUnits - The provisioned write capacity for + a DynamoDB table. + + + - dynamodb:index:ReadCapacityUnits - The provisioned read capacity for + a DynamoDB global secondary index. + + + - dynamodb:index:WriteCapacityUnits - The provisioned write capacity for + a DynamoDB global secondary index. + + + - rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora + DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible + edition. + + + - sagemaker:variant:DesiredInstanceCount - The number of EC2 instances + for an SageMaker model endpoint variant. + + + - custom-resource:ResourceType:Property - The scalable dimension for a + custom resource provided by your own application or service. + + + - comprehend:document-classifier-endpoint:DesiredInferenceUnits - The + number of inference units for an Amazon Comprehend document classification + endpoint. + + + - comprehend:entity-recognizer-endpoint:DesiredInferenceUnits - The number + of inference units for an Amazon Comprehend entity recognizer endpoint. + + + - lambda:function:ProvisionedConcurrency - The provisioned concurrency + for a Lambda function. + + + - cassandra:table:ReadCapacityUnits - The provisioned read capacity for + an Amazon Keyspaces table. + + + - cassandra:table:WriteCapacityUnits - The provisioned write capacity + for an Amazon Keyspaces table. + + + - kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + for brokers in an Amazon MSK cluster. + + + - elasticache:replication-group:NodeGroups - The number of node groups + for an Amazon ElastiCache replication group. + + + - elasticache:replication-group:Replicas - The number of replicas per + node group for an Amazon ElastiCache replication group. + + + - neptune:cluster:ReadReplicaCount - The count of read replicas in an + Amazon Neptune DB cluster. type: string serviceNamespace: - description: The namespace of the Amazon Web Services service that - provides the resource. For a resource provided by your own application - or service, use custom-resource instead. + description: |- + The namespace of the Amazon Web Services service that provides the resource. + For a resource provided by your own application or service, use custom-resource + instead. type: string stepScalingPolicyConfiguration: - description: "A step scaling policy. \n This parameter is required - if you are creating a policy and the policy type is StepScaling." + description: |- + A step scaling policy. + + + This parameter is required if you are creating a policy and the policy type + is StepScaling. properties: adjustmentType: type: string @@ -151,27 +256,44 @@ spec: type: integer stepAdjustments: items: - description: "Represents a step adjustment for a StepScalingPolicyConfiguration - (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html). - Describes an adjustment based on the difference between the - value of the aggregated CloudWatch metric and the breach threshold - that you've defined for the alarm. \n For the following examples, - suppose that you have an alarm with a breach threshold of - 50: \n - To trigger the adjustment when the metric is greater - than or equal to 50 and less than 60, specify a lower bound - of 0 and an upper bound of 10. \n - To trigger the adjustment - when the metric is greater than 40 and less than or equal - to 50, specify a lower bound of -10 and an upper bound of - 0. \n There are a few rules for the step adjustments for your - step policy: \n - The ranges of your step adjustments can't - overlap or have a gap. \n - At most one step adjustment can - have a null lower bound. If one step adjustment has a negative - lower bound, then there must be a step adjustment with a null - lower bound. \n - At most one step adjustment can have a null - upper bound. If one step adjustment has a positive upper bound, - then there must be a step adjustment with a null upper bound. - \n - The upper and lower bound can't be null in the same step - adjustment." + description: |- + Represents a step adjustment for a StepScalingPolicyConfiguration (https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepScalingPolicyConfiguration.html). + Describes an adjustment based on the difference between the value of the + aggregated CloudWatch metric and the breach threshold that you've defined + for the alarm. + + + For the following examples, suppose that you have an alarm with a breach + threshold of 50: + + + - To trigger the adjustment when the metric is greater than or equal to + 50 and less than 60, specify a lower bound of 0 and an upper bound of + 10. + + + - To trigger the adjustment when the metric is greater than 40 and less + than or equal to 50, specify a lower bound of -10 and an upper bound of + 0. + + + There are a few rules for the step adjustments for your step policy: + + + - The ranges of your step adjustments can't overlap or have a gap. + + + - At most one step adjustment can have a null lower bound. If one step + adjustment has a negative lower bound, then there must be a step adjustment + with a null lower bound. + + + - At most one step adjustment can have a null upper bound. If one step + adjustment has a positive upper bound, then there must be a step adjustment + with a null upper bound. + + + - The upper and lower bound can't be null in the same step adjustment. properties: metricIntervalLowerBound: type: number @@ -184,29 +306,42 @@ spec: type: array type: object targetTrackingScalingPolicyConfiguration: - description: "A target tracking scaling policy. Includes support for - predefined or customized metrics. \n This parameter is required - if you are creating a policy and the policy type is TargetTrackingScaling." + description: |- + A target tracking scaling policy. Includes support for predefined or customized + metrics. + + + This parameter is required if you are creating a policy and the policy type + is TargetTrackingScaling. properties: customizedMetricSpecification: - description: "Represents a CloudWatch metric of your choosing - for a target tracking scaling policy to use with Application - Auto Scaling. \n For information about the available metrics - for a service, see Amazon Web Services Services That Publish - CloudWatch Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) - in the Amazon CloudWatch User Guide. \n To create your customized - metric specification: \n * Add values for each required parameter - from CloudWatch. You can use an existing metric, or a new metric - that you create. To use your own metric, you must first publish - the metric to CloudWatch. For more information, see Publish - Custom Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) - in the Amazon CloudWatch User Guide. \n * Choose a metric that - changes proportionally with capacity. The value of the metric - should increase or decrease in inverse proportion to the number - of capacity units. That is, the value of the metric should decrease - when capacity increases, and increase when capacity decreases. - \n For more information about CloudWatch, see Amazon CloudWatch - Concepts (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)." + description: |- + Represents a CloudWatch metric of your choosing for a target tracking scaling + policy to use with Application Auto Scaling. + + + For information about the available metrics for a service, see Amazon Web + Services Services That Publish CloudWatch Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) + in the Amazon CloudWatch User Guide. + + + To create your customized metric specification: + + + * Add values for each required parameter from CloudWatch. You can use + an existing metric, or a new metric that you create. To use your own metric, + you must first publish the metric to CloudWatch. For more information, + see Publish Custom Metrics (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) + in the Amazon CloudWatch User Guide. + + + * Choose a metric that changes proportionally with capacity. The value + of the metric should increase or decrease in inverse proportion to the + number of capacity units. That is, the value of the metric should decrease + when capacity increases, and increase when capacity decreases. + + + For more information about CloudWatch, see Amazon CloudWatch Concepts (https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html). properties: dimensions: items: @@ -231,14 +366,16 @@ spec: disableScaleIn: type: boolean predefinedMetricSpecification: - description: "Represents a predefined metric for a target tracking - scaling policy to use with Application Auto Scaling. \n Only - the Amazon Web Services that you're using send metrics to Amazon - CloudWatch. To determine whether a desired metric already exists - by looking up its namespace and dimension using the CloudWatch - metrics dashboard in the console, follow the procedure in Building - dashboards with CloudWatch (https://docs.aws.amazon.com/autoscaling/application/userguide/monitoring-cloudwatch.html) - in the Application Auto Scaling User Guide." + description: |- + Represents a predefined metric for a target tracking scaling policy to use + with Application Auto Scaling. + + + Only the Amazon Web Services that you're using send metrics to Amazon CloudWatch. + To determine whether a desired metric already exists by looking up its namespace + and dimension using the CloudWatch metrics dashboard in the console, follow + the procedure in Building dashboards with CloudWatch (https://docs.aws.amazon.com/autoscaling/application/userguide/monitoring-cloudwatch.html) + in the Application Auto Scaling User Guide. properties: predefinedMetricType: type: string @@ -264,24 +401,26 @@ spec: description: ScalingPolicyStatus defines the observed state of ScalingPolicy properties: ackResourceMetadata: - description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` - member that is used to contain resource sync state, account ownership, + description: |- + All CRs managed by ACK have a common `Status.ACKResourceMetadata` member + that is used to contain resource sync state, account ownership, constructed ARN for the resource properties: arn: - description: 'ARN is the Amazon Resource Name for the resource. - This is a globally-unique identifier and is set only by the - ACK service controller once the controller has orchestrated - the creation of the resource OR when it has verified that an - "adopted" resource (a resource where the ARN annotation was - set by the Kubernetes user on the CR) exists and matches the - supplied CR''s Spec field values. TODO(vijat@): Find a better - strategy for resources that do not have ARN in CreateOutputResponse - https://github.com/aws/aws-controllers-k8s/issues/270' + description: |- + ARN is the Amazon Resource Name for the resource. This is a + globally-unique identifier and is set only by the ACK service controller + once the controller has orchestrated the creation of the resource OR + when it has verified that an "adopted" resource (a resource where the + ARN annotation was set by the Kubernetes user on the CR) exists and + matches the supplied CR's Spec field values. + TODO(vijat@): Find a better strategy for resources that do not have ARN in CreateOutputResponse + https://github.com/aws/aws-controllers-k8s/issues/270 type: string ownerAccountID: - description: OwnerAccountID is the AWS Account ID of the account - that owns the backend AWS service API resource. + description: |- + OwnerAccountID is the AWS Account ID of the account that owns the + backend AWS service API resource. type: string region: description: Region is the AWS region in which the resource exists @@ -305,14 +444,16 @@ spec: type: object type: array conditions: - description: All CRS managed by ACK have a common `Status.Conditions` - member that contains a collection of `ackv1alpha1.Condition` objects - that describe the various terminal states of the CR and its backend - AWS service API resource + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/helm/crds/services.k8s.aws_adoptedresources.yaml b/helm/crds/services.k8s.aws_adoptedresources.yaml index 9a12ef7..65eff73 100644 --- a/helm/crds/services.k8s.aws_adoptedresources.yaml +++ b/helm/crds/services.k8s.aws_adoptedresources.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: adoptedresources.services.k8s.aws spec: group: services.k8s.aws @@ -21,14 +20,19 @@ spec: description: AdoptedResource is the schema for the AdoptedResource API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -42,129 +46,149 @@ spec: additionalKeys: additionalProperties: type: string - description: AdditionalKeys represents any additional arbitrary - identifiers used when describing the target resource. + description: |- + AdditionalKeys represents any additional arbitrary identifiers used when + describing the target resource. type: object arn: - description: ARN is the AWS Resource Name for the resource. It - is a globally unique identifier. + description: |- + ARN is the AWS Resource Name for the resource. It is a globally + unique identifier. type: string nameOrID: - description: NameOrId is a user-supplied string identifier for - the resource. It may or may not be globally unique, depending - on the type of resource. + description: |- + NameOrId is a user-supplied string identifier for the resource. It may + or may not be globally unique, depending on the type of resource. type: string type: object kubernetes: - description: ResourceWithMetadata provides the values necessary to - create a Kubernetes resource and override any of its metadata values. + description: |- + ResourceWithMetadata provides the values necessary to create a + Kubernetes resource and override any of its metadata values. properties: group: type: string kind: type: string metadata: - description: "ObjectMeta is metadata that all persisted resources - must have, which includes all objects users must create. It - is not possible to use `metav1.ObjectMeta` inside spec, as the - controller-gen automatically converts this to an arbitrary string-string - map. https://github.com/kubernetes-sigs/controller-tools/issues/385 - \n Active discussion about inclusion of this field in the spec - is happening in this PR: https://github.com/kubernetes-sigs/controller-tools/pull/395 - \n Until this is allowed, or if it never is, we will produce - a subset of the object meta that contains only the fields which - the user is allowed to modify in the metadata." + description: |- + ObjectMeta is metadata that all persisted resources must have, which includes all objects + users must create. + It is not possible to use `metav1.ObjectMeta` inside spec, as the controller-gen + automatically converts this to an arbitrary string-string map. + https://github.com/kubernetes-sigs/controller-tools/issues/385 + + + Active discussion about inclusion of this field in the spec is happening in this PR: + https://github.com/kubernetes-sigs/controller-tools/pull/395 + + + Until this is allowed, or if it never is, we will produce a subset of the object meta + that contains only the fields which the user is allowed to modify in the metadata. properties: annotations: additionalProperties: type: string - description: 'Annotations is an unstructured key value map - stored with a resource that may be set by external tools - to store and retrieve arbitrary metadata. They are not queryable - and should be preserved when modifying objects. More info: - http://kubernetes.io/docs/user-guide/annotations' + description: |- + Annotations is an unstructured key value map stored with a resource that may be + set by external tools to store and retrieve arbitrary metadata. They are not + queryable and should be preserved when modifying objects. + More info: http://kubernetes.io/docs/user-guide/annotations type: object generateName: - description: "GenerateName is an optional prefix, used by - the server, to generate a unique name ONLY IF the Name field - has not been provided. If this field is used, the name returned - to the client will be different than the name passed. This - value will also be combined with a unique suffix. The provided - value has the same validation rules as the Name field, and - may be truncated by the length of the suffix required to - make the value unique on the server. \n If this field is - specified and the generated name exists, the server will - NOT return a 409 - instead, it will either return 201 Created - or 500 with Reason ServerTimeout indicating a unique name - could not be found in the time allotted, and the client - should retry (optionally after the time indicated in the - Retry-After header). \n Applied only if Name is not specified. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency" + description: |- + GenerateName is an optional prefix, used by the server, to generate a unique + name ONLY IF the Name field has not been provided. + If this field is used, the name returned to the client will be different + than the name passed. This value will also be combined with a unique suffix. + The provided value has the same validation rules as the Name field, + and may be truncated by the length of the suffix required to make the value + unique on the server. + + + If this field is specified and the generated name exists, the server will + NOT return a 409 - instead, it will either return 201 Created or 500 with Reason + ServerTimeout indicating a unique name could not be found in the time allotted, and the client + should retry (optionally after the time indicated in the Retry-After header). + + + Applied only if Name is not specified. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency type: string labels: additionalProperties: type: string - description: 'Map of string keys and values that can be used - to organize and categorize (scope and select) objects. May - match selectors of replication controllers and services. - More info: http://kubernetes.io/docs/user-guide/labels' + description: |- + Map of string keys and values that can be used to organize and categorize + (scope and select) objects. May match selectors of replication controllers + and services. + More info: http://kubernetes.io/docs/user-guide/labels type: object name: - description: 'Name must be unique within a namespace. Is required - when creating resources, although some resources may allow - a client to request the generation of an appropriate name - automatically. Name is primarily intended for creation idempotence - and configuration definition. Cannot be updated. More info: - http://kubernetes.io/docs/user-guide/identifiers#names' + description: |- + Name must be unique within a namespace. Is required when creating resources, although + some resources may allow a client to request the generation of an appropriate name + automatically. Name is primarily intended for creation idempotence and configuration + definition. + Cannot be updated. + More info: http://kubernetes.io/docs/user-guide/identifiers#names type: string namespace: - description: "Namespace defines the space within each name - must be unique. An empty namespace is equivalent to the - \"default\" namespace, but \"default\" is the canonical - representation. Not all objects are required to be scoped - to a namespace - the value of this field for those objects - will be empty. \n Must be a DNS_LABEL. Cannot be updated. - More info: http://kubernetes.io/docs/user-guide/namespaces" + description: |- + Namespace defines the space within each name must be unique. An empty namespace is + equivalent to the "default" namespace, but "default" is the canonical representation. + Not all objects are required to be scoped to a namespace - the value of this field for + those objects will be empty. + + + Must be a DNS_LABEL. + Cannot be updated. + More info: http://kubernetes.io/docs/user-guide/namespaces type: string ownerReferences: - description: List of objects depended by this object. If ALL - objects in the list have been deleted, this object will - be garbage collected. If this object is managed by a controller, - then an entry in this list will point to this controller, - with the controller field set to true. There cannot be more - than one managing controller. + description: |- + List of objects depended by this object. If ALL objects in the list have + been deleted, this object will be garbage collected. If this object is managed by a controller, + then an entry in this list will point to this controller, with the controller field set to true. + There cannot be more than one managing controller. items: - description: OwnerReference contains enough information - to let you identify an owning object. An owning object - must be in the same namespace as the dependent, or be - cluster-scoped, so there is no namespace field. + description: |- + OwnerReference contains enough information to let you identify an owning + object. An owning object must be in the same namespace as the dependent, or + be cluster-scoped, so there is no namespace field. properties: apiVersion: description: API version of the referent. type: string blockOwnerDeletion: - description: If true, AND if the owner has the "foregroundDeletion" - finalizer, then the owner cannot be deleted from the - key-value store until this reference is removed. See - https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion - for how the garbage collector interacts with this - field and enforces the foreground deletion. Defaults - to false. To set this field, a user needs "delete" - permission of the owner, otherwise 422 (Unprocessable - Entity) will be returned. + description: |- + If true, AND if the owner has the "foregroundDeletion" finalizer, then + the owner cannot be deleted from the key-value store until this + reference is removed. + See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + for how the garbage collector interacts with this field and enforces the foreground deletion. + Defaults to false. + To set this field, a user needs "delete" permission of the owner, + otherwise 422 (Unprocessable Entity) will be returned. type: boolean controller: description: If true, this reference points to the managing controller. type: boolean kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids type: string required: - apiVersion @@ -188,13 +212,14 @@ spec: AdoptedResource. properties: conditions: - description: A collection of `ackv1alpha1.Condition` objects that - describe the various terminal states of the adopted resource CR - and its target custom resource + description: |- + A collection of `ackv1alpha1.Condition` objects that describe the various + terminal states of the adopted resource CR and its target custom resource items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/helm/crds/services.k8s.aws_fieldexports.yaml b/helm/crds/services.k8s.aws_fieldexports.yaml index 4a7ab61..4d3a8f1 100644 --- a/helm/crds/services.k8s.aws_fieldexports.yaml +++ b/helm/crds/services.k8s.aws_fieldexports.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.9.2 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.14.0 name: fieldexports.services.k8s.aws spec: group: services.k8s.aws @@ -21,14 +20,19 @@ spec: description: FieldExport is the schema for the FieldExport API. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -36,15 +40,17 @@ spec: description: FieldExportSpec defines the desired state of the FieldExport. properties: from: - description: ResourceFieldSelector provides the values necessary to - identify an individual field on an individual K8s resource. + description: |- + ResourceFieldSelector provides the values necessary to identify an individual + field on an individual K8s resource. properties: path: type: string resource: - description: NamespacedResource provides all the values necessary - to identify an ACK resource of a given type (within the same - namespace as the custom resource containing this type). + description: |- + NamespacedResource provides all the values necessary to identify an ACK + resource of a given type (within the same namespace as the custom resource + containing this type). properties: group: type: string @@ -62,16 +68,18 @@ spec: - resource type: object to: - description: FieldExportTarget provides the values necessary to identify - the output path for a field export. + description: |- + FieldExportTarget provides the values necessary to identify the + output path for a field export. properties: key: description: Key overrides the default value (`.`) for the FieldExport target type: string kind: - description: FieldExportOutputType represents all types that can - be produced by a field export operation + description: |- + FieldExportOutputType represents all types that can be produced by a field + export operation enum: - configmap - secret @@ -94,12 +102,14 @@ spec: description: FieldExportStatus defines the observed status of the FieldExport. properties: conditions: - description: A collection of `ackv1alpha1.Condition` objects that - describe the various recoverable states of the field CR + description: |- + A collection of `ackv1alpha1.Condition` objects that describe the various + recoverable states of the field CR items: - description: Condition is the common struct used by all CRDs managed - by ACK service controllers to indicate terminal states of the - CR and its backend AWS service API resource + description: |- + Condition is the common struct used by all CRDs managed by ACK service + controllers to indicate terminal states of the CR and its backend AWS + service API resource properties: lastTransitionTime: description: Last time the condition transitioned from one status diff --git a/helm/templates/NOTES.txt b/helm/templates/NOTES.txt index ecda713..ba0211d 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/applicationautoscaling-controller:1.0.9". +This chart deploys "public.ecr.aws/aws-controllers-k8s/applicationautoscaling-controller:1.0.10". Check its status by running: kubectl --namespace {{ .Release.Namespace }} get pods -l "app.kubernetes.io/instance={{ .Release.Name }}" diff --git a/helm/templates/_helpers.tpl b/helm/templates/_helpers.tpl index d0aadb8..69f8579 100644 --- a/helm/templates/_helpers.tpl +++ b/helm/templates/_helpers.tpl @@ -1,5 +1,5 @@ {{/* The name of the application this chart installs */}} -{{- define "app.name" -}} +{{- define "ack-applicationautoscaling-controller.app.name" -}} {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} {{- end -}} @@ -8,7 +8,7 @@ Create a default fully qualified app name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). If release name contains chart name it will be used as a full name. */}} -{{- define "app.fullname" -}} +{{- define "ack-applicationautoscaling-controller.app.fullname" -}} {{- if .Values.fullnameOverride -}} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} {{- else -}} @@ -22,33 +22,33 @@ If release name contains chart name it will be used as a full name. {{- end -}} {{/* The name and version as used by the chart label */}} -{{- define "chart.name-version" -}} +{{- define "ack-applicationautoscaling-controller.chart.name-version" -}} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} {{- end -}} {{/* The name of the service account to use */}} -{{- define "service-account.name" -}} +{{- define "ack-applicationautoscaling-controller.service-account.name" -}} {{ default "default" .Values.serviceAccount.name }} {{- end -}} -{{- define "watch-namespace" -}} +{{- define "ack-applicationautoscaling-controller.watch-namespace" -}} {{- if eq .Values.installScope "namespace" -}} {{ .Values.watchNamespace | default .Release.Namespace }} {{- end -}} {{- end -}} {{/* The mount path for the shared credentials file */}} -{{- define "aws.credentials.secret_mount_path" -}} +{{- define "ack-applicationautoscaling-controller.aws.credentials.secret_mount_path" -}} {{- "/var/run/secrets/aws" -}} {{- end -}} {{/* The path the shared credentials file is mounted */}} -{{- define "aws.credentials.path" -}} +{{- define "ack-applicationautoscaling-controller.aws.credentials.path" -}} {{- printf "%s/%s" (include "aws.credentials.secret_mount_path" .) .Values.aws.credentials.secretKey -}} {{- end -}} {{/* The rules a of ClusterRole or Role */}} -{{- define "controller-role-rules" }} +{{- define "ack-applicationautoscaling-controller.rbac-rules" -}} rules: - apiGroups: - "" diff --git a/helm/templates/cluster-role-binding.yaml b/helm/templates/cluster-role-binding.yaml index 828a5f8..1622647 100644 --- a/helm/templates/cluster-role-binding.yaml +++ b/helm/templates/cluster-role-binding.yaml @@ -2,20 +2,21 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: {{ include "app.fullname" . }} + name: {{ include "ack-applicationautoscaling-controller.app.fullname" . }} roleRef: kind: ClusterRole apiGroup: rbac.authorization.k8s.io name: ack-applicationautoscaling-controller subjects: - kind: ServiceAccount - name: {{ include "service-account.name" . }} + name: {{ include "ack-applicationautoscaling-controller.service-account.name" . }} namespace: {{ .Release.Namespace }} -{{ else if .Values.watchNamespace }} -{{ $namespaces := split "," .Values.watchNamespace }} -{{ $fullname := include "app.fullname" . }} +{{ else if eq .Values.installScope "namespace" }} +{{ $wn := include "ack-applicationautoscaling-controller.watch-namespace" . }} +{{ $namespaces := split "," $wn }} +{{ $fullname := include "ack-applicationautoscaling-controller.app.fullname" . }} {{ $releaseNamespace := .Release.Namespace }} -{{ $serviceAccountName := include "service-account.name" . }} +{{ $serviceAccountName := include "ack-applicationautoscaling-controller.service-account.name" . }} {{ range $namespaces }} --- apiVersion: rbac.authorization.k8s.io/v1 diff --git a/helm/templates/cluster-role-controller.yaml b/helm/templates/cluster-role-controller.yaml index 22ed8b0..82ba7db 100644 --- a/helm/templates/cluster-role-controller.yaml +++ b/helm/templates/cluster-role-controller.yaml @@ -1,5 +1,5 @@ {{ $labels := .Values.role.labels }} -{{ $rules := include "controller-role-rules" . }} +{{ $rbacRules := include "ack-applicationautoscaling-controller.rbac-rules" . }} {{ if eq .Values.installScope "cluster" }} apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole @@ -9,9 +9,10 @@ metadata: {{- range $key, $value := $labels }} {{ $key }}: {{ $value | quote }} {{- end }} -{{- $rules }} -{{ else if .Values.watchNamespace }} -{{ $namespaces := split "," .Values.watchNamespace }} +{{$rbacRules }} +{{ else if eq .Values.installScope "namespace" }} +{{ $wn := include "ack-applicationautoscaling-controller.watch-namespace" . }} +{{ $namespaces := split "," $wn }} {{ range $namespaces }} --- apiVersion: rbac.authorization.k8s.io/v1 @@ -23,6 +24,6 @@ metadata: {{- range $key, $value := $labels }} {{ $key }}: {{ $value | quote }} {{- end }} -{{- $rules }} +{{ $rbacRules }} {{ end }} {{ end }} \ No newline at end of file diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index cea38ec..6bc1a94 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -1,20 +1,20 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "app.fullname" . }} + name: {{ include "ack-applicationautoscaling-controller.app.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-applicationautoscaling-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} - k8s-app: {{ include "app.name" . }} - helm.sh/chart: {{ include "chart.name-version" . }} + k8s-app: {{ include "ack-applicationautoscaling-controller.app.name" . }} + helm.sh/chart: {{ include "ack-applicationautoscaling-controller.chart.name-version" . }} spec: replicas: {{ .Values.deployment.replicas }} selector: matchLabels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-applicationautoscaling-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} template: metadata: @@ -25,15 +25,15 @@ spec: {{- end }} {{- end }} labels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-applicationautoscaling-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm - k8s-app: {{ include "app.name" . }} + k8s-app: {{ include "ack-applicationautoscaling-controller.app.name" . }} {{- range $key, $value := .Values.deployment.labels }} {{ $key }}: {{ $value | quote }} {{- end }} spec: - serviceAccountName: {{ include "service-account.name" . }} + serviceAccountName: {{ include "ack-applicationautoscaling-controller.service-account.name" . }} {{- if .Values.image.pullSecrets }} imagePullSecrets: {{- range .Values.image.pullSecrets }} @@ -90,7 +90,7 @@ spec: - name: AWS_ENDPOINT_URL value: {{ .Values.aws.endpoint_url | quote }} - name: ACK_WATCH_NAMESPACE - value: {{ include "watch-namespace" . }} + value: {{ include "ack-applicationautoscaling-controller.watch-namespace" . }} - name: DELETION_POLICY value: {{ .Values.deletionPolicy }} - name: LEADER_ELECTION_NAMESPACE @@ -109,7 +109,7 @@ spec: {{- end }} {{- if .Values.aws.credentials.secretName }} - name: AWS_SHARED_CREDENTIALS_FILE - value: {{ include "aws.credentials.path" . }} + value: {{ include "ack-applicationautoscaling-controller.aws.credentials.path" . }} - name: AWS_PROFILE value: {{ .Values.aws.credentials.profile }} {{- end }} @@ -119,7 +119,7 @@ spec: volumeMounts: {{- if .Values.aws.credentials.secretName }} - name: {{ .Values.aws.credentials.secretName }} - mountPath: {{ include "aws.credentials.secret_mount_path" . }} + mountPath: {{ include "ack-applicationautoscaling-controller.aws.credentials.secret_mount_path" . }} readOnly: true {{- end }} {{- if .Values.deployment.extraVolumeMounts -}} diff --git a/helm/templates/leader-election-role-binding.yaml b/helm/templates/leader-election-role-binding.yaml index 979749d..35a2181 100644 --- a/helm/templates/leader-election-role-binding.yaml +++ b/helm/templates/leader-election-role-binding.yaml @@ -14,5 +14,5 @@ roleRef: name: applicationautoscaling-leader-election-role subjects: - kind: ServiceAccount - name: {{ include "service-account.name" . }} + name: {{ include "ack-applicationautoscaling-controller.service-account.name" . }} namespace: {{ .Release.Namespace }}{{- end }} diff --git a/helm/templates/metrics-service.yaml b/helm/templates/metrics-service.yaml index 638858a..99d7b0e 100644 --- a/helm/templates/metrics-service.yaml +++ b/helm/templates/metrics-service.yaml @@ -5,18 +5,18 @@ metadata: name: {{ .Chart.Name | trimSuffix "-chart" | trunc 44 }}-controller-metrics namespace: {{ .Release.Namespace }} labels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-applicationautoscaling-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} - k8s-app: {{ include "app.name" . }} - helm.sh/chart: {{ include "chart.name-version" . }} + k8s-app: {{ include "ack-applicationautoscaling-controller.app.name" . }} + helm.sh/chart: {{ include "ack-applicationautoscaling-controller.chart.name-version" . }} spec: selector: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-applicationautoscaling-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm - k8s-app: {{ include "app.name" . }} + k8s-app: {{ include "ack-applicationautoscaling-controller.app.name" . }} {{- range $key, $value := .Values.deployment.labels }} {{ $key }}: {{ $value | quote }} {{- end }} diff --git a/helm/templates/service-account.yaml b/helm/templates/service-account.yaml index 7330639..c6de3fa 100644 --- a/helm/templates/service-account.yaml +++ b/helm/templates/service-account.yaml @@ -3,13 +3,13 @@ apiVersion: v1 kind: ServiceAccount metadata: labels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-applicationautoscaling-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} - k8s-app: {{ include "app.name" . }} - helm.sh/chart: {{ include "chart.name-version" . }} - name: {{ include "service-account.name" . }} + k8s-app: {{ include "ack-applicationautoscaling-controller.app.name" . }} + helm.sh/chart: {{ include "ack-applicationautoscaling-controller.chart.name-version" . }} + name: {{ include "ack-applicationautoscaling-controller.service-account.name" . }} namespace: {{ .Release.Namespace }} annotations: {{- range $key, $value := .Values.serviceAccount.annotations }} diff --git a/helm/values.yaml b/helm/values.yaml index 38cf312..4de6738 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -4,7 +4,7 @@ image: repository: public.ecr.aws/aws-controllers-k8s/applicationautoscaling-controller - tag: 1.0.9 + tag: 1.0.10 pullPolicy: IfNotPresent pullSecrets: []