diff --git a/operators/ack-route53-controller/0.0.18/bundle.Dockerfile b/operators/ack-route53-controller/0.0.18/bundle.Dockerfile new file mode 100644 index 00000000000..326a9a49c61 --- /dev/null +++ b/operators/ack-route53-controller/0.0.18/bundle.Dockerfile @@ -0,0 +1,21 @@ +FROM scratch + +# Core bundle labels. +LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 +LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ +LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ +LABEL operators.operatorframework.io.bundle.package.v1=ack-route53-controller +LABEL operators.operatorframework.io.bundle.channels.v1=alpha +LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha +LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.28.0 +LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 +LABEL operators.operatorframework.io.metrics.project_layout=unknown + +# Labels for testing. +LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1 +LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/ + +# Copy files to locations specified by labels. +COPY bundle/manifests /manifests/ +COPY bundle/metadata /metadata/ +COPY bundle/tests/scorecard /tests/scorecard/ diff --git a/operators/ack-route53-controller/0.0.18/manifests/ack-route53-controller.clusterserviceversion.yaml b/operators/ack-route53-controller/0.0.18/manifests/ack-route53-controller.clusterserviceversion.yaml new file mode 100644 index 00000000000..763d5e5bd82 --- /dev/null +++ b/operators/ack-route53-controller/0.0.18/manifests/ack-route53-controller.clusterserviceversion.yaml @@ -0,0 +1,267 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: '[]' + capabilities: Basic Install + categories: Cloud Provider + certified: "false" + containerImage: public.ecr.aws/aws-controllers-k8s/route53-controller:0.0.18 + createdAt: "2024-10-15T16:48:35Z" + description: AWS Route53 controller is a service controller for managing Route53 + resources in Kubernetes + operatorframework.io/suggested-namespace: ack-system + operators.operatorframework.io/builder: operator-sdk-v1.28.0 + operators.operatorframework.io/project_layout: unknown + repository: https://github.com/aws-controllers-k8s + support: Community + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/os.linux: supported + name: ack-route53-controller.v0.0.18 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: HealthCheck represents the state of an AWS route53 HealthCheck + resource. + displayName: HealthCheck + kind: HealthCheck + name: healthchecks.route53.services.k8s.aws + version: v1alpha1 + - description: HostedZone represents the state of an AWS route53 HostedZone resource. + displayName: HostedZone + kind: HostedZone + name: hostedzones.route53.services.k8s.aws + version: v1alpha1 + - description: RecordSet represents the state of an AWS route53 RecordSet resource. + displayName: RecordSet + kind: RecordSet + name: recordsets.route53.services.k8s.aws + version: v1alpha1 + description: |- + Manage Route53 resources in AWS from within your Kubernetes cluster. + + **About Amazon Route53** + + Amazon Route 53 is a highly available and scalable Domain Name System (DNS) web service. You can use Route 53 to perform three main functions in any combination: domain registration, DNS routing, and health checking. + + **About the AWS Controllers for Kubernetes** + + This controller is a component of the [AWS Controller for Kubernetes](https://github.com/aws/aws-controllers-k8s) project. This project is currently in **developer preview**. + + **Pre-Installation Steps** + + Please follow the following link: [Red Hat OpenShift](https://aws-controllers-k8s.github.io/community/docs/user-docs/openshift/) + displayName: AWS Controllers for Kubernetes - Amazon Route53 + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzA0IDE4MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzA0IDE4MjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMyNTJGM0U7fQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRjk5MDA7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04Ni40LDY2LjRjMCwzLjcsMC40LDYuNywxLjEsOC45YzAuOCwyLjIsMS44LDQuNiwzLjIsNy4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi4zYzAsMS0wLjYsMi0xLjksM2wtNi4zLDQuMiAgIGMtMC45LDAuNi0xLjgsMC45LTIuNiwwLjljLTEsMC0yLTAuNS0zLTEuNEM3Ni4yLDkwLDc1LDg4LjQsNzQsODYuOGMtMS0xLjctMi0zLjYtMy4xLTUuOWMtNy44LDkuMi0xNy42LDEzLjgtMjkuNCwxMy44ICAgYy04LjQsMC0xNS4xLTIuNC0yMC03LjJjLTQuOS00LjgtNy40LTExLjItNy40LTE5LjJjMC04LjUsMy0xNS40LDkuMS0yMC42YzYuMS01LjIsMTQuMi03LjgsMjQuNS03LjhjMy40LDAsNi45LDAuMywxMC42LDAuOCAgIGMzLjcsMC41LDcuNSwxLjMsMTEuNSwyLjJ2LTcuM2MwLTcuNi0xLjYtMTIuOS00LjctMTZjLTMuMi0zLjEtOC42LTQuNi0xNi4zLTQuNmMtMy41LDAtNy4xLDAuNC0xMC44LDEuM2MtMy43LDAuOS03LjMsMi0xMC44LDMuNCAgIGMtMS42LDAuNy0yLjgsMS4xLTMuNSwxLjNjLTAuNywwLjItMS4yLDAuMy0xLjYsMC4zYy0xLjQsMC0yLjEtMS0yLjEtMy4xdi00LjljMC0xLjYsMC4yLTIuOCwwLjctMy41YzAuNS0wLjcsMS40LTEuNCwyLjgtMi4xICAgYzMuNS0xLjgsNy43LTMuMywxMi42LTQuNWM0LjktMS4zLDEwLjEtMS45LDE1LjYtMS45YzExLjksMCwyMC42LDIuNywyNi4yLDguMWM1LjUsNS40LDguMywxMy42LDguMywyNC42VjY2LjR6IE00NS44LDgxLjYgICBjMy4zLDAsNi43LTAuNiwxMC4zLTEuOGMzLjYtMS4yLDYuOC0zLjQsOS41LTYuNGMxLjYtMS45LDIuOC00LDMuNC02LjRjMC42LTIuNCwxLTUuMywxLTguN3YtNC4yYy0yLjktMC43LTYtMS4zLTkuMi0xLjcgICBjLTMuMi0wLjQtNi4zLTAuNi05LjQtMC42Yy02LjcsMC0xMS42LDEuMy0xNC45LDRjLTMuMywyLjctNC45LDYuNS00LjksMTEuNWMwLDQuNywxLjIsOC4yLDMuNywxMC42ICAgQzM3LjcsODAuNCw0MS4yLDgxLjYsNDUuOCw4MS42eiBNMTI2LjEsOTIuNGMtMS44LDAtMy0wLjMtMy44LTFjLTAuOC0wLjYtMS41LTItMi4xLTMuOUw5Ni43LDEwLjJjLTAuNi0yLTAuOS0zLjMtMC45LTQgICBjMC0xLjYsMC44LTIuNSwyLjQtMi41aDkuOGMxLjksMCwzLjIsMC4zLDMuOSwxYzAuOCwwLjYsMS40LDIsMiwzLjlsMTYuOCw2Ni4ybDE1LjYtNjYuMmMwLjUtMiwxLjEtMy4zLDEuOS0zLjljMC44LTAuNiwyLjItMSw0LTEgICBoOGMxLjksMCwzLjIsMC4zLDQsMWMwLjgsMC42LDEuNSwyLDEuOSwzLjlsMTUuOCw2N2wxNy4zLTY3YzAuNi0yLDEuMy0zLjMsMi0zLjljMC44LTAuNiwyLjEtMSwzLjktMWg5LjNjMS42LDAsMi41LDAuOCwyLjUsMi41ICAgYzAsMC41LTAuMSwxLTAuMiwxLjZjLTAuMSwwLjYtMC4zLDEuNC0wLjcsMi41bC0yNC4xLDc3LjNjLTAuNiwyLTEuMywzLjMtMi4xLDMuOWMtMC44LDAuNi0yLjEsMS0zLjgsMWgtOC42Yy0xLjksMC0zLjItMC4zLTQtMSAgIGMtMC44LTAuNy0xLjUtMi0xLjktNEwxNTYsMjNsLTE1LjQsNjQuNGMtMC41LDItMS4xLDMuMy0xLjksNGMtMC44LDAuNy0yLjIsMS00LDFIMTI2LjF6IE0yNTQuNiw5NS4xYy01LjIsMC0xMC40LTAuNi0xNS40LTEuOCAgIGMtNS0xLjItOC45LTIuNS0xMS41LTRjLTEuNi0wLjktMi43LTEuOS0zLjEtMi44Yy0wLjQtMC45LTAuNi0xLjktMC42LTIuOHYtNS4xYzAtMi4xLDAuOC0zLjEsMi4zLTMuMWMwLjYsMCwxLjIsMC4xLDEuOCwwLjMgICBjMC42LDAuMiwxLjUsMC42LDIuNSwxYzMuNCwxLjUsNy4xLDIuNywxMSwzLjVjNCwwLjgsNy45LDEuMiwxMS45LDEuMmM2LjMsMCwxMS4yLTEuMSwxNC42LTMuM2MzLjQtMi4yLDUuMi01LjQsNS4yLTkuNSAgIGMwLTIuOC0wLjktNS4xLTIuNy03Yy0xLjgtMS45LTUuMi0zLjYtMTAuMS01LjJMMjQ2LDUyYy03LjMtMi4zLTEyLjctNS43LTE2LTEwLjJjLTMuMy00LjQtNS05LjMtNS0xNC41YzAtNC4yLDAuOS03LjksMi43LTExLjEgICBjMS44LTMuMiw0LjItNiw3LjItOC4yYzMtMi4zLDYuNC00LDEwLjQtNS4yYzQtMS4yLDguMi0xLjcsMTIuNi0xLjdjMi4yLDAsNC41LDAuMSw2LjcsMC40YzIuMywwLjMsNC40LDAuNyw2LjUsMS4xICAgYzIsMC41LDMuOSwxLDUuNywxLjZjMS44LDAuNiwzLjIsMS4yLDQuMiwxLjhjMS40LDAuOCwyLjQsMS42LDMsMi41YzAuNiwwLjgsMC45LDEuOSwwLjksMy4zdjQuN2MwLDIuMS0wLjgsMy4yLTIuMywzLjIgICBjLTAuOCwwLTIuMS0wLjQtMy44LTEuMmMtNS43LTIuNi0xMi4xLTMuOS0xOS4yLTMuOWMtNS43LDAtMTAuMiwwLjktMTMuMywyLjhjLTMuMSwxLjktNC43LDQuOC00LjcsOC45YzAsMi44LDEsNS4yLDMsNy4xICAgYzIsMS45LDUuNywzLjgsMTEsNS41bDE0LjIsNC41YzcuMiwyLjMsMTIuNCw1LjUsMTUuNSw5LjZjMy4xLDQuMSw0LjYsOC44LDQuNiwxNGMwLDQuMy0wLjksOC4yLTIuNiwxMS42ICAgYy0xLjgsMy40LTQuMiw2LjQtNy4zLDguOGMtMy4xLDIuNS02LjgsNC4zLTExLjEsNS42QzI2NC40LDk0LjQsMjU5LjcsOTUuMSwyNTQuNiw5NS4xeiIvPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI3My41LDE0My43Yy0zMi45LDI0LjMtODAuNywzNy4yLTEyMS44LDM3LjJjLTU3LjYsMC0xMDkuNS0yMS4zLTE0OC43LTU2LjdjLTMuMS0yLjgtMC4zLTYuNiwzLjQtNC40ICAgIGM0Mi40LDI0LjYsOTQuNywzOS41LDE0OC44LDM5LjVjMzYuNSwwLDc2LjYtNy42LDExMy41LTIzLjJDMjc0LjIsMTMzLjYsMjc4LjksMTM5LjcsMjczLjUsMTQzLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI4Ny4yLDEyOC4xYy00LjItNS40LTI3LjgtMi42LTM4LjUtMS4zYy0zLjIsMC40LTMuNy0yLjQtMC44LTQuNWMxOC44LTEzLjIsNDkuNy05LjQsNTMuMy01ICAgIGMzLjYsNC41LTEsMzUuNC0xOC42LDUwLjJjLTIuNywyLjMtNS4zLDEuMS00LjEtMS45QzI4Mi41LDE1NS43LDI5MS40LDEzMy40LDI4Ny4yLDEyOC4xeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPg== + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - configmaps + - secrets + verbs: + - get + - list + - patch + - watch + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - route53.services.k8s.aws + resources: + - healthchecks + - hostedzones + - recordsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - route53.services.k8s.aws + resources: + - healthchecks/status + - hostedzones/status + - recordsets/status + verbs: + - get + - patch + - update + - apiGroups: + - services.k8s.aws + resources: + - adoptedresources + - fieldexports + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - services.k8s.aws + resources: + - adoptedresources/status + - fieldexports/status + verbs: + - get + - patch + - update + serviceAccountName: ack-route53-controller + deployments: + - label: + app.kubernetes.io/name: ack-route53-controller + app.kubernetes.io/part-of: ack-system + name: ack-route53-controller + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: ack-route53-controller + strategy: {} + template: + metadata: + labels: + app.kubernetes.io/name: ack-route53-controller + spec: + containers: + - args: + - --aws-region + - $(AWS_REGION) + - --aws-endpoint-url + - $(AWS_ENDPOINT_URL) + - --enable-development-logging=$(ACK_ENABLE_DEVELOPMENT_LOGGING) + - --log-level + - $(ACK_LOG_LEVEL) + - --resource-tags + - $(ACK_RESOURCE_TAGS) + - --watch-namespace + - $(ACK_WATCH_NAMESPACE) + - --enable-leader-election=$(ENABLE_LEADER_ELECTION) + - --leader-election-namespace + - $(LEADER_ELECTION_NAMESPACE) + - --reconcile-default-max-concurrent-syncs + - $(RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS) + command: + - ./bin/controller + env: + - name: ACK_SYSTEM_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + envFrom: + - configMapRef: + name: ack-route53-user-config + optional: false + - secretRef: + name: ack-route53-user-secrets + optional: true + image: public.ecr.aws/aws-controllers-k8s/route53-controller:0.0.18 + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: controller + ports: + - containerPort: 8080 + name: http + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 100m + memory: 300Mi + requests: + cpu: 100m + memory: 200Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + runAsNonRoot: true + dnsPolicy: ClusterFirst + securityContext: + seccompProfile: + type: RuntimeDefault + serviceAccountName: ack-route53-controller + terminationGracePeriodSeconds: 10 + permissions: + - rules: + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + serviceAccountName: ack-route53-controller + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - route53 + - aws + - amazon + - ack + links: + - name: AWS Controllers for Kubernetes + url: https://github.com/aws-controllers-k8s/community + - name: Documentation + url: https://aws-controllers-k8s.github.io/community/ + - name: Amazon Route53 Developer Resources + url: https://docs.aws.amazon.com/route53/index.html + maintainers: + - email: ack-maintainers@amazon.com + name: eks maintainer team + maturity: alpha + provider: + name: Amazon, Inc. + url: https://aws.amazon.com + version: 0.0.18 diff --git a/operators/ack-route53-controller/0.0.18/manifests/ack-route53-metrics-service_v1_service.yaml b/operators/ack-route53-controller/0.0.18/manifests/ack-route53-metrics-service_v1_service.yaml new file mode 100644 index 00000000000..c15791a3e36 --- /dev/null +++ b/operators/ack-route53-controller/0.0.18/manifests/ack-route53-metrics-service_v1_service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + name: ack-route53-metrics-service +spec: + ports: + - name: metricsport + port: 8080 + protocol: TCP + targetPort: http + selector: + app.kubernetes.io/name: ack-route53-controller + type: NodePort +status: + loadBalancer: {} diff --git a/operators/ack-route53-controller/0.0.18/manifests/ack-route53-reader_rbac.authorization.k8s.io_v1_role.yaml b/operators/ack-route53-controller/0.0.18/manifests/ack-route53-reader_rbac.authorization.k8s.io_v1_role.yaml new file mode 100644 index 00000000000..0ad8e6e9270 --- /dev/null +++ b/operators/ack-route53-controller/0.0.18/manifests/ack-route53-reader_rbac.authorization.k8s.io_v1_role.yaml @@ -0,0 +1,16 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + creationTimestamp: null + name: ack-route53-reader +rules: +- apiGroups: + - route53.services.k8s.aws + resources: + - healthchecks + - hostedzones + - recordsets + verbs: + - get + - list + - watch diff --git a/operators/ack-route53-controller/0.0.18/manifests/ack-route53-writer_rbac.authorization.k8s.io_v1_role.yaml b/operators/ack-route53-controller/0.0.18/manifests/ack-route53-writer_rbac.authorization.k8s.io_v1_role.yaml new file mode 100644 index 00000000000..a111f1a31c4 --- /dev/null +++ b/operators/ack-route53-controller/0.0.18/manifests/ack-route53-writer_rbac.authorization.k8s.io_v1_role.yaml @@ -0,0 +1,30 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + creationTimestamp: null + name: ack-route53-writer +rules: +- apiGroups: + - route53.services.k8s.aws + resources: + - healthchecks + - hostedzones + - recordsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - route53.services.k8s.aws + resources: + - healthchecks + - hostedzones + - recordsets + verbs: + - get + - patch + - update diff --git a/operators/ack-route53-controller/0.0.18/manifests/route53.services.k8s.aws_healthchecks.yaml b/operators/ack-route53-controller/0.0.18/manifests/route53.services.k8s.aws_healthchecks.yaml new file mode 100644 index 00000000000..49f9c0ced28 --- /dev/null +++ b/operators/ack-route53-controller/0.0.18/manifests/route53.services.k8s.aws_healthchecks.yaml @@ -0,0 +1,266 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.16.2 + creationTimestamp: null + name: healthchecks.route53.services.k8s.aws +spec: + group: route53.services.k8s.aws + names: + kind: HealthCheck + listKind: HealthCheckList + plural: healthchecks + singular: healthcheck + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: HealthCheck is the Schema for the HealthChecks 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 + 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 + type: string + metadata: + type: object + spec: + description: |- + HealthCheckSpec defines the desired state of HealthCheck. + + A complex type that contains information about one health check that is associated + with the current Amazon Web Services account. + properties: + healthCheckConfig: + description: A complex type that contains settings for a new health + check. + properties: + alarmIdentifier: + description: |- + A complex type that identifies the CloudWatch alarm that you want Amazon + Route 53 health checkers to use to determine whether the specified health + check is healthy. + properties: + name: + type: string + region: + type: string + type: object + childHealthChecks: + items: + type: string + type: array + disabled: + type: boolean + enableSNI: + type: boolean + failureThreshold: + format: int64 + type: integer + fullyQualifiedDomainName: + type: string + healthThreshold: + format: int64 + type: integer + insufficientDataHealthStatus: + type: string + inverted: + type: boolean + ipAddress: + type: string + measureLatency: + type: boolean + port: + format: int64 + type: integer + regions: + items: + type: string + type: array + requestInterval: + format: int64 + type: integer + resourcePath: + type: string + routingControlARN: + type: string + searchString: + type: string + type: + type: string + type: object + 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. + + 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. + properties: + key: + type: string + value: + type: string + type: object + type: array + required: + - healthCheckConfig + type: object + status: + description: HealthCheckStatus defines the observed state of HealthCheck + properties: + ackResourceMetadata: + 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. + 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. + type: string + region: + description: Region is the AWS region in which the resource exists + or will exist. + type: string + required: + - ownerAccountID + - region + type: object + callerReference: + description: A unique string that you specified when you created the + health check. + type: string + cloudWatchAlarmConfiguration: + description: |- + A complex type that contains information about the CloudWatch alarm that + Amazon Route 53 is monitoring for this health check. + properties: + comparisonOperator: + type: string + dimensions: + items: + description: |- + For the metric that the CloudWatch alarm is associated with, a complex type + that contains information about one dimension. + properties: + name: + type: string + value: + type: string + type: object + type: array + evaluationPeriods: + format: int64 + type: integer + metricName: + type: string + namespace: + type: string + period: + format: int64 + type: integer + statistic: + type: string + threshold: + type: number + 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 + 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 + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type is the type of the Condition + type: string + required: + - status + - type + type: object + type: array + healthCheckVersion: + description: |- + The version of the health check. You can optionally pass this value in a + call to UpdateHealthCheck to prevent overwriting another change to the health + check. + format: int64 + type: integer + id: + description: |- + The identifier that Amazon Route 53 assigned to the health check when you + created it. When you add or update a resource record set, you use this value + to specify which health check to use. The value can be up to 64 characters + long. + type: string + linkedService: + description: |- + If the health check was created by another service, the service that created + the health check. When a health check is created by another service, you + can't edit or delete it using Amazon Route 53. + properties: + description: + type: string + servicePrincipal: + type: string + type: object + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/ack-route53-controller/0.0.18/manifests/route53.services.k8s.aws_hostedzones.yaml b/operators/ack-route53-controller/0.0.18/manifests/route53.services.k8s.aws_hostedzones.yaml new file mode 100644 index 00000000000..463476389c6 --- /dev/null +++ b/operators/ack-route53-controller/0.0.18/manifests/route53.services.k8s.aws_hostedzones.yaml @@ -0,0 +1,239 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.16.2 + creationTimestamp: null + name: hostedzones.route53.services.k8s.aws +spec: + group: route53.services.k8s.aws + names: + kind: HostedZone + listKind: HostedZoneList + plural: hostedzones + singular: hostedzone + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + 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 + 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 + type: string + metadata: + type: object + spec: + 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). + + 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: + + * 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 + privateZone: + 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. + + 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. + + 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. + properties: + key: + type: string + value: + type: string + 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. + + 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. + type: string + vpcRegion: + type: string + type: object + required: + - name + type: object + status: + 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, + 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. + 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. + type: string + region: + description: Region is the AWS region in which the resource exists + or will exist. + type: string + required: + - ownerAccountID + - region + type: object + callerReference: + 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 + 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 + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type is the type of the Condition + type: string + required: + - status + - type + 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. + properties: + comment: + type: string + privateZone: + type: boolean + type: object + id: + 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. + properties: + description: + type: string + servicePrincipal: + type: string + type: object + resourceRecordSetCount: + description: The number of resource record sets in the hosted zone. + format: int64 + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/ack-route53-controller/0.0.18/manifests/route53.services.k8s.aws_recordsets.yaml b/operators/ack-route53-controller/0.0.18/manifests/route53.services.k8s.aws_recordsets.yaml new file mode 100644 index 00000000000..087483e4511 --- /dev/null +++ b/operators/ack-route53-controller/0.0.18/manifests/route53.services.k8s.aws_recordsets.yaml @@ -0,0 +1,717 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.16.2 + creationTimestamp: null + name: recordsets.route53.services.k8s.aws +spec: + group: route53.services.k8s.aws + names: + kind: RecordSet + listKind: RecordSetList + plural: recordsets + singular: recordset + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.status + name: STATUS + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + 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 + 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 + type: string + metadata: + type: object + 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. + + 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 + evaluateTargetHealth: + type: boolean + hostedZoneID: + type: string + type: object + changeBatch: + description: A complex type that contains an optional comment and + the Changes element. + properties: + changes: + items: + description: The information for each resource record set that + you want to change. + properties: + action: + type: string + resourceRecordSet: + description: Information about the resource record set to + 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. + + 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 + evaluateTargetHealth: + type: boolean + hostedZoneID: + 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. + + 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 + locationName: + type: string + type: object + failover: + type: string + geoLocation: + description: A complex type that contains information + about a geographic location. + properties: + continentCode: + type: string + countryCode: + type: string + subdivisionCode: + type: string + type: object + healthCheckID: + type: string + multiValueAnswer: + type: boolean + name: + type: string + region: + type: string + resourceRecords: + items: + 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: + type: string + trafficPolicyInstanceID: + type: string + ttl: + format: int64 + type: integer + type_: + type: string + weight: + format: int64 + type: integer + type: object + type: object + type: array + comment: + 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. + + 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 + locationName: + 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. + + 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. + + 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 + countryCode: + type: string + subdivisionCode: + 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. + + 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. + type: string + hostedZoneRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\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) + properties: + name: + type: string + namespace: + 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: + + * 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. + + 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. + + 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. + + 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. + + 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. + + If you're creating an alias resource record set, omit ResourceRecords. + items: + 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. + + 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: + + * 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: + + * 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: + - recordType + type: object + status: + 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, + 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. + 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. + type: string + region: + description: Region is the AWS region in which the resource exists + or will exist. + type: string + required: + - ownerAccountID + - 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 + 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 + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + reason: + description: The reason for the condition's last transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type is the type of the Condition + type: string + required: + - status + - type + 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) + 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. + 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. + format: date-time + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/ack-route53-controller/0.0.18/metadata/annotations.yaml b/operators/ack-route53-controller/0.0.18/metadata/annotations.yaml new file mode 100644 index 00000000000..519715b4579 --- /dev/null +++ b/operators/ack-route53-controller/0.0.18/metadata/annotations.yaml @@ -0,0 +1,15 @@ +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: ack-route53-controller + operators.operatorframework.io.bundle.channels.v1: alpha + operators.operatorframework.io.bundle.channel.default.v1: alpha + operators.operatorframework.io.metrics.builder: operator-sdk-v1.28.0 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: unknown + + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ diff --git a/operators/ack-route53-controller/0.0.18/tests/scorecard/config.yaml b/operators/ack-route53-controller/0.0.18/tests/scorecard/config.yaml new file mode 100644 index 00000000000..382ddefd156 --- /dev/null +++ b/operators/ack-route53-controller/0.0.18/tests/scorecard/config.yaml @@ -0,0 +1,50 @@ +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: + - entrypoint: + - scorecard-test + - basic-check-spec + image: quay.io/operator-framework/scorecard-test:v1.7.1 + labels: + suite: basic + test: basic-check-spec-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-bundle-validation + image: quay.io/operator-framework/scorecard-test:v1.7.1 + labels: + suite: olm + test: olm-bundle-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-validation + image: quay.io/operator-framework/scorecard-test:v1.7.1 + labels: + suite: olm + test: olm-crds-have-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-spec-descriptors + image: quay.io/operator-framework/scorecard-test:v1.7.1 + labels: + suite: olm + test: olm-spec-descriptors-test + storage: + spec: + mountPath: {} +storage: + spec: + mountPath: {}