diff --git a/apis/v1alpha1/ack-generate-metadata.yaml b/apis/v1alpha1/ack-generate-metadata.yaml index a2e3733..810cff1 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:10:55Z" - build_hash: 92f531cde5631865cfc3dfa778cbc9611f3a64c3 - go_version: go1.21.5 - version: v0.29.2 + build_date: "2024-05-02T20:54:33Z" + build_hash: 14cef51778d471698018b6c38b604181a6948248 + go_version: go1.22.0 + version: v0.34.0 api_directory_checksum: bd34f72147706f1dbc990acf4a6c4f6615c1bddb 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 5d3605d..1a27174 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/cmd/controller/main.go b/cmd/controller/main.go index fe7a783..e617b5e 100644 --- a/cmd/controller/main.go +++ b/cmd/controller/main.go @@ -31,6 +31,7 @@ import ( clientgoscheme "k8s.io/client-go/kubernetes/scheme" ctrlrt "sigs.k8s.io/controller-runtime" ctrlrtcache "sigs.k8s.io/controller-runtime/pkg/cache" + ctrlrthealthz "sigs.k8s.io/controller-runtime/pkg/healthz" ctrlrtmetrics "sigs.k8s.io/controller-runtime/pkg/metrics" metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server" ctrlrtwebhook "sigs.k8s.io/controller-runtime/pkg/webhook" @@ -123,6 +124,9 @@ func main() { LeaderElection: ackCfg.EnableLeaderElection, LeaderElectionID: "ack-" + awsServiceAPIGroup, LeaderElectionNamespace: ackCfg.LeaderElectionNamespace, + HealthProbeBindAddress: ackCfg.HealthzAddr, + LivenessEndpointName: "/healthz", + ReadinessEndpointName: "/readyz", }) if err != nil { setupLog.Error( @@ -173,6 +177,21 @@ func main() { os.Exit(1) } + if err = mgr.AddHealthzCheck("health", ctrlrthealthz.Ping); err != nil { + setupLog.Error( + err, "unable to set up health check", + "aws.service", awsServiceAlias, + ) + os.Exit(1) + } + if err = mgr.AddReadyzCheck("check", ctrlrthealthz.Ping); err != nil { + setupLog.Error( + err, "unable to set up ready check", + "aws.service", awsServiceAlias, + ) + os.Exit(1) + } + setupLog.Info( "starting manager", "aws.service", awsServiceAlias, diff --git a/config/controller/deployment.yaml b/config/controller/deployment.yaml index 25ac484..5efef31 100644 --- a/config/controller/deployment.yaml +++ b/config/controller/deployment.yaml @@ -39,6 +39,8 @@ spec: - --enable-leader-election=$(ENABLE_LEADER_ELECTION) - --leader-election-namespace - "$(LEADER_ELECTION_NAMESPACE)" + - --reconcile-default-max-concurrent-syncs + - "$(RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS)" image: controller:latest name: controller ports: @@ -72,6 +74,8 @@ spec: value: "false" - name: LEADER_ELECTION_NAMESPACE value: "ack-system" + - name: "RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS" + value: "1" securityContext: allowPrivilegeEscalation: false privileged: false @@ -79,6 +83,18 @@ spec: capabilities: drop: - ALL + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 securityContext: seccompProfile: type: RuntimeDefault diff --git a/config/controller/kustomization.yaml b/config/controller/kustomization.yaml index 8685a16..6d39763 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/elasticache-controller - newTag: 0.0.29 + newTag: 0.0.30 diff --git a/config/crd/bases/elasticache.services.k8s.aws_cacheparametergroups.yaml b/config/crd/bases/elasticache.services.k8s.aws_cacheparametergroups.yaml index c112961..a873d1b 100644 --- a/config/crd/bases/elasticache.services.k8s.aws_cacheparametergroups.yaml +++ b/config/crd/bases/elasticache.services.k8s.aws_cacheparametergroups.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: cacheparametergroups.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -22,26 +21,37 @@ spec: 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: "CacheParameterGroupSpec defines the desired state of CacheParameterGroup. - \n Represents the output of a CreateCacheParameterGroup operation." + description: |- + CacheParameterGroupSpec defines the desired state of CacheParameterGroup. + + + Represents the output of a CreateCacheParameterGroup operation. properties: cacheParameterGroupFamily: - description: "The name of the cache parameter group family that the - cache parameter group can be used with. \n Valid values are: memcached1.4 - | memcached1.5 | memcached1.6 | redis2.6 | redis2.8 | redis3.2 | - redis4.0 | redis5.0 | redis6.x" + description: |- + The name of the cache parameter group family that the cache parameter group + can be used with. + + + Valid values are: memcached1.4 | memcached1.5 | memcached1.6 | redis2.6 | + redis2.8 | redis3.2 | redis4.0 | redis5.0 | redis6.x type: string cacheParameterGroupName: description: A user-specified name for the cache parameter group. @@ -51,10 +61,10 @@ spec: group. type: string parameterNameValues: - description: An array of parameter names and values for the parameter - update. You must supply at least one parameter name and value; subsequent - arguments are optional. A maximum of 20 parameters may be modified - per request. + description: |- + An array of parameter names and values for the parameter update. You must + supply at least one parameter name and value; subsequent arguments are optional. + A maximum of 20 parameters may be modified per request. items: description: Describes a name-value pair that is used to update the value of a parameter. @@ -66,16 +76,16 @@ spec: type: object type: array tags: - description: A list of tags to be added to this resource. A tag is - a key-value pair. A tag key must be accompanied by a tag value, - although null is accepted. + description: |- + A list of tags to be added to this resource. A tag is a key-value pair. A + tag key must be accompanied by a tag value, although null is accepted. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -93,24 +103,26 @@ spec: description: CacheParameterGroupStatus defines the observed state of CacheParameterGroup 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 @@ -121,14 +133,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 @@ -154,12 +168,14 @@ spec: type: object type: array events: - description: A list of events. Each element in the list contains detailed - information about one event. + description: |- + A list of events. Each element in the list contains detailed information + about one event. items: - description: Represents a single occurrence of something interesting - within the system. Some examples of events are creating a cluster, - adding or removing a cache node, or rebooting a node. + description: |- + Represents a single occurrence of something interesting within the system. + Some examples of events are creating a cluster, adding or removing a cache + node, or rebooting a node. properties: date: format: date-time @@ -179,8 +195,9 @@ spec: parameters: description: A list of Parameter instances. items: - description: Describes an individual setting that controls some - aspect of ElastiCache behavior. + description: |- + Describes an individual setting that controls some aspect of ElastiCache + behavior. properties: allowedValues: type: string diff --git a/config/crd/bases/elasticache.services.k8s.aws_cachesubnetgroups.yaml b/config/crd/bases/elasticache.services.k8s.aws_cachesubnetgroups.yaml index f1062f9..a87a3bc 100644 --- a/config/crd/bases/elasticache.services.k8s.aws_cachesubnetgroups.yaml +++ b/config/crd/bases/elasticache.services.k8s.aws_cachesubnetgroups.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: cachesubnetgroups.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -21,29 +20,47 @@ spec: description: CacheSubnetGroup is the Schema for the CacheSubnetGroups 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: "CacheSubnetGroupSpec defines the desired state of CacheSubnetGroup. - \n Represents the output of one of the following operations: \n * CreateCacheSubnetGroup - \n * ModifyCacheSubnetGroup" + description: |- + CacheSubnetGroupSpec defines the desired state of CacheSubnetGroup. + + + Represents the output of one of the following operations: + + + * CreateCacheSubnetGroup + + + * ModifyCacheSubnetGroup properties: cacheSubnetGroupDescription: description: A description for the cache subnet group. type: string cacheSubnetGroupName: - description: "A name for the cache subnet group. This value is stored - as a lowercase string. \n Constraints: Must contain no more than - 255 alphanumeric characters or hyphens. \n Example: mysubnetgroup" + description: |- + A name for the cache subnet group. This value is stored as a lowercase string. + + + Constraints: Must contain no more than 255 alphanumeric characters or hyphens. + + + Example: mysubnetgroup type: string subnetIDs: description: A list of VPC subnet IDs for the cache subnet group. @@ -53,13 +70,14 @@ spec: subnetRefs: items: description: "AWSResourceReferenceWrapper provides a wrapper around - *AWSResourceReference type to provide more user friendly syntax - for references using 'from' field Ex: APIIDRef: \n from: name: - my-api" + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" properties: from: - description: AWSResourceReference provides all the values necessary - to reference another k8s resource for finding the identifier(Id/ARN/Name) + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) properties: name: type: string @@ -67,16 +85,16 @@ spec: type: object type: array tags: - description: A list of tags to be added to this resource. A tag is - a key-value pair. A tag key must be accompanied by a tag value, - although null is accepted. + description: |- + A list of tags to be added to this resource. A tag is a key-value pair. A + tag key must be accompanied by a tag value, although null is accepted. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -93,24 +111,26 @@ spec: description: CacheSubnetGroupStatus defines the observed state of CacheSubnetGroup 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 @@ -121,14 +141,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 @@ -154,12 +176,14 @@ spec: type: object type: array events: - description: A list of events. Each element in the list contains detailed - information about one event. + description: |- + A list of events. Each element in the list contains detailed information + about one event. items: - description: Represents a single occurrence of something interesting - within the system. Some examples of events are creating a cluster, - adding or removing a cache node, or rebooting a node. + description: |- + Represents a single occurrence of something interesting within the system. + Some examples of events are creating a cluster, adding or removing a cache + node, or rebooting a node. properties: date: format: date-time @@ -175,9 +199,10 @@ spec: subnets: description: A list of subnets associated with the cache subnet group. items: - description: Represents the subnet associated with a cluster. This - parameter refers to subnets defined in Amazon Virtual Private - Cloud (Amazon VPC) and used with ElastiCache. + description: |- + Represents the subnet associated with a cluster. This parameter refers to + subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with + ElastiCache. properties: subnetAvailabilityZone: description: Describes an Availability Zone in which the cluster @@ -197,8 +222,9 @@ spec: type: object type: array vpcID: - description: The Amazon Virtual Private Cloud identifier (VPC ID) - of the cache subnet group. + description: |- + The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet + group. type: string type: object type: object diff --git a/config/crd/bases/elasticache.services.k8s.aws_replicationgroups.yaml b/config/crd/bases/elasticache.services.k8s.aws_replicationgroups.yaml index b74f11b..69cbe8f 100644 --- a/config/crd/bases/elasticache.services.k8s.aws_replicationgroups.yaml +++ b/config/crd/bases/elasticache.services.k8s.aws_replicationgroups.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: replicationgroups.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -21,42 +20,75 @@ spec: description: ReplicationGroup is the Schema for the ReplicationGroups 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: "ReplicationGroupSpec defines the desired state of ReplicationGroup. - \n Contains all of the attributes of a specific Redis replication group." + description: |- + ReplicationGroupSpec defines the desired state of ReplicationGroup. + + + Contains all of the attributes of a specific Redis replication group. properties: atRestEncryptionEnabled: - description: "A flag that enables encryption at rest when set to true. - \n You cannot modify the value of AtRestEncryptionEnabled after - the replication group is created. To enable encryption at rest on - a replication group you must set AtRestEncryptionEnabled to true - when you create the replication group. \n Required: Only available - when creating a replication group in an Amazon VPC using redis version - 3.2.6, 4.x or later. \n Default: false" + description: |- + A flag that enables encryption at rest when set to true. + + + You cannot modify the value of AtRestEncryptionEnabled after the replication + group is created. To enable encryption at rest on a replication group you + must set AtRestEncryptionEnabled to true when you create the replication + group. + + + Required: Only available when creating a replication group in an Amazon VPC + using redis version 3.2.6, 4.x or later. + + + Default: false type: boolean authToken: - description: "Reserved parameter. The password used to access a password - protected server. \n AuthToken can be specified only on replication - groups where TransitEncryptionEnabled is true. \n For HIPAA compliance, - you must specify TransitEncryptionEnabled as true, an AuthToken, - and a CacheSubnetGroup. \n Password constraints: \n * Must be only - printable ASCII characters. \n * Must be at least 16 characters - and no more than 128 characters in length. \n * The only permitted - printable special characters are !, &, #, $, ^, <, >, and -. Other - printable special characters cannot be used in the AUTH token. \n - For more information, see AUTH password (http://redis.io/commands/AUTH) - at http://redis.io/commands/AUTH." + description: |- + Reserved parameter. The password used to access a password protected server. + + + AuthToken can be specified only on replication groups where TransitEncryptionEnabled + is true. + + + For HIPAA compliance, you must specify TransitEncryptionEnabled as true, + an AuthToken, and a CacheSubnetGroup. + + + Password constraints: + + + * Must be only printable ASCII characters. + + + * Must be at least 16 characters and no more than 128 characters in length. + + + * The only permitted printable special characters are !, &, #, $, ^, <, + >, and -. Other printable special characters cannot be used in the AUTH + token. + + + For more information, see AUTH password (http://redis.io/commands/AUTH) at + http://redis.io/commands/AUTH. properties: key: description: Key is the key within the secret @@ -74,80 +106,112 @@ spec: type: object x-kubernetes-map-type: atomic automaticFailoverEnabled: - description: "Specifies whether a read-only replica is automatically - promoted to read/write primary if the existing primary fails. \n - AutomaticFailoverEnabled must be enabled for Redis (cluster mode - enabled) replication groups. \n Default: false" + description: |- + Specifies whether a read-only replica is automatically promoted to read/write + primary if the existing primary fails. + + + AutomaticFailoverEnabled must be enabled for Redis (cluster mode enabled) + replication groups. + + + Default: false type: boolean cacheNodeType: - description: "The compute and memory capacity of the nodes in the - node group (shard). \n The following node types are supported by - ElastiCache. Generally speaking, the current generation types provide - more memory and computational power at lower cost when compared - to their equivalent previous generation counterparts. \n * General - purpose: Current generation: M6g node types (available only for - Redis engine version 5.0.6 onward and for Memcached engine version - 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, - cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge - For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) - M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, - cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: - cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, - cache.m4.10xlarge T4g node types (available only for Redis engine - version 5.0.6 onward and Memcached engine version 1.5.16 onward): - cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: - cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, - cache.t2.small, cache.t2.medium Previous generation: (not recommended. - Existing clusters are still supported but creation of new clusters - is not supported for these types.) T1 node types: cache.t1.micro - M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, - cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, - cache.m3.xlarge, cache.m3.2xlarge \n * Compute optimized: Previous - generation: (not recommended. Existing clusters are still supported - but creation of new clusters is not supported for these types.) - C1 node types: cache.c1.xlarge \n * Memory optimized with data tiering: - Current generation: R6gd node types (available only for Redis engine - version 6.2 onward). cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, - cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge \n - * Memory optimized: Current generation: R6g node types (available - only for Redis engine version 5.0.6 onward and for Memcached engine - version 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, - cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge - For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) - R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, - cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: - cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, - cache.r4.8xlarge, cache.r4.16xlarge Previous generation: (not recommended. - Existing clusters are still supported but creation of new clusters - is not supported for these types.) M2 node types: cache.m2.xlarge, - cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, - cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge - \n Additional node type info \n * All current generation instance - types are created in Amazon VPC by default. \n * Redis append-only - files (AOF) are not supported for T1 or T2 instances. \n * Redis - Multi-AZ with automatic failover is not supported on T1 instances. - \n * Redis configuration variables appendonly and appendfsync are - not supported on Redis version 2.8.22 and later." + description: |- + The compute and memory capacity of the nodes in the node group (shard). + + + The following node types are supported by ElastiCache. Generally speaking, + the current generation types provide more memory and computational power + at lower cost when compared to their equivalent previous generation counterparts. + + + * General purpose: Current generation: M6g node types (available only + for Redis engine version 5.0.6 onward and for Memcached engine version + 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, + cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, + cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, + cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available + only for Redis engine version 5.0.6 onward and Memcached engine version + 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 + node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: + cache.t2.micro, cache.t2.small, cache.t2.medium Previous generation: (not + recommended. Existing clusters are still supported but creation of new + clusters is not supported for these types.) T1 node types: cache.t1.micro + M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge + M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge + + + * Compute optimized: Previous generation: (not recommended. Existing clusters + are still supported but creation of new clusters is not supported for + these types.) C1 node types: cache.c1.xlarge + + + * Memory optimized with data tiering: Current generation: R6gd node types + (available only for Redis engine version 6.2 onward). cache.r6gd.xlarge, + cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, + cache.r6gd.16xlarge + + + * Memory optimized: Current generation: R6g node types (available only + for Redis engine version 5.0.6 onward and for Memcached engine version + 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, + cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, + cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, + cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + Previous generation: (not recommended. Existing clusters are still supported + but creation of new clusters is not supported for these types.) M2 node + types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: + cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge + + + Additional node type info + + + * All current generation instance types are created in Amazon VPC by default. + + + * Redis append-only files (AOF) are not supported for T1 or T2 instances. + + + * Redis Multi-AZ with automatic failover is not supported on T1 instances. + + + * Redis configuration variables appendonly and appendfsync are not supported + on Redis version 2.8.22 and later. type: string cacheParameterGroupName: - description: "The name of the parameter group to associate with this - replication group. If this argument is omitted, the default cache - parameter group for the specified engine is used. \n If you are - running Redis version 3.2.4 or later, only one node group (shard), - and want to use a default parameter group, we recommend that you - specify the parameter group by name. \n * To create a Redis (cluster - mode disabled) replication group, use CacheParameterGroupName=default.redis3.2. - \n * To create a Redis (cluster mode enabled) replication group, - use CacheParameterGroupName=default.redis3.2.cluster.on." + description: |- + The name of the parameter group to associate with this replication group. + If this argument is omitted, the default cache parameter group for the specified + engine is used. + + + If you are running Redis version 3.2.4 or later, only one node group (shard), + and want to use a default parameter group, we recommend that you specify + the parameter group by name. + + + * To create a Redis (cluster mode disabled) replication group, use CacheParameterGroupName=default.redis3.2. + + + * To create a Redis (cluster mode enabled) replication group, use CacheParameterGroupName=default.redis3.2.cluster.on. type: string cacheParameterGroupRef: description: "AWSResourceReferenceWrapper provides a wrapper around - *AWSResourceReference type to provide more user friendly syntax - for references using 'from' field Ex: APIIDRef: \n from: name: my-api" + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" properties: from: - description: AWSResourceReference provides all the values necessary - to reference another k8s resource for finding the identifier(Id/ARN/Name) + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) properties: name: type: string @@ -160,48 +224,56 @@ spec: type: string type: array cacheSubnetGroupName: - description: "The name of the cache subnet group to be used for the - replication group. \n If you're going to launch your cluster in - an Amazon VPC, you need to create a subnet group before you start - creating a cluster. For more information, see Subnets and Subnet - Groups (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html)." + description: |- + The name of the cache subnet group to be used for the replication group. + + + If you're going to launch your cluster in an Amazon VPC, you need to create + a subnet group before you start creating a cluster. For more information, + see Subnets and Subnet Groups (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html). type: string cacheSubnetGroupRef: description: "AWSResourceReferenceWrapper provides a wrapper around - *AWSResourceReference type to provide more user friendly syntax - for references using 'from' field Ex: APIIDRef: \n from: name: my-api" + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" properties: from: - description: AWSResourceReference provides all the values necessary - to reference another k8s resource for finding the identifier(Id/ARN/Name) + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) properties: name: type: string type: object type: object dataTieringEnabled: - description: Enables data tiering. Data tiering is only supported - for replication groups using the r6gd node type. This parameter - must be set to true when using r6gd nodes. For more information, - see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + description: |- + Enables data tiering. Data tiering is only supported for replication groups + using the r6gd node type. This parameter must be set to true when using r6gd + nodes. For more information, see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). type: boolean description: description: A user-created description for the replication group. type: string engine: - description: The name of the cache engine to be used for the clusters - in this replication group. Must be Redis. + description: |- + The name of the cache engine to be used for the clusters in this replication + group. Must be Redis. type: string engineVersion: - description: "The version number of the cache engine to be used for - the clusters in this replication group. To view the supported cache - engine versions, use the DescribeCacheEngineVersions operation. - \n Important: You can upgrade to a newer engine version (see Selecting - a Cache Engine and Version (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)) - in the ElastiCache User Guide, but you cannot downgrade to an earlier - engine version. If you want to use an earlier engine version, you - must delete the existing cluster or replication group and create - it anew with the earlier engine version." + description: |- + The version number of the cache engine to be used for the clusters in this + replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions + operation. + + + Important: You can upgrade to a newer engine version (see Selecting a Cache + Engine and Version (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)) + in the ElastiCache User Guide, but you cannot downgrade to an earlier engine + version. If you want to use an earlier engine version, you must delete the + existing cluster or replication group and create it anew with the earlier + engine version. type: string kmsKeyID: description: The ID of the KMS key used to encrypt the disk in the @@ -213,8 +285,9 @@ spec: description: Specifies the destination, format and type of the logs. properties: destinationDetails: - description: Configuration details of either a CloudWatch Logs - destination or Kinesis Data Firehose destination. + description: |- + Configuration details of either a CloudWatch Logs destination or Kinesis + Data Firehose destination. properties: cloudWatchLogsDetails: description: The configuration details of the CloudWatch @@ -242,25 +315,28 @@ spec: type: object type: array multiAZEnabled: - description: 'A flag indicating if you have Multi-AZ enabled to enhance - fault tolerance. For more information, see Minimizing Downtime: - Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html).' + description: |- + A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. + For more information, see Minimizing Downtime: Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html). type: boolean nodeGroupConfiguration: - description: "A list of node group (shard) configuration options. - Each node group (shard) configuration has the following members: - PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount, - and Slots. \n If you're creating a Redis (cluster mode disabled) - or a Redis (cluster mode enabled) replication group, you can use - this parameter to individually configure each node group (shard), - or you can omit this parameter. However, it is required when seeding - a Redis (cluster mode enabled) cluster from a S3 rdb file. You must - configure each node group (shard) using this parameter because you - must specify the slots for each node group." + description: |- + A list of node group (shard) configuration options. Each node group (shard) + configuration has the following members: PrimaryAvailabilityZone, ReplicaAvailabilityZones, + ReplicaCount, and Slots. + + + If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode + enabled) replication group, you can use this parameter to individually configure + each node group (shard), or you can omit this parameter. However, it is required + when seeding a Redis (cluster mode enabled) cluster from a S3 rdb file. You + must configure each node group (shard) using this parameter because you must + specify the slots for each node group. items: - description: 'Node group (shard) configuration options. Each node - group (shard) configuration has the following: Slots, PrimaryAvailabilityZone, - ReplicaAvailabilityZones, ReplicaCount.' + description: |- + Node group (shard) configuration options. Each node group (shard) configuration + has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, + ReplicaCount. properties: nodeGroupID: type: string @@ -284,15 +360,21 @@ spec: type: object type: array notificationTopicARN: - description: "The Amazon Resource Name (ARN) of the Amazon Simple - Notification Service (SNS) topic to which notifications are sent. - \n The Amazon SNS topic owner must be the same as the cluster owner." + description: |- + The Amazon Resource Name (ARN) of the Amazon Simple Notification Service + (SNS) topic to which notifications are sent. + + + The Amazon SNS topic owner must be the same as the cluster owner. type: string numNodeGroups: - description: "An optional parameter that specifies the number of node - groups (shards) for this Redis (cluster mode enabled) replication - group. For Redis (cluster mode disabled) either omit this parameter - or set it to 1. \n Default: 1" + description: |- + An optional parameter that specifies the number of node groups (shards) for + this Redis (cluster mode enabled) replication group. For Redis (cluster mode + disabled) either omit this parameter or set it to 1. + + + Default: 1 format: int64 type: integer port: @@ -301,67 +383,121 @@ spec: format: int64 type: integer preferredCacheClusterAZs: - description: "A list of EC2 Availability Zones in which the replication - group's clusters are created. The order of the Availability Zones - in the list is the order in which clusters are allocated. The primary - cluster is created in the first AZ in the list. \n This parameter - is not used if there is more than one node group (shard). You should - use NodeGroupConfiguration instead. \n If you are creating your - replication group in an Amazon VPC (recommended), you can only locate - clusters in Availability Zones associated with the subnets in the - selected subnet group. \n The number of Availability Zones listed - must equal the value of NumCacheClusters. \n Default: system chosen - Availability Zones." + description: |- + A list of EC2 Availability Zones in which the replication group's clusters + are created. The order of the Availability Zones in the list is the order + in which clusters are allocated. The primary cluster is created in the first + AZ in the list. + + + This parameter is not used if there is more than one node group (shard). + You should use NodeGroupConfiguration instead. + + + If you are creating your replication group in an Amazon VPC (recommended), + you can only locate clusters in Availability Zones associated with the subnets + in the selected subnet group. + + + The number of Availability Zones listed must equal the value of NumCacheClusters. + + + Default: system chosen Availability Zones. items: type: string type: array preferredMaintenanceWindow: - description: "Specifies the weekly time range during which maintenance - on the cluster is performed. It is specified as a range in the format - ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance - window is a 60 minute period. Valid values for ddd are: \n Specifies - the weekly time range during which maintenance on the cluster is + description: |- + Specifies the weekly time range during which maintenance on the cluster is + performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi + (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid + values for ddd are: + + + Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. - \n Valid values for ddd are: \n * sun \n * mon \n * tue \n * wed - \n * thu \n * fri \n * sat \n Example: sun:23:00-mon:01:30" + + + Valid values for ddd are: + + + * sun + + + * mon + + + * tue + + + * wed + + + * thu + + + * fri + + + * sat + + + Example: sun:23:00-mon:01:30 type: string primaryClusterID: - description: "The identifier of the cluster that serves as the primary - for this replication group. This cluster must already exist and - have a status of available. \n This parameter is not required if - NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup is specified." + description: |- + The identifier of the cluster that serves as the primary for this replication + group. This cluster must already exist and have a status of available. + + + This parameter is not required if NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup + is specified. type: string replicasPerNodeGroup: - description: An optional parameter that specifies the number of replica - nodes in each node group (shard). Valid values are 0 to 5. + description: |- + An optional parameter that specifies the number of replica nodes in each + node group (shard). Valid values are 0 to 5. format: int64 type: integer replicationGroupID: - description: "The replication group identifier. This parameter is - stored as a lowercase string. \n Constraints: \n * A name must contain - from 1 to 40 alphanumeric characters or hyphens. \n * The first - character must be a letter. \n * A name cannot end with a hyphen - or contain two consecutive hyphens." + description: |- + The replication group identifier. This parameter is stored as a lowercase + string. + + + Constraints: + + + * A name must contain from 1 to 40 alphanumeric characters or hyphens. + + + * The first character must be a letter. + + + * A name cannot end with a hyphen or contain two consecutive hyphens. type: string securityGroupIDs: - description: "One or more Amazon VPC security groups associated with - this replication group. \n Use this parameter only when you are - creating a replication group in an Amazon Virtual Private Cloud - (Amazon VPC)." + description: |- + One or more Amazon VPC security groups associated with this replication group. + + + Use this parameter only when you are creating a replication group in an Amazon + Virtual Private Cloud (Amazon VPC). items: type: string type: array securityGroupRefs: items: description: "AWSResourceReferenceWrapper provides a wrapper around - *AWSResourceReference type to provide more user friendly syntax - for references using 'from' field Ex: APIIDRef: \n from: name: - my-api" + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" properties: from: - description: AWSResourceReference provides all the values necessary - to reference another k8s resource for finding the identifier(Id/ARN/Name) + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) properties: name: type: string @@ -369,49 +505,61 @@ spec: type: object type: array snapshotARNs: - description: "A list of Amazon Resource Names (ARN) that uniquely - identify the Redis RDB snapshot files stored in Amazon S3. The snapshot - files are used to populate the new replication group. The Amazon - S3 object name in the ARN cannot contain any commas. The new replication - group will have the number of node groups (console: shards) specified - by the parameter NumNodeGroups or the number of node groups configured - by NodeGroupConfiguration regardless of the number of ARNs specified - here. \n Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb" + description: |- + A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB + snapshot files stored in Amazon S3. The snapshot files are used to populate + the new replication group. The Amazon S3 object name in the ARN cannot contain + any commas. The new replication group will have the number of node groups + (console: shards) specified by the parameter NumNodeGroups or the number + of node groups configured by NodeGroupConfiguration regardless of the number + of ARNs specified here. + + + Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb items: type: string type: array snapshotName: - description: The name of a snapshot from which to restore data into - the new replication group. The snapshot status changes to restoring - while the new replication group is being created. + description: |- + The name of a snapshot from which to restore data into the new replication + group. The snapshot status changes to restoring while the new replication + group is being created. type: string snapshotRetentionLimit: - description: "The number of days for which ElastiCache retains automatic - snapshots before deleting them. For example, if you set SnapshotRetentionLimit - to 5, a snapshot that was taken today is retained for 5 days before - being deleted. \n Default: 0 (i.e., automatic backups are disabled - for this cluster)." + description: |- + The number of days for which ElastiCache retains automatic snapshots before + deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot + that was taken today is retained for 5 days before being deleted. + + + Default: 0 (i.e., automatic backups are disabled for this cluster). format: int64 type: integer snapshotWindow: - description: "The daily time range (in UTC) during which ElastiCache - begins taking a daily snapshot of your node group (shard). \n Example: - 05:00-09:00 \n If you do not specify this parameter, ElastiCache - automatically chooses an appropriate time range." + description: |- + The daily time range (in UTC) during which ElastiCache begins taking a daily + snapshot of your node group (shard). + + + Example: 05:00-09:00 + + + If you do not specify this parameter, ElastiCache automatically chooses an + appropriate time range. type: string tags: - description: 'A list of tags to be added to this resource. Tags are - comma-separated key,value pairs (e.g. Key=myKey, Value=myKeyValue. - You can include multiple tags as shown following: Key=myKey, Value=myKeyValue - Key=mySecondKey, Value=mySecondKeyValue. Tags on replication groups - will be replicated to all nodes.' + description: |- + A list of tags to be added to this resource. Tags are comma-separated key,value + pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags as + shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, Value=mySecondKeyValue. + Tags on replication groups will be replicated to all nodes. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -421,18 +569,32 @@ spec: type: object type: array transitEncryptionEnabled: - description: "A flag that enables in-transit encryption when set to - true. \n You cannot modify the value of TransitEncryptionEnabled - after the cluster is created. To enable in-transit encryption on - a cluster you must set TransitEncryptionEnabled to true when you - create a cluster. \n This parameter is valid only if the Engine - parameter is redis, the EngineVersion parameter is 3.2.6, 4.x or - later, and the cluster is being created in an Amazon VPC. \n If - you enable in-transit encryption, you must also specify a value - for CacheSubnetGroup. \n Required: Only available when creating - a replication group in an Amazon VPC using redis version 3.2.6, - 4.x or later. \n Default: false \n For HIPAA compliance, you must - specify TransitEncryptionEnabled as true, an AuthToken, and a CacheSubnetGroup." + description: |- + A flag that enables in-transit encryption when set to true. + + + You cannot modify the value of TransitEncryptionEnabled after the cluster + is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled + to true when you create a cluster. + + + This parameter is valid only if the Engine parameter is redis, the EngineVersion + parameter is 3.2.6, 4.x or later, and the cluster is being created in an + Amazon VPC. + + + If you enable in-transit encryption, you must also specify a value for CacheSubnetGroup. + + + Required: Only available when creating a replication group in an Amazon VPC + using redis version 3.2.6, 4.x or later. + + + Default: false + + + For HIPAA compliance, you must specify TransitEncryptionEnabled as true, + an AuthToken, and a CacheSubnetGroup. type: boolean userGroupIDs: description: The user group to associate with the replication group. @@ -447,24 +609,26 @@ spec: description: ReplicationGroupStatus defines the observed state of ReplicationGroup 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 @@ -475,56 +639,67 @@ spec: - region type: object allowedScaleDownModifications: - description: A string list, each element of which specifies a cache - node type which you can use to scale your cluster or replication - group. When scaling down a Redis cluster or replication group using - ModifyCacheCluster or ModifyReplicationGroup, use a value from this - list for the CacheNodeType parameter. + description: |- + A string list, each element of which specifies a cache node type which you + can use to scale your cluster or replication group. When scaling down a Redis + cluster or replication group using ModifyCacheCluster or ModifyReplicationGroup, + use a value from this list for the CacheNodeType parameter. items: type: string type: array allowedScaleUpModifications: - description: "A string list, each element of which specifies a cache - node type which you can use to scale your cluster or replication - group. \n When scaling up a Redis cluster or replication group using - ModifyCacheCluster or ModifyReplicationGroup, use a value from this - list for the CacheNodeType parameter." + description: |- + A string list, each element of which specifies a cache node type which you + can use to scale your cluster or replication group. + + + When scaling up a Redis cluster or replication group using ModifyCacheCluster + or ModifyReplicationGroup, use a value from this list for the CacheNodeType + parameter. items: type: string type: array authTokenEnabled: - description: "A flag that enables using an AuthToken (password) when - issuing Redis commands. \n Default: false" + description: |- + A flag that enables using an AuthToken (password) when issuing Redis commands. + + + Default: false type: boolean authTokenLastModifiedDate: description: The date the auth token was last modified format: date-time type: string autoMinorVersionUpgrade: - description: If you are running Redis engine version 6.0 or later, - set this parameter to yes if you want to opt-in to the next auto - minor version upgrade campaign. This parameter is disabled for previous - versions. + description: |- + If you are running Redis engine version 6.0 or later, set this parameter + to yes if you want to opt-in to the next auto minor version upgrade campaign. + This parameter is disabled for previous versions. type: boolean automaticFailover: description: Indicates the status of automatic failover for this Redis replication group. type: string clusterEnabled: - description: "A flag indicating whether or not this replication group - is cluster enabled; i.e., whether its data can be partitioned across - multiple shards (API/CLI: node groups). \n Valid values: true | - false" + description: |- + A flag indicating whether or not this replication group is cluster enabled; + i.e., whether its data can be partitioned across multiple shards (API/CLI: + node groups). + + + Valid values: true | false type: boolean 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 @@ -550,8 +725,9 @@ spec: type: object type: array configurationEndpoint: - description: The configuration endpoint for this replication group. - Use the configuration endpoint to connect to this replication group. + description: |- + The configuration endpoint for this replication group. Use the configuration + endpoint to connect to this replication group. properties: address: type: string @@ -560,18 +736,20 @@ spec: type: integer type: object dataTiering: - description: Enables data tiering. Data tiering is only supported - for replication groups using the r6gd node type. This parameter - must be set to true when using r6gd nodes. For more information, - see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + description: |- + Enables data tiering. Data tiering is only supported for replication groups + using the r6gd node type. This parameter must be set to true when using r6gd + nodes. For more information, see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). type: string events: - description: A list of events. Each element in the list contains detailed - information about one event. + description: |- + A list of events. Each element in the list contains detailed information + about one event. items: - description: Represents a single occurrence of something interesting - within the system. Some examples of events are creating a cluster, - adding or removing a cache node, or rebooting a node. + description: |- + Represents a single occurrence of something interesting within the system. + Some examples of events are creating a cluster, adding or removing a cache + node, or rebooting a node. properties: date: format: date-time @@ -585,8 +763,9 @@ spec: type: object type: array globalReplicationGroupInfo: - description: The name of the Global datastore and role of this replication - group in the Global datastore. + description: |- + The name of the Global datastore and role of this replication group in the + Global datastore. properties: globalReplicationGroupID: type: string @@ -599,8 +778,9 @@ spec: description: Returns the destination, format and type of the logs. properties: destinationDetails: - description: Configuration details of either a CloudWatch Logs - destination or Kinesis Data Firehose destination. + description: |- + Configuration details of either a CloudWatch Logs destination or Kinesis + Data Firehose destination. properties: cloudWatchLogsDetails: description: The configuration details of the CloudWatch @@ -641,19 +821,21 @@ spec: type: string type: array multiAZ: - description: 'A flag indicating if you have Multi-AZ enabled to enhance - fault tolerance. For more information, see Minimizing Downtime: - Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html)' + description: |- + A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. + For more information, see Minimizing Downtime: Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html) type: string nodeGroups: - description: A list of node groups in this replication group. For - Redis (cluster mode disabled) replication groups, this is a single-element - list. For Redis (cluster mode enabled) replication groups, the list - contains an entry for each node group (shard). + description: |- + A list of node groups in this replication group. For Redis (cluster mode + disabled) replication groups, this is a single-element list. For Redis (cluster + mode enabled) replication groups, the list contains an entry for each node + group (shard). items: - description: Represents a collection of cache nodes in a replication - group. One node in the node group is the read/write primary node. - All the other nodes are read-only Replica nodes. + description: |- + Represents a collection of cache nodes in a replication group. One node in + the node group is the read/write primary node. All the other nodes are read-only + Replica nodes. properties: nodeGroupID: type: string @@ -673,8 +855,9 @@ spec: preferredOutpostARN: type: string readEndpoint: - description: Represents the information required for client - programs to connect to a cache node. + description: |- + Represents the information required for client programs to connect to a cache + node. properties: address: type: string @@ -685,8 +868,9 @@ spec: type: object type: array primaryEndpoint: - description: Represents the information required for client - programs to connect to a cache node. + description: |- + Represents the information required for client programs to connect to a cache + node. properties: address: type: string @@ -695,8 +879,9 @@ spec: type: integer type: object readerEndpoint: - description: Represents the information required for client - programs to connect to a cache node. + description: |- + Represents the information required for client programs to connect to a cache + node. properties: address: type: string @@ -711,8 +896,9 @@ spec: type: object type: array pendingModifiedValues: - description: A group of settings to be applied to the replication - group, either immediately or during the next maintenance window. + description: |- + A group of settings to be applied to the replication group, either immediately + or during the next maintenance window. properties: authTokenStatus: type: string @@ -723,8 +909,9 @@ spec: description: The log delivery configurations being modified properties: destinationDetails: - description: Configuration details of either a CloudWatch - Logs destination or Kinesis Data Firehose destination. + description: |- + Configuration details of either a CloudWatch Logs destination or Kinesis + Data Firehose destination. properties: cloudWatchLogsDetails: description: The configuration details of the CloudWatch @@ -780,12 +967,14 @@ spec: format: date-time type: string snapshottingClusterID: - description: The cluster ID that is used as the daily snapshot source - for the replication group. + description: |- + The cluster ID that is used as the daily snapshot source for the replication + group. type: string status: - description: The current state of this replication group - creating, - available, modifying, deleting, create-failed, snapshotting. + description: |- + The current state of this replication group - creating, available, modifying, + deleting, create-failed, snapshotting. type: string type: object type: object diff --git a/config/crd/bases/elasticache.services.k8s.aws_snapshots.yaml b/config/crd/bases/elasticache.services.k8s.aws_snapshots.yaml index 1f17abb..09c6ca2 100644 --- a/config/crd/bases/elasticache.services.k8s.aws_snapshots.yaml +++ b/config/crd/bases/elasticache.services.k8s.aws_snapshots.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: snapshots.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -21,32 +20,42 @@ spec: description: Snapshot is the Schema for the Snapshots 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: "SnapshotSpec defines the desired state of Snapshot. \n Represents - a copy of an entire Redis cluster as of the time when the snapshot was - taken." + description: |- + SnapshotSpec defines the desired state of Snapshot. + + + Represents a copy of an entire Redis cluster as of the time when the snapshot + was taken. properties: cacheClusterID: - description: The identifier of an existing cluster. The snapshot is - created from this cluster. + description: |- + The identifier of an existing cluster. The snapshot is created from this + cluster. type: string kmsKeyID: description: The ID of the KMS key used to encrypt the snapshot. type: string replicationGroupID: - description: The identifier of an existing replication group. The - snapshot is created from this replication group. + description: |- + The identifier of an existing replication group. The snapshot is created + from this replication group. type: string snapshotName: description: A name for the snapshot being created. @@ -56,16 +65,16 @@ spec: copy. type: string tags: - description: A list of tags to be added to this resource. A tag is - a key-value pair. A tag key must be accompanied by a tag value, - although null is accepted. + description: |- + A list of tags to be added to this resource. A tag is a key-value pair. A + tag key must be accompanied by a tag value, although null is accepted. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -81,24 +90,26 @@ spec: description: SnapshotStatus defines the observed state of Snapshot 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 @@ -109,69 +120,88 @@ spec: - region type: object autoMinorVersionUpgrade: - description: If you are running Redis engine version 6.0 or later, - set this parameter to yes if you want to opt-in to the next auto - minor version upgrade campaign. This parameter is disabled for previous - versions. + description: |- + If you are running Redis engine version 6.0 or later, set this parameter + to yes if you want to opt-in to the next auto minor version upgrade campaign. + This parameter is disabled for previous versions. type: boolean automaticFailover: - description: Indicates the status of automatic failover for the source - Redis replication group. + description: |- + Indicates the status of automatic failover for the source Redis replication + group. type: string cacheClusterCreateTime: description: The date and time when the source cluster was created. format: date-time type: string cacheNodeType: - description: "The name of the compute and memory capacity node type - for the source cluster. \n The following node types are supported - by ElastiCache. Generally speaking, the current generation types - provide more memory and computational power at lower cost when compared - to their equivalent previous generation counterparts. \n * General - purpose: Current generation: M6g node types (available only for - Redis engine version 5.0.6 onward and for Memcached engine version - 1.5.16 onward). cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, - cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge - For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) - M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, - cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: - cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, - cache.m4.10xlarge T4g node types (available only for Redis engine - version 5.0.6 onward and Memcached engine version 1.5.16 onward): - cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: - cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, - cache.t2.small, cache.t2.medium Previous generation: (not recommended. - Existing clusters are still supported but creation of new clusters - is not supported for these types.) T1 node types: cache.t1.micro - M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, - cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, - cache.m3.xlarge, cache.m3.2xlarge \n * Compute optimized: Previous - generation: (not recommended. Existing clusters are still supported - but creation of new clusters is not supported for these types.) - C1 node types: cache.c1.xlarge \n * Memory optimized with data tiering: - Current generation: R6gd node types (available only for Redis engine - version 6.2 onward). cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, - cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge \n - * Memory optimized: Current generation: R6g node types (available - only for Redis engine version 5.0.6 onward and for Memcached engine - version 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, - cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge - For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) - For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) - R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, - cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: - cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, - cache.r4.8xlarge, cache.r4.16xlarge Previous generation: (not recommended. - Existing clusters are still supported but creation of new clusters - is not supported for these types.) M2 node types: cache.m2.xlarge, - cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, - cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge - \n Additional node type info \n * All current generation instance - types are created in Amazon VPC by default. \n * Redis append-only - files (AOF) are not supported for T1 or T2 instances. \n * Redis - Multi-AZ with automatic failover is not supported on T1 instances. - \n * Redis configuration variables appendonly and appendfsync are - not supported on Redis version 2.8.22 and later." + description: |- + The name of the compute and memory capacity node type for the source cluster. + + + The following node types are supported by ElastiCache. Generally speaking, + the current generation types provide more memory and computational power + at lower cost when compared to their equivalent previous generation counterparts. + + + * General purpose: Current generation: M6g node types (available only + for Redis engine version 5.0.6 onward and for Memcached engine version + 1.5.16 onward). cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, + cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, + cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, + cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available + only for Redis engine version 5.0.6 onward and Memcached engine version + 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 + node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: + cache.t2.micro, cache.t2.small, cache.t2.medium Previous generation: (not + recommended. Existing clusters are still supported but creation of new + clusters is not supported for these types.) T1 node types: cache.t1.micro + M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge + M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge + + + * Compute optimized: Previous generation: (not recommended. Existing clusters + are still supported but creation of new clusters is not supported for + these types.) C1 node types: cache.c1.xlarge + + + * Memory optimized with data tiering: Current generation: R6gd node types + (available only for Redis engine version 6.2 onward). cache.r6gd.xlarge, + cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, + cache.r6gd.16xlarge + + + * Memory optimized: Current generation: R6g node types (available only + for Redis engine version 5.0.6 onward and for Memcached engine version + 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, + cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, + cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, + cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + Previous generation: (not recommended. Existing clusters are still supported + but creation of new clusters is not supported for these types.) M2 node + types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: + cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge + + + Additional node type info + + + * All current generation instance types are created in Amazon VPC by default. + + + * Redis append-only files (AOF) are not supported for T1 or T2 instances. + + + * Redis Multi-AZ with automatic failover is not supported on T1 instances. + + + * Redis configuration variables appendonly and appendfsync are not supported + on Redis version 2.8.22 and later. type: string cacheParameterGroupName: description: The cache parameter group that is associated with the @@ -182,14 +212,16 @@ spec: source cluster. type: string 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 @@ -215,10 +247,10 @@ spec: type: object type: array dataTiering: - description: Enables data tiering. Data tiering is only supported - for replication groups using the r6gd node type. This parameter - must be set to true when using r6gd nodes. For more information, - see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + description: |- + Enables data tiering. Data tiering is only supported for replication groups + using the r6gd node type. This parameter must be set to true when using r6gd + nodes. For more information, see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). type: string engine: description: The name of the cache engine (memcached or redis) used @@ -244,9 +276,10 @@ spec: cacheSize: type: string nodeGroupConfiguration: - description: 'Node group (shard) configuration options. Each - node group (shard) configuration has the following: Slots, - PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount.' + description: |- + Node group (shard) configuration options. Each node group (shard) configuration + has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, + ReplicaCount. properties: nodeGroupID: type: string @@ -276,16 +309,19 @@ spec: type: object type: array numCacheNodes: - description: "The number of cache nodes in the source cluster. \n - For clusters running Redis, this value must be 1. For clusters running - Memcached, this value must be between 1 and 40." + description: |- + The number of cache nodes in the source cluster. + + + For clusters running Redis, this value must be 1. For clusters running Memcached, + this value must be between 1 and 40. format: int64 type: integer numNodeGroups: - description: The number of node groups (shards) in this snapshot. - When restoring from a snapshot, the number of node groups (shards) - in the snapshot and in the restored replication group must be the - same. + description: |- + The number of node groups (shards) in this snapshot. When restoring from + a snapshot, the number of node groups (shards) in the snapshot and in the + restored replication group must be the same. format: int64 type: integer port: @@ -298,12 +334,37 @@ spec: cluster is located. type: string preferredMaintenanceWindow: - description: "Specifies the weekly time range during which maintenance - on the cluster is performed. It is specified as a range in the format - ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance - window is a 60 minute period. \n Valid values for ddd are: \n * - sun \n * mon \n * tue \n * wed \n * thu \n * fri \n * sat \n Example: - sun:23:00-mon:01:30" + description: |- + Specifies the weekly time range during which maintenance on the cluster is + performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi + (24H Clock UTC). The minimum maintenance window is a 60 minute period. + + + Valid values for ddd are: + + + * sun + + + * mon + + + * tue + + + * wed + + + * thu + + + * fri + + + * sat + + + Example: sun:23:00-mon:01:30 type: string preferredOutpostARN: description: The ARN (Amazon Resource Name) of the preferred outpost. @@ -312,34 +373,45 @@ spec: description: A description of the source replication group. type: string snapshotRetentionLimit: - description: "For an automatic snapshot, the number of days for which - ElastiCache retains the snapshot before deleting it. \n For manual - snapshots, this field reflects the SnapshotRetentionLimit for the - source cluster when the snapshot was created. This field is otherwise - ignored: Manual snapshots do not expire, and can only be deleted - using the DeleteSnapshot operation. \n Important If the value of - SnapshotRetentionLimit is set to zero (0), backups are turned off." + description: |- + For an automatic snapshot, the number of days for which ElastiCache retains + the snapshot before deleting it. + + + For manual snapshots, this field reflects the SnapshotRetentionLimit for + the source cluster when the snapshot was created. This field is otherwise + ignored: Manual snapshots do not expire, and can only be deleted using the + DeleteSnapshot operation. + + + Important If the value of SnapshotRetentionLimit is set to zero (0), backups + are turned off. format: int64 type: integer snapshotSource: - description: Indicates whether the snapshot is from an automatic backup - (automated) or was created manually (manual). + description: |- + Indicates whether the snapshot is from an automatic backup (automated) or + was created manually (manual). type: string snapshotStatus: - description: 'The status of the snapshot. Valid values: creating | - available | restoring | copying | deleting.' + description: |- + The status of the snapshot. Valid values: creating | available | restoring + | copying | deleting. type: string snapshotWindow: - description: The daily time range during which ElastiCache takes daily - snapshots of the source cluster. + description: |- + The daily time range during which ElastiCache takes daily snapshots of the + source cluster. type: string topicARN: - description: The Amazon Resource Name (ARN) for the topic used by - the source cluster for publishing notifications. + description: |- + The Amazon Resource Name (ARN) for the topic used by the source cluster for + publishing notifications. type: string vpcID: - description: The Amazon Virtual Private Cloud identifier (VPC ID) - of the cache subnet group for the source cluster. + description: |- + The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet + group for the source cluster. type: string type: object type: object diff --git a/config/crd/bases/elasticache.services.k8s.aws_usergroups.yaml b/config/crd/bases/elasticache.services.k8s.aws_usergroups.yaml index e76b3d2..fb0c481 100644 --- a/config/crd/bases/elasticache.services.k8s.aws_usergroups.yaml +++ b/config/crd/bases/elasticache.services.k8s.aws_usergroups.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: usergroups.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -21,14 +20,19 @@ spec: description: UserGroup is the Schema for the UserGroups 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 @@ -38,16 +42,16 @@ spec: description: The current supported value is Redis. type: string tags: - description: A list of tags to be added to this resource. A tag is - a key-value pair. A tag key must be accompanied by a tag value, - although null is accepted. + description: |- + A list of tags to be added to this resource. A tag is a key-value pair. A + tag key must be accompanied by a tag value, although null is accepted. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -72,24 +76,26 @@ spec: description: UserGroupStatus defines the observed state of UserGroup 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 @@ -100,14 +106,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/elasticache.services.k8s.aws_users.yaml b/config/crd/bases/elasticache.services.k8s.aws_users.yaml index f18ffbc..1507f20 100644 --- a/config/crd/bases/elasticache.services.k8s.aws_users.yaml +++ b/config/crd/bases/elasticache.services.k8s.aws_users.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: users.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -21,14 +20,19 @@ spec: description: User is the Schema for the Users 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 @@ -44,11 +48,13 @@ spec: description: Indicates a password is not required for this user. type: boolean passwords: - description: Passwords used for this user. You can create up to two - passwords for each user. + description: |- + Passwords used for this user. You can create up to two passwords for each + user. items: - description: SecretKeyReference combines a k8s corev1.SecretReference - with a specific key within the referred-to Secret + description: |- + SecretKeyReference combines a k8s corev1.SecretReference with a + specific key within the referred-to Secret properties: key: description: Key is the key within the secret @@ -67,16 +73,16 @@ spec: x-kubernetes-map-type: atomic type: array tags: - description: A list of tags to be added to this resource. A tag is - a key-value pair. A tag key must be accompanied by a tag value, - although null is accepted. + description: |- + A list of tags to be added to this resource. A tag is a key-value pair. A + tag key must be accompanied by a tag value, although null is accepted. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -101,24 +107,26 @@ spec: description: UserStatus defines the observed state of User 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 @@ -138,14 +146,16 @@ spec: type: string 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/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 34b9b70..e8ef1c3 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-elasticache-controller rules: - apiGroups: diff --git a/go.mod b/go.mod index 5741311..0f033d3 100644 --- a/go.mod +++ b/go.mod @@ -6,19 +6,19 @@ toolchain go1.21.5 require ( github.com/aws-controllers-k8s/ec2-controller v1.0.7 - github.com/aws-controllers-k8s/runtime v0.29.2 + github.com/aws-controllers-k8s/runtime v0.34.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/pkg/errors v0.9.1 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.2 ) require ( @@ -27,9 +27,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 @@ -47,37 +47,37 @@ 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/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.23.0 // indirect + golang.org/x/oauth2 v0.12.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.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.33.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 a6827c6..d9e1fca 100644 --- a/go.sum +++ b/go.sum @@ -1,10 +1,9 @@ github.com/aws-controllers-k8s/ec2-controller v1.0.7 h1:7MDu2bq8NFKbgzzgHYPFRT7bf+SmTchgWuq8ixKK0Jc= github.com/aws-controllers-k8s/ec2-controller v1.0.7/go.mod h1:PvsQehgncHgcu9FiY13M45+GkVsKI98g7G83SrgH7vY= -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.34.0 h1:pz8MTzz8bY9JMTSMjvWx9SAJ6bJQIEx5ZrXw6wS74mc= +github.com/aws-controllers-k8s/runtime v0.34.0/go.mod h1:aCud9ahYydZ22JhBStUOW2hnzyE1lWPhGAfxW5AW1YU= 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= @@ -19,17 +18,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= @@ -42,7 +41,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= @@ -51,8 +49,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= @@ -68,7 +67,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= @@ -79,7 +77,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= @@ -91,8 +88,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= @@ -100,23 +97,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= @@ -128,23 +124,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= @@ -152,55 +142,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.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +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.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= 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= @@ -211,10 +188,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.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= 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= @@ -227,27 +203,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.2 h1:FwHwD1CTUemg0pW2otk7/U5/i5m2ymzvOXdbeGOUvw0= +sigs.k8s.io/controller-runtime v0.17.2/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 7e3cf26..aa2cb77 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 name: elasticache-chart description: A Helm chart for the ACK service controller for Amazon ElastiCache (ElastiCache) -version: 0.0.29 -appVersion: 0.0.29 +version: 0.0.30 +appVersion: 0.0.30 home: https://github.com/aws-controllers-k8s/elasticache-controller icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png sources: diff --git a/helm/crds/elasticache.services.k8s.aws_cacheparametergroups.yaml b/helm/crds/elasticache.services.k8s.aws_cacheparametergroups.yaml index c112961..a873d1b 100644 --- a/helm/crds/elasticache.services.k8s.aws_cacheparametergroups.yaml +++ b/helm/crds/elasticache.services.k8s.aws_cacheparametergroups.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: cacheparametergroups.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -22,26 +21,37 @@ spec: 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: "CacheParameterGroupSpec defines the desired state of CacheParameterGroup. - \n Represents the output of a CreateCacheParameterGroup operation." + description: |- + CacheParameterGroupSpec defines the desired state of CacheParameterGroup. + + + Represents the output of a CreateCacheParameterGroup operation. properties: cacheParameterGroupFamily: - description: "The name of the cache parameter group family that the - cache parameter group can be used with. \n Valid values are: memcached1.4 - | memcached1.5 | memcached1.6 | redis2.6 | redis2.8 | redis3.2 | - redis4.0 | redis5.0 | redis6.x" + description: |- + The name of the cache parameter group family that the cache parameter group + can be used with. + + + Valid values are: memcached1.4 | memcached1.5 | memcached1.6 | redis2.6 | + redis2.8 | redis3.2 | redis4.0 | redis5.0 | redis6.x type: string cacheParameterGroupName: description: A user-specified name for the cache parameter group. @@ -51,10 +61,10 @@ spec: group. type: string parameterNameValues: - description: An array of parameter names and values for the parameter - update. You must supply at least one parameter name and value; subsequent - arguments are optional. A maximum of 20 parameters may be modified - per request. + description: |- + An array of parameter names and values for the parameter update. You must + supply at least one parameter name and value; subsequent arguments are optional. + A maximum of 20 parameters may be modified per request. items: description: Describes a name-value pair that is used to update the value of a parameter. @@ -66,16 +76,16 @@ spec: type: object type: array tags: - description: A list of tags to be added to this resource. A tag is - a key-value pair. A tag key must be accompanied by a tag value, - although null is accepted. + description: |- + A list of tags to be added to this resource. A tag is a key-value pair. A + tag key must be accompanied by a tag value, although null is accepted. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -93,24 +103,26 @@ spec: description: CacheParameterGroupStatus defines the observed state of CacheParameterGroup 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 @@ -121,14 +133,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 @@ -154,12 +168,14 @@ spec: type: object type: array events: - description: A list of events. Each element in the list contains detailed - information about one event. + description: |- + A list of events. Each element in the list contains detailed information + about one event. items: - description: Represents a single occurrence of something interesting - within the system. Some examples of events are creating a cluster, - adding or removing a cache node, or rebooting a node. + description: |- + Represents a single occurrence of something interesting within the system. + Some examples of events are creating a cluster, adding or removing a cache + node, or rebooting a node. properties: date: format: date-time @@ -179,8 +195,9 @@ spec: parameters: description: A list of Parameter instances. items: - description: Describes an individual setting that controls some - aspect of ElastiCache behavior. + description: |- + Describes an individual setting that controls some aspect of ElastiCache + behavior. properties: allowedValues: type: string diff --git a/helm/crds/elasticache.services.k8s.aws_cachesubnetgroups.yaml b/helm/crds/elasticache.services.k8s.aws_cachesubnetgroups.yaml index da3e7af..8b3f123 100644 --- a/helm/crds/elasticache.services.k8s.aws_cachesubnetgroups.yaml +++ b/helm/crds/elasticache.services.k8s.aws_cachesubnetgroups.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: cachesubnetgroups.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -21,29 +20,47 @@ spec: description: CacheSubnetGroup is the Schema for the CacheSubnetGroups 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: "CacheSubnetGroupSpec defines the desired state of CacheSubnetGroup. - \n Represents the output of one of the following operations: \n - CreateCacheSubnetGroup - \n - ModifyCacheSubnetGroup" + description: |- + CacheSubnetGroupSpec defines the desired state of CacheSubnetGroup. + + + Represents the output of one of the following operations: + + + - CreateCacheSubnetGroup + + + - ModifyCacheSubnetGroup properties: cacheSubnetGroupDescription: description: A description for the cache subnet group. type: string cacheSubnetGroupName: - description: "A name for the cache subnet group. This value is stored - as a lowercase string. \n Constraints: Must contain no more than - 255 alphanumeric characters or hyphens. \n Example: mysubnetgroup" + description: |- + A name for the cache subnet group. This value is stored as a lowercase string. + + + Constraints: Must contain no more than 255 alphanumeric characters or hyphens. + + + Example: mysubnetgroup type: string subnetIDs: description: A list of VPC subnet IDs for the cache subnet group. @@ -53,13 +70,14 @@ spec: subnetRefs: items: description: "AWSResourceReferenceWrapper provides a wrapper around - *AWSResourceReference type to provide more user friendly syntax - for references using 'from' field Ex: APIIDRef: \n from: name: - my-api" + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" properties: from: - description: AWSResourceReference provides all the values necessary - to reference another k8s resource for finding the identifier(Id/ARN/Name) + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) properties: name: type: string @@ -67,16 +85,16 @@ spec: type: object type: array tags: - description: A list of tags to be added to this resource. A tag is - a key-value pair. A tag key must be accompanied by a tag value, - although null is accepted. + description: |- + A list of tags to be added to this resource. A tag is a key-value pair. A + tag key must be accompanied by a tag value, although null is accepted. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -93,24 +111,26 @@ spec: description: CacheSubnetGroupStatus defines the observed state of CacheSubnetGroup 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 @@ -121,14 +141,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 @@ -154,12 +176,14 @@ spec: type: object type: array events: - description: A list of events. Each element in the list contains detailed - information about one event. + description: |- + A list of events. Each element in the list contains detailed information + about one event. items: - description: Represents a single occurrence of something interesting - within the system. Some examples of events are creating a cluster, - adding or removing a cache node, or rebooting a node. + description: |- + Represents a single occurrence of something interesting within the system. + Some examples of events are creating a cluster, adding or removing a cache + node, or rebooting a node. properties: date: format: date-time @@ -175,9 +199,10 @@ spec: subnets: description: A list of subnets associated with the cache subnet group. items: - description: Represents the subnet associated with a cluster. This - parameter refers to subnets defined in Amazon Virtual Private - Cloud (Amazon VPC) and used with ElastiCache. + description: |- + Represents the subnet associated with a cluster. This parameter refers to + subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with + ElastiCache. properties: subnetAvailabilityZone: description: Describes an Availability Zone in which the cluster @@ -197,8 +222,9 @@ spec: type: object type: array vpcID: - description: The Amazon Virtual Private Cloud identifier (VPC ID) - of the cache subnet group. + description: |- + The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet + group. type: string type: object type: object diff --git a/helm/crds/elasticache.services.k8s.aws_replicationgroups.yaml b/helm/crds/elasticache.services.k8s.aws_replicationgroups.yaml index 6e6e17a..340168a 100644 --- a/helm/crds/elasticache.services.k8s.aws_replicationgroups.yaml +++ b/helm/crds/elasticache.services.k8s.aws_replicationgroups.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: replicationgroups.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -21,42 +20,75 @@ spec: description: ReplicationGroup is the Schema for the ReplicationGroups 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: "ReplicationGroupSpec defines the desired state of ReplicationGroup. - \n Contains all of the attributes of a specific Redis replication group." + description: |- + ReplicationGroupSpec defines the desired state of ReplicationGroup. + + + Contains all of the attributes of a specific Redis replication group. properties: atRestEncryptionEnabled: - description: "A flag that enables encryption at rest when set to true. - \n You cannot modify the value of AtRestEncryptionEnabled after - the replication group is created. To enable encryption at rest on - a replication group you must set AtRestEncryptionEnabled to true - when you create the replication group. \n Required: Only available - when creating a replication group in an Amazon VPC using redis version - 3.2.6, 4.x or later. \n Default: false" + description: |- + A flag that enables encryption at rest when set to true. + + + You cannot modify the value of AtRestEncryptionEnabled after the replication + group is created. To enable encryption at rest on a replication group you + must set AtRestEncryptionEnabled to true when you create the replication + group. + + + Required: Only available when creating a replication group in an Amazon VPC + using redis version 3.2.6, 4.x or later. + + + Default: false type: boolean authToken: - description: "Reserved parameter. The password used to access a password - protected server. \n AuthToken can be specified only on replication - groups where TransitEncryptionEnabled is true. \n For HIPAA compliance, - you must specify TransitEncryptionEnabled as true, an AuthToken, - and a CacheSubnetGroup. \n Password constraints: \n - Must be only - printable ASCII characters. \n - Must be at least 16 characters - and no more than 128 characters in length. \n - The only permitted - printable special characters are !, &, #, $, ^, <, >, and -. Other - printable special characters cannot be used in the AUTH token. \n - For more information, see AUTH password (http://redis.io/commands/AUTH) - at http://redis.io/commands/AUTH." + description: |- + Reserved parameter. The password used to access a password protected server. + + + AuthToken can be specified only on replication groups where TransitEncryptionEnabled + is true. + + + For HIPAA compliance, you must specify TransitEncryptionEnabled as true, + an AuthToken, and a CacheSubnetGroup. + + + Password constraints: + + + - Must be only printable ASCII characters. + + + - Must be at least 16 characters and no more than 128 characters in length. + + + - The only permitted printable special characters are !, &, #, $, ^, <, + >, and -. Other printable special characters cannot be used in the AUTH + token. + + + For more information, see AUTH password (http://redis.io/commands/AUTH) at + http://redis.io/commands/AUTH. properties: key: description: Key is the key within the secret @@ -74,80 +106,112 @@ spec: type: object x-kubernetes-map-type: atomic automaticFailoverEnabled: - description: "Specifies whether a read-only replica is automatically - promoted to read/write primary if the existing primary fails. \n - AutomaticFailoverEnabled must be enabled for Redis (cluster mode - enabled) replication groups. \n Default: false" + description: |- + Specifies whether a read-only replica is automatically promoted to read/write + primary if the existing primary fails. + + + AutomaticFailoverEnabled must be enabled for Redis (cluster mode enabled) + replication groups. + + + Default: false type: boolean cacheNodeType: - description: "The compute and memory capacity of the nodes in the - node group (shard). \n The following node types are supported by - ElastiCache. Generally speaking, the current generation types provide - more memory and computational power at lower cost when compared - to their equivalent previous generation counterparts. \n - General - purpose: Current generation: M6g node types (available only for - Redis engine version 5.0.6 onward and for Memcached engine version - 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, - cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge - For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) - M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, - cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: - cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, - cache.m4.10xlarge T4g node types (available only for Redis engine - version 5.0.6 onward and Memcached engine version 1.5.16 onward): - cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: - cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, - cache.t2.small, cache.t2.medium Previous generation: (not recommended. - Existing clusters are still supported but creation of new clusters - is not supported for these types.) T1 node types: cache.t1.micro - M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, - cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, - cache.m3.xlarge, cache.m3.2xlarge \n - Compute optimized: Previous - generation: (not recommended. Existing clusters are still supported - but creation of new clusters is not supported for these types.) - C1 node types: cache.c1.xlarge \n - Memory optimized with data tiering: - Current generation: R6gd node types (available only for Redis engine - version 6.2 onward). cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, - cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge \n - - Memory optimized: Current generation: R6g node types (available - only for Redis engine version 5.0.6 onward and for Memcached engine - version 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, - cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge - For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) - R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, - cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: - cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, - cache.r4.8xlarge, cache.r4.16xlarge Previous generation: (not recommended. - Existing clusters are still supported but creation of new clusters - is not supported for these types.) M2 node types: cache.m2.xlarge, - cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, - cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge - \n Additional node type info \n - All current generation instance - types are created in Amazon VPC by default. \n - Redis append-only - files (AOF) are not supported for T1 or T2 instances. \n - Redis - Multi-AZ with automatic failover is not supported on T1 instances. - \n - Redis configuration variables appendonly and appendfsync are - not supported on Redis version 2.8.22 and later." + description: |- + The compute and memory capacity of the nodes in the node group (shard). + + + The following node types are supported by ElastiCache. Generally speaking, + the current generation types provide more memory and computational power + at lower cost when compared to their equivalent previous generation counterparts. + + + - General purpose: Current generation: M6g node types (available only + for Redis engine version 5.0.6 onward and for Memcached engine version + 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, + cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, + cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, + cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available + only for Redis engine version 5.0.6 onward and Memcached engine version + 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 + node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: + cache.t2.micro, cache.t2.small, cache.t2.medium Previous generation: (not + recommended. Existing clusters are still supported but creation of new + clusters is not supported for these types.) T1 node types: cache.t1.micro + M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge + M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge + + + - Compute optimized: Previous generation: (not recommended. Existing clusters + are still supported but creation of new clusters is not supported for + these types.) C1 node types: cache.c1.xlarge + + + - Memory optimized with data tiering: Current generation: R6gd node types + (available only for Redis engine version 6.2 onward). cache.r6gd.xlarge, + cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, + cache.r6gd.16xlarge + + + - Memory optimized: Current generation: R6g node types (available only + for Redis engine version 5.0.6 onward and for Memcached engine version + 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, + cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, + cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, + cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + Previous generation: (not recommended. Existing clusters are still supported + but creation of new clusters is not supported for these types.) M2 node + types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: + cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge + + + Additional node type info + + + - All current generation instance types are created in Amazon VPC by default. + + + - Redis append-only files (AOF) are not supported for T1 or T2 instances. + + + - Redis Multi-AZ with automatic failover is not supported on T1 instances. + + + - Redis configuration variables appendonly and appendfsync are not supported + on Redis version 2.8.22 and later. type: string cacheParameterGroupName: - description: "The name of the parameter group to associate with this - replication group. If this argument is omitted, the default cache - parameter group for the specified engine is used. \n If you are - running Redis version 3.2.4 or later, only one node group (shard), - and want to use a default parameter group, we recommend that you - specify the parameter group by name. \n - To create a Redis (cluster - mode disabled) replication group, use CacheParameterGroupName=default.redis3.2. - \n - To create a Redis (cluster mode enabled) replication group, - use CacheParameterGroupName=default.redis3.2.cluster.on." + description: |- + The name of the parameter group to associate with this replication group. + If this argument is omitted, the default cache parameter group for the specified + engine is used. + + + If you are running Redis version 3.2.4 or later, only one node group (shard), + and want to use a default parameter group, we recommend that you specify + the parameter group by name. + + + - To create a Redis (cluster mode disabled) replication group, use CacheParameterGroupName=default.redis3.2. + + + - To create a Redis (cluster mode enabled) replication group, use CacheParameterGroupName=default.redis3.2.cluster.on. type: string cacheParameterGroupRef: description: "AWSResourceReferenceWrapper provides a wrapper around - *AWSResourceReference type to provide more user friendly syntax - for references using 'from' field Ex: APIIDRef: \n from: name: my-api" + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" properties: from: - description: AWSResourceReference provides all the values necessary - to reference another k8s resource for finding the identifier(Id/ARN/Name) + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) properties: name: type: string @@ -160,48 +224,56 @@ spec: type: string type: array cacheSubnetGroupName: - description: "The name of the cache subnet group to be used for the - replication group. \n If you're going to launch your cluster in - an Amazon VPC, you need to create a subnet group before you start - creating a cluster. For more information, see Subnets and Subnet - Groups (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html)." + description: |- + The name of the cache subnet group to be used for the replication group. + + + If you're going to launch your cluster in an Amazon VPC, you need to create + a subnet group before you start creating a cluster. For more information, + see Subnets and Subnet Groups (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html). type: string cacheSubnetGroupRef: description: "AWSResourceReferenceWrapper provides a wrapper around - *AWSResourceReference type to provide more user friendly syntax - for references using 'from' field Ex: APIIDRef: \n from: name: my-api" + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" properties: from: - description: AWSResourceReference provides all the values necessary - to reference another k8s resource for finding the identifier(Id/ARN/Name) + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) properties: name: type: string type: object type: object dataTieringEnabled: - description: Enables data tiering. Data tiering is only supported - for replication groups using the r6gd node type. This parameter - must be set to true when using r6gd nodes. For more information, - see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + description: |- + Enables data tiering. Data tiering is only supported for replication groups + using the r6gd node type. This parameter must be set to true when using r6gd + nodes. For more information, see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). type: boolean description: description: A user-created description for the replication group. type: string engine: - description: The name of the cache engine to be used for the clusters - in this replication group. Must be Redis. + description: |- + The name of the cache engine to be used for the clusters in this replication + group. Must be Redis. type: string engineVersion: - description: "The version number of the cache engine to be used for - the clusters in this replication group. To view the supported cache - engine versions, use the DescribeCacheEngineVersions operation. - \n Important: You can upgrade to a newer engine version (see Selecting - a Cache Engine and Version (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)) - in the ElastiCache User Guide, but you cannot downgrade to an earlier - engine version. If you want to use an earlier engine version, you - must delete the existing cluster or replication group and create - it anew with the earlier engine version." + description: |- + The version number of the cache engine to be used for the clusters in this + replication group. To view the supported cache engine versions, use the DescribeCacheEngineVersions + operation. + + + Important: You can upgrade to a newer engine version (see Selecting a Cache + Engine and Version (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)) + in the ElastiCache User Guide, but you cannot downgrade to an earlier engine + version. If you want to use an earlier engine version, you must delete the + existing cluster or replication group and create it anew with the earlier + engine version. type: string kmsKeyID: description: The ID of the KMS key used to encrypt the disk in the @@ -213,8 +285,9 @@ spec: description: Specifies the destination, format and type of the logs. properties: destinationDetails: - description: Configuration details of either a CloudWatch Logs - destination or Kinesis Data Firehose destination. + description: |- + Configuration details of either a CloudWatch Logs destination or Kinesis + Data Firehose destination. properties: cloudWatchLogsDetails: description: The configuration details of the CloudWatch @@ -242,25 +315,28 @@ spec: type: object type: array multiAZEnabled: - description: 'A flag indicating if you have Multi-AZ enabled to enhance - fault tolerance. For more information, see Minimizing Downtime: - Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html).' + description: |- + A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. + For more information, see Minimizing Downtime: Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html). type: boolean nodeGroupConfiguration: - description: "A list of node group (shard) configuration options. - Each node group (shard) configuration has the following members: - PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount, - and Slots. \n If you're creating a Redis (cluster mode disabled) - or a Redis (cluster mode enabled) replication group, you can use - this parameter to individually configure each node group (shard), - or you can omit this parameter. However, it is required when seeding - a Redis (cluster mode enabled) cluster from a S3 rdb file. You must - configure each node group (shard) using this parameter because you - must specify the slots for each node group." + description: |- + A list of node group (shard) configuration options. Each node group (shard) + configuration has the following members: PrimaryAvailabilityZone, ReplicaAvailabilityZones, + ReplicaCount, and Slots. + + + If you're creating a Redis (cluster mode disabled) or a Redis (cluster mode + enabled) replication group, you can use this parameter to individually configure + each node group (shard), or you can omit this parameter. However, it is required + when seeding a Redis (cluster mode enabled) cluster from a S3 rdb file. You + must configure each node group (shard) using this parameter because you must + specify the slots for each node group. items: - description: 'Node group (shard) configuration options. Each node - group (shard) configuration has the following: Slots, PrimaryAvailabilityZone, - ReplicaAvailabilityZones, ReplicaCount.' + description: |- + Node group (shard) configuration options. Each node group (shard) configuration + has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, + ReplicaCount. properties: nodeGroupID: type: string @@ -284,15 +360,21 @@ spec: type: object type: array notificationTopicARN: - description: "The Amazon Resource Name (ARN) of the Amazon Simple - Notification Service (SNS) topic to which notifications are sent. - \n The Amazon SNS topic owner must be the same as the cluster owner." + description: |- + The Amazon Resource Name (ARN) of the Amazon Simple Notification Service + (SNS) topic to which notifications are sent. + + + The Amazon SNS topic owner must be the same as the cluster owner. type: string numNodeGroups: - description: "An optional parameter that specifies the number of node - groups (shards) for this Redis (cluster mode enabled) replication - group. For Redis (cluster mode disabled) either omit this parameter - or set it to 1. \n Default: 1" + description: |- + An optional parameter that specifies the number of node groups (shards) for + this Redis (cluster mode enabled) replication group. For Redis (cluster mode + disabled) either omit this parameter or set it to 1. + + + Default: 1 format: int64 type: integer port: @@ -301,67 +383,121 @@ spec: format: int64 type: integer preferredCacheClusterAZs: - description: "A list of EC2 Availability Zones in which the replication - group's clusters are created. The order of the Availability Zones - in the list is the order in which clusters are allocated. The primary - cluster is created in the first AZ in the list. \n This parameter - is not used if there is more than one node group (shard). You should - use NodeGroupConfiguration instead. \n If you are creating your - replication group in an Amazon VPC (recommended), you can only locate - clusters in Availability Zones associated with the subnets in the - selected subnet group. \n The number of Availability Zones listed - must equal the value of NumCacheClusters. \n Default: system chosen - Availability Zones." + description: |- + A list of EC2 Availability Zones in which the replication group's clusters + are created. The order of the Availability Zones in the list is the order + in which clusters are allocated. The primary cluster is created in the first + AZ in the list. + + + This parameter is not used if there is more than one node group (shard). + You should use NodeGroupConfiguration instead. + + + If you are creating your replication group in an Amazon VPC (recommended), + you can only locate clusters in Availability Zones associated with the subnets + in the selected subnet group. + + + The number of Availability Zones listed must equal the value of NumCacheClusters. + + + Default: system chosen Availability Zones. items: type: string type: array preferredMaintenanceWindow: - description: "Specifies the weekly time range during which maintenance - on the cluster is performed. It is specified as a range in the format - ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance - window is a 60 minute period. Valid values for ddd are: \n Specifies - the weekly time range during which maintenance on the cluster is + description: |- + Specifies the weekly time range during which maintenance on the cluster is + performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi + (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid + values for ddd are: + + + Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. - \n Valid values for ddd are: \n - sun \n - mon \n - tue \n - wed - \n - thu \n - fri \n - sat \n Example: sun:23:00-mon:01:30" + + + Valid values for ddd are: + + + - sun + + + - mon + + + - tue + + + - wed + + + - thu + + + - fri + + + - sat + + + Example: sun:23:00-mon:01:30 type: string primaryClusterID: - description: "The identifier of the cluster that serves as the primary - for this replication group. This cluster must already exist and - have a status of available. \n This parameter is not required if - NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup is specified." + description: |- + The identifier of the cluster that serves as the primary for this replication + group. This cluster must already exist and have a status of available. + + + This parameter is not required if NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup + is specified. type: string replicasPerNodeGroup: - description: An optional parameter that specifies the number of replica - nodes in each node group (shard). Valid values are 0 to 5. + description: |- + An optional parameter that specifies the number of replica nodes in each + node group (shard). Valid values are 0 to 5. format: int64 type: integer replicationGroupID: - description: "The replication group identifier. This parameter is - stored as a lowercase string. \n Constraints: \n - A name must contain - from 1 to 40 alphanumeric characters or hyphens. \n - The first - character must be a letter. \n - A name cannot end with a hyphen - or contain two consecutive hyphens." + description: |- + The replication group identifier. This parameter is stored as a lowercase + string. + + + Constraints: + + + - A name must contain from 1 to 40 alphanumeric characters or hyphens. + + + - The first character must be a letter. + + + - A name cannot end with a hyphen or contain two consecutive hyphens. type: string securityGroupIDs: - description: "One or more Amazon VPC security groups associated with - this replication group. \n Use this parameter only when you are - creating a replication group in an Amazon Virtual Private Cloud - (Amazon VPC)." + description: |- + One or more Amazon VPC security groups associated with this replication group. + + + Use this parameter only when you are creating a replication group in an Amazon + Virtual Private Cloud (Amazon VPC). items: type: string type: array securityGroupRefs: items: description: "AWSResourceReferenceWrapper provides a wrapper around - *AWSResourceReference type to provide more user friendly syntax - for references using 'from' field Ex: APIIDRef: \n from: name: - my-api" + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" properties: from: - description: AWSResourceReference provides all the values necessary - to reference another k8s resource for finding the identifier(Id/ARN/Name) + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) properties: name: type: string @@ -369,49 +505,61 @@ spec: type: object type: array snapshotARNs: - description: "A list of Amazon Resource Names (ARN) that uniquely - identify the Redis RDB snapshot files stored in Amazon S3. The snapshot - files are used to populate the new replication group. The Amazon - S3 object name in the ARN cannot contain any commas. The new replication - group will have the number of node groups (console: shards) specified - by the parameter NumNodeGroups or the number of node groups configured - by NodeGroupConfiguration regardless of the number of ARNs specified - here. \n Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb" + description: |- + A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB + snapshot files stored in Amazon S3. The snapshot files are used to populate + the new replication group. The Amazon S3 object name in the ARN cannot contain + any commas. The new replication group will have the number of node groups + (console: shards) specified by the parameter NumNodeGroups or the number + of node groups configured by NodeGroupConfiguration regardless of the number + of ARNs specified here. + + + Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb items: type: string type: array snapshotName: - description: The name of a snapshot from which to restore data into - the new replication group. The snapshot status changes to restoring - while the new replication group is being created. + description: |- + The name of a snapshot from which to restore data into the new replication + group. The snapshot status changes to restoring while the new replication + group is being created. type: string snapshotRetentionLimit: - description: "The number of days for which ElastiCache retains automatic - snapshots before deleting them. For example, if you set SnapshotRetentionLimit - to 5, a snapshot that was taken today is retained for 5 days before - being deleted. \n Default: 0 (i.e., automatic backups are disabled - for this cluster)." + description: |- + The number of days for which ElastiCache retains automatic snapshots before + deleting them. For example, if you set SnapshotRetentionLimit to 5, a snapshot + that was taken today is retained for 5 days before being deleted. + + + Default: 0 (i.e., automatic backups are disabled for this cluster). format: int64 type: integer snapshotWindow: - description: "The daily time range (in UTC) during which ElastiCache - begins taking a daily snapshot of your node group (shard). \n Example: - 05:00-09:00 \n If you do not specify this parameter, ElastiCache - automatically chooses an appropriate time range." + description: |- + The daily time range (in UTC) during which ElastiCache begins taking a daily + snapshot of your node group (shard). + + + Example: 05:00-09:00 + + + If you do not specify this parameter, ElastiCache automatically chooses an + appropriate time range. type: string tags: - description: 'A list of tags to be added to this resource. Tags are - comma-separated key,value pairs (e.g. Key=myKey, Value=myKeyValue. - You can include multiple tags as shown following: Key=myKey, Value=myKeyValue - Key=mySecondKey, Value=mySecondKeyValue. Tags on replication groups - will be replicated to all nodes.' + description: |- + A list of tags to be added to this resource. Tags are comma-separated key,value + pairs (e.g. Key=myKey, Value=myKeyValue. You can include multiple tags as + shown following: Key=myKey, Value=myKeyValue Key=mySecondKey, Value=mySecondKeyValue. + Tags on replication groups will be replicated to all nodes. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -421,18 +569,32 @@ spec: type: object type: array transitEncryptionEnabled: - description: "A flag that enables in-transit encryption when set to - true. \n You cannot modify the value of TransitEncryptionEnabled - after the cluster is created. To enable in-transit encryption on - a cluster you must set TransitEncryptionEnabled to true when you - create a cluster. \n This parameter is valid only if the Engine - parameter is redis, the EngineVersion parameter is 3.2.6, 4.x or - later, and the cluster is being created in an Amazon VPC. \n If - you enable in-transit encryption, you must also specify a value - for CacheSubnetGroup. \n Required: Only available when creating - a replication group in an Amazon VPC using redis version 3.2.6, - 4.x or later. \n Default: false \n For HIPAA compliance, you must - specify TransitEncryptionEnabled as true, an AuthToken, and a CacheSubnetGroup." + description: |- + A flag that enables in-transit encryption when set to true. + + + You cannot modify the value of TransitEncryptionEnabled after the cluster + is created. To enable in-transit encryption on a cluster you must set TransitEncryptionEnabled + to true when you create a cluster. + + + This parameter is valid only if the Engine parameter is redis, the EngineVersion + parameter is 3.2.6, 4.x or later, and the cluster is being created in an + Amazon VPC. + + + If you enable in-transit encryption, you must also specify a value for CacheSubnetGroup. + + + Required: Only available when creating a replication group in an Amazon VPC + using redis version 3.2.6, 4.x or later. + + + Default: false + + + For HIPAA compliance, you must specify TransitEncryptionEnabled as true, + an AuthToken, and a CacheSubnetGroup. type: boolean userGroupIDs: description: The user group to associate with the replication group. @@ -447,24 +609,26 @@ spec: description: ReplicationGroupStatus defines the observed state of ReplicationGroup 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 @@ -475,56 +639,67 @@ spec: - region type: object allowedScaleDownModifications: - description: A string list, each element of which specifies a cache - node type which you can use to scale your cluster or replication - group. When scaling down a Redis cluster or replication group using - ModifyCacheCluster or ModifyReplicationGroup, use a value from this - list for the CacheNodeType parameter. + description: |- + A string list, each element of which specifies a cache node type which you + can use to scale your cluster or replication group. When scaling down a Redis + cluster or replication group using ModifyCacheCluster or ModifyReplicationGroup, + use a value from this list for the CacheNodeType parameter. items: type: string type: array allowedScaleUpModifications: - description: "A string list, each element of which specifies a cache - node type which you can use to scale your cluster or replication - group. \n When scaling up a Redis cluster or replication group using - ModifyCacheCluster or ModifyReplicationGroup, use a value from this - list for the CacheNodeType parameter." + description: |- + A string list, each element of which specifies a cache node type which you + can use to scale your cluster or replication group. + + + When scaling up a Redis cluster or replication group using ModifyCacheCluster + or ModifyReplicationGroup, use a value from this list for the CacheNodeType + parameter. items: type: string type: array authTokenEnabled: - description: "A flag that enables using an AuthToken (password) when - issuing Redis commands. \n Default: false" + description: |- + A flag that enables using an AuthToken (password) when issuing Redis commands. + + + Default: false type: boolean authTokenLastModifiedDate: description: The date the auth token was last modified format: date-time type: string autoMinorVersionUpgrade: - description: If you are running Redis engine version 6.0 or later, - set this parameter to yes if you want to opt-in to the next auto - minor version upgrade campaign. This parameter is disabled for previous - versions. + description: |- + If you are running Redis engine version 6.0 or later, set this parameter + to yes if you want to opt-in to the next auto minor version upgrade campaign. + This parameter is disabled for previous versions. type: boolean automaticFailover: description: Indicates the status of automatic failover for this Redis replication group. type: string clusterEnabled: - description: "A flag indicating whether or not this replication group - is cluster enabled; i.e., whether its data can be partitioned across - multiple shards (API/CLI: node groups). \n Valid values: true | - false" + description: |- + A flag indicating whether or not this replication group is cluster enabled; + i.e., whether its data can be partitioned across multiple shards (API/CLI: + node groups). + + + Valid values: true | false type: boolean 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 @@ -550,8 +725,9 @@ spec: type: object type: array configurationEndpoint: - description: The configuration endpoint for this replication group. - Use the configuration endpoint to connect to this replication group. + description: |- + The configuration endpoint for this replication group. Use the configuration + endpoint to connect to this replication group. properties: address: type: string @@ -560,18 +736,20 @@ spec: type: integer type: object dataTiering: - description: Enables data tiering. Data tiering is only supported - for replication groups using the r6gd node type. This parameter - must be set to true when using r6gd nodes. For more information, - see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + description: |- + Enables data tiering. Data tiering is only supported for replication groups + using the r6gd node type. This parameter must be set to true when using r6gd + nodes. For more information, see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). type: string events: - description: A list of events. Each element in the list contains detailed - information about one event. + description: |- + A list of events. Each element in the list contains detailed information + about one event. items: - description: Represents a single occurrence of something interesting - within the system. Some examples of events are creating a cluster, - adding or removing a cache node, or rebooting a node. + description: |- + Represents a single occurrence of something interesting within the system. + Some examples of events are creating a cluster, adding or removing a cache + node, or rebooting a node. properties: date: format: date-time @@ -585,8 +763,9 @@ spec: type: object type: array globalReplicationGroupInfo: - description: The name of the Global datastore and role of this replication - group in the Global datastore. + description: |- + The name of the Global datastore and role of this replication group in the + Global datastore. properties: globalReplicationGroupID: type: string @@ -599,8 +778,9 @@ spec: description: Returns the destination, format and type of the logs. properties: destinationDetails: - description: Configuration details of either a CloudWatch Logs - destination or Kinesis Data Firehose destination. + description: |- + Configuration details of either a CloudWatch Logs destination or Kinesis + Data Firehose destination. properties: cloudWatchLogsDetails: description: The configuration details of the CloudWatch @@ -641,19 +821,21 @@ spec: type: string type: array multiAZ: - description: 'A flag indicating if you have Multi-AZ enabled to enhance - fault tolerance. For more information, see Minimizing Downtime: - Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html)' + description: |- + A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. + For more information, see Minimizing Downtime: Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html) type: string nodeGroups: - description: A list of node groups in this replication group. For - Redis (cluster mode disabled) replication groups, this is a single-element - list. For Redis (cluster mode enabled) replication groups, the list - contains an entry for each node group (shard). + description: |- + A list of node groups in this replication group. For Redis (cluster mode + disabled) replication groups, this is a single-element list. For Redis (cluster + mode enabled) replication groups, the list contains an entry for each node + group (shard). items: - description: Represents a collection of cache nodes in a replication - group. One node in the node group is the read/write primary node. - All the other nodes are read-only Replica nodes. + description: |- + Represents a collection of cache nodes in a replication group. One node in + the node group is the read/write primary node. All the other nodes are read-only + Replica nodes. properties: nodeGroupID: type: string @@ -673,8 +855,9 @@ spec: preferredOutpostARN: type: string readEndpoint: - description: Represents the information required for client - programs to connect to a cache node. + description: |- + Represents the information required for client programs to connect to a cache + node. properties: address: type: string @@ -685,8 +868,9 @@ spec: type: object type: array primaryEndpoint: - description: Represents the information required for client - programs to connect to a cache node. + description: |- + Represents the information required for client programs to connect to a cache + node. properties: address: type: string @@ -695,8 +879,9 @@ spec: type: integer type: object readerEndpoint: - description: Represents the information required for client - programs to connect to a cache node. + description: |- + Represents the information required for client programs to connect to a cache + node. properties: address: type: string @@ -711,8 +896,9 @@ spec: type: object type: array pendingModifiedValues: - description: A group of settings to be applied to the replication - group, either immediately or during the next maintenance window. + description: |- + A group of settings to be applied to the replication group, either immediately + or during the next maintenance window. properties: authTokenStatus: type: string @@ -723,8 +909,9 @@ spec: description: The log delivery configurations being modified properties: destinationDetails: - description: Configuration details of either a CloudWatch - Logs destination or Kinesis Data Firehose destination. + description: |- + Configuration details of either a CloudWatch Logs destination or Kinesis + Data Firehose destination. properties: cloudWatchLogsDetails: description: The configuration details of the CloudWatch @@ -780,12 +967,14 @@ spec: format: date-time type: string snapshottingClusterID: - description: The cluster ID that is used as the daily snapshot source - for the replication group. + description: |- + The cluster ID that is used as the daily snapshot source for the replication + group. type: string status: - description: The current state of this replication group - creating, - available, modifying, deleting, create-failed, snapshotting. + description: |- + The current state of this replication group - creating, available, modifying, + deleting, create-failed, snapshotting. type: string type: object type: object diff --git a/helm/crds/elasticache.services.k8s.aws_snapshots.yaml b/helm/crds/elasticache.services.k8s.aws_snapshots.yaml index 1f17abb..09c6ca2 100644 --- a/helm/crds/elasticache.services.k8s.aws_snapshots.yaml +++ b/helm/crds/elasticache.services.k8s.aws_snapshots.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: snapshots.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -21,32 +20,42 @@ spec: description: Snapshot is the Schema for the Snapshots 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: "SnapshotSpec defines the desired state of Snapshot. \n Represents - a copy of an entire Redis cluster as of the time when the snapshot was - taken." + description: |- + SnapshotSpec defines the desired state of Snapshot. + + + Represents a copy of an entire Redis cluster as of the time when the snapshot + was taken. properties: cacheClusterID: - description: The identifier of an existing cluster. The snapshot is - created from this cluster. + description: |- + The identifier of an existing cluster. The snapshot is created from this + cluster. type: string kmsKeyID: description: The ID of the KMS key used to encrypt the snapshot. type: string replicationGroupID: - description: The identifier of an existing replication group. The - snapshot is created from this replication group. + description: |- + The identifier of an existing replication group. The snapshot is created + from this replication group. type: string snapshotName: description: A name for the snapshot being created. @@ -56,16 +65,16 @@ spec: copy. type: string tags: - description: A list of tags to be added to this resource. A tag is - a key-value pair. A tag key must be accompanied by a tag value, - although null is accepted. + description: |- + A list of tags to be added to this resource. A tag is a key-value pair. A + tag key must be accompanied by a tag value, although null is accepted. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -81,24 +90,26 @@ spec: description: SnapshotStatus defines the observed state of Snapshot 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 @@ -109,69 +120,88 @@ spec: - region type: object autoMinorVersionUpgrade: - description: If you are running Redis engine version 6.0 or later, - set this parameter to yes if you want to opt-in to the next auto - minor version upgrade campaign. This parameter is disabled for previous - versions. + description: |- + If you are running Redis engine version 6.0 or later, set this parameter + to yes if you want to opt-in to the next auto minor version upgrade campaign. + This parameter is disabled for previous versions. type: boolean automaticFailover: - description: Indicates the status of automatic failover for the source - Redis replication group. + description: |- + Indicates the status of automatic failover for the source Redis replication + group. type: string cacheClusterCreateTime: description: The date and time when the source cluster was created. format: date-time type: string cacheNodeType: - description: "The name of the compute and memory capacity node type - for the source cluster. \n The following node types are supported - by ElastiCache. Generally speaking, the current generation types - provide more memory and computational power at lower cost when compared - to their equivalent previous generation counterparts. \n * General - purpose: Current generation: M6g node types (available only for - Redis engine version 5.0.6 onward and for Memcached engine version - 1.5.16 onward). cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, - cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge - For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) - M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, - cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: - cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, - cache.m4.10xlarge T4g node types (available only for Redis engine - version 5.0.6 onward and Memcached engine version 1.5.16 onward): - cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: - cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, - cache.t2.small, cache.t2.medium Previous generation: (not recommended. - Existing clusters are still supported but creation of new clusters - is not supported for these types.) T1 node types: cache.t1.micro - M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, - cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, - cache.m3.xlarge, cache.m3.2xlarge \n * Compute optimized: Previous - generation: (not recommended. Existing clusters are still supported - but creation of new clusters is not supported for these types.) - C1 node types: cache.c1.xlarge \n * Memory optimized with data tiering: - Current generation: R6gd node types (available only for Redis engine - version 6.2 onward). cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, - cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge \n - * Memory optimized: Current generation: R6g node types (available - only for Redis engine version 5.0.6 onward and for Memcached engine - version 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, - cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge - For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) - For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) - R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, - cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: - cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, - cache.r4.8xlarge, cache.r4.16xlarge Previous generation: (not recommended. - Existing clusters are still supported but creation of new clusters - is not supported for these types.) M2 node types: cache.m2.xlarge, - cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, - cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge - \n Additional node type info \n * All current generation instance - types are created in Amazon VPC by default. \n * Redis append-only - files (AOF) are not supported for T1 or T2 instances. \n * Redis - Multi-AZ with automatic failover is not supported on T1 instances. - \n * Redis configuration variables appendonly and appendfsync are - not supported on Redis version 2.8.22 and later." + description: |- + The name of the compute and memory capacity node type for the source cluster. + + + The following node types are supported by ElastiCache. Generally speaking, + the current generation types provide more memory and computational power + at lower cost when compared to their equivalent previous generation counterparts. + + + * General purpose: Current generation: M6g node types (available only + for Redis engine version 5.0.6 onward and for Memcached engine version + 1.5.16 onward). cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, + cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, cache.m5.4xlarge, + cache.m5.12xlarge, cache.m5.24xlarge M4 node types: cache.m4.large, cache.m4.xlarge, + cache.m4.2xlarge, cache.m4.4xlarge, cache.m4.10xlarge T4g node types (available + only for Redis engine version 5.0.6 onward and Memcached engine version + 1.5.16 onward): cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 + node types: cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: + cache.t2.micro, cache.t2.small, cache.t2.medium Previous generation: (not + recommended. Existing clusters are still supported but creation of new + clusters is not supported for these types.) T1 node types: cache.t1.micro + M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, cache.m1.xlarge + M3 node types: cache.m3.medium, cache.m3.large, cache.m3.xlarge, cache.m3.2xlarge + + + * Compute optimized: Previous generation: (not recommended. Existing clusters + are still supported but creation of new clusters is not supported for + these types.) C1 node types: cache.c1.xlarge + + + * Memory optimized with data tiering: Current generation: R6gd node types + (available only for Redis engine version 6.2 onward). cache.r6gd.xlarge, + cache.r6gd.2xlarge, cache.r6gd.4xlarge, cache.r6gd.8xlarge, cache.r6gd.12xlarge, + cache.r6gd.16xlarge + + + * Memory optimized: Current generation: R6g node types (available only + for Redis engine version 5.0.6 onward and for Memcached engine version + 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, + cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, cache.r5.4xlarge, + cache.r5.12xlarge, cache.r5.24xlarge R4 node types: cache.r4.large, cache.r4.xlarge, + cache.r4.2xlarge, cache.r4.4xlarge, cache.r4.8xlarge, cache.r4.16xlarge + Previous generation: (not recommended. Existing clusters are still supported + but creation of new clusters is not supported for these types.) M2 node + types: cache.m2.xlarge, cache.m2.2xlarge, cache.m2.4xlarge R3 node types: + cache.r3.large, cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge + + + Additional node type info + + + * All current generation instance types are created in Amazon VPC by default. + + + * Redis append-only files (AOF) are not supported for T1 or T2 instances. + + + * Redis Multi-AZ with automatic failover is not supported on T1 instances. + + + * Redis configuration variables appendonly and appendfsync are not supported + on Redis version 2.8.22 and later. type: string cacheParameterGroupName: description: The cache parameter group that is associated with the @@ -182,14 +212,16 @@ spec: source cluster. type: string 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 @@ -215,10 +247,10 @@ spec: type: object type: array dataTiering: - description: Enables data tiering. Data tiering is only supported - for replication groups using the r6gd node type. This parameter - must be set to true when using r6gd nodes. For more information, - see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + description: |- + Enables data tiering. Data tiering is only supported for replication groups + using the r6gd node type. This parameter must be set to true when using r6gd + nodes. For more information, see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). type: string engine: description: The name of the cache engine (memcached or redis) used @@ -244,9 +276,10 @@ spec: cacheSize: type: string nodeGroupConfiguration: - description: 'Node group (shard) configuration options. Each - node group (shard) configuration has the following: Slots, - PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount.' + description: |- + Node group (shard) configuration options. Each node group (shard) configuration + has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, + ReplicaCount. properties: nodeGroupID: type: string @@ -276,16 +309,19 @@ spec: type: object type: array numCacheNodes: - description: "The number of cache nodes in the source cluster. \n - For clusters running Redis, this value must be 1. For clusters running - Memcached, this value must be between 1 and 40." + description: |- + The number of cache nodes in the source cluster. + + + For clusters running Redis, this value must be 1. For clusters running Memcached, + this value must be between 1 and 40. format: int64 type: integer numNodeGroups: - description: The number of node groups (shards) in this snapshot. - When restoring from a snapshot, the number of node groups (shards) - in the snapshot and in the restored replication group must be the - same. + description: |- + The number of node groups (shards) in this snapshot. When restoring from + a snapshot, the number of node groups (shards) in the snapshot and in the + restored replication group must be the same. format: int64 type: integer port: @@ -298,12 +334,37 @@ spec: cluster is located. type: string preferredMaintenanceWindow: - description: "Specifies the weekly time range during which maintenance - on the cluster is performed. It is specified as a range in the format - ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance - window is a 60 minute period. \n Valid values for ddd are: \n * - sun \n * mon \n * tue \n * wed \n * thu \n * fri \n * sat \n Example: - sun:23:00-mon:01:30" + description: |- + Specifies the weekly time range during which maintenance on the cluster is + performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi + (24H Clock UTC). The minimum maintenance window is a 60 minute period. + + + Valid values for ddd are: + + + * sun + + + * mon + + + * tue + + + * wed + + + * thu + + + * fri + + + * sat + + + Example: sun:23:00-mon:01:30 type: string preferredOutpostARN: description: The ARN (Amazon Resource Name) of the preferred outpost. @@ -312,34 +373,45 @@ spec: description: A description of the source replication group. type: string snapshotRetentionLimit: - description: "For an automatic snapshot, the number of days for which - ElastiCache retains the snapshot before deleting it. \n For manual - snapshots, this field reflects the SnapshotRetentionLimit for the - source cluster when the snapshot was created. This field is otherwise - ignored: Manual snapshots do not expire, and can only be deleted - using the DeleteSnapshot operation. \n Important If the value of - SnapshotRetentionLimit is set to zero (0), backups are turned off." + description: |- + For an automatic snapshot, the number of days for which ElastiCache retains + the snapshot before deleting it. + + + For manual snapshots, this field reflects the SnapshotRetentionLimit for + the source cluster when the snapshot was created. This field is otherwise + ignored: Manual snapshots do not expire, and can only be deleted using the + DeleteSnapshot operation. + + + Important If the value of SnapshotRetentionLimit is set to zero (0), backups + are turned off. format: int64 type: integer snapshotSource: - description: Indicates whether the snapshot is from an automatic backup - (automated) or was created manually (manual). + description: |- + Indicates whether the snapshot is from an automatic backup (automated) or + was created manually (manual). type: string snapshotStatus: - description: 'The status of the snapshot. Valid values: creating | - available | restoring | copying | deleting.' + description: |- + The status of the snapshot. Valid values: creating | available | restoring + | copying | deleting. type: string snapshotWindow: - description: The daily time range during which ElastiCache takes daily - snapshots of the source cluster. + description: |- + The daily time range during which ElastiCache takes daily snapshots of the + source cluster. type: string topicARN: - description: The Amazon Resource Name (ARN) for the topic used by - the source cluster for publishing notifications. + description: |- + The Amazon Resource Name (ARN) for the topic used by the source cluster for + publishing notifications. type: string vpcID: - description: The Amazon Virtual Private Cloud identifier (VPC ID) - of the cache subnet group for the source cluster. + description: |- + The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet + group for the source cluster. type: string type: object type: object diff --git a/helm/crds/elasticache.services.k8s.aws_usergroups.yaml b/helm/crds/elasticache.services.k8s.aws_usergroups.yaml index e76b3d2..fb0c481 100644 --- a/helm/crds/elasticache.services.k8s.aws_usergroups.yaml +++ b/helm/crds/elasticache.services.k8s.aws_usergroups.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: usergroups.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -21,14 +20,19 @@ spec: description: UserGroup is the Schema for the UserGroups 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 @@ -38,16 +42,16 @@ spec: description: The current supported value is Redis. type: string tags: - description: A list of tags to be added to this resource. A tag is - a key-value pair. A tag key must be accompanied by a tag value, - although null is accepted. + description: |- + A list of tags to be added to this resource. A tag is a key-value pair. A + tag key must be accompanied by a tag value, although null is accepted. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -72,24 +76,26 @@ spec: description: UserGroupStatus defines the observed state of UserGroup 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 @@ -100,14 +106,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/elasticache.services.k8s.aws_users.yaml b/helm/crds/elasticache.services.k8s.aws_users.yaml index f18ffbc..1507f20 100644 --- a/helm/crds/elasticache.services.k8s.aws_users.yaml +++ b/helm/crds/elasticache.services.k8s.aws_users.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: users.elasticache.services.k8s.aws spec: group: elasticache.services.k8s.aws @@ -21,14 +20,19 @@ spec: description: User is the Schema for the Users 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 @@ -44,11 +48,13 @@ spec: description: Indicates a password is not required for this user. type: boolean passwords: - description: Passwords used for this user. You can create up to two - passwords for each user. + description: |- + Passwords used for this user. You can create up to two passwords for each + user. items: - description: SecretKeyReference combines a k8s corev1.SecretReference - with a specific key within the referred-to Secret + description: |- + SecretKeyReference combines a k8s corev1.SecretReference with a + specific key within the referred-to Secret properties: key: description: Key is the key within the secret @@ -67,16 +73,16 @@ spec: x-kubernetes-map-type: atomic type: array tags: - description: A list of tags to be added to this resource. A tag is - a key-value pair. A tag key must be accompanied by a tag value, - although null is accepted. + description: |- + A list of tags to be added to this resource. A tag is a key-value pair. A + tag key must be accompanied by a tag value, although null is accepted. items: - description: A tag that can be added to an ElastiCache cluster or - replication group. Tags are composed of a Key/Value pair. You - can use tags to categorize and track all your ElastiCache resources, - with the exception of global replication group. When you add or - remove tags on replication groups, those actions will be replicated - to all nodes in the replication group. A tag with a null Value + description: |- + A tag that can be added to an ElastiCache cluster or replication group. Tags + are composed of a Key/Value pair. You can use tags to categorize and track + all your ElastiCache resources, with the exception of global replication + group. When you add or remove tags on replication groups, those actions will + be replicated to all nodes in the replication group. A tag with a null Value is permitted. properties: key: @@ -101,24 +107,26 @@ spec: description: UserStatus defines the observed state of User 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 @@ -138,14 +146,16 @@ spec: type: string 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/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 9b4ecd0..9682c82 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/elasticache-controller:0.0.29". +This chart deploys "public.ecr.aws/aws-controllers-k8s/elasticache-controller:0.0.30". 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 06d980a..348d5db 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-elasticache-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-elasticache-controller.app.fullname" -}} {{- if .Values.fullnameOverride -}} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} {{- else -}} @@ -22,33 +22,34 @@ 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-elasticache-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-elasticache-controller.service-account.name" -}} {{ default "default" .Values.serviceAccount.name }} {{- end -}} -{{- define "watch-namespace" -}} +{{- define "ack-elasticache-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-elasticache-controller.aws.credentials.secret_mount_path" -}} {{- "/var/run/secrets/aws" -}} {{- end -}} {{/* The path the shared credentials file is mounted */}} -{{- define "aws.credentials.path" -}} -{{- printf "%s/%s" (include "aws.credentials.secret_mount_path" .) .Values.aws.credentials.secretKey -}} +{{- define "ack-elasticache-controller.aws.credentials.path" -}} +{{ $secret_mount_path := include "ack-elasticache-controller.aws.credentials.secret_mount_path" . }} +{{- printf "%s/%s" $secret_mount_path .Values.aws.credentials.secretKey -}} {{- end -}} {{/* The rules a of ClusterRole or Role */}} -{{- define "controller-role-rules" }} +{{- define "ack-elasticache-controller.rbac-rules" -}} rules: - apiGroups: - "" diff --git a/helm/templates/cluster-role-binding.yaml b/helm/templates/cluster-role-binding.yaml index 8b63548..afeb118 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-elasticache-controller.app.fullname" . }} roleRef: kind: ClusterRole apiGroup: rbac.authorization.k8s.io name: ack-elasticache-controller subjects: - kind: ServiceAccount - name: {{ include "service-account.name" . }} + name: {{ include "ack-elasticache-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-elasticache-controller.watch-namespace" . }} +{{ $namespaces := split "," $wn }} +{{ $fullname := include "ack-elasticache-controller.app.fullname" . }} {{ $releaseNamespace := .Release.Namespace }} -{{ $serviceAccountName := include "service-account.name" . }} +{{ $serviceAccountName := include "ack-elasticache-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 246a456..1a7b6f4 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-elasticache-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-elasticache-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..95f8440 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-elasticache-controller.app.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-elasticache-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-elasticache-controller.app.name" . }} + helm.sh/chart: {{ include "ack-elasticache-controller.chart.name-version" . }} spec: replicas: {{ .Values.deployment.replicas }} selector: matchLabels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-elasticache-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-elasticache-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm - k8s-app: {{ include "app.name" . }} + k8s-app: {{ include "ack-elasticache-controller.app.name" . }} {{- range $key, $value := .Values.deployment.labels }} {{ $key }}: {{ $value | quote }} {{- end }} spec: - serviceAccountName: {{ include "service-account.name" . }} + serviceAccountName: {{ include "ack-elasticache-controller.service-account.name" . }} {{- if .Values.image.pullSecrets }} imagePullSecrets: {{- range .Values.image.pullSecrets }} @@ -64,13 +64,21 @@ spec: - --leader-election-namespace - "$(LEADER_ELECTION_NAMESPACE)" {{- end }} -{{- if gt .Values.reconcile.defaultResyncPeriod 0.0 }} +{{- if gt (int .Values.reconcile.defaultResyncPeriod) 0 }} - --reconcile-default-resync-seconds - "$(RECONCILE_DEFAULT_RESYNC_SECONDS)" {{- end }} {{- range $key, $value := .Values.reconcile.resourceResyncPeriods }} - --reconcile-resource-resync-seconds - "$(RECONCILE_RESOURCE_RESYNC_SECONDS_{{ $key | upper }})" +{{- end }} +{{- if gt (int .Values.reconcile.defaultMaxConcurrentSyncs) 0 }} + - --reconcile-default-max-concurrent-syncs + - "$(RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS)" +{{- end }} +{{- range $key, $value := .Values.reconcile.resourceMaxConcurrentSyncs }} + - --reconcile-resource-max-concurrent-syncs + - "$(RECONCILE_RESOURCE_MAX_CONCURRENT_SYNCS_{{ $key | upper }})" {{- end }} image: {{ .Values.image.repository }}:{{ .Values.image.tag }} imagePullPolicy: {{ .Values.image.pullPolicy }} @@ -90,7 +98,7 @@ spec: - name: AWS_ENDPOINT_URL value: {{ .Values.aws.endpoint_url | quote }} - name: ACK_WATCH_NAMESPACE - value: {{ include "watch-namespace" . }} + value: {{ include "ack-elasticache-controller.watch-namespace" . }} - name: DELETION_POLICY value: {{ .Values.deletionPolicy }} - name: LEADER_ELECTION_NAMESPACE @@ -99,17 +107,25 @@ spec: value: {{ .Values.log.level | quote }} - name: ACK_RESOURCE_TAGS value: {{ join "," .Values.resourceTags | quote }} -{{- if gt .Values.reconcile.defaultResyncPeriod 0.0 }} +{{- if gt (int .Values.reconcile.defaultResyncPeriod) 0 }} - name: RECONCILE_DEFAULT_RESYNC_SECONDS value: {{ .Values.reconcile.defaultResyncPeriod | quote }} {{- end }} {{- range $key, $value := .Values.reconcile.resourceResyncPeriods }} - name: RECONCILE_RESOURCE_RESYNC_SECONDS_{{ $key | upper }} value: {{ $key }}={{ $value }} +{{- end }} +{{- if gt (int .Values.reconcile.defaultMaxConcurrentSyncs) 0 }} + - name: RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS + value: {{ .Values.reconcile.defaultMaxConcurrentSyncs | quote }} +{{- end }} +{{- range $key, $value := .Values.reconcile.resourceMaxConcurrentSyncs }} + - name: RECONCILE_RESOURCE_MAX_CONCURRENT_SYNCS_{{ $key | upper }} + value: {{ $key }}={{ $value }} {{- end }} {{- if .Values.aws.credentials.secretName }} - name: AWS_SHARED_CREDENTIALS_FILE - value: {{ include "aws.credentials.path" . }} + value: {{ include "ack-elasticache-controller.aws.credentials.path" . }} - name: AWS_PROFILE value: {{ .Values.aws.credentials.profile }} {{- end }} @@ -119,7 +135,7 @@ spec: volumeMounts: {{- if .Values.aws.credentials.secretName }} - name: {{ .Values.aws.credentials.secretName }} - mountPath: {{ include "aws.credentials.secret_mount_path" . }} + mountPath: {{ include "ack-elasticache-controller.aws.credentials.secret_mount_path" . }} readOnly: true {{- end }} {{- if .Values.deployment.extraVolumeMounts -}} @@ -132,6 +148,18 @@ spec: capabilities: drop: - ALL + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 securityContext: seccompProfile: type: RuntimeDefault diff --git a/helm/templates/leader-election-role-binding.yaml b/helm/templates/leader-election-role-binding.yaml index e9dab2f..8448d8a 100644 --- a/helm/templates/leader-election-role-binding.yaml +++ b/helm/templates/leader-election-role-binding.yaml @@ -14,5 +14,5 @@ roleRef: name: elasticache-leader-election-role subjects: - kind: ServiceAccount - name: {{ include "service-account.name" . }} + name: {{ include "ack-elasticache-controller.service-account.name" . }} namespace: {{ .Release.Namespace }}{{- end }} diff --git a/helm/templates/metrics-service.yaml b/helm/templates/metrics-service.yaml index 638858a..da48462 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-elasticache-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-elasticache-controller.app.name" . }} + helm.sh/chart: {{ include "ack-elasticache-controller.chart.name-version" . }} spec: selector: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-elasticache-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm - k8s-app: {{ include "app.name" . }} + k8s-app: {{ include "ack-elasticache-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..370b709 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-elasticache-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-elasticache-controller.app.name" . }} + helm.sh/chart: {{ include "ack-elasticache-controller.chart.name-version" . }} + name: {{ include "ack-elasticache-controller.service-account.name" . }} namespace: {{ .Release.Namespace }} annotations: {{- range $key, $value := .Values.serviceAccount.annotations }} diff --git a/helm/values.schema.json b/helm/values.schema.json index ac28b68..742163e 100644 --- a/helm/values.schema.json +++ b/helm/values.schema.json @@ -223,13 +223,19 @@ "enum": ["delete", "retain"] }, "reconcile": { - "description": "Reconcile resync settings. Parameters to tune the controller's drift remediation period.", + "description": "Reconcile settings. This is used to configure the controller's reconciliation behavior. e.g resyncPeriod and maxConcurrentSyncs", "properties": { "defaultResyncPeriod": { "type": "number" }, "resourceResyncPeriods": { "type": "object" + }, + "defaultMaxConcurentSyncs": { + "type": "number" + }, + "resourceMaxConcurrentSyncs": { + "type": "object" } }, "type": "object" diff --git a/helm/values.yaml b/helm/values.yaml index 3e736eb..90ebd8e 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -4,7 +4,7 @@ image: repository: public.ecr.aws/aws-controllers-k8s/elasticache-controller - tag: 0.0.29 + tag: 0.0.30 pullPolicy: IfNotPresent pullSecrets: [] @@ -128,6 +128,12 @@ reconcile: # An object representing the reconcile resync configuration for each specific resource. resourceResyncPeriods: {} + # The default number of concurrent syncs that a reconciler can perform. + defaultMaxConcurrentSyncs: 1 + # An object representing the reconcile max concurrent syncs configuration for each specific + # resource. + resourceMaxConcurrentSyncs: {} + serviceAccount: # Specifies whether a service account should be created create: true