From 48b3ef988c8f5a35a90d7b06d282713deff70098 Mon Sep 17 00:00:00 2001 From: AWS Controllers for Kubernetes Bot <82905295+ack-bot@users.noreply.github.com> Date: Tue, 13 Feb 2024 23:25:30 -0600 Subject: [PATCH] Update to ACK runtime `v0.30.0`, code-generator `v0.30.0` (#37) ### Update to ACK runtime `v0.30.0`, code-generator `v0.30.0` ---------- * ACK code-generator `v0.30.0` [release notes](https://github.com/aws-controllers-k8s/code-generator/releases/tag/v0.30.0) * ACK runtime `v0.30.0` [release notes](https://github.com/aws-controllers-k8s/runtime/releases/tag/v0.30.0) ---------- NOTE: This PR increments the release version of service controller from `v0.0.10` to `v0.0.11` Once this PR is merged, release `v0.0.11` will be automatically created for `route53-controller` **Please close this PR, if you do not want the new patch release for `route53-controller`** ---------- #### stdout for `make build-controller`: ``` building ack-generate ... ok. ==== building route53-controller ==== Copying common custom resource definitions into route53 Building Kubernetes API objects for route53 Generating deepcopy code for route53 Generating custom resource definitions for route53 Building service controller for route53 Generating RBAC manifests for route53 Running gofmt against generated code for route53 Updating additional GitHub repository maintenance files ==== building route53-controller release artifacts ==== Building release artifacts for route53-v0.0.11 Generating common custom resource definitions Generating custom resource definitions for route53 Generating RBAC manifests for route53 ``` ---------- By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. --- apis/v1alpha1/ack-generate-metadata.yaml | 8 +- apis/v1alpha1/zz_generated.deepcopy.go | 1 - config/controller/kustomization.yaml | 2 +- .../route53.services.k8s.aws_hostedzones.yaml | 193 ++-- .../route53.services.k8s.aws_recordsets.yaml | 929 ++++++++++------- .../services.k8s.aws_adoptedresources.yaml | 206 ++-- .../bases/services.k8s.aws_fieldexports.yaml | 54 +- config/rbac/cluster-role-controller.yaml | 1 - go.mod | 56 +- go.sum | 158 ++- helm/Chart.yaml | 4 +- .../route53.services.k8s.aws_hostedzones.yaml | 193 ++-- .../route53.services.k8s.aws_recordsets.yaml | 930 +++++++++++------- .../services.k8s.aws_adoptedresources.yaml | 209 ++-- helm/crds/services.k8s.aws_fieldexports.yaml | 54 +- helm/templates/NOTES.txt | 2 +- helm/templates/_helpers.tpl | 16 +- helm/templates/cluster-role-binding.yaml | 13 +- helm/templates/cluster-role-controller.yaml | 11 +- helm/templates/deployment.yaml | 22 +- .../leader-election-role-binding.yaml | 2 +- helm/templates/metrics-service.yaml | 10 +- helm/templates/service-account.yaml | 8 +- helm/values.yaml | 2 +- 24 files changed, 1802 insertions(+), 1282 deletions(-) diff --git a/apis/v1alpha1/ack-generate-metadata.yaml b/apis/v1alpha1/ack-generate-metadata.yaml index 200a666..159b0c4 100755 --- a/apis/v1alpha1/ack-generate-metadata.yaml +++ b/apis/v1alpha1/ack-generate-metadata.yaml @@ -1,8 +1,8 @@ ack_generate_info: - build_date: "2024-01-29T07:07:03Z" - build_hash: 92f531cde5631865cfc3dfa778cbc9611f3a64c3 - go_version: go1.21.5 - version: v0.29.2 + build_date: "2024-02-14T03:58:27Z" + build_hash: 947081ffebdeefcf2c61c4ca6d7e68810bdf9d08 + go_version: go1.22.0 + version: v0.30.0 api_directory_checksum: 7af528570a707bccda3cf78442be0ac40262981e api_version: v1alpha1 aws_sdk_go_version: v1.49.0 diff --git a/apis/v1alpha1/zz_generated.deepcopy.go b/apis/v1alpha1/zz_generated.deepcopy.go index 8947617..237822a 100644 --- a/apis/v1alpha1/zz_generated.deepcopy.go +++ b/apis/v1alpha1/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. // diff --git a/config/controller/kustomization.yaml b/config/controller/kustomization.yaml index 0a8181d..38353d4 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/route53-controller - newTag: 0.0.10 + newTag: 0.0.11 diff --git a/config/crd/bases/route53.services.k8s.aws_hostedzones.yaml b/config/crd/bases/route53.services.k8s.aws_hostedzones.yaml index 3a4f50d..93dc75b 100644 --- a/config/crd/bases/route53.services.k8s.aws_hostedzones.yaml +++ b/config/crd/bases/route53.services.k8s.aws_hostedzones.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: hostedzones.route53.services.k8s.aws spec: group: route53.services.k8s.aws @@ -21,39 +20,55 @@ spec: description: HostedZone is the Schema for the HostedZones 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: "HostedZoneSpec defines the desired state of HostedZone. - \n A complex type that contains general information about the hosted - zone." + description: |- + HostedZoneSpec defines the desired state of HostedZone. + + + A complex type that contains general information about the hosted zone. properties: delegationSetID: - description: "If you want to associate a reusable delegation set with - this hosted zone, the ID that Amazon Route 53 assigned to the reusable - delegation set when you created it. For more information about reusable - delegation sets, see CreateReusableDelegationSet (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html). - \n If you are using a reusable delegation set to create a public - hosted zone for a subdomain, make sure that the parent hosted zone - doesn't use one or more of the same name servers. If you have overlapping - nameservers, the operation will cause a ConflictingDomainsExist - error." + description: |- + If you want to associate a reusable delegation set with this hosted zone, + the ID that Amazon Route 53 assigned to the reusable delegation set when + you created it. For more information about reusable delegation sets, see + CreateReusableDelegationSet (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html). + + + If you are using a reusable delegation set to create a public hosted zone + for a subdomain, make sure that the parent hosted zone doesn't use one or + more of the same name servers. If you have overlapping nameservers, the operation + will cause a ConflictingDomainsExist error. type: string hostedZoneConfig: - description: "(Optional) A complex type that contains the following - optional values: \n * For public and private hosted zones, an optional - comment \n * For private hosted zones, an optional PrivateZone element - \n If you don't specify a comment or the PrivateZone element, omit - HostedZoneConfig and the other elements." + description: |- + (Optional) A complex type that contains the following optional values: + + + * For public and private hosted zones, an optional comment + + + * For private hosted zones, an optional PrivateZone element + + + If you don't specify a comment or the PrivateZone element, omit HostedZoneConfig + and the other elements. properties: comment: type: string @@ -61,26 +76,30 @@ spec: type: boolean type: object name: - description: "The name of the domain. Specify a fully qualified domain - name, for example, www.example.com. The trailing dot is optional; - Amazon Route 53 assumes that the domain name is fully qualified. - This means that Route 53 treats www.example.com (without a trailing - dot) and www.example.com. (with a trailing dot) as identical. \n - If you're creating a public hosted zone, this is the name you have - registered with your DNS registrar. If your domain name is registered - with a registrar other than Route 53, change the name servers for - your domain to the set of NameServers that CreateHostedZone returns - in DelegationSet." + description: |- + The name of the domain. Specify a fully qualified domain name, for example, + www.example.com. The trailing dot is optional; Amazon Route 53 assumes that + the domain name is fully qualified. This means that Route 53 treats www.example.com + (without a trailing dot) and www.example.com. (with a trailing dot) as identical. + + + If you're creating a public hosted zone, this is the name you have registered + with your DNS registrar. If your domain name is registered with a registrar + other than Route 53, change the name servers for your domain to the set of + NameServers that CreateHostedZone returns in DelegationSet. type: string tags: - description: "A complex type that contains a list of the tags that - you want to add to the specified health check or hosted zone and/or - the tags that you want to edit Value for. \n You can add a maximum - of 10 tags to a health check or a hosted zone." + description: |- + A complex type that contains a list of the tags that you want to add to the + specified health check or hosted zone and/or the tags that you want to edit + Value for. + + + You can add a maximum of 10 tags to a health check or a hosted zone. items: - description: A complex type that contains information about a tag - that you want to add or edit for the specified health check or - hosted zone. + description: |- + A complex type that contains information about a tag that you want to add + or edit for the specified health check or hosted zone. properties: key: type: string @@ -89,14 +108,19 @@ spec: type: object type: array vpc: - description: "(Private hosted zones only) A complex type that contains - information about the Amazon VPC that you're associating with this - hosted zone. \n You can specify only one Amazon VPC when you create - a private hosted zone. If you are associating a VPC with a hosted - zone with this request, the paramaters VPCId and VPCRegion are also - required. \n To associate additional Amazon VPCs with the hosted - zone, use AssociateVPCWithHostedZone (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html) - after you create a hosted zone." + description: |- + (Private hosted zones only) A complex type that contains information about + the Amazon VPC that you're associating with this hosted zone. + + + You can specify only one Amazon VPC when you create a private hosted zone. + If you are associating a VPC with a hosted zone with this request, the paramaters + VPCId and VPCRegion are also required. + + + To associate additional Amazon VPCs with the hosted zone, use AssociateVPCWithHostedZone + (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html) + after you create a hosted zone. properties: vpcID: description: (Private hosted zones only) The ID of an Amazon VPC. @@ -111,24 +135,26 @@ spec: description: HostedZoneStatus defines the observed state of HostedZone 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 @@ -139,18 +165,21 @@ spec: - region type: object callerReference: - description: The value that you specified for CallerReference when - you created the hosted zone. + description: |- + The value that you specified for CallerReference when you created the hosted + zone. 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 @@ -176,10 +205,10 @@ spec: type: object type: array config: - description: A complex type that includes the Comment and PrivateZone - elements. If you omitted the HostedZoneConfig and Comment elements - from the request, the Config and Comment elements don't appear in - the response. + description: |- + A complex type that includes the Comment and PrivateZone elements. If you + omitted the HostedZoneConfig and Comment elements from the request, the Config + and Comment elements don't appear in the response. properties: comment: type: string @@ -187,13 +216,15 @@ spec: type: boolean type: object id: - description: The ID that Amazon Route 53 assigned to the hosted zone - when you created it. + description: |- + The ID that Amazon Route 53 assigned to the hosted zone when you created + it. type: string linkedService: - description: If the hosted zone was created by another service, the - service that created the hosted zone. When a hosted zone is created - by another service, you can't edit or delete it using Route 53. + description: |- + If the hosted zone was created by another service, the service that created + the hosted zone. When a hosted zone is created by another service, you can't + edit or delete it using Route 53. properties: description: type: string diff --git a/config/crd/bases/route53.services.k8s.aws_recordsets.yaml b/config/crd/bases/route53.services.k8s.aws_recordsets.yaml index 8c6ecfe..fdb6b51 100644 --- a/config/crd/bases/route53.services.k8s.aws_recordsets.yaml +++ b/config/crd/bases/route53.services.k8s.aws_recordsets.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: recordsets.route53.services.k8s.aws spec: group: route53.services.k8s.aws @@ -25,14 +24,19 @@ spec: description: RecordSet is the Schema for the RecordSets 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 @@ -40,16 +44,23 @@ spec: description: RecordSetSpec defines the desired state of RecordSet. properties: aliasTarget: - description: "Alias resource record sets only: Information about the - Amazon Web Services resource, such as a CloudFront distribution - or an Amazon S3 bucket, that you want to route traffic to. \n If - you're creating resource records sets for a private hosted zone, - note the following: \n * You can't create an alias resource record - set in a private hosted zone to route traffic to a CloudFront distribution. - \n * For information about creating failover resource record sets - in a private hosted zone, see Configuring Failover in a Private - Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) - in the Amazon Route 53 Developer Guide." + description: |- + Alias resource record sets only: Information about the Amazon Web Services + resource, such as a CloudFront distribution or an Amazon S3 bucket, that + you want to route traffic to. + + + If you're creating resource records sets for a private hosted zone, note + the following: + + + * You can't create an alias resource record set in a private hosted zone + to route traffic to a CloudFront distribution. + + + * For information about creating failover resource record sets in a private + hosted zone, see Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) + in the Amazon Route 53 Developer Guide. properties: dnsName: type: string @@ -74,14 +85,17 @@ spec: create or delete. properties: aliasTarget: - description: "Alias resource record sets only: Information - about the Amazon Web Services resource, such as a - CloudFront distribution or an Amazon S3 bucket, that - you want to route traffic to. \n When creating resource - record sets for a private hosted zone, note the following: - \n * For information about creating failover resource - record sets in a private hosted zone, see Configuring - Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html)." + description: |- + Alias resource record sets only: Information about the Amazon Web Services + resource, such as a CloudFront distribution or an Amazon S3 bucket, that + you want to route traffic to. + + + When creating resource record sets for a private hosted zone, note the following: + + + * For information about creating failover resource record sets in a private + hosted zone, see Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html). properties: dnsName: type: string @@ -91,12 +105,13 @@ spec: type: string type: object cidrRoutingConfig: - description: "The object that is specified in resource - record set object when you are linking a resource - record set to a CIDR location. \n A LocationName with - an asterisk “*” can be used to create a default CIDR - record. CollectionId is still required for default - record." + description: |- + The object that is specified in resource record set object when you are linking + a resource record set to a CIDR location. + + + A LocationName with an asterisk “*” can be used to create a default CIDR + record. CollectionId is still required for default record. properties: collectionID: type: string @@ -126,9 +141,11 @@ spec: type: string resourceRecords: items: - description: "Information specific to the resource - record. \n If you're creating an alias resource - record set, omit ResourceRecord." + description: |- + Information specific to the resource record. + + + If you're creating an alias resource record set, omit ResourceRecord. properties: value: type: string @@ -153,10 +170,13 @@ spec: type: string type: object cidrRoutingConfig: - description: "The object that is specified in resource record set - object when you are linking a resource record set to a CIDR location. - \n A LocationName with an asterisk “*” can be used to create a default - CIDR record. CollectionId is still required for default record." + description: |- + The object that is specified in resource record set object when you are linking + a resource record set to a CIDR location. + + + A LocationName with an asterisk “*” can be used to create a default CIDR + record. CollectionId is still required for default record. properties: collectionID: type: string @@ -164,71 +184,100 @@ spec: type: string type: object failover: - description: "Failover resource record sets only: To configure failover, - you add the Failover element to two resource record sets. For one - resource record set, you specify PRIMARY as the value for Failover; - for the other resource record set, you specify SECONDARY. In addition, - you include the HealthCheckId element and specify the health check - that you want Amazon Route 53 to perform for each resource record - set. \n Except where noted, the following failover behaviors assume - that you have included the HealthCheckId element in both resource - record sets: \n * When the primary resource record set is healthy, - Route 53 responds to DNS queries with the applicable value from - the primary resource record set regardless of the health of the - secondary resource record set. \n * When the primary resource record - set is unhealthy and the secondary resource record set is healthy, - Route 53 responds to DNS queries with the applicable value from - the secondary resource record set. \n * When the secondary resource - record set is unhealthy, Route 53 responds to DNS queries with the - applicable value from the primary resource record set regardless - of the health of the primary resource record set. \n * If you omit - the HealthCheckId element for the secondary resource record set, - and if the primary resource record set is unhealthy, Route 53 always - responds to DNS queries with the applicable value from the secondary - resource record set. This is true regardless of the health of the - associated endpoint. \n You can't create non-failover resource record - sets that have the same values for the Name and Type elements as - failover resource record sets. \n For failover alias resource record - sets, you must also include the EvaluateTargetHealth element and - set the value to true. \n For more information about configuring - failover for Route 53, see the following topics in the Amazon Route - 53 Developer Guide: \n * Route 53 Health Checks and DNS Failover - (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) - \n * Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html)" + description: |- + Failover resource record sets only: To configure failover, you add the Failover + element to two resource record sets. For one resource record set, you specify + PRIMARY as the value for Failover; for the other resource record set, you + specify SECONDARY. In addition, you include the HealthCheckId element and + specify the health check that you want Amazon Route 53 to perform for each + resource record set. + + + Except where noted, the following failover behaviors assume that you have + included the HealthCheckId element in both resource record sets: + + + * When the primary resource record set is healthy, Route 53 responds to + DNS queries with the applicable value from the primary resource record + set regardless of the health of the secondary resource record set. + + + * When the primary resource record set is unhealthy and the secondary + resource record set is healthy, Route 53 responds to DNS queries with + the applicable value from the secondary resource record set. + + + * When the secondary resource record set is unhealthy, Route 53 responds + to DNS queries with the applicable value from the primary resource record + set regardless of the health of the primary resource record set. + + + * If you omit the HealthCheckId element for the secondary resource record + set, and if the primary resource record set is unhealthy, Route 53 always + responds to DNS queries with the applicable value from the secondary resource + record set. This is true regardless of the health of the associated endpoint. + + + You can't create non-failover resource record sets that have the same values + for the Name and Type elements as failover resource record sets. + + + For failover alias resource record sets, you must also include the EvaluateTargetHealth + element and set the value to true. + + + For more information about configuring failover for Route 53, see the following + topics in the Amazon Route 53 Developer Guide: + + + * Route 53 Health Checks and DNS Failover (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) + + + * Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) type: string geoLocation: - description: "Geolocation resource record sets only: A complex type - that lets you control how Amazon Route 53 responds to DNS queries - based on the geographic origin of the query. For example, if you - want all queries from Africa to be routed to a web server with an - IP address of 192.0.2.111, create a resource record set with a Type - of A and a ContinentCode of AF. \n Although creating geolocation - and geolocation alias resource record sets in a private hosted zone - is allowed, it's not supported. \n If you create separate resource - record sets for overlapping geographic regions (for example, one - resource record set for a continent and one for a country on the - same continent), priority goes to the smallest geographic region. - This allows you to route most queries for a continent to one resource - and to route queries for a country on that continent to a different - resource. \n You can't create two geolocation resource record sets - that specify the same geographic location. \n The value * in the - CountryCode element matches all geographic locations that aren't - specified in other geolocation resource record sets that have the - same values for the Name and Type elements. \n Geolocation works - by mapping IP addresses to locations. However, some IP addresses - aren't mapped to geographic locations, so even if you create geolocation - resource record sets that cover all seven continents, Route 53 will - receive some DNS queries from locations that it can't identify. - We recommend that you create a resource record set for which the - value of CountryCode is *. Two groups of queries are routed to the - resource that you specify in this record: queries that come from - locations for which you haven't created geolocation resource record - sets and queries from IP addresses that aren't mapped to a location. - If you don't create a * resource record set, Route 53 returns a - \"no answer\" response for queries from those locations. \n You - can't create non-geolocation resource record sets that have the - same values for the Name and Type elements as geolocation resource - record sets." + description: |- + Geolocation resource record sets only: A complex type that lets you control + how Amazon Route 53 responds to DNS queries based on the geographic origin + of the query. For example, if you want all queries from Africa to be routed + to a web server with an IP address of 192.0.2.111, create a resource record + set with a Type of A and a ContinentCode of AF. + + + Although creating geolocation and geolocation alias resource record sets + in a private hosted zone is allowed, it's not supported. + + + If you create separate resource record sets for overlapping geographic regions + (for example, one resource record set for a continent and one for a country + on the same continent), priority goes to the smallest geographic region. + This allows you to route most queries for a continent to one resource and + to route queries for a country on that continent to a different resource. + + + You can't create two geolocation resource record sets that specify the same + geographic location. + + + The value * in the CountryCode element matches all geographic locations that + aren't specified in other geolocation resource record sets that have the + same values for the Name and Type elements. + + + Geolocation works by mapping IP addresses to locations. However, some IP + addresses aren't mapped to geographic locations, so even if you create geolocation + resource record sets that cover all seven continents, Route 53 will receive + some DNS queries from locations that it can't identify. We recommend that + you create a resource record set for which the value of CountryCode is *. + Two groups of queries are routed to the resource that you specify in this + record: queries that come from locations for which you haven't created geolocation + resource record sets and queries from IP addresses that aren't mapped to + a location. If you don't create a * resource record set, Route 53 returns + a "no answer" response for queries from those locations. + + + You can't create non-geolocation resource record sets that have the same + values for the Name and Type elements as geolocation resource record sets. properties: continentCode: type: string @@ -238,271 +287,422 @@ spec: type: string type: object healthCheckID: - description: "If you want Amazon Route 53 to return this resource - record set in response to a DNS query only when the status of a - health check is healthy, include the HealthCheckId element and specify - the ID of the applicable health check. \n Route 53 determines whether - a resource record set is healthy based on one of the following: - \n * By periodically sending a request to the endpoint that is specified - in the health check \n * By aggregating the status of a specified - group of health checks (calculated health checks) \n * By determining - the current state of a CloudWatch alarm (CloudWatch metric health - checks) \n Route 53 doesn't check the health of the endpoint that - is specified in the resource record set, for example, the endpoint - specified by the IP address in the Value element. When you add a - HealthCheckId element to a resource record set, Route 53 checks - the health of the endpoint that you specified in the health check. - \n For more information, see the following topics in the Amazon - Route 53 Developer Guide: \n * How Amazon Route 53 Determines Whether - an Endpoint Is Healthy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) - \n * Route 53 Health Checks and DNS Failover (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) - \n * Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) - \n When to Specify HealthCheckId \n Specifying a value for HealthCheckId - is useful only when Route 53 is choosing between two or more resource - record sets to respond to a DNS query, and you want Route 53 to - base the choice in part on the status of a health check. Configuring - health checks makes sense only in the following configurations: - \n * Non-alias resource record sets: You're checking the health - of a group of non-alias resource record sets that have the same - routing policy, name, and type (such as multiple weighted records - named www.example.com with a type of A) and you specify health check - IDs for all the resource record sets. If the health check status - for a resource record set is healthy, Route 53 includes the record - among the records that it responds to DNS queries with. If the health - check status for a resource record set is unhealthy, Route 53 stops - responding to DNS queries using the value for that resource record - set. If the health check status for all resource record sets in - the group is unhealthy, Route 53 considers all resource record sets - in the group healthy and responds to DNS queries accordingly. \n - * Alias resource record sets: You specify the following settings: - You set EvaluateTargetHealth to true for an alias resource record - set in a group of resource record sets that have the same routing - policy, name, and type (such as multiple weighted records named - www.example.com with a type of A). You configure the alias resource - record set to route traffic to a non-alias resource record set in - the same hosted zone. You specify a health check ID for the non-alias - resource record set. If the health check status is healthy, Route - 53 considers the alias resource record set to be healthy and includes - the alias record among the records that it responds to DNS queries - with. If the health check status is unhealthy, Route 53 stops responding - to DNS queries using the alias resource record set. The alias resource - record set can also route traffic to a group of non-alias resource - record sets that have the same routing policy, name, and type. In - that configuration, associate health checks with all of the resource - record sets in the group of non-alias resource record sets. \n Geolocation - Routing \n For geolocation resource record sets, if an endpoint - is unhealthy, Route 53 looks for a resource record set for the larger, - associated geographic region. For example, suppose you have resource - record sets for a state in the United States, for the entire United - States, for North America, and a resource record set that has * - for CountryCode is *, which applies to all locations. If the endpoint - for the state resource record set is unhealthy, Route 53 checks - for healthy resource record sets in the following order until it - finds a resource record set for which the endpoint is healthy: \n - * The United States \n * North America \n * The default resource - record set \n Specifying the Health Check Endpoint by Domain Name - \n If your health checks specify the endpoint only by domain name, - we recommend that you create a separate health check for each endpoint. - For example, create a health check for each HTTP server that is - serving content for www.example.com. For the value of FullyQualifiedDomainName, - specify the domain name of the server (such as us-east-2-www.example.com), - not the name of the resource record sets (www.example.com). \n Health - check results will be unpredictable if you do the following: \n - * Create a health check that has the same value for FullyQualifiedDomainName - as the name of a resource record set. \n * Associate that health - check with the resource record set." + description: |- + If you want Amazon Route 53 to return this resource record set in response + to a DNS query only when the status of a health check is healthy, include + the HealthCheckId element and specify the ID of the applicable health check. + + + Route 53 determines whether a resource record set is healthy based on one + of the following: + + + * By periodically sending a request to the endpoint that is specified + in the health check + + + * By aggregating the status of a specified group of health checks (calculated + health checks) + + + * By determining the current state of a CloudWatch alarm (CloudWatch metric + health checks) + + + Route 53 doesn't check the health of the endpoint that is specified in the + resource record set, for example, the endpoint specified by the IP address + in the Value element. When you add a HealthCheckId element to a resource + record set, Route 53 checks the health of the endpoint that you specified + in the health check. + + + For more information, see the following topics in the Amazon Route 53 Developer + Guide: + + + * How Amazon Route 53 Determines Whether an Endpoint Is Healthy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) + + + * Route 53 Health Checks and DNS Failover (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) + + + * Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) + + + When to Specify HealthCheckId + + + Specifying a value for HealthCheckId is useful only when Route 53 is choosing + between two or more resource record sets to respond to a DNS query, and you + want Route 53 to base the choice in part on the status of a health check. + Configuring health checks makes sense only in the following configurations: + + + * Non-alias resource record sets: You're checking the health of a group + of non-alias resource record sets that have the same routing policy, name, + and type (such as multiple weighted records named www.example.com with + a type of A) and you specify health check IDs for all the resource record + sets. If the health check status for a resource record set is healthy, + Route 53 includes the record among the records that it responds to DNS + queries with. If the health check status for a resource record set is + unhealthy, Route 53 stops responding to DNS queries using the value for + that resource record set. If the health check status for all resource + record sets in the group is unhealthy, Route 53 considers all resource + record sets in the group healthy and responds to DNS queries accordingly. + + + * Alias resource record sets: You specify the following settings: You + set EvaluateTargetHealth to true for an alias resource record set in a + group of resource record sets that have the same routing policy, name, + and type (such as multiple weighted records named www.example.com with + a type of A). You configure the alias resource record set to route traffic + to a non-alias resource record set in the same hosted zone. You specify + a health check ID for the non-alias resource record set. If the health + check status is healthy, Route 53 considers the alias resource record + set to be healthy and includes the alias record among the records that + it responds to DNS queries with. If the health check status is unhealthy, + Route 53 stops responding to DNS queries using the alias resource record + set. The alias resource record set can also route traffic to a group of + non-alias resource record sets that have the same routing policy, name, + and type. In that configuration, associate health checks with all of the + resource record sets in the group of non-alias resource record sets. + + + Geolocation Routing + + + For geolocation resource record sets, if an endpoint is unhealthy, Route + 53 looks for a resource record set for the larger, associated geographic + region. For example, suppose you have resource record sets for a state in + the United States, for the entire United States, for North America, and a + resource record set that has * for CountryCode is *, which applies to all + locations. If the endpoint for the state resource record set is unhealthy, + Route 53 checks for healthy resource record sets in the following order until + it finds a resource record set for which the endpoint is healthy: + + + * The United States + + + * North America + + + * The default resource record set + + + Specifying the Health Check Endpoint by Domain Name + + + If your health checks specify the endpoint only by domain name, we recommend + that you create a separate health check for each endpoint. For example, create + a health check for each HTTP server that is serving content for www.example.com. + For the value of FullyQualifiedDomainName, specify the domain name of the + server (such as us-east-2-www.example.com), not the name of the resource + record sets (www.example.com). + + + Health check results will be unpredictable if you do the following: + + + * Create a health check that has the same value for FullyQualifiedDomainName + as the name of a resource record set. + + + * Associate that health check with the resource record set. type: string hostedZoneID: - description: The ID of the hosted zone that contains the resource - record sets that you want to change. + description: |- + The ID of the hosted zone that contains the resource record sets that you + want to change. type: string hostedZoneRef: 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 multiValueAnswer: - description: "Multivalue answer resource record sets only: To route - traffic approximately randomly to multiple resources, such as web - servers, create one multivalue answer record for each resource and - specify true for MultiValueAnswer. Note the following: \n * If you - associate a health check with a multivalue answer resource record - set, Amazon Route 53 responds to DNS queries with the corresponding - IP address only when the health check is healthy. \n * If you don't - associate a health check with a multivalue answer record, Route - 53 always considers the record to be healthy. \n * Route 53 responds - to DNS queries with up to eight healthy records; if you have eight - or fewer healthy records, Route 53 responds to all DNS queries with - all the healthy records. \n * If you have more than eight healthy - records, Route 53 responds to different DNS resolvers with different - combinations of healthy records. \n * When all records are unhealthy, - Route 53 responds to DNS queries with up to eight unhealthy records. - \n * If a resource becomes unavailable after a resolver caches a - response, client software typically tries another of the IP addresses - in the response. \n You can't create multivalue answer alias records." + description: |- + Multivalue answer resource record sets only: To route traffic approximately + randomly to multiple resources, such as web servers, create one multivalue + answer record for each resource and specify true for MultiValueAnswer. Note + the following: + + + * If you associate a health check with a multivalue answer resource record + set, Amazon Route 53 responds to DNS queries with the corresponding IP + address only when the health check is healthy. + + + * If you don't associate a health check with a multivalue answer record, + Route 53 always considers the record to be healthy. + + + * Route 53 responds to DNS queries with up to eight healthy records; if + you have eight or fewer healthy records, Route 53 responds to all DNS + queries with all the healthy records. + + + * If you have more than eight healthy records, Route 53 responds to different + DNS resolvers with different combinations of healthy records. + + + * When all records are unhealthy, Route 53 responds to DNS queries with + up to eight unhealthy records. + + + * If a resource becomes unavailable after a resolver caches a response, + client software typically tries another of the IP addresses in the response. + + + You can't create multivalue answer alias records. type: boolean name: - description: "For ChangeResourceRecordSets requests, the name of the - record that you want to create, update, or delete. For ListResourceRecordSets - responses, the name of a record in the specified hosted zone. \n - ChangeResourceRecordSets Only \n Enter a fully qualified domain - name, for example, www.example.com. You can optionally include a - trailing dot. If you omit the trailing dot, Amazon Route 53 assumes - that the domain name that you specify is fully qualified. This means - that Route 53 treats www.example.com (without a trailing dot) and - www.example.com. (with a trailing dot) as identical. \n For information - about how to specify characters other than a-z, 0-9, and - (hyphen) - and how to specify internationalized domain names, see DNS Domain + description: |- + For ChangeResourceRecordSets requests, the name of the record that you want + to create, update, or delete. For ListResourceRecordSets responses, the name + of a record in the specified hosted zone. + + + ChangeResourceRecordSets Only + + + Enter a fully qualified domain name, for example, www.example.com. You can + optionally include a trailing dot. If you omit the trailing dot, Amazon Route + 53 assumes that the domain name that you specify is fully qualified. This + means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. + (with a trailing dot) as identical. + + + For information about how to specify characters other than a-z, 0-9, and + - (hyphen) and how to specify internationalized domain names, see DNS Domain Name Format (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html) - in the Amazon Route 53 Developer Guide. \n You can use the asterisk - (*) wildcard to replace the leftmost label in a domain name, for - example, *.example.com. Note the following: \n * The * must replace - the entire label. For example, you can't specify *prod.example.com - or prod*.example.com. \n * The * can't replace any of the middle - labels, for example, marketing.*.example.com. \n * If you include - * in any position other than the leftmost label in a domain name, - DNS treats it as an * character (ASCII 42), not as a wildcard. You - can't use the * wildcard for resource records sets that have a type - of NS. \n You can use the * wildcard as the leftmost label in a - domain name, for example, *.example.com. You can't use an * for - one of the middle labels, for example, marketing.*.example.com. - In addition, the * must replace the entire label; for example, you - can't specify prod*.example.com." + in the Amazon Route 53 Developer Guide. + + + You can use the asterisk (*) wildcard to replace the leftmost label in a + domain name, for example, *.example.com. Note the following: + + + * The * must replace the entire label. For example, you can't specify + *prod.example.com or prod*.example.com. + + + * The * can't replace any of the middle labels, for example, marketing.*.example.com. + + + * If you include * in any position other than the leftmost label in a + domain name, DNS treats it as an * character (ASCII 42), not as a wildcard. + You can't use the * wildcard for resource records sets that have a type + of NS. + + + You can use the * wildcard as the leftmost label in a domain name, for example, + *.example.com. You can't use an * for one of the middle labels, for example, + marketing.*.example.com. In addition, the * must replace the entire label; + for example, you can't specify prod*.example.com. type: string recordType: - description: "The DNS record type. For information about different - record types and how data is encoded for them, see Supported DNS - Resource Record Types (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) - in the Amazon Route 53 Developer Guide. \n Valid values for basic - resource record sets: A | AAAA | CAA | CNAME | DS |MX | NAPTR | - NS | PTR | SOA | SPF | SRV | TXT \n Values for weighted, latency, - geolocation, and failover resource record sets: A | AAAA | CAA | - CNAME | MX | NAPTR | PTR | SPF | SRV | TXT. When creating a group - of weighted, latency, geolocation, or failover resource record sets, - specify the same value for all of the resource record sets in the - group. \n Valid values for multivalue answer resource record sets: - A | AAAA | MX | NAPTR | PTR | SPF | SRV | TXT \n SPF records were - formerly used to verify the identity of the sender of email messages. - However, we no longer recommend that you create resource record - sets for which the value of Type is SPF. RFC 7208, Sender Policy - Framework (SPF) for Authorizing Use of Domains in Email, Version - 1, has been updated to say, \"...[I]ts existence and mechanism defined - in [RFC4408] have led to some interoperability issues. Accordingly, - its use is no longer appropriate for SPF version 1; implementations - are not to use it.\" In RFC 7208, see section 14.1, The SPF DNS - Record Type (http://tools.ietf.org/html/rfc7208#section-14.1). \n - Values for alias resource record sets: \n * Amazon API Gateway custom - regional APIs and edge-optimized APIs: A \n * CloudFront distributions: - A If IPv6 is enabled for the distribution, create two resource record - sets to route traffic to your distribution, one with a value of - A and one with a value of AAAA. \n * Amazon API Gateway environment - that has a regionalized subdomain: A \n * ELB load balancers: A - | AAAA \n * Amazon S3 buckets: A \n * Amazon Virtual Private Cloud - interface VPC endpoints A \n * Another resource record set in this - hosted zone: Specify the type of the resource record set that you're - creating the alias for. All values are supported except NS and SOA. - If you're creating an alias record that has the same name as the - hosted zone (known as the zone apex), you can't route traffic to - a record for which the value of Type is CNAME. This is because the - alias record must have the same type as the record you're routing - traffic to, and creating a CNAME record for the zone apex isn't - supported even for an alias record." + description: |- + The DNS record type. For information about different record types and how + data is encoded for them, see Supported DNS Resource Record Types (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) + in the Amazon Route 53 Developer Guide. + + + Valid values for basic resource record sets: A | AAAA | CAA | CNAME | DS + |MX | NAPTR | NS | PTR | SOA | SPF | SRV | TXT + + + Values for weighted, latency, geolocation, and failover resource record sets: + A | AAAA | CAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT. When creating + a group of weighted, latency, geolocation, or failover resource record sets, + specify the same value for all of the resource record sets in the group. + + + Valid values for multivalue answer resource record sets: A | AAAA | MX | + NAPTR | PTR | SPF | SRV | TXT + + + SPF records were formerly used to verify the identity of the sender of email + messages. However, we no longer recommend that you create resource record + sets for which the value of Type is SPF. RFC 7208, Sender Policy Framework + (SPF) for Authorizing Use of Domains in Email, Version 1, has been updated + to say, "...[I]ts existence and mechanism defined in [RFC4408] have led to + some interoperability issues. Accordingly, its use is no longer appropriate + for SPF version 1; implementations are not to use it." In RFC 7208, see section + 14.1, The SPF DNS Record Type (http://tools.ietf.org/html/rfc7208#section-14.1). + + + Values for alias resource record sets: + + + * Amazon API Gateway custom regional APIs and edge-optimized APIs: A + + + * CloudFront distributions: A If IPv6 is enabled for the distribution, + create two resource record sets to route traffic to your distribution, + one with a value of A and one with a value of AAAA. + + + * Amazon API Gateway environment that has a regionalized subdomain: A + + + * ELB load balancers: A | AAAA + + + * Amazon S3 buckets: A + + + * Amazon Virtual Private Cloud interface VPC endpoints A + + + * Another resource record set in this hosted zone: Specify the type of + the resource record set that you're creating the alias for. All values + are supported except NS and SOA. If you're creating an alias record that + has the same name as the hosted zone (known as the zone apex), you can't + route traffic to a record for which the value of Type is CNAME. This is + because the alias record must have the same type as the record you're + routing traffic to, and creating a CNAME record for the zone apex isn't + supported even for an alias record. type: string region: - description: "Latency-based resource record sets only: The Amazon - EC2 Region where you created the resource that this resource record - set refers to. The resource typically is an Amazon Web Services - resource, such as an EC2 instance or an ELB load balancer, and is - referred to by an IP address or a DNS domain name, depending on - the record type. \n When Amazon Route 53 receives a DNS query for - a domain name and type for which you have created latency resource - record sets, Route 53 selects the latency resource record set that - has the lowest latency between the end user and the associated Amazon - EC2 Region. Route 53 then returns the value that is associated with - the selected resource record set. \n Note the following: \n * You - can only specify one ResourceRecord per latency resource record - set. \n * You can only create one latency resource record set for - each Amazon EC2 Region. \n * You aren't required to create latency - resource record sets for all Amazon EC2 Regions. Route 53 will choose - the region with the best latency from among the regions that you - create latency resource record sets for. \n * You can't create non-latency - resource record sets that have the same values for the Name and - Type elements as latency resource record sets." + description: |- + Latency-based resource record sets only: The Amazon EC2 Region where you + created the resource that this resource record set refers to. The resource + typically is an Amazon Web Services resource, such as an EC2 instance or + an ELB load balancer, and is referred to by an IP address or a DNS domain + name, depending on the record type. + + + When Amazon Route 53 receives a DNS query for a domain name and type for + which you have created latency resource record sets, Route 53 selects the + latency resource record set that has the lowest latency between the end user + and the associated Amazon EC2 Region. Route 53 then returns the value that + is associated with the selected resource record set. + + + Note the following: + + + * You can only specify one ResourceRecord per latency resource record + set. + + + * You can only create one latency resource record set for each Amazon + EC2 Region. + + + * You aren't required to create latency resource record sets for all Amazon + EC2 Regions. Route 53 will choose the region with the best latency from + among the regions that you create latency resource record sets for. + + + * You can't create non-latency resource record sets that have the same + values for the Name and Type elements as latency resource record sets. type: string resourceRecords: - description: "Information about the resource records to act upon. - \n If you're creating an alias resource record set, omit ResourceRecords." + description: |- + Information about the resource records to act upon. + + + If you're creating an alias resource record set, omit ResourceRecords. items: - description: "Information specific to the resource record. \n If - you're creating an alias resource record set, omit ResourceRecord." + description: |- + Information specific to the resource record. + + + If you're creating an alias resource record set, omit ResourceRecord. properties: value: type: string type: object type: array setIdentifier: - description: "Resource record sets that have a routing policy other - than simple: An identifier that differentiates among multiple resource - record sets that have the same combination of name and type, such - as multiple weighted resource record sets named acme.example.com - that have a type of A. In a group of resource record sets that have - the same name and type, the value of SetIdentifier must be unique - for each resource record set. \n For information about routing policies, - see Choosing a Routing Policy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) - in the Amazon Route 53 Developer Guide." + description: |- + Resource record sets that have a routing policy other than simple: An identifier + that differentiates among multiple resource record sets that have the same + combination of name and type, such as multiple weighted resource record sets + named acme.example.com that have a type of A. In a group of resource record + sets that have the same name and type, the value of SetIdentifier must be + unique for each resource record set. + + + For information about routing policies, see Choosing a Routing Policy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) + in the Amazon Route 53 Developer Guide. type: string ttl: - description: "The resource record cache time to live (TTL), in seconds. - Note the following: \n * If you're creating or updating an alias - resource record set, omit TTL. Amazon Route 53 uses the value of - TTL for the alias target. \n * If you're associating this resource - record set with a health check (if you're adding a HealthCheckId - element), we recommend that you specify a TTL of 60 seconds or less - so clients respond quickly to changes in health status. \n * All - of the resource record sets in a group of weighted resource record - sets must have the same value for TTL. \n * If a group of weighted - resource record sets includes one or more weighted alias resource - record sets for which the alias target is an ELB load balancer, - we recommend that you specify a TTL of 60 seconds for all of the - non-alias weighted resource record sets that have the same name - and type. Values other than 60 seconds (the TTL for load balancers) - will change the effect of the values that you specify for Weight." + description: |- + The resource record cache time to live (TTL), in seconds. Note the following: + + + * If you're creating or updating an alias resource record set, omit TTL. + Amazon Route 53 uses the value of TTL for the alias target. + + + * If you're associating this resource record set with a health check (if + you're adding a HealthCheckId element), we recommend that you specify + a TTL of 60 seconds or less so clients respond quickly to changes in health + status. + + + * All of the resource record sets in a group of weighted resource record + sets must have the same value for TTL. + + + * If a group of weighted resource record sets includes one or more weighted + alias resource record sets for which the alias target is an ELB load balancer, + we recommend that you specify a TTL of 60 seconds for all of the non-alias + weighted resource record sets that have the same name and type. Values + other than 60 seconds (the TTL for load balancers) will change the effect + of the values that you specify for Weight. format: int64 type: integer weight: - description: "Weighted resource record sets only: Among resource record - sets that have the same combination of DNS name and type, a value - that determines the proportion of DNS queries that Amazon Route - 53 responds to using the current resource record set. Route 53 calculates - the sum of the weights for the resource record sets that have the - same combination of DNS name and type. Route 53 then responds to - queries based on the ratio of a resource's weight to the total. - Note the following: \n * You must specify a value for the Weight - element for every weighted resource record set. \n * You can only - specify one ResourceRecord per weighted resource record set. \n - * You can't create latency, failover, or geolocation resource record - sets that have the same values for the Name and Type elements as - weighted resource record sets. \n * You can create a maximum of - 100 weighted resource record sets that have the same values for - the Name and Type elements. \n * For weighted (but not weighted - alias) resource record sets, if you set Weight to 0 for a resource - record set, Route 53 never responds to queries with the applicable - value for that resource record set. However, if you set Weight to - 0 for all resource record sets that have the same combination of - DNS name and type, traffic is routed to all resources with equal - probability. The effect of setting Weight to 0 is different when - you associate health checks with weighted resource record sets. - For more information, see Options for Configuring Route 53 Active-Active - and Active-Passive Failover (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html) - in the Amazon Route 53 Developer Guide." + description: |- + Weighted resource record sets only: Among resource record sets that have + the same combination of DNS name and type, a value that determines the proportion + of DNS queries that Amazon Route 53 responds to using the current resource + record set. Route 53 calculates the sum of the weights for the resource record + sets that have the same combination of DNS name and type. Route 53 then responds + to queries based on the ratio of a resource's weight to the total. Note the + following: + + + * You must specify a value for the Weight element for every weighted resource + record set. + + + * You can only specify one ResourceRecord per weighted resource record + set. + + + * You can't create latency, failover, or geolocation resource record sets + that have the same values for the Name and Type elements as weighted resource + record sets. + + + * You can create a maximum of 100 weighted resource record sets that have + the same values for the Name and Type elements. + + + * For weighted (but not weighted alias) resource record sets, if you set + Weight to 0 for a resource record set, Route 53 never responds to queries + with the applicable value for that resource record set. However, if you + set Weight to 0 for all resource record sets that have the same combination + of DNS name and type, traffic is routed to all resources with equal probability. + The effect of setting Weight to 0 is different when you associate health + checks with weighted resource record sets. For more information, see Options + for Configuring Route 53 Active-Active and Active-Passive Failover (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html) + in the Amazon Route 53 Developer Guide. format: int64 type: integer required: @@ -512,24 +712,26 @@ spec: description: RecordSetStatus defines the observed state of RecordSet 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 @@ -540,14 +742,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 @@ -573,20 +777,21 @@ spec: type: object type: array id: - description: This element contains an ID that you use when performing - a GetChange (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html) + description: |- + This element contains an ID that you use when performing a GetChange (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html) action to get detailed information about the change. type: string status: - description: The current state of the request. PENDING indicates that - this request has not yet been applied to all Amazon Route 53 DNS - servers. + description: |- + The current state of the request. PENDING indicates that this request has + not yet been applied to all Amazon Route 53 DNS servers. type: string submittedAt: - description: The date and time that the change request was submitted - in ISO 8601 format (https://en.wikipedia.org/wiki/ISO_8601) and - Coordinated Universal Time (UTC). For example, the value 2017-03-27T17:48:16.751Z - represents March 27, 2017 at 17:48:16.751 UTC. + description: |- + The date and time that the change request was submitted in ISO 8601 format + (https://en.wikipedia.org/wiki/ISO_8601) and Coordinated Universal Time (UTC). + For example, the value 2017-03-27T17:48:16.751Z represents March 27, 2017 + at 17:48:16.751 UTC. format: date-time type: string type: object 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 6913ffe..f25c4b6 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-route53-controller rules: - apiGroups: diff --git a/go.mod b/go.mod index d051335..b1e1092 100644 --- a/go.mod +++ b/go.mod @@ -5,14 +5,14 @@ go 1.21 toolchain go1.21.5 require ( - github.com/aws-controllers-k8s/runtime v0.29.2 + github.com/aws-controllers-k8s/runtime v0.30.0 github.com/aws/aws-sdk-go v1.49.0 - github.com/go-logr/logr v1.2.4 + github.com/go-logr/logr v1.4.1 github.com/spf13/pflag v1.0.5 - k8s.io/api v0.28.3 - k8s.io/apimachinery v0.28.3 - k8s.io/client-go v0.28.3 - sigs.k8s.io/controller-runtime v0.16.3 + k8s.io/api v0.29.0 + k8s.io/apimachinery v0.29.0 + k8s.io/client-go v0.29.0 + sigs.k8s.io/controller-runtime v0.17.0 ) require ( @@ -21,9 +21,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 @@ -31,7 +31,7 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.3.0 // indirect github.com/imdario/mergo v0.3.12 // indirect @@ -42,37 +42,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/pkg/errors v0.9.1 // 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 go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sys v0.13.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/oauth2 v0.12.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.28.3 // indirect - k8s.io/component-base v0.28.3 // indirect - k8s.io/klog/v2 v2.100.1 // indirect - k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect - k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect + k8s.io/apiextensions-apiserver v0.29.0 // indirect + k8s.io/component-base v0.29.0 // indirect + k8s.io/klog/v2 v2.110.1 // indirect + k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index 93b2cd3..2528b62 100644 --- a/go.sum +++ b/go.sum @@ -1,8 +1,7 @@ -github.com/aws-controllers-k8s/runtime v0.29.2 h1:t6wwoKqFmtbblMcwFivpWp1FZa0gkczoUsk+maIsiRA= -github.com/aws-controllers-k8s/runtime v0.29.2/go.mod h1:mZa9l+/l+tlbxWVmMWWbUC3oAHUbeTzlI7xTOMdYHpA= +github.com/aws-controllers-k8s/runtime v0.30.0 h1:AibYRdi/7xUA3t8BA0u8g+J+OioaTAT6R4Vq8hxLiYw= +github.com/aws-controllers-k8s/runtime v0.30.0/go.mod h1:Pv1ozlUaO11KO2mwPN/HzhAtZ70ZDE9UP24mjsbkul0= github.com/aws/aws-sdk-go v1.49.0 h1:g9BkW1fo9GqKfwg2+zCD+TW/D36Ux+vtfJ8guF4AYmY= github.com/aws/aws-sdk-go v1.49.0/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= @@ -17,15 +16,15 @@ 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/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/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/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= @@ -38,7 +37,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= @@ -47,8 +45,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= @@ -64,7 +63,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= @@ -75,7 +73,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= @@ -87,8 +84,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= @@ -96,23 +93,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= @@ -124,23 +120,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= @@ -148,55 +138,42 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= +golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= -golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= +golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -207,10 +184,9 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= @@ -223,27 +199,27 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.28.3 h1:Gj1HtbSdB4P08C8rs9AR94MfSGpRhJgsS+GF9V26xMM= -k8s.io/api v0.28.3/go.mod h1:MRCV/jr1dW87/qJnZ57U5Pak65LGmQVkKTzf3AtKFHc= -k8s.io/apiextensions-apiserver v0.28.3 h1:Od7DEnhXHnHPZG+W9I97/fSQkVpVPQx2diy+2EtmY08= -k8s.io/apiextensions-apiserver v0.28.3/go.mod h1:NE1XJZ4On0hS11aWWJUTNkmVB03j9LM7gJSisbRt8Lc= -k8s.io/apimachinery v0.28.3 h1:B1wYx8txOaCQG0HmYF6nbpU8dg6HvA06x5tEffvOe7A= -k8s.io/apimachinery v0.28.3/go.mod h1:uQTKmIqs+rAYaq+DFaoD2X7pcjLOqbQX2AOiO0nIpb8= -k8s.io/client-go v0.28.3 h1:2OqNb72ZuTZPKCl+4gTKvqao0AMOl9f3o2ijbAj3LI4= -k8s.io/client-go v0.28.3/go.mod h1:LTykbBp9gsA7SwqirlCXBWtK0guzfhpoW4qSm7i9dxo= -k8s.io/component-base v0.28.3 h1:rDy68eHKxq/80RiMb2Ld/tbH8uAE75JdCqJyi6lXMzI= -k8s.io/component-base v0.28.3/go.mod h1:fDJ6vpVNSk6cRo5wmDa6eKIG7UlIQkaFmZN2fYgIUD8= -k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= -k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ= -k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= -k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= -k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= -sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= +k8s.io/api v0.29.0 h1:NiCdQMY1QOp1H8lfRyeEf8eOwV6+0xA6XEE44ohDX2A= +k8s.io/api v0.29.0/go.mod h1:sdVmXoz2Bo/cb77Pxi71IPTSErEW32xa4aXwKH7gfBA= +k8s.io/apiextensions-apiserver v0.29.0 h1:0VuspFG7Hj+SxyF/Z/2T0uFbI5gb5LRgEyUVE3Q4lV0= +k8s.io/apiextensions-apiserver v0.29.0/go.mod h1:TKmpy3bTS0mr9pylH0nOt/QzQRrW7/h7yLdRForMZwc= +k8s.io/apimachinery v0.29.0 h1:+ACVktwyicPz0oc6MTMLwa2Pw3ouLAfAon1wPLtG48o= +k8s.io/apimachinery v0.29.0/go.mod h1:eVBxQ/cwiJxH58eK/jd/vAk4mrxmVlnpBH5J2GbMeis= +k8s.io/client-go v0.29.0 h1:KmlDtFcrdUzOYrBhXHgKw5ycWzc3ryPX5mQe0SkG3y8= +k8s.io/client-go v0.29.0/go.mod h1:yLkXH4HKMAywcrD82KMSmfYg2DlE8mepPR4JGSo5n38= +k8s.io/component-base v0.29.0 h1:T7rjd5wvLnPBV1vC4zWd/iWRbV8Mdxs+nGaoaFzGw3s= +k8s.io/component-base v0.29.0/go.mod h1:sADonFTQ9Zc9yFLghpDpmNXEdHyQmFIGbiuZbqAXQ1M= +k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= +k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.17.0 h1:fjJQf8Ukya+VjogLO6/bNX9HE6Y2xpsO5+fyS26ur/s= +sigs.k8s.io/controller-runtime v0.17.0/go.mod h1:+MngTvIQQQhfXtwfdGw/UOQ/aIaqsYywfCINOtwMO/s= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/helm/Chart.yaml b/helm/Chart.yaml index f81cb7c..a33169d 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 name: route53-chart description: A Helm chart for the ACK service controller for Amazon Route53 (Route53) -version: 0.0.10 -appVersion: 0.0.10 +version: 0.0.11 +appVersion: 0.0.11 home: https://github.com/aws-controllers-k8s/route53-controller icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png sources: diff --git a/helm/crds/route53.services.k8s.aws_hostedzones.yaml b/helm/crds/route53.services.k8s.aws_hostedzones.yaml index 2c5248e..b447e49 100644 --- a/helm/crds/route53.services.k8s.aws_hostedzones.yaml +++ b/helm/crds/route53.services.k8s.aws_hostedzones.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: hostedzones.route53.services.k8s.aws spec: group: route53.services.k8s.aws @@ -21,39 +20,55 @@ spec: description: HostedZone is the Schema for the HostedZones 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: "HostedZoneSpec defines the desired state of HostedZone. - \n A complex type that contains general information about the hosted - zone." + description: |- + HostedZoneSpec defines the desired state of HostedZone. + + + A complex type that contains general information about the hosted zone. properties: delegationSetID: - description: "If you want to associate a reusable delegation set with - this hosted zone, the ID that Amazon Route 53 assigned to the reusable - delegation set when you created it. For more information about reusable - delegation sets, see CreateReusableDelegationSet (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html). - \n If you are using a reusable delegation set to create a public - hosted zone for a subdomain, make sure that the parent hosted zone - doesn't use one or more of the same name servers. If you have overlapping - nameservers, the operation will cause a ConflictingDomainsExist - error." + description: |- + If you want to associate a reusable delegation set with this hosted zone, + the ID that Amazon Route 53 assigned to the reusable delegation set when + you created it. For more information about reusable delegation sets, see + CreateReusableDelegationSet (https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateReusableDelegationSet.html). + + + If you are using a reusable delegation set to create a public hosted zone + for a subdomain, make sure that the parent hosted zone doesn't use one or + more of the same name servers. If you have overlapping nameservers, the operation + will cause a ConflictingDomainsExist error. type: string hostedZoneConfig: - description: "(Optional) A complex type that contains the following - optional values: \n - For public and private hosted zones, an optional - comment \n - For private hosted zones, an optional PrivateZone element - \n If you don't specify a comment or the PrivateZone element, omit - HostedZoneConfig and the other elements." + description: |- + (Optional) A complex type that contains the following optional values: + + + - For public and private hosted zones, an optional comment + + + - For private hosted zones, an optional PrivateZone element + + + If you don't specify a comment or the PrivateZone element, omit HostedZoneConfig + and the other elements. properties: comment: type: string @@ -61,26 +76,30 @@ spec: type: boolean type: object name: - description: "The name of the domain. Specify a fully qualified domain - name, for example, www.example.com. The trailing dot is optional; - Amazon Route 53 assumes that the domain name is fully qualified. - This means that Route 53 treats www.example.com (without a trailing - dot) and www.example.com. (with a trailing dot) as identical. \n - If you're creating a public hosted zone, this is the name you have - registered with your DNS registrar. If your domain name is registered - with a registrar other than Route 53, change the name servers for - your domain to the set of NameServers that CreateHostedZone returns - in DelegationSet." + description: |- + The name of the domain. Specify a fully qualified domain name, for example, + www.example.com. The trailing dot is optional; Amazon Route 53 assumes that + the domain name is fully qualified. This means that Route 53 treats www.example.com + (without a trailing dot) and www.example.com. (with a trailing dot) as identical. + + + If you're creating a public hosted zone, this is the name you have registered + with your DNS registrar. If your domain name is registered with a registrar + other than Route 53, change the name servers for your domain to the set of + NameServers that CreateHostedZone returns in DelegationSet. type: string tags: - description: "A complex type that contains a list of the tags that - you want to add to the specified health check or hosted zone and/or - the tags that you want to edit Value for. \n You can add a maximum - of 10 tags to a health check or a hosted zone." + description: |- + A complex type that contains a list of the tags that you want to add to the + specified health check or hosted zone and/or the tags that you want to edit + Value for. + + + You can add a maximum of 10 tags to a health check or a hosted zone. items: - description: A complex type that contains information about a tag - that you want to add or edit for the specified health check or - hosted zone. + description: |- + A complex type that contains information about a tag that you want to add + or edit for the specified health check or hosted zone. properties: key: type: string @@ -89,14 +108,19 @@ spec: type: object type: array vpc: - description: "(Private hosted zones only) A complex type that contains - information about the Amazon VPC that you're associating with this - hosted zone. \n You can specify only one Amazon VPC when you create - a private hosted zone. If you are associating a VPC with a hosted - zone with this request, the paramaters VPCId and VPCRegion are also - required. \n To associate additional Amazon VPCs with the hosted - zone, use AssociateVPCWithHostedZone (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html) - after you create a hosted zone." + description: |- + (Private hosted zones only) A complex type that contains information about + the Amazon VPC that you're associating with this hosted zone. + + + You can specify only one Amazon VPC when you create a private hosted zone. + If you are associating a VPC with a hosted zone with this request, the paramaters + VPCId and VPCRegion are also required. + + + To associate additional Amazon VPCs with the hosted zone, use AssociateVPCWithHostedZone + (https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html) + after you create a hosted zone. properties: vpcID: description: (Private hosted zones only) The ID of an Amazon VPC. @@ -111,24 +135,26 @@ spec: description: HostedZoneStatus defines the observed state of HostedZone 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 @@ -139,18 +165,21 @@ spec: - region type: object callerReference: - description: The value that you specified for CallerReference when - you created the hosted zone. + description: |- + The value that you specified for CallerReference when you created the hosted + zone. 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 @@ -176,10 +205,10 @@ spec: type: object type: array config: - description: A complex type that includes the Comment and PrivateZone - elements. If you omitted the HostedZoneConfig and Comment elements - from the request, the Config and Comment elements don't appear in - the response. + description: |- + A complex type that includes the Comment and PrivateZone elements. If you + omitted the HostedZoneConfig and Comment elements from the request, the Config + and Comment elements don't appear in the response. properties: comment: type: string @@ -187,13 +216,15 @@ spec: type: boolean type: object id: - description: The ID that Amazon Route 53 assigned to the hosted zone - when you created it. + description: |- + The ID that Amazon Route 53 assigned to the hosted zone when you created + it. type: string linkedService: - description: If the hosted zone was created by another service, the - service that created the hosted zone. When a hosted zone is created - by another service, you can't edit or delete it using Route 53. + description: |- + If the hosted zone was created by another service, the service that created + the hosted zone. When a hosted zone is created by another service, you can't + edit or delete it using Route 53. properties: description: type: string diff --git a/helm/crds/route53.services.k8s.aws_recordsets.yaml b/helm/crds/route53.services.k8s.aws_recordsets.yaml index 4043a60..fb553dd 100644 --- a/helm/crds/route53.services.k8s.aws_recordsets.yaml +++ b/helm/crds/route53.services.k8s.aws_recordsets.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: recordsets.route53.services.k8s.aws spec: group: route53.services.k8s.aws @@ -25,14 +24,19 @@ spec: description: RecordSet is the Schema for the RecordSets 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 @@ -40,16 +44,23 @@ spec: description: RecordSetSpec defines the desired state of RecordSet. properties: aliasTarget: - description: "Alias resource record sets only: Information about the - Amazon Web Services resource, such as a CloudFront distribution - or an Amazon S3 bucket, that you want to route traffic to. \n If - you're creating resource records sets for a private hosted zone, - note the following: \n - You can't create an alias resource record - set in a private hosted zone to route traffic to a CloudFront distribution. - \n - For information about creating failover resource record sets - in a private hosted zone, see Configuring Failover in a Private - Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) - in the Amazon Route 53 Developer Guide." + description: |- + Alias resource record sets only: Information about the Amazon Web Services + resource, such as a CloudFront distribution or an Amazon S3 bucket, that + you want to route traffic to. + + + If you're creating resource records sets for a private hosted zone, note + the following: + + + - You can't create an alias resource record set in a private hosted zone + to route traffic to a CloudFront distribution. + + + - For information about creating failover resource record sets in a private + hosted zone, see Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) + in the Amazon Route 53 Developer Guide. properties: dnsName: type: string @@ -74,14 +85,17 @@ spec: create or delete. properties: aliasTarget: - description: "Alias resource record sets only: Information - about the Amazon Web Services resource, such as a - CloudFront distribution or an Amazon S3 bucket, that - you want to route traffic to. \n When creating resource - record sets for a private hosted zone, note the following: - \n * For information about creating failover resource - record sets in a private hosted zone, see Configuring - Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html)." + description: |- + Alias resource record sets only: Information about the Amazon Web Services + resource, such as a CloudFront distribution or an Amazon S3 bucket, that + you want to route traffic to. + + + When creating resource record sets for a private hosted zone, note the following: + + + * For information about creating failover resource record sets in a private + hosted zone, see Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html). properties: dnsName: type: string @@ -91,12 +105,13 @@ spec: type: string type: object cidrRoutingConfig: - description: "The object that is specified in resource - record set object when you are linking a resource - record set to a CIDR location. \n A LocationName with - an asterisk “*” can be used to create a default CIDR - record. CollectionId is still required for default - record." + description: |- + The object that is specified in resource record set object when you are linking + a resource record set to a CIDR location. + + + A LocationName with an asterisk “*” can be used to create a default CIDR + record. CollectionId is still required for default record. properties: collectionID: type: string @@ -126,9 +141,11 @@ spec: type: string resourceRecords: items: - description: "Information specific to the resource - record. \n If you're creating an alias resource - record set, omit ResourceRecord." + description: |- + Information specific to the resource record. + + + If you're creating an alias resource record set, omit ResourceRecord. properties: value: type: string @@ -153,10 +170,13 @@ spec: type: string type: object cidrRoutingConfig: - description: "The object that is specified in resource record set - object when you are linking a resource record set to a CIDR location. - \n A LocationName with an asterisk “*” can be used to create a default - CIDR record. CollectionId is still required for default record." + description: |- + The object that is specified in resource record set object when you are linking + a resource record set to a CIDR location. + + + A LocationName with an asterisk “*” can be used to create a default CIDR + record. CollectionId is still required for default record. properties: collectionID: type: string @@ -164,71 +184,100 @@ spec: type: string type: object failover: - description: "Failover resource record sets only: To configure failover, - you add the Failover element to two resource record sets. For one - resource record set, you specify PRIMARY as the value for Failover; - for the other resource record set, you specify SECONDARY. In addition, - you include the HealthCheckId element and specify the health check - that you want Amazon Route 53 to perform for each resource record - set. \n Except where noted, the following failover behaviors assume - that you have included the HealthCheckId element in both resource - record sets: \n - When the primary resource record set is healthy, - Route 53 responds to DNS queries with the applicable value from - the primary resource record set regardless of the health of the - secondary resource record set. \n - When the primary resource record - set is unhealthy and the secondary resource record set is healthy, - Route 53 responds to DNS queries with the applicable value from - the secondary resource record set. \n - When the secondary resource - record set is unhealthy, Route 53 responds to DNS queries with the - applicable value from the primary resource record set regardless - of the health of the primary resource record set. \n - If you omit - the HealthCheckId element for the secondary resource record set, - and if the primary resource record set is unhealthy, Route 53 always - responds to DNS queries with the applicable value from the secondary - resource record set. This is true regardless of the health of the - associated endpoint. \n You can't create non-failover resource record - sets that have the same values for the Name and Type elements as - failover resource record sets. \n For failover alias resource record - sets, you must also include the EvaluateTargetHealth element and - set the value to true. \n For more information about configuring - failover for Route 53, see the following topics in the Amazon Route - 53 Developer Guide: \n - Route 53 Health Checks and DNS Failover - (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) - \n - Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html)" + description: |- + Failover resource record sets only: To configure failover, you add the Failover + element to two resource record sets. For one resource record set, you specify + PRIMARY as the value for Failover; for the other resource record set, you + specify SECONDARY. In addition, you include the HealthCheckId element and + specify the health check that you want Amazon Route 53 to perform for each + resource record set. + + + Except where noted, the following failover behaviors assume that you have + included the HealthCheckId element in both resource record sets: + + + - When the primary resource record set is healthy, Route 53 responds to + DNS queries with the applicable value from the primary resource record + set regardless of the health of the secondary resource record set. + + + - When the primary resource record set is unhealthy and the secondary + resource record set is healthy, Route 53 responds to DNS queries with + the applicable value from the secondary resource record set. + + + - When the secondary resource record set is unhealthy, Route 53 responds + to DNS queries with the applicable value from the primary resource record + set regardless of the health of the primary resource record set. + + + - If you omit the HealthCheckId element for the secondary resource record + set, and if the primary resource record set is unhealthy, Route 53 always + responds to DNS queries with the applicable value from the secondary resource + record set. This is true regardless of the health of the associated endpoint. + + + You can't create non-failover resource record sets that have the same values + for the Name and Type elements as failover resource record sets. + + + For failover alias resource record sets, you must also include the EvaluateTargetHealth + element and set the value to true. + + + For more information about configuring failover for Route 53, see the following + topics in the Amazon Route 53 Developer Guide: + + + - Route 53 Health Checks and DNS Failover (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) + + + - Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) type: string geoLocation: - description: "Geolocation resource record sets only: A complex type - that lets you control how Amazon Route 53 responds to DNS queries - based on the geographic origin of the query. For example, if you - want all queries from Africa to be routed to a web server with an - IP address of 192.0.2.111, create a resource record set with a Type - of A and a ContinentCode of AF. \n Although creating geolocation - and geolocation alias resource record sets in a private hosted zone - is allowed, it's not supported. \n If you create separate resource - record sets for overlapping geographic regions (for example, one - resource record set for a continent and one for a country on the - same continent), priority goes to the smallest geographic region. - This allows you to route most queries for a continent to one resource - and to route queries for a country on that continent to a different - resource. \n You can't create two geolocation resource record sets - that specify the same geographic location. \n The value * in the - CountryCode element matches all geographic locations that aren't - specified in other geolocation resource record sets that have the - same values for the Name and Type elements. \n Geolocation works - by mapping IP addresses to locations. However, some IP addresses - aren't mapped to geographic locations, so even if you create geolocation - resource record sets that cover all seven continents, Route 53 will - receive some DNS queries from locations that it can't identify. - We recommend that you create a resource record set for which the - value of CountryCode is *. Two groups of queries are routed to the - resource that you specify in this record: queries that come from - locations for which you haven't created geolocation resource record - sets and queries from IP addresses that aren't mapped to a location. - If you don't create a * resource record set, Route 53 returns a - \"no answer\" response for queries from those locations. \n You - can't create non-geolocation resource record sets that have the - same values for the Name and Type elements as geolocation resource - record sets." + description: |- + Geolocation resource record sets only: A complex type that lets you control + how Amazon Route 53 responds to DNS queries based on the geographic origin + of the query. For example, if you want all queries from Africa to be routed + to a web server with an IP address of 192.0.2.111, create a resource record + set with a Type of A and a ContinentCode of AF. + + + Although creating geolocation and geolocation alias resource record sets + in a private hosted zone is allowed, it's not supported. + + + If you create separate resource record sets for overlapping geographic regions + (for example, one resource record set for a continent and one for a country + on the same continent), priority goes to the smallest geographic region. + This allows you to route most queries for a continent to one resource and + to route queries for a country on that continent to a different resource. + + + You can't create two geolocation resource record sets that specify the same + geographic location. + + + The value * in the CountryCode element matches all geographic locations that + aren't specified in other geolocation resource record sets that have the + same values for the Name and Type elements. + + + Geolocation works by mapping IP addresses to locations. However, some IP + addresses aren't mapped to geographic locations, so even if you create geolocation + resource record sets that cover all seven continents, Route 53 will receive + some DNS queries from locations that it can't identify. We recommend that + you create a resource record set for which the value of CountryCode is *. + Two groups of queries are routed to the resource that you specify in this + record: queries that come from locations for which you haven't created geolocation + resource record sets and queries from IP addresses that aren't mapped to + a location. If you don't create a * resource record set, Route 53 returns + a "no answer" response for queries from those locations. + + + You can't create non-geolocation resource record sets that have the same + values for the Name and Type elements as geolocation resource record sets. properties: continentCode: type: string @@ -238,272 +287,422 @@ spec: type: string type: object healthCheckID: - description: "If you want Amazon Route 53 to return this resource - record set in response to a DNS query only when the status of a - health check is healthy, include the HealthCheckId element and specify - the ID of the applicable health check. \n Route 53 determines whether - a resource record set is healthy based on one of the following: - \n - By periodically sending a request to the endpoint that is specified - in the health check \n - By aggregating the status of a specified - group of health checks (calculated health checks) \n - By determining - the current state of a CloudWatch alarm (CloudWatch metric health - checks) \n Route 53 doesn't check the health of the endpoint that - is specified in the resource record set, for example, the endpoint - specified by the IP address in the Value element. When you add a - HealthCheckId element to a resource record set, Route 53 checks - the health of the endpoint that you specified in the health check. - \n For more information, see the following topics in the Amazon - Route 53 Developer Guide: \n - How Amazon Route 53 Determines Whether - an Endpoint Is Healthy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) - \n - Route 53 Health Checks and DNS Failover (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) - \n - Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) - \n # When to Specify HealthCheckId \n Specifying a value for HealthCheckId - is useful only when Route 53 is choosing between two or more resource - record sets to respond to a DNS query, and you want Route 53 to - base the choice in part on the status of a health check. Configuring - health checks makes sense only in the following configurations: - \n - Non-alias resource record sets: You're checking the health - of a group of non-alias resource record sets that have the same - routing policy, name, and type (such as multiple weighted records - named www.example.com with a type of A) and you specify health check - IDs for all the resource record sets. If the health check status - for a resource record set is healthy, Route 53 includes the record - among the records that it responds to DNS queries with. If the health - check status for a resource record set is unhealthy, Route 53 stops - responding to DNS queries using the value for that resource record - set. If the health check status for all resource record sets in - the group is unhealthy, Route 53 considers all resource record sets - in the group healthy and responds to DNS queries accordingly. \n - - Alias resource record sets: You specify the following settings: - You set EvaluateTargetHealth to true for an alias resource record - set in a group of resource record sets that have the same routing - policy, name, and type (such as multiple weighted records named - www.example.com with a type of A). You configure the alias resource - record set to route traffic to a non-alias resource record set in - the same hosted zone. You specify a health check ID for the non-alias - resource record set. If the health check status is healthy, Route - 53 considers the alias resource record set to be healthy and includes - the alias record among the records that it responds to DNS queries - with. If the health check status is unhealthy, Route 53 stops responding - to DNS queries using the alias resource record set. The alias resource - record set can also route traffic to a group of non-alias resource - record sets that have the same routing policy, name, and type. In - that configuration, associate health checks with all of the resource - record sets in the group of non-alias resource record sets. \n # - Geolocation Routing \n For geolocation resource record sets, if - an endpoint is unhealthy, Route 53 looks for a resource record set - for the larger, associated geographic region. For example, suppose - you have resource record sets for a state in the United States, - for the entire United States, for North America, and a resource - record set that has * for CountryCode is *, which applies to all - locations. If the endpoint for the state resource record set is - unhealthy, Route 53 checks for healthy resource record sets in the - following order until it finds a resource record set for which the - endpoint is healthy: \n - The United States \n - North America \n - - The default resource record set \n # Specifying the Health Check - Endpoint by Domain Name \n If your health checks specify the endpoint - only by domain name, we recommend that you create a separate health - check for each endpoint. For example, create a health check for - each HTTP server that is serving content for www.example.com. For - the value of FullyQualifiedDomainName, specify the domain name of - the server (such as us-east-2-www.example.com), not the name of - the resource record sets (www.example.com). \n Health check results - will be unpredictable if you do the following: \n - Create a health - check that has the same value for FullyQualifiedDomainName as the - name of a resource record set. \n - Associate that health check - with the resource record set." + description: |- + If you want Amazon Route 53 to return this resource record set in response + to a DNS query only when the status of a health check is healthy, include + the HealthCheckId element and specify the ID of the applicable health check. + + + Route 53 determines whether a resource record set is healthy based on one + of the following: + + + - By periodically sending a request to the endpoint that is specified + in the health check + + + - By aggregating the status of a specified group of health checks (calculated + health checks) + + + - By determining the current state of a CloudWatch alarm (CloudWatch metric + health checks) + + + Route 53 doesn't check the health of the endpoint that is specified in the + resource record set, for example, the endpoint specified by the IP address + in the Value element. When you add a HealthCheckId element to a resource + record set, Route 53 checks the health of the endpoint that you specified + in the health check. + + + For more information, see the following topics in the Amazon Route 53 Developer + Guide: + + + - How Amazon Route 53 Determines Whether an Endpoint Is Healthy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) + + + - Route 53 Health Checks and DNS Failover (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html) + + + - Configuring Failover in a Private Hosted Zone (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html) + + + # When to Specify HealthCheckId + + + Specifying a value for HealthCheckId is useful only when Route 53 is choosing + between two or more resource record sets to respond to a DNS query, and you + want Route 53 to base the choice in part on the status of a health check. + Configuring health checks makes sense only in the following configurations: + + + - Non-alias resource record sets: You're checking the health of a group + of non-alias resource record sets that have the same routing policy, name, + and type (such as multiple weighted records named www.example.com with + a type of A) and you specify health check IDs for all the resource record + sets. If the health check status for a resource record set is healthy, + Route 53 includes the record among the records that it responds to DNS + queries with. If the health check status for a resource record set is + unhealthy, Route 53 stops responding to DNS queries using the value for + that resource record set. If the health check status for all resource + record sets in the group is unhealthy, Route 53 considers all resource + record sets in the group healthy and responds to DNS queries accordingly. + + + - Alias resource record sets: You specify the following settings: You + set EvaluateTargetHealth to true for an alias resource record set in a + group of resource record sets that have the same routing policy, name, + and type (such as multiple weighted records named www.example.com with + a type of A). You configure the alias resource record set to route traffic + to a non-alias resource record set in the same hosted zone. You specify + a health check ID for the non-alias resource record set. If the health + check status is healthy, Route 53 considers the alias resource record + set to be healthy and includes the alias record among the records that + it responds to DNS queries with. If the health check status is unhealthy, + Route 53 stops responding to DNS queries using the alias resource record + set. The alias resource record set can also route traffic to a group of + non-alias resource record sets that have the same routing policy, name, + and type. In that configuration, associate health checks with all of the + resource record sets in the group of non-alias resource record sets. + + + # Geolocation Routing + + + For geolocation resource record sets, if an endpoint is unhealthy, Route + 53 looks for a resource record set for the larger, associated geographic + region. For example, suppose you have resource record sets for a state in + the United States, for the entire United States, for North America, and a + resource record set that has * for CountryCode is *, which applies to all + locations. If the endpoint for the state resource record set is unhealthy, + Route 53 checks for healthy resource record sets in the following order until + it finds a resource record set for which the endpoint is healthy: + + + - The United States + + + - North America + + + - The default resource record set + + + # Specifying the Health Check Endpoint by Domain Name + + + If your health checks specify the endpoint only by domain name, we recommend + that you create a separate health check for each endpoint. For example, create + a health check for each HTTP server that is serving content for www.example.com. + For the value of FullyQualifiedDomainName, specify the domain name of the + server (such as us-east-2-www.example.com), not the name of the resource + record sets (www.example.com). + + + Health check results will be unpredictable if you do the following: + + + - Create a health check that has the same value for FullyQualifiedDomainName + as the name of a resource record set. + + + - Associate that health check with the resource record set. type: string hostedZoneID: - description: The ID of the hosted zone that contains the resource - record sets that you want to change. + description: |- + The ID of the hosted zone that contains the resource record sets that you + want to change. type: string hostedZoneRef: 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 multiValueAnswer: - description: "Multivalue answer resource record sets only: To route - traffic approximately randomly to multiple resources, such as web - servers, create one multivalue answer record for each resource and - specify true for MultiValueAnswer. Note the following: \n - If you - associate a health check with a multivalue answer resource record - set, Amazon Route 53 responds to DNS queries with the corresponding - IP address only when the health check is healthy. \n - If you don't - associate a health check with a multivalue answer record, Route - 53 always considers the record to be healthy. \n - Route 53 responds - to DNS queries with up to eight healthy records; if you have eight - or fewer healthy records, Route 53 responds to all DNS queries with - all the healthy records. \n - If you have more than eight healthy - records, Route 53 responds to different DNS resolvers with different - combinations of healthy records. \n - When all records are unhealthy, - Route 53 responds to DNS queries with up to eight unhealthy records. - \n - If a resource becomes unavailable after a resolver caches a - response, client software typically tries another of the IP addresses - in the response. \n You can't create multivalue answer alias records." + description: |- + Multivalue answer resource record sets only: To route traffic approximately + randomly to multiple resources, such as web servers, create one multivalue + answer record for each resource and specify true for MultiValueAnswer. Note + the following: + + + - If you associate a health check with a multivalue answer resource record + set, Amazon Route 53 responds to DNS queries with the corresponding IP + address only when the health check is healthy. + + + - If you don't associate a health check with a multivalue answer record, + Route 53 always considers the record to be healthy. + + + - Route 53 responds to DNS queries with up to eight healthy records; if + you have eight or fewer healthy records, Route 53 responds to all DNS + queries with all the healthy records. + + + - If you have more than eight healthy records, Route 53 responds to different + DNS resolvers with different combinations of healthy records. + + + - When all records are unhealthy, Route 53 responds to DNS queries with + up to eight unhealthy records. + + + - If a resource becomes unavailable after a resolver caches a response, + client software typically tries another of the IP addresses in the response. + + + You can't create multivalue answer alias records. type: boolean name: - description: "For ChangeResourceRecordSets requests, the name of the - record that you want to create, update, or delete. For ListResourceRecordSets - responses, the name of a record in the specified hosted zone. \n - # ChangeResourceRecordSets Only \n Enter a fully qualified domain - name, for example, www.example.com. You can optionally include a - trailing dot. If you omit the trailing dot, Amazon Route 53 assumes - that the domain name that you specify is fully qualified. This means - that Route 53 treats www.example.com (without a trailing dot) and - www.example.com. (with a trailing dot) as identical. \n For information - about how to specify characters other than a-z, 0-9, and - (hyphen) - and how to specify internationalized domain names, see DNS Domain + description: |- + For ChangeResourceRecordSets requests, the name of the record that you want + to create, update, or delete. For ListResourceRecordSets responses, the name + of a record in the specified hosted zone. + + + # ChangeResourceRecordSets Only + + + Enter a fully qualified domain name, for example, www.example.com. You can + optionally include a trailing dot. If you omit the trailing dot, Amazon Route + 53 assumes that the domain name that you specify is fully qualified. This + means that Route 53 treats www.example.com (without a trailing dot) and www.example.com. + (with a trailing dot) as identical. + + + For information about how to specify characters other than a-z, 0-9, and + - (hyphen) and how to specify internationalized domain names, see DNS Domain Name Format (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DomainNameFormat.html) - in the Amazon Route 53 Developer Guide. \n You can use the asterisk - (*) wildcard to replace the leftmost label in a domain name, for - example, *.example.com. Note the following: \n - The * must replace - the entire label. For example, you can't specify *prod.example.com - or prod*.example.com. \n - The * can't replace any of the middle - labels, for example, marketing.*.example.com. \n - If you include - * in any position other than the leftmost label in a domain name, - DNS treats it as an * character (ASCII 42), not as a wildcard. You - can't use the * wildcard for resource records sets that have a type - of NS. \n You can use the * wildcard as the leftmost label in a - domain name, for example, *.example.com. You can't use an * for - one of the middle labels, for example, marketing.*.example.com. - In addition, the * must replace the entire label; for example, you - can't specify prod*.example.com." + in the Amazon Route 53 Developer Guide. + + + You can use the asterisk (*) wildcard to replace the leftmost label in a + domain name, for example, *.example.com. Note the following: + + + - The * must replace the entire label. For example, you can't specify + *prod.example.com or prod*.example.com. + + + - The * can't replace any of the middle labels, for example, marketing.*.example.com. + + + - If you include * in any position other than the leftmost label in a + domain name, DNS treats it as an * character (ASCII 42), not as a wildcard. + You can't use the * wildcard for resource records sets that have a type + of NS. + + + You can use the * wildcard as the leftmost label in a domain name, for example, + *.example.com. You can't use an * for one of the middle labels, for example, + marketing.*.example.com. In addition, the * must replace the entire label; + for example, you can't specify prod*.example.com. type: string recordType: - description: "The DNS record type. For information about different - record types and how data is encoded for them, see Supported DNS - Resource Record Types (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) - in the Amazon Route 53 Developer Guide. \n Valid values for basic - resource record sets: A | AAAA | CAA | CNAME | DS |MX | NAPTR | - NS | PTR | SOA | SPF | SRV | TXT \n Values for weighted, latency, - geolocation, and failover resource record sets: A | AAAA | CAA | - CNAME | MX | NAPTR | PTR | SPF | SRV | TXT. When creating a group - of weighted, latency, geolocation, or failover resource record sets, - specify the same value for all of the resource record sets in the - group. \n Valid values for multivalue answer resource record sets: - A | AAAA | MX | NAPTR | PTR | SPF | SRV | TXT \n SPF records were - formerly used to verify the identity of the sender of email messages. - However, we no longer recommend that you create resource record - sets for which the value of Type is SPF. RFC 7208, Sender Policy - Framework (SPF) for Authorizing Use of Domains in Email, Version - 1, has been updated to say, \"...[I]ts existence and mechanism defined - in [RFC4408] have led to some interoperability issues. Accordingly, - its use is no longer appropriate for SPF version 1; implementations - are not to use it.\" In RFC 7208, see section 14.1, The SPF DNS - Record Type (http://tools.ietf.org/html/rfc7208#section-14.1). \n - Values for alias resource record sets: \n - Amazon API Gateway custom - regional APIs and edge-optimized APIs: A \n - CloudFront distributions: - A If IPv6 is enabled for the distribution, create two resource record - sets to route traffic to your distribution, one with a value of - A and one with a value of AAAA. \n - Amazon API Gateway environment - that has a regionalized subdomain: A \n - ELB load balancers: A - | AAAA \n - Amazon S3 buckets: A \n - Amazon Virtual Private Cloud - interface VPC endpoints A \n - Another resource record set in this - hosted zone: Specify the type of the resource record set that you're - creating the alias for. All values are supported except NS and SOA. - If you're creating an alias record that has the same name as the - hosted zone (known as the zone apex), you can't route traffic to - a record for which the value of Type is CNAME. This is because the - alias record must have the same type as the record you're routing - traffic to, and creating a CNAME record for the zone apex isn't - supported even for an alias record." + description: |- + The DNS record type. For information about different record types and how + data is encoded for them, see Supported DNS Resource Record Types (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) + in the Amazon Route 53 Developer Guide. + + + Valid values for basic resource record sets: A | AAAA | CAA | CNAME | DS + |MX | NAPTR | NS | PTR | SOA | SPF | SRV | TXT + + + Values for weighted, latency, geolocation, and failover resource record sets: + A | AAAA | CAA | CNAME | MX | NAPTR | PTR | SPF | SRV | TXT. When creating + a group of weighted, latency, geolocation, or failover resource record sets, + specify the same value for all of the resource record sets in the group. + + + Valid values for multivalue answer resource record sets: A | AAAA | MX | + NAPTR | PTR | SPF | SRV | TXT + + + SPF records were formerly used to verify the identity of the sender of email + messages. However, we no longer recommend that you create resource record + sets for which the value of Type is SPF. RFC 7208, Sender Policy Framework + (SPF) for Authorizing Use of Domains in Email, Version 1, has been updated + to say, "...[I]ts existence and mechanism defined in [RFC4408] have led to + some interoperability issues. Accordingly, its use is no longer appropriate + for SPF version 1; implementations are not to use it." In RFC 7208, see section + 14.1, The SPF DNS Record Type (http://tools.ietf.org/html/rfc7208#section-14.1). + + + Values for alias resource record sets: + + + - Amazon API Gateway custom regional APIs and edge-optimized APIs: A + + + - CloudFront distributions: A If IPv6 is enabled for the distribution, + create two resource record sets to route traffic to your distribution, + one with a value of A and one with a value of AAAA. + + + - Amazon API Gateway environment that has a regionalized subdomain: A + + + - ELB load balancers: A | AAAA + + + - Amazon S3 buckets: A + + + - Amazon Virtual Private Cloud interface VPC endpoints A + + + - Another resource record set in this hosted zone: Specify the type of + the resource record set that you're creating the alias for. All values + are supported except NS and SOA. If you're creating an alias record that + has the same name as the hosted zone (known as the zone apex), you can't + route traffic to a record for which the value of Type is CNAME. This is + because the alias record must have the same type as the record you're + routing traffic to, and creating a CNAME record for the zone apex isn't + supported even for an alias record. type: string region: - description: "Latency-based resource record sets only: The Amazon - EC2 Region where you created the resource that this resource record - set refers to. The resource typically is an Amazon Web Services - resource, such as an EC2 instance or an ELB load balancer, and is - referred to by an IP address or a DNS domain name, depending on - the record type. \n When Amazon Route 53 receives a DNS query for - a domain name and type for which you have created latency resource - record sets, Route 53 selects the latency resource record set that - has the lowest latency between the end user and the associated Amazon - EC2 Region. Route 53 then returns the value that is associated with - the selected resource record set. \n Note the following: \n - You - can only specify one ResourceRecord per latency resource record - set. \n - You can only create one latency resource record set for - each Amazon EC2 Region. \n - You aren't required to create latency - resource record sets for all Amazon EC2 Regions. Route 53 will choose - the region with the best latency from among the regions that you - create latency resource record sets for. \n - You can't create non-latency - resource record sets that have the same values for the Name and - Type elements as latency resource record sets." + description: |- + Latency-based resource record sets only: The Amazon EC2 Region where you + created the resource that this resource record set refers to. The resource + typically is an Amazon Web Services resource, such as an EC2 instance or + an ELB load balancer, and is referred to by an IP address or a DNS domain + name, depending on the record type. + + + When Amazon Route 53 receives a DNS query for a domain name and type for + which you have created latency resource record sets, Route 53 selects the + latency resource record set that has the lowest latency between the end user + and the associated Amazon EC2 Region. Route 53 then returns the value that + is associated with the selected resource record set. + + + Note the following: + + + - You can only specify one ResourceRecord per latency resource record + set. + + + - You can only create one latency resource record set for each Amazon + EC2 Region. + + + - You aren't required to create latency resource record sets for all Amazon + EC2 Regions. Route 53 will choose the region with the best latency from + among the regions that you create latency resource record sets for. + + + - You can't create non-latency resource record sets that have the same + values for the Name and Type elements as latency resource record sets. type: string resourceRecords: - description: "Information about the resource records to act upon. - \n If you're creating an alias resource record set, omit ResourceRecords." + description: |- + Information about the resource records to act upon. + + + If you're creating an alias resource record set, omit ResourceRecords. items: - description: "Information specific to the resource record. \n If - you're creating an alias resource record set, omit ResourceRecord." + description: |- + Information specific to the resource record. + + + If you're creating an alias resource record set, omit ResourceRecord. properties: value: type: string type: object type: array setIdentifier: - description: "Resource record sets that have a routing policy other - than simple: An identifier that differentiates among multiple resource - record sets that have the same combination of name and type, such - as multiple weighted resource record sets named acme.example.com - that have a type of A. In a group of resource record sets that have - the same name and type, the value of SetIdentifier must be unique - for each resource record set. \n For information about routing policies, - see Choosing a Routing Policy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) - in the Amazon Route 53 Developer Guide." + description: |- + Resource record sets that have a routing policy other than simple: An identifier + that differentiates among multiple resource record sets that have the same + combination of name and type, such as multiple weighted resource record sets + named acme.example.com that have a type of A. In a group of resource record + sets that have the same name and type, the value of SetIdentifier must be + unique for each resource record set. + + + For information about routing policies, see Choosing a Routing Policy (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html) + in the Amazon Route 53 Developer Guide. type: string ttl: - description: "The resource record cache time to live (TTL), in seconds. - Note the following: \n - If you're creating or updating an alias - resource record set, omit TTL. Amazon Route 53 uses the value of - TTL for the alias target. \n - If you're associating this resource - record set with a health check (if you're adding a HealthCheckId - element), we recommend that you specify a TTL of 60 seconds or less - so clients respond quickly to changes in health status. \n - All - of the resource record sets in a group of weighted resource record - sets must have the same value for TTL. \n - If a group of weighted - resource record sets includes one or more weighted alias resource - record sets for which the alias target is an ELB load balancer, - we recommend that you specify a TTL of 60 seconds for all of the - non-alias weighted resource record sets that have the same name - and type. Values other than 60 seconds (the TTL for load balancers) - will change the effect of the values that you specify for Weight." + description: |- + The resource record cache time to live (TTL), in seconds. Note the following: + + + - If you're creating or updating an alias resource record set, omit TTL. + Amazon Route 53 uses the value of TTL for the alias target. + + + - If you're associating this resource record set with a health check (if + you're adding a HealthCheckId element), we recommend that you specify + a TTL of 60 seconds or less so clients respond quickly to changes in health + status. + + + - All of the resource record sets in a group of weighted resource record + sets must have the same value for TTL. + + + - If a group of weighted resource record sets includes one or more weighted + alias resource record sets for which the alias target is an ELB load balancer, + we recommend that you specify a TTL of 60 seconds for all of the non-alias + weighted resource record sets that have the same name and type. Values + other than 60 seconds (the TTL for load balancers) will change the effect + of the values that you specify for Weight. format: int64 type: integer weight: - description: "Weighted resource record sets only: Among resource record - sets that have the same combination of DNS name and type, a value - that determines the proportion of DNS queries that Amazon Route - 53 responds to using the current resource record set. Route 53 calculates - the sum of the weights for the resource record sets that have the - same combination of DNS name and type. Route 53 then responds to - queries based on the ratio of a resource's weight to the total. - Note the following: \n - You must specify a value for the Weight - element for every weighted resource record set. \n - You can only - specify one ResourceRecord per weighted resource record set. \n - - You can't create latency, failover, or geolocation resource record - sets that have the same values for the Name and Type elements as - weighted resource record sets. \n - You can create a maximum of - 100 weighted resource record sets that have the same values for - the Name and Type elements. \n - For weighted (but not weighted - alias) resource record sets, if you set Weight to 0 for a resource - record set, Route 53 never responds to queries with the applicable - value for that resource record set. However, if you set Weight to - 0 for all resource record sets that have the same combination of - DNS name and type, traffic is routed to all resources with equal - probability. The effect of setting Weight to 0 is different when - you associate health checks with weighted resource record sets. - For more information, see Options for Configuring Route 53 Active-Active - and Active-Passive Failover (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html) - in the Amazon Route 53 Developer Guide." + description: |- + Weighted resource record sets only: Among resource record sets that have + the same combination of DNS name and type, a value that determines the proportion + of DNS queries that Amazon Route 53 responds to using the current resource + record set. Route 53 calculates the sum of the weights for the resource record + sets that have the same combination of DNS name and type. Route 53 then responds + to queries based on the ratio of a resource's weight to the total. Note the + following: + + + - You must specify a value for the Weight element for every weighted resource + record set. + + + - You can only specify one ResourceRecord per weighted resource record + set. + + + - You can't create latency, failover, or geolocation resource record sets + that have the same values for the Name and Type elements as weighted resource + record sets. + + + - You can create a maximum of 100 weighted resource record sets that have + the same values for the Name and Type elements. + + + - For weighted (but not weighted alias) resource record sets, if you set + Weight to 0 for a resource record set, Route 53 never responds to queries + with the applicable value for that resource record set. However, if you + set Weight to 0 for all resource record sets that have the same combination + of DNS name and type, traffic is routed to all resources with equal probability. + The effect of setting Weight to 0 is different when you associate health + checks with weighted resource record sets. For more information, see Options + for Configuring Route 53 Active-Active and Active-Passive Failover (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-configuring-options.html) + in the Amazon Route 53 Developer Guide. format: int64 type: integer required: @@ -513,24 +712,26 @@ spec: description: RecordSetStatus defines the observed state of RecordSet 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 @@ -541,14 +742,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 @@ -574,20 +777,21 @@ spec: type: object type: array id: - description: This element contains an ID that you use when performing - a GetChange (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html) + description: |- + This element contains an ID that you use when performing a GetChange (https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html) action to get detailed information about the change. type: string status: - description: The current state of the request. PENDING indicates that - this request has not yet been applied to all Amazon Route 53 DNS - servers. + description: |- + The current state of the request. PENDING indicates that this request has + not yet been applied to all Amazon Route 53 DNS servers. type: string submittedAt: - description: The date and time that the change request was submitted - in ISO 8601 format (https://en.wikipedia.org/wiki/ISO_8601) and - Coordinated Universal Time (UTC). For example, the value 2017-03-27T17:48:16.751Z - represents March 27, 2017 at 17:48:16.751 UTC. + description: |- + The date and time that the change request was submitted in ISO 8601 format + (https://en.wikipedia.org/wiki/ISO_8601) and Coordinated Universal Time (UTC). + For example, the value 2017-03-27T17:48:16.751Z represents March 27, 2017 + at 17:48:16.751 UTC. format: date-time type: string type: object 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 8967932..919c781 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/route53-controller:0.0.10". +This chart deploys "public.ecr.aws/aws-controllers-k8s/route53-controller:0.0.11". 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 d9e0179..8f8de50 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-route53-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-route53-controller.app.fullname" -}} {{- if .Values.fullnameOverride -}} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} {{- else -}} @@ -22,33 +22,33 @@ If release name contains chart name it will be used as a full name. {{- end -}} {{/* The name and version as used by the chart label */}} -{{- define "chart.name-version" -}} +{{- define "ack-route53-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-route53-controller.service-account.name" -}} {{ default "default" .Values.serviceAccount.name }} {{- end -}} -{{- define "watch-namespace" -}} +{{- define "ack-route53-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-route53-controller.aws.credentials.secret_mount_path" -}} {{- "/var/run/secrets/aws" -}} {{- end -}} {{/* The path the shared credentials file is mounted */}} -{{- define "aws.credentials.path" -}} +{{- define "ack-route53-controller.aws.credentials.path" -}} {{- printf "%s/%s" (include "aws.credentials.secret_mount_path" .) .Values.aws.credentials.secretKey -}} {{- end -}} {{/* The rules a of ClusterRole or Role */}} -{{- define "controller-role-rules" }} +{{- define "ack-route53-controller.rbac-rules" -}} rules: - apiGroups: - "" diff --git a/helm/templates/cluster-role-binding.yaml b/helm/templates/cluster-role-binding.yaml index 00a4f90..53b9054 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-route53-controller.app.fullname" . }} roleRef: kind: ClusterRole apiGroup: rbac.authorization.k8s.io name: ack-route53-controller subjects: - kind: ServiceAccount - name: {{ include "service-account.name" . }} + name: {{ include "ack-route53-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-route53-controller.watch-namespace" . }} +{{ $namespaces := split "," $wn }} +{{ $fullname := include "ack-route53-controller.app.fullname" . }} {{ $releaseNamespace := .Release.Namespace }} -{{ $serviceAccountName := include "service-account.name" . }} +{{ $serviceAccountName := include "ack-route53-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 15f9328..a6cf047 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-route53-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-route53-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..9f6b89c 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-route53-controller.app.fullname" . }} namespace: {{ .Release.Namespace }} labels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-route53-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-route53-controller.app.name" . }} + helm.sh/chart: {{ include "ack-route53-controller.chart.name-version" . }} spec: replicas: {{ .Values.deployment.replicas }} selector: matchLabels: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-route53-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-route53-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm - k8s-app: {{ include "app.name" . }} + k8s-app: {{ include "ack-route53-controller.app.name" . }} {{- range $key, $value := .Values.deployment.labels }} {{ $key }}: {{ $value | quote }} {{- end }} spec: - serviceAccountName: {{ include "service-account.name" . }} + serviceAccountName: {{ include "ack-route53-controller.service-account.name" . }} {{- if .Values.image.pullSecrets }} imagePullSecrets: {{- range .Values.image.pullSecrets }} @@ -90,7 +90,7 @@ spec: - name: AWS_ENDPOINT_URL value: {{ .Values.aws.endpoint_url | quote }} - name: ACK_WATCH_NAMESPACE - value: {{ include "watch-namespace" . }} + value: {{ include "ack-route53-controller.watch-namespace" . }} - name: DELETION_POLICY value: {{ .Values.deletionPolicy }} - name: LEADER_ELECTION_NAMESPACE @@ -109,7 +109,7 @@ spec: {{- end }} {{- if .Values.aws.credentials.secretName }} - name: AWS_SHARED_CREDENTIALS_FILE - value: {{ include "aws.credentials.path" . }} + value: {{ include "ack-route53-controller.aws.credentials.path" . }} - name: AWS_PROFILE value: {{ .Values.aws.credentials.profile }} {{- end }} @@ -119,7 +119,7 @@ spec: volumeMounts: {{- if .Values.aws.credentials.secretName }} - name: {{ .Values.aws.credentials.secretName }} - mountPath: {{ include "aws.credentials.secret_mount_path" . }} + mountPath: {{ include "ack-route53-controller.aws.credentials.secret_mount_path" . }} readOnly: true {{- end }} {{- if .Values.deployment.extraVolumeMounts -}} diff --git a/helm/templates/leader-election-role-binding.yaml b/helm/templates/leader-election-role-binding.yaml index f6f0e06..523e7ff 100644 --- a/helm/templates/leader-election-role-binding.yaml +++ b/helm/templates/leader-election-role-binding.yaml @@ -14,5 +14,5 @@ roleRef: name: route53-leader-election-role subjects: - kind: ServiceAccount - name: {{ include "service-account.name" . }} + name: {{ include "ack-route53-controller.service-account.name" . }} namespace: {{ .Release.Namespace }}{{- end }} diff --git a/helm/templates/metrics-service.yaml b/helm/templates/metrics-service.yaml index 638858a..cd7fd8f 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-route53-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-route53-controller.app.name" . }} + helm.sh/chart: {{ include "ack-route53-controller.chart.name-version" . }} spec: selector: - app.kubernetes.io/name: {{ include "app.name" . }} + app.kubernetes.io/name: {{ include "ack-route53-controller.app.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: Helm - k8s-app: {{ include "app.name" . }} + k8s-app: {{ include "ack-route53-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..8d05850 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-route53-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-route53-controller.app.name" . }} + helm.sh/chart: {{ include "ack-route53-controller.chart.name-version" . }} + name: {{ include "ack-route53-controller.service-account.name" . }} namespace: {{ .Release.Namespace }} annotations: {{- range $key, $value := .Values.serviceAccount.annotations }} diff --git a/helm/values.yaml b/helm/values.yaml index ec225c2..7ccc46b 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -4,7 +4,7 @@ image: repository: public.ecr.aws/aws-controllers-k8s/route53-controller - tag: 0.0.10 + tag: 0.0.11 pullPolicy: IfNotPresent pullSecrets: []