From 6e0114e9ea9e02cff62140eb0f79ddfe997fb0fc Mon Sep 17 00:00:00 2001 From: AWS Controllers for Kubernetes Bot <82905295+ack-bot@users.noreply.github.com> Date: Wed, 22 Nov 2023 14:04:21 -0600 Subject: [PATCH] operator ack-elasticache-controller (0.0.28) --- .../0.0.28/bundle.Dockerfile | 21 + ...ache-controller.clusterserviceversion.yaml | 463 ++++++++++ ...lasticache-metrics-service_v1_service.yaml | 16 + ...der_rbac.authorization.k8s.io_v1_role.yaml | 19 + ...ter_rbac.authorization.k8s.io_v1_role.yaml | 36 + ...services.k8s.aws_cacheparametergroups.yaml | 215 +++++ ...he.services.k8s.aws_cachesubnetgroups.yaml | 213 +++++ ...he.services.k8s.aws_replicationgroups.yaml | 800 ++++++++++++++++++ ...lasticache.services.k8s.aws_snapshots.yaml | 354 ++++++++ ...asticache.services.k8s.aws_usergroups.yaml | 170 ++++ .../elasticache.services.k8s.aws_users.yaml | 202 +++++ .../0.0.28/metadata/annotations.yaml | 15 + .../0.0.28/tests/scorecard/config.yaml | 50 ++ 13 files changed, 2574 insertions(+) create mode 100644 operators/ack-elasticache-controller/0.0.28/bundle.Dockerfile create mode 100644 operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-controller.clusterserviceversion.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-metrics-service_v1_service.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-reader_rbac.authorization.k8s.io_v1_role.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-writer_rbac.authorization.k8s.io_v1_role.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_cacheparametergroups.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_cachesubnetgroups.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_replicationgroups.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_snapshots.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_usergroups.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_users.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/metadata/annotations.yaml create mode 100644 operators/ack-elasticache-controller/0.0.28/tests/scorecard/config.yaml diff --git a/operators/ack-elasticache-controller/0.0.28/bundle.Dockerfile b/operators/ack-elasticache-controller/0.0.28/bundle.Dockerfile new file mode 100644 index 00000000000..92ee9ed9419 --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/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-elasticache-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-elasticache-controller/0.0.28/manifests/ack-elasticache-controller.clusterserviceversion.yaml b/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-controller.clusterserviceversion.yaml new file mode 100644 index 00000000000..5eb26a39878 --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-controller.clusterserviceversion.yaml @@ -0,0 +1,463 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "elasticache.services.k8s.aws/v1alpha1", + "kind": "CacheParameterGroup", + "metadata": { + "name": "example" + }, + "spec": {} + }, + { + "apiVersion": "elasticache.services.k8s.aws/v1alpha1", + "kind": "CacheSubnetGroup", + "metadata": { + "name": "example" + }, + "spec": {} + }, + { + "apiVersion": "elasticache.services.k8s.aws/v1alpha1", + "kind": "ReplicationGroup", + "metadata": { + "name": "example" + }, + "spec": {} + }, + { + "apiVersion": "elasticache.services.k8s.aws/v1alpha1", + "kind": "Snapshot", + "metadata": { + "name": "example" + }, + "spec": {} + }, + { + "apiVersion": "elasticache.services.k8s.aws/v1alpha1", + "kind": "User", + "metadata": { + "name": "example" + }, + "spec": {} + }, + { + "apiVersion": "elasticache.services.k8s.aws/v1alpha1", + "kind": "UserGroup", + "metadata": { + "name": "example" + }, + "spec": {} + } + ] + capabilities: Basic Install + categories: Cloud Provider + certified: "false" + containerImage: public.ecr.aws/aws-controllers-k8s/elasticache-controller:0.0.28 + createdAt: "2023-11-22T19:50:33Z" + description: AWS ElastiCache controller is a service controller for managing ElastiCache + 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 + name: ack-elasticache-controller.v0.0.28 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: CacheParameterGroup represents the state of an AWS elasticache + CacheParameterGroup resource. + displayName: CacheParameterGroup + kind: CacheParameterGroup + name: cacheparametergroups.elasticache.services.k8s.aws + version: v1alpha1 + - description: CacheSubnetGroup represents the state of an AWS elasticache CacheSubnetGroup + resource. + displayName: CacheSubnetGroup + kind: CacheSubnetGroup + name: cachesubnetgroups.elasticache.services.k8s.aws + version: v1alpha1 + - description: ReplicationGroup represents the state of an AWS elasticache ReplicationGroup + resource. + displayName: ReplicationGroup + kind: ReplicationGroup + name: replicationgroups.elasticache.services.k8s.aws + version: v1alpha1 + - description: Snapshot represents the state of an AWS elasticache Snapshot resource. + displayName: Snapshot + kind: Snapshot + name: snapshots.elasticache.services.k8s.aws + version: v1alpha1 + - description: UserGroup represents the state of an AWS elasticache UserGroup + resource. + displayName: UserGroup + kind: UserGroup + name: usergroups.elasticache.services.k8s.aws + version: v1alpha1 + - description: User represents the state of an AWS elasticache User resource. + displayName: User + kind: User + name: users.elasticache.services.k8s.aws + version: v1alpha1 + description: |- + Manage Amazon ElastiCache resources in AWS from within your Kubernetes cluster. + + **About Amazon ElastiCache** + + Amazon ElastiCache allows you to seamlessly set up, run, and scale popular open-source compatible in-memory data stores in the cloud. Build data-intensive apps or boost the performance of your existing databases by retrieving data from high throughput and low latency in-memory data stores. Amazon ElastiCache is a popular choice for real-time use cases like Caching, Session Stores, Gaming, Geospatial Services, Real-Time Analytics, and Queuing. + + Amazon ElastiCache offers fully managed Redis, voted the most loved database by developers in the Stack Overflow 2020 Developer Survey, and Memcached for your most demanding applications that require sub-millisecond response times. + + **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 ElastiCache + icon: + - base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzA0IDE4MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzA0IDE4MjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMyNTJGM0U7fQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRjk5MDA7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04Ni40LDY2LjRjMCwzLjcsMC40LDYuNywxLjEsOC45YzAuOCwyLjIsMS44LDQuNiwzLjIsNy4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi4zYzAsMS0wLjYsMi0xLjksM2wtNi4zLDQuMiAgIGMtMC45LDAuNi0xLjgsMC45LTIuNiwwLjljLTEsMC0yLTAuNS0zLTEuNEM3Ni4yLDkwLDc1LDg4LjQsNzQsODYuOGMtMS0xLjctMi0zLjYtMy4xLTUuOWMtNy44LDkuMi0xNy42LDEzLjgtMjkuNCwxMy44ICAgYy04LjQsMC0xNS4xLTIuNC0yMC03LjJjLTQuOS00LjgtNy40LTExLjItNy40LTE5LjJjMC04LjUsMy0xNS40LDkuMS0yMC42YzYuMS01LjIsMTQuMi03LjgsMjQuNS03LjhjMy40LDAsNi45LDAuMywxMC42LDAuOCAgIGMzLjcsMC41LDcuNSwxLjMsMTEuNSwyLjJ2LTcuM2MwLTcuNi0xLjYtMTIuOS00LjctMTZjLTMuMi0zLjEtOC42LTQuNi0xNi4zLTQuNmMtMy41LDAtNy4xLDAuNC0xMC44LDEuM2MtMy43LDAuOS03LjMsMi0xMC44LDMuNCAgIGMtMS42LDAuNy0yLjgsMS4xLTMuNSwxLjNjLTAuNywwLjItMS4yLDAuMy0xLjYsMC4zYy0xLjQsMC0yLjEtMS0yLjEtMy4xdi00LjljMC0xLjYsMC4yLTIuOCwwLjctMy41YzAuNS0wLjcsMS40LTEuNCwyLjgtMi4xICAgYzMuNS0xLjgsNy43LTMuMywxMi42LTQuNWM0LjktMS4zLDEwLjEtMS45LDE1LjYtMS45YzExLjksMCwyMC42LDIuNywyNi4yLDguMWM1LjUsNS40LDguMywxMy42LDguMywyNC42VjY2LjR6IE00NS44LDgxLjYgICBjMy4zLDAsNi43LTAuNiwxMC4zLTEuOGMzLjYtMS4yLDYuOC0zLjQsOS41LTYuNGMxLjYtMS45LDIuOC00LDMuNC02LjRjMC42LTIuNCwxLTUuMywxLTguN3YtNC4yYy0yLjktMC43LTYtMS4zLTkuMi0xLjcgICBjLTMuMi0wLjQtNi4zLTAuNi05LjQtMC42Yy02LjcsMC0xMS42LDEuMy0xNC45LDRjLTMuMywyLjctNC45LDYuNS00LjksMTEuNWMwLDQuNywxLjIsOC4yLDMuNywxMC42ICAgQzM3LjcsODAuNCw0MS4yLDgxLjYsNDUuOCw4MS42eiBNMTI2LjEsOTIuNGMtMS44LDAtMy0wLjMtMy44LTFjLTAuOC0wLjYtMS41LTItMi4xLTMuOUw5Ni43LDEwLjJjLTAuNi0yLTAuOS0zLjMtMC45LTQgICBjMC0xLjYsMC44LTIuNSwyLjQtMi41aDkuOGMxLjksMCwzLjIsMC4zLDMuOSwxYzAuOCwwLjYsMS40LDIsMiwzLjlsMTYuOCw2Ni4ybDE1LjYtNjYuMmMwLjUtMiwxLjEtMy4zLDEuOS0zLjljMC44LTAuNiwyLjItMSw0LTEgICBoOGMxLjksMCwzLjIsMC4zLDQsMWMwLjgsMC42LDEuNSwyLDEuOSwzLjlsMTUuOCw2N2wxNy4zLTY3YzAuNi0yLDEuMy0zLjMsMi0zLjljMC44LTAuNiwyLjEtMSwzLjktMWg5LjNjMS42LDAsMi41LDAuOCwyLjUsMi41ICAgYzAsMC41LTAuMSwxLTAuMiwxLjZjLTAuMSwwLjYtMC4zLDEuNC0wLjcsMi41bC0yNC4xLDc3LjNjLTAuNiwyLTEuMywzLjMtMi4xLDMuOWMtMC44LDAuNi0yLjEsMS0zLjgsMWgtOC42Yy0xLjksMC0zLjItMC4zLTQtMSAgIGMtMC44LTAuNy0xLjUtMi0xLjktNEwxNTYsMjNsLTE1LjQsNjQuNGMtMC41LDItMS4xLDMuMy0xLjksNGMtMC44LDAuNy0yLjIsMS00LDFIMTI2LjF6IE0yNTQuNiw5NS4xYy01LjIsMC0xMC40LTAuNi0xNS40LTEuOCAgIGMtNS0xLjItOC45LTIuNS0xMS41LTRjLTEuNi0wLjktMi43LTEuOS0zLjEtMi44Yy0wLjQtMC45LTAuNi0xLjktMC42LTIuOHYtNS4xYzAtMi4xLDAuOC0zLjEsMi4zLTMuMWMwLjYsMCwxLjIsMC4xLDEuOCwwLjMgICBjMC42LDAuMiwxLjUsMC42LDIuNSwxYzMuNCwxLjUsNy4xLDIuNywxMSwzLjVjNCwwLjgsNy45LDEuMiwxMS45LDEuMmM2LjMsMCwxMS4yLTEuMSwxNC42LTMuM2MzLjQtMi4yLDUuMi01LjQsNS4yLTkuNSAgIGMwLTIuOC0wLjktNS4xLTIuNy03Yy0xLjgtMS45LTUuMi0zLjYtMTAuMS01LjJMMjQ2LDUyYy03LjMtMi4zLTEyLjctNS43LTE2LTEwLjJjLTMuMy00LjQtNS05LjMtNS0xNC41YzAtNC4yLDAuOS03LjksMi43LTExLjEgICBjMS44LTMuMiw0LjItNiw3LjItOC4yYzMtMi4zLDYuNC00LDEwLjQtNS4yYzQtMS4yLDguMi0xLjcsMTIuNi0xLjdjMi4yLDAsNC41LDAuMSw2LjcsMC40YzIuMywwLjMsNC40LDAuNyw2LjUsMS4xICAgYzIsMC41LDMuOSwxLDUuNywxLjZjMS44LDAuNiwzLjIsMS4yLDQuMiwxLjhjMS40LDAuOCwyLjQsMS42LDMsMi41YzAuNiwwLjgsMC45LDEuOSwwLjksMy4zdjQuN2MwLDIuMS0wLjgsMy4yLTIuMywzLjIgICBjLTAuOCwwLTIuMS0wLjQtMy44LTEuMmMtNS43LTIuNi0xMi4xLTMuOS0xOS4yLTMuOWMtNS43LDAtMTAuMiwwLjktMTMuMywyLjhjLTMuMSwxLjktNC43LDQuOC00LjcsOC45YzAsMi44LDEsNS4yLDMsNy4xICAgYzIsMS45LDUuNywzLjgsMTEsNS41bDE0LjIsNC41YzcuMiwyLjMsMTIuNCw1LjUsMTUuNSw5LjZjMy4xLDQuMSw0LjYsOC44LDQuNiwxNGMwLDQuMy0wLjksOC4yLTIuNiwxMS42ICAgYy0xLjgsMy40LTQuMiw2LjQtNy4zLDguOGMtMy4xLDIuNS02LjgsNC4zLTExLjEsNS42QzI2NC40LDk0LjQsMjU5LjcsOTUuMSwyNTQuNiw5NS4xeiIvPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI3My41LDE0My43Yy0zMi45LDI0LjMtODAuNywzNy4yLTEyMS44LDM3LjJjLTU3LjYsMC0xMDkuNS0yMS4zLTE0OC43LTU2LjdjLTMuMS0yLjgtMC4zLTYuNiwzLjQtNC40ICAgIGM0Mi40LDI0LjYsOTQuNywzOS41LDE0OC44LDM5LjVjMzYuNSwwLDc2LjYtNy42LDExMy41LTIzLjJDMjc0LjIsMTMzLjYsMjc4LjksMTM5LjcsMjczLjUsMTQzLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI4Ny4yLDEyOC4xYy00LjItNS40LTI3LjgtMi42LTM4LjUtMS4zYy0zLjIsMC40LTMuNy0yLjQtMC44LTQuNWMxOC44LTEzLjIsNDkuNy05LjQsNTMuMy01ICAgIGMzLjYsNC41LTEsMzUuNC0xOC42LDUwLjJjLTIuNywyLjMtNS4zLDEuMS00LjEtMS45QzI4Mi41LDE1NS43LDI5MS40LDEzMy40LDI4Ny4yLDEyOC4xeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPg== + mediatype: image/svg+xml + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - patch + - watch + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list + - patch + - watch + - apiGroups: + - ec2.services.k8s.aws + resources: + - securitygroups + verbs: + - get + - list + - apiGroups: + - ec2.services.k8s.aws + resources: + - securitygroups/status + verbs: + - get + - list + - apiGroups: + - ec2.services.k8s.aws + resources: + - subnets + verbs: + - get + - list + - apiGroups: + - ec2.services.k8s.aws + resources: + - subnets/status + verbs: + - get + - list + - apiGroups: + - elasticache.services.k8s.aws + resources: + - cacheparametergroups + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - elasticache.services.k8s.aws + resources: + - cacheparametergroups/status + verbs: + - get + - patch + - update + - apiGroups: + - elasticache.services.k8s.aws + resources: + - cachesubnetgroups + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - elasticache.services.k8s.aws + resources: + - cachesubnetgroups/status + verbs: + - get + - patch + - update + - apiGroups: + - elasticache.services.k8s.aws + resources: + - replicationgroups + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - elasticache.services.k8s.aws + resources: + - replicationgroups/status + verbs: + - get + - patch + - update + - apiGroups: + - elasticache.services.k8s.aws + resources: + - snapshots + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - elasticache.services.k8s.aws + resources: + - snapshots/status + verbs: + - get + - patch + - update + - apiGroups: + - elasticache.services.k8s.aws + resources: + - usergroups + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - elasticache.services.k8s.aws + resources: + - usergroups/status + verbs: + - get + - patch + - update + - apiGroups: + - elasticache.services.k8s.aws + resources: + - users + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - elasticache.services.k8s.aws + resources: + - users/status + verbs: + - get + - patch + - update + - apiGroups: + - services.k8s.aws + resources: + - adoptedresources + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - services.k8s.aws + resources: + - adoptedresources/status + verbs: + - get + - patch + - update + - apiGroups: + - services.k8s.aws + resources: + - fieldexports + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - services.k8s.aws + resources: + - fieldexports/status + verbs: + - get + - patch + - update + serviceAccountName: ack-elasticache-controller + deployments: + - label: + app.kubernetes.io/name: ack-elasticache-controller + app.kubernetes.io/part-of: ack-system + name: ack-elasticache-controller + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: ack-elasticache-controller + strategy: {} + template: + metadata: + labels: + app.kubernetes.io/name: ack-elasticache-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) + command: + - ./bin/controller + env: + - name: ACK_SYSTEM_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + envFrom: + - configMapRef: + name: ack-elasticache-user-config + optional: false + - secretRef: + name: ack-elasticache-user-secrets + optional: true + image: public.ecr.aws/aws-controllers-k8s/elasticache-controller:0.0.28 + name: controller + ports: + - containerPort: 8080 + name: http + 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-elasticache-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-elasticache-controller + strategy: deployment + installModes: + - supported: true + type: AllNamespaces + keywords: + - elasticache + - 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 ElastiCache Developer Resources + url: https://aws.amazon.com/elasticache/developer-resources/ + maintainers: + - email: ack-maintainers@amazon.com + name: elasticache maintainer team + maturity: alpha + provider: + name: Amazon, Inc. + url: https://aws.amazon.com + version: 0.0.28 diff --git a/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-metrics-service_v1_service.yaml b/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-metrics-service_v1_service.yaml new file mode 100644 index 00000000000..d648f2653fc --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-metrics-service_v1_service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + name: ack-elasticache-metrics-service +spec: + ports: + - name: metricsport + port: 8080 + protocol: TCP + targetPort: http + selector: + app.kubernetes.io/name: ack-elasticache-controller + type: NodePort +status: + loadBalancer: {} diff --git a/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-reader_rbac.authorization.k8s.io_v1_role.yaml b/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-reader_rbac.authorization.k8s.io_v1_role.yaml new file mode 100644 index 00000000000..b8fe92fc49b --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-reader_rbac.authorization.k8s.io_v1_role.yaml @@ -0,0 +1,19 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + creationTimestamp: null + name: ack-elasticache-reader +rules: +- apiGroups: + - elasticache.services.k8s.aws + resources: + - cacheparametergroups + - cachesubnetgroups + - replicationgroups + - snapshots + - users + - usergroups + verbs: + - get + - list + - watch diff --git a/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-writer_rbac.authorization.k8s.io_v1_role.yaml b/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-writer_rbac.authorization.k8s.io_v1_role.yaml new file mode 100644 index 00000000000..edaefd1c212 --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/manifests/ack-elasticache-writer_rbac.authorization.k8s.io_v1_role.yaml @@ -0,0 +1,36 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + creationTimestamp: null + name: ack-elasticache-writer +rules: +- apiGroups: + - elasticache.services.k8s.aws + resources: + - cacheparametergroups + - cachesubnetgroups + - replicationgroups + - snapshots + - users + - usergroups + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - elasticache.services.k8s.aws + resources: + - cacheparametergroups + - cachesubnetgroups + - replicationgroups + - snapshots + - users + - usergroups + verbs: + - get + - patch + - update diff --git a/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_cacheparametergroups.yaml b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_cacheparametergroups.yaml new file mode 100644 index 00000000000..efd87cc65cd --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_cacheparametergroups.yaml @@ -0,0 +1,215 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null + name: cacheparametergroups.elasticache.services.k8s.aws +spec: + group: elasticache.services.k8s.aws + names: + kind: CacheParameterGroup + listKind: CacheParameterGroupList + plural: cacheparametergroups + singular: cacheparametergroup + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: CacheParameterGroup is the Schema for the CacheParameterGroups + 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: "CacheParameterGroupSpec defines the desired state of CacheParameterGroup. + \n Represents the output of a CreateCacheParameterGroup operation." + properties: + cacheParameterGroupFamily: + description: "The name of the cache parameter group family that the + cache parameter group can be used with. \n Valid values are: memcached1.4 + | memcached1.5 | memcached1.6 | redis2.6 | redis2.8 | redis3.2 | + redis4.0 | redis5.0 | redis6.x" + type: string + cacheParameterGroupName: + description: A user-specified name for the cache parameter group. + type: string + description: + description: A user-specified description for the cache parameter + group. + type: string + parameterNameValues: + description: An array of parameter names and values for the parameter + update. You must supply at least one parameter name and value; subsequent + arguments are optional. A maximum of 20 parameters may be modified + per request. + items: + description: Describes a name-value pair that is used to update + the value of a parameter. + properties: + parameterName: + type: string + parameterValue: + type: string + type: object + type: array + tags: + description: A list of tags to be added to this resource. A tag is + a key-value pair. A tag key must be accompanied by a tag value, + although null is accepted. + items: + description: A tag that can be added to an ElastiCache cluster or + replication group. Tags are composed of a Key/Value pair. You + can use tags to categorize and track all your ElastiCache resources, + with the exception of global replication group. When you add or + remove tags on replication groups, those actions will be replicated + to all nodes in the replication group. A tag with a null Value + is permitted. + properties: + key: + type: string + value: + type: string + type: object + type: array + required: + - cacheParameterGroupFamily + - cacheParameterGroupName + - description + type: object + status: + description: CacheParameterGroupStatus defines the observed state of CacheParameterGroup + properties: + ackResourceMetadata: + description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` + member that is used to contain resource sync state, account ownership, + 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' + 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 + events: + description: A list of events. Each element in the list contains detailed + information about one event. + items: + description: Represents a single occurrence of something interesting + within the system. Some examples of events are creating a cluster, + adding or removing a cache node, or rebooting a node. + properties: + date: + format: date-time + type: string + message: + type: string + sourceIdentifier: + type: string + sourceType: + type: string + type: object + type: array + isGlobal: + description: Indicates whether the parameter group is associated with + a Global datastore + type: boolean + parameters: + description: A list of Parameter instances. + items: + description: Describes an individual setting that controls some + aspect of ElastiCache behavior. + properties: + allowedValues: + type: string + changeType: + type: string + dataType: + type: string + description: + type: string + isModifiable: + type: boolean + minimumEngineVersion: + type: string + parameterName: + type: string + parameterValue: + type: string + source: + type: string + type: object + type: array + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_cachesubnetgroups.yaml b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_cachesubnetgroups.yaml new file mode 100644 index 00000000000..7ba5c099ed4 --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_cachesubnetgroups.yaml @@ -0,0 +1,213 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null + name: cachesubnetgroups.elasticache.services.k8s.aws +spec: + group: elasticache.services.k8s.aws + names: + kind: CacheSubnetGroup + listKind: CacheSubnetGroupList + plural: cachesubnetgroups + singular: cachesubnetgroup + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: CacheSubnetGroup is the Schema for the CacheSubnetGroups API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + 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: "CacheSubnetGroupSpec defines the desired state of CacheSubnetGroup. + \n Represents the output of one of the following operations: \n * CreateCacheSubnetGroup + \n * ModifyCacheSubnetGroup" + properties: + cacheSubnetGroupDescription: + description: A description for the cache subnet group. + type: string + cacheSubnetGroupName: + description: "A name for the cache subnet group. This value is stored + as a lowercase string. \n Constraints: Must contain no more than + 255 alphanumeric characters or hyphens. \n Example: mysubnetgroup" + type: string + subnetIDs: + description: A list of VPC subnet IDs for the cache subnet group. + items: + type: string + type: array + subnetRefs: + items: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference type to provide more user friendly syntax + for references using 'from' field Ex: APIIDRef: \n from: name: + my-api" + 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 + type: object + type: object + type: array + tags: + description: A list of tags to be added to this resource. A tag is + a key-value pair. A tag key must be accompanied by a tag value, + although null is accepted. + items: + description: A tag that can be added to an ElastiCache cluster or + replication group. Tags are composed of a Key/Value pair. You + can use tags to categorize and track all your ElastiCache resources, + with the exception of global replication group. When you add or + remove tags on replication groups, those actions will be replicated + to all nodes in the replication group. A tag with a null Value + is permitted. + properties: + key: + type: string + value: + type: string + type: object + type: array + required: + - cacheSubnetGroupDescription + - cacheSubnetGroupName + type: object + status: + description: CacheSubnetGroupStatus defines the observed state of CacheSubnetGroup + properties: + ackResourceMetadata: + description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` + member that is used to contain resource sync state, account ownership, + 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' + 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 + events: + description: A list of events. Each element in the list contains detailed + information about one event. + items: + description: Represents a single occurrence of something interesting + within the system. Some examples of events are creating a cluster, + adding or removing a cache node, or rebooting a node. + properties: + date: + format: date-time + type: string + message: + type: string + sourceIdentifier: + type: string + sourceType: + type: string + type: object + type: array + subnets: + description: A list of subnets associated with the cache subnet group. + items: + description: Represents the subnet associated with a cluster. This + parameter refers to subnets defined in Amazon Virtual Private + Cloud (Amazon VPC) and used with ElastiCache. + properties: + subnetAvailabilityZone: + description: Describes an Availability Zone in which the cluster + is launched. + properties: + name: + type: string + type: object + subnetIdentifier: + type: string + subnetOutpost: + description: The ID of the outpost subnet. + properties: + subnetOutpostARN: + type: string + type: object + type: object + type: array + vpcID: + description: The Amazon Virtual Private Cloud identifier (VPC ID) + of the cache subnet group. + 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-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_replicationgroups.yaml b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_replicationgroups.yaml new file mode 100644 index 00000000000..251430d8c79 --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_replicationgroups.yaml @@ -0,0 +1,800 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null + name: replicationgroups.elasticache.services.k8s.aws +spec: + group: elasticache.services.k8s.aws + names: + kind: ReplicationGroup + listKind: ReplicationGroupList + plural: replicationgroups + singular: replicationgroup + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: ReplicationGroup is the Schema for the ReplicationGroups API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + 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: "ReplicationGroupSpec defines the desired state of ReplicationGroup. + \n Contains all of the attributes of a specific Redis replication group." + properties: + atRestEncryptionEnabled: + description: "A flag that enables encryption at rest when set to true. + \n You cannot modify the value of AtRestEncryptionEnabled after + the replication group is created. To enable encryption at rest on + a replication group you must set AtRestEncryptionEnabled to true + when you create the replication group. \n Required: Only available + when creating a replication group in an Amazon VPC using redis version + 3.2.6, 4.x or later. \n Default: false" + type: boolean + authToken: + description: "Reserved parameter. The password used to access a password + protected server. \n AuthToken can be specified only on replication + groups where TransitEncryptionEnabled is true. \n For HIPAA compliance, + you must specify TransitEncryptionEnabled as true, an AuthToken, + and a CacheSubnetGroup. \n Password constraints: \n * Must be only + printable ASCII characters. \n * Must be at least 16 characters + and no more than 128 characters in length. \n * The only permitted + printable special characters are !, &, #, $, ^, <, >, and -. Other + printable special characters cannot be used in the AUTH token. \n + For more information, see AUTH password (http://redis.io/commands/AUTH) + at http://redis.io/commands/AUTH." + properties: + key: + description: Key is the key within the secret + type: string + name: + description: name is unique within a namespace to reference a + secret resource. + type: string + namespace: + description: namespace defines the space within which the secret + name must be unique. + type: string + required: + - key + type: object + x-kubernetes-map-type: atomic + automaticFailoverEnabled: + description: "Specifies whether a read-only replica is automatically + promoted to read/write primary if the existing primary fails. \n + AutomaticFailoverEnabled must be enabled for Redis (cluster mode + enabled) replication groups. \n Default: false" + type: boolean + cacheNodeType: + description: "The compute and memory capacity of the nodes in the + node group (shard). \n The following node types are supported by + ElastiCache. Generally speaking, the current generation types provide + more memory and computational power at lower cost when compared + to their equivalent previous generation counterparts. \n * General + purpose: Current generation: M6g node types (available only for + Redis engine version 5.0.6 onward and for Memcached engine version + 1.5.16 onward): cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, + cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, + cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: + cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, + cache.m4.10xlarge T4g node types (available only for Redis engine + version 5.0.6 onward and Memcached engine version 1.5.16 onward): + cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: + cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, + cache.t2.small, cache.t2.medium Previous generation: (not recommended. + Existing clusters are still supported but creation of new clusters + is not supported for these types.) T1 node types: cache.t1.micro + M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, + cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, + cache.m3.xlarge, cache.m3.2xlarge \n * Compute optimized: Previous + generation: (not recommended. Existing clusters are still supported + but creation of new clusters is not supported for these types.) + C1 node types: cache.c1.xlarge \n * Memory optimized with data tiering: + Current generation: R6gd node types (available only for Redis engine + version 6.2 onward). cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, + cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge \n + * Memory optimized: Current generation: R6g node types (available + only for Redis engine version 5.0.6 onward and for Memcached engine + version 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, + cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, + cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: + cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, + cache.r4.8xlarge, cache.r4.16xlarge Previous generation: (not recommended. + Existing clusters are still supported but creation of new clusters + is not supported for these types.) M2 node types: cache.m2.xlarge, + cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, + cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge + \n Additional node type info \n * All current generation instance + types are created in Amazon VPC by default. \n * Redis append-only + files (AOF) are not supported for T1 or T2 instances. \n * Redis + Multi-AZ with automatic failover is not supported on T1 instances. + \n * Redis configuration variables appendonly and appendfsync are + not supported on Redis version 2.8.22 and later." + type: string + cacheParameterGroupName: + description: "The name of the parameter group to associate with this + replication group. If this argument is omitted, the default cache + parameter group for the specified engine is used. \n If you are + running Redis version 3.2.4 or later, only one node group (shard), + and want to use a default parameter group, we recommend that you + specify the parameter group by name. \n * To create a Redis (cluster + mode disabled) replication group, use CacheParameterGroupName=default.redis3.2. + \n * To create a Redis (cluster mode enabled) replication group, + use CacheParameterGroupName=default.redis3.2.cluster.on." + type: string + cacheParameterGroupRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference type to provide more user friendly syntax + for references using 'from' field Ex: APIIDRef: \n from: name: my-api" + 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 + type: object + type: object + cacheSecurityGroupNames: + description: A list of cache security group names to associate with + this replication group. + items: + type: string + type: array + cacheSubnetGroupName: + description: "The name of the cache subnet group to be used for the + replication group. \n If you're going to launch your cluster in + an Amazon VPC, you need to create a subnet group before you start + creating a cluster. For more information, see Subnets and Subnet + Groups (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SubnetGroups.html)." + type: string + cacheSubnetGroupRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference type to provide more user friendly syntax + for references using 'from' field Ex: APIIDRef: \n from: name: my-api" + 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 + type: object + type: object + dataTieringEnabled: + description: Enables data tiering. Data tiering is only supported + for replication groups using the r6gd node type. This parameter + must be set to true when using r6gd nodes. For more information, + see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + type: boolean + description: + description: A user-created description for the replication group. + type: string + engine: + description: The name of the cache engine to be used for the clusters + in this replication group. Must be Redis. + type: string + engineVersion: + description: "The version number of the cache engine to be used for + the clusters in this replication group. To view the supported cache + engine versions, use the DescribeCacheEngineVersions operation. + \n Important: You can upgrade to a newer engine version (see Selecting + a Cache Engine and Version (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/SelectEngine.html#VersionManagement)) + in the ElastiCache User Guide, but you cannot downgrade to an earlier + engine version. If you want to use an earlier engine version, you + must delete the existing cluster or replication group and create + it anew with the earlier engine version." + type: string + kmsKeyID: + description: The ID of the KMS key used to encrypt the disk in the + cluster. + type: string + logDeliveryConfigurations: + description: Specifies the destination, format and type of the logs. + items: + description: Specifies the destination, format and type of the logs. + properties: + destinationDetails: + description: Configuration details of either a CloudWatch Logs + destination or Kinesis Data Firehose destination. + properties: + cloudWatchLogsDetails: + description: The configuration details of the CloudWatch + Logs destination. + properties: + logGroup: + type: string + type: object + kinesisFirehoseDetails: + description: The configuration details of the Kinesis Data + Firehose destination. + properties: + deliveryStream: + type: string + type: object + type: object + destinationType: + type: string + enabled: + type: boolean + logFormat: + type: string + logType: + type: string + type: object + type: array + multiAZEnabled: + description: 'A flag indicating if you have Multi-AZ enabled to enhance + fault tolerance. For more information, see Minimizing Downtime: + Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html).' + type: boolean + nodeGroupConfiguration: + description: "A list of node group (shard) configuration options. + Each node group (shard) configuration has the following members: + PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount, + and Slots. \n If you're creating a Redis (cluster mode disabled) + or a Redis (cluster mode enabled) replication group, you can use + this parameter to individually configure each node group (shard), + or you can omit this parameter. However, it is required when seeding + a Redis (cluster mode enabled) cluster from a S3 rdb file. You must + configure each node group (shard) using this parameter because you + must specify the slots for each node group." + items: + description: 'Node group (shard) configuration options. Each node + group (shard) configuration has the following: Slots, PrimaryAvailabilityZone, + ReplicaAvailabilityZones, ReplicaCount.' + properties: + nodeGroupID: + type: string + primaryAvailabilityZone: + type: string + primaryOutpostARN: + type: string + replicaAvailabilityZones: + items: + type: string + type: array + replicaCount: + format: int64 + type: integer + replicaOutpostARNs: + items: + type: string + type: array + slots: + type: string + type: object + type: array + notificationTopicARN: + description: "The Amazon Resource Name (ARN) of the Amazon Simple + Notification Service (SNS) topic to which notifications are sent. + \n The Amazon SNS topic owner must be the same as the cluster owner." + type: string + numNodeGroups: + description: "An optional parameter that specifies the number of node + groups (shards) for this Redis (cluster mode enabled) replication + group. For Redis (cluster mode disabled) either omit this parameter + or set it to 1. \n Default: 1" + format: int64 + type: integer + port: + description: The port number on which each member of the replication + group accepts connections. + format: int64 + type: integer + preferredCacheClusterAZs: + description: "A list of EC2 Availability Zones in which the replication + group's clusters are created. The order of the Availability Zones + in the list is the order in which clusters are allocated. The primary + cluster is created in the first AZ in the list. \n This parameter + is not used if there is more than one node group (shard). You should + use NodeGroupConfiguration instead. \n If you are creating your + replication group in an Amazon VPC (recommended), you can only locate + clusters in Availability Zones associated with the subnets in the + selected subnet group. \n The number of Availability Zones listed + must equal the value of NumCacheClusters. \n Default: system chosen + Availability Zones." + items: + type: string + type: array + preferredMaintenanceWindow: + description: "Specifies the weekly time range during which maintenance + on the cluster is performed. It is specified as a range in the format + ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance + window is a 60 minute period. Valid values for ddd are: \n Specifies + the weekly time range during which maintenance on the cluster is + performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi + (24H Clock UTC). The minimum maintenance window is a 60 minute period. + \n Valid values for ddd are: \n * sun \n * mon \n * tue \n * wed + \n * thu \n * fri \n * sat \n Example: sun:23:00-mon:01:30" + type: string + primaryClusterID: + description: "The identifier of the cluster that serves as the primary + for this replication group. This cluster must already exist and + have a status of available. \n This parameter is not required if + NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup is specified." + type: string + replicasPerNodeGroup: + description: An optional parameter that specifies the number of replica + nodes in each node group (shard). Valid values are 0 to 5. + format: int64 + type: integer + replicationGroupID: + description: "The replication group identifier. This parameter is + stored as a lowercase string. \n Constraints: \n * A name must contain + from 1 to 40 alphanumeric characters or hyphens. \n * The first + character must be a letter. \n * A name cannot end with a hyphen + or contain two consecutive hyphens." + type: string + securityGroupIDs: + description: "One or more Amazon VPC security groups associated with + this replication group. \n Use this parameter only when you are + creating a replication group in an Amazon Virtual Private Cloud + (Amazon VPC)." + items: + type: string + type: array + securityGroupRefs: + items: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference type to provide more user friendly syntax + for references using 'from' field Ex: APIIDRef: \n from: name: + my-api" + 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 + type: object + type: object + type: array + snapshotARNs: + description: "A list of Amazon Resource Names (ARN) that uniquely + identify the Redis RDB snapshot files stored in Amazon S3. The snapshot + files are used to populate the new replication group. The Amazon + S3 object name in the ARN cannot contain any commas. The new replication + group will have the number of node groups (console: shards) specified + by the parameter NumNodeGroups or the number of node groups configured + by NodeGroupConfiguration regardless of the number of ARNs specified + here. \n Example of an Amazon S3 ARN: arn:aws:s3:::my_bucket/snapshot1.rdb" + items: + type: string + type: array + snapshotName: + description: The name of a snapshot from which to restore data into + the new replication group. The snapshot status changes to restoring + while the new replication group is being created. + type: string + snapshotRetentionLimit: + description: "The number of days for which ElastiCache retains automatic + snapshots before deleting them. For example, if you set SnapshotRetentionLimit + to 5, a snapshot that was taken today is retained for 5 days before + being deleted. \n Default: 0 (i.e., automatic backups are disabled + for this cluster)." + format: int64 + type: integer + snapshotWindow: + description: "The daily time range (in UTC) during which ElastiCache + begins taking a daily snapshot of your node group (shard). \n Example: + 05:00-09:00 \n If you do not specify this parameter, ElastiCache + automatically chooses an appropriate time range." + type: string + tags: + description: 'A list of tags to be added to this resource. Tags are + comma-separated key,value pairs (e.g. Key=myKey, Value=myKeyValue. + You can include multiple tags as shown following: Key=myKey, Value=myKeyValue + Key=mySecondKey, Value=mySecondKeyValue. Tags on replication groups + will be replicated to all nodes.' + items: + description: A tag that can be added to an ElastiCache cluster or + replication group. Tags are composed of a Key/Value pair. You + can use tags to categorize and track all your ElastiCache resources, + with the exception of global replication group. When you add or + remove tags on replication groups, those actions will be replicated + to all nodes in the replication group. A tag with a null Value + is permitted. + properties: + key: + type: string + value: + type: string + type: object + type: array + transitEncryptionEnabled: + description: "A flag that enables in-transit encryption when set to + true. \n You cannot modify the value of TransitEncryptionEnabled + after the cluster is created. To enable in-transit encryption on + a cluster you must set TransitEncryptionEnabled to true when you + create a cluster. \n This parameter is valid only if the Engine + parameter is redis, the EngineVersion parameter is 3.2.6, 4.x or + later, and the cluster is being created in an Amazon VPC. \n If + you enable in-transit encryption, you must also specify a value + for CacheSubnetGroup. \n Required: Only available when creating + a replication group in an Amazon VPC using redis version 3.2.6, + 4.x or later. \n Default: false \n For HIPAA compliance, you must + specify TransitEncryptionEnabled as true, an AuthToken, and a CacheSubnetGroup." + type: boolean + userGroupIDs: + description: The user group to associate with the replication group. + items: + type: string + type: array + required: + - description + - replicationGroupID + type: object + status: + description: ReplicationGroupStatus defines the observed state of ReplicationGroup + properties: + ackResourceMetadata: + description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` + member that is used to contain resource sync state, account ownership, + 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' + 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 + allowedScaleDownModifications: + description: A string list, each element of which specifies a cache + node type which you can use to scale your cluster or replication + group. When scaling down a Redis cluster or replication group using + ModifyCacheCluster or ModifyReplicationGroup, use a value from this + list for the CacheNodeType parameter. + items: + type: string + type: array + allowedScaleUpModifications: + description: "A string list, each element of which specifies a cache + node type which you can use to scale your cluster or replication + group. \n When scaling up a Redis cluster or replication group using + ModifyCacheCluster or ModifyReplicationGroup, use a value from this + list for the CacheNodeType parameter." + items: + type: string + type: array + authTokenEnabled: + description: "A flag that enables using an AuthToken (password) when + issuing Redis commands. \n Default: false" + type: boolean + authTokenLastModifiedDate: + description: The date the auth token was last modified + format: date-time + type: string + autoMinorVersionUpgrade: + description: If you are running Redis engine version 6.0 or later, + set this parameter to yes if you want to opt-in to the next auto + minor version upgrade campaign. This parameter is disabled for previous + versions. + type: boolean + automaticFailover: + description: Indicates the status of automatic failover for this Redis + replication group. + type: string + clusterEnabled: + description: "A flag indicating whether or not this replication group + is cluster enabled; i.e., whether its data can be partitioned across + multiple shards (API/CLI: node groups). \n Valid values: true | + false" + type: boolean + conditions: + description: All CRS managed by ACK have a common `Status.Conditions` + member that contains a collection of `ackv1alpha1.Condition` objects + that describe the various terminal states of the CR and its backend + AWS service API resource + 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 + configurationEndpoint: + description: The configuration endpoint for this replication group. + Use the configuration endpoint to connect to this replication group. + properties: + address: + type: string + port: + format: int64 + type: integer + type: object + dataTiering: + description: Enables data tiering. Data tiering is only supported + for replication groups using the r6gd node type. This parameter + must be set to true when using r6gd nodes. For more information, + see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + type: string + events: + description: A list of events. Each element in the list contains detailed + information about one event. + items: + description: Represents a single occurrence of something interesting + within the system. Some examples of events are creating a cluster, + adding or removing a cache node, or rebooting a node. + properties: + date: + format: date-time + type: string + message: + type: string + sourceIdentifier: + type: string + sourceType: + type: string + type: object + type: array + globalReplicationGroupInfo: + description: The name of the Global datastore and role of this replication + group in the Global datastore. + properties: + globalReplicationGroupID: + type: string + globalReplicationGroupMemberRole: + type: string + type: object + logDeliveryConfigurations: + description: Returns the destination, format and type of the logs. + items: + description: Returns the destination, format and type of the logs. + properties: + destinationDetails: + description: Configuration details of either a CloudWatch Logs + destination or Kinesis Data Firehose destination. + properties: + cloudWatchLogsDetails: + description: The configuration details of the CloudWatch + Logs destination. + properties: + logGroup: + type: string + type: object + kinesisFirehoseDetails: + description: The configuration details of the Kinesis Data + Firehose destination. + properties: + deliveryStream: + type: string + type: object + type: object + destinationType: + type: string + logFormat: + type: string + logType: + type: string + message: + type: string + status: + type: string + type: object + type: array + memberClusters: + description: The names of all the cache clusters that are part of + this replication group. + items: + type: string + type: array + memberClustersOutpostARNs: + description: The outpost ARNs of the replication group's member clusters. + items: + type: string + type: array + multiAZ: + description: 'A flag indicating if you have Multi-AZ enabled to enhance + fault tolerance. For more information, see Minimizing Downtime: + Multi-AZ (http://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/AutoFailover.html)' + type: string + nodeGroups: + description: A list of node groups in this replication group. For + Redis (cluster mode disabled) replication groups, this is a single-element + list. For Redis (cluster mode enabled) replication groups, the list + contains an entry for each node group (shard). + items: + description: Represents a collection of cache nodes in a replication + group. One node in the node group is the read/write primary node. + All the other nodes are read-only Replica nodes. + properties: + nodeGroupID: + type: string + nodeGroupMembers: + items: + description: Represents a single node within a node group + (shard). + properties: + cacheClusterID: + type: string + cacheNodeID: + type: string + currentRole: + type: string + preferredAvailabilityZone: + type: string + preferredOutpostARN: + type: string + readEndpoint: + description: Represents the information required for client + programs to connect to a cache node. + properties: + address: + type: string + port: + format: int64 + type: integer + type: object + type: object + type: array + primaryEndpoint: + description: Represents the information required for client + programs to connect to a cache node. + properties: + address: + type: string + port: + format: int64 + type: integer + type: object + readerEndpoint: + description: Represents the information required for client + programs to connect to a cache node. + properties: + address: + type: string + port: + format: int64 + type: integer + type: object + slots: + type: string + status: + type: string + type: object + type: array + pendingModifiedValues: + description: A group of settings to be applied to the replication + group, either immediately or during the next maintenance window. + properties: + authTokenStatus: + type: string + automaticFailoverStatus: + type: string + logDeliveryConfigurations: + items: + description: The log delivery configurations being modified + properties: + destinationDetails: + description: Configuration details of either a CloudWatch + Logs destination or Kinesis Data Firehose destination. + properties: + cloudWatchLogsDetails: + description: The configuration details of the CloudWatch + Logs destination. + properties: + logGroup: + type: string + type: object + kinesisFirehoseDetails: + description: The configuration details of the Kinesis + Data Firehose destination. + properties: + deliveryStream: + type: string + type: object + type: object + destinationType: + type: string + logFormat: + type: string + logType: + type: string + type: object + type: array + primaryClusterID: + type: string + resharding: + description: The status of an online resharding operation. + properties: + slotMigration: + description: Represents the progress of an online resharding + operation. + properties: + progressPercentage: + type: number + type: object + type: object + userGroups: + description: The status of the user group update. + properties: + userGroupIDsToAdd: + items: + type: string + type: array + userGroupIDsToRemove: + items: + type: string + type: array + type: object + type: object + replicationGroupCreateTime: + description: The date and time when the cluster was created. + format: date-time + type: string + snapshottingClusterID: + description: The cluster ID that is used as the daily snapshot source + for the replication group. + type: string + status: + description: The current state of this replication group - creating, + available, modifying, deleting, create-failed, snapshotting. + 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-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_snapshots.yaml b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_snapshots.yaml new file mode 100644 index 00000000000..f74be32ebd2 --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_snapshots.yaml @@ -0,0 +1,354 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null + name: snapshots.elasticache.services.k8s.aws +spec: + group: elasticache.services.k8s.aws + names: + kind: Snapshot + listKind: SnapshotList + plural: snapshots + singular: snapshot + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: Snapshot is the Schema for the Snapshots API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + 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: "SnapshotSpec defines the desired state of Snapshot. \n Represents + a copy of an entire Redis cluster as of the time when the snapshot was + taken." + properties: + cacheClusterID: + description: The identifier of an existing cluster. The snapshot is + created from this cluster. + type: string + kmsKeyID: + description: The ID of the KMS key used to encrypt the snapshot. + type: string + replicationGroupID: + description: The identifier of an existing replication group. The + snapshot is created from this replication group. + type: string + snapshotName: + description: A name for the snapshot being created. + type: string + sourceSnapshotName: + description: The name of an existing snapshot from which to make a + copy. + type: string + tags: + description: A list of tags to be added to this resource. A tag is + a key-value pair. A tag key must be accompanied by a tag value, + although null is accepted. + items: + description: A tag that can be added to an ElastiCache cluster or + replication group. Tags are composed of a Key/Value pair. You + can use tags to categorize and track all your ElastiCache resources, + with the exception of global replication group. When you add or + remove tags on replication groups, those actions will be replicated + to all nodes in the replication group. A tag with a null Value + is permitted. + properties: + key: + type: string + value: + type: string + type: object + type: array + required: + - snapshotName + type: object + status: + description: SnapshotStatus defines the observed state of Snapshot + properties: + ackResourceMetadata: + description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` + member that is used to contain resource sync state, account ownership, + 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' + 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 + autoMinorVersionUpgrade: + description: If you are running Redis engine version 6.0 or later, + set this parameter to yes if you want to opt-in to the next auto + minor version upgrade campaign. This parameter is disabled for previous + versions. + type: boolean + automaticFailover: + description: Indicates the status of automatic failover for the source + Redis replication group. + type: string + cacheClusterCreateTime: + description: The date and time when the source cluster was created. + format: date-time + type: string + cacheNodeType: + description: "The name of the compute and memory capacity node type + for the source cluster. \n The following node types are supported + by ElastiCache. Generally speaking, the current generation types + provide more memory and computational power at lower cost when compared + to their equivalent previous generation counterparts. \n * General + purpose: Current generation: M6g node types (available only for + Redis engine version 5.0.6 onward and for Memcached engine version + 1.5.16 onward). cache.m6g.large, cache.m6g.xlarge, cache.m6g.2xlarge, + cache.m6g.4xlarge, cache.m6g.8xlarge, cache.m6g.12xlarge, cache.m6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + M5 node types: cache.m5.large, cache.m5.xlarge, cache.m5.2xlarge, + cache.m5.4xlarge, cache.m5.12xlarge, cache.m5.24xlarge M4 node types: + cache.m4.large, cache.m4.xlarge, cache.m4.2xlarge, cache.m4.4xlarge, + cache.m4.10xlarge T4g node types (available only for Redis engine + version 5.0.6 onward and Memcached engine version 1.5.16 onward): + cache.t4g.micro, cache.t4g.small, cache.t4g.medium T3 node types: + cache.t3.micro, cache.t3.small, cache.t3.medium T2 node types: cache.t2.micro, + cache.t2.small, cache.t2.medium Previous generation: (not recommended. + Existing clusters are still supported but creation of new clusters + is not supported for these types.) T1 node types: cache.t1.micro + M1 node types: cache.m1.small, cache.m1.medium, cache.m1.large, + cache.m1.xlarge M3 node types: cache.m3.medium, cache.m3.large, + cache.m3.xlarge, cache.m3.2xlarge \n * Compute optimized: Previous + generation: (not recommended. Existing clusters are still supported + but creation of new clusters is not supported for these types.) + C1 node types: cache.c1.xlarge \n * Memory optimized with data tiering: + Current generation: R6gd node types (available only for Redis engine + version 6.2 onward). cache.r6gd.xlarge, cache.r6gd.2xlarge, cache.r6gd.4xlarge, + cache.r6gd.8xlarge, cache.r6gd.12xlarge, cache.r6gd.16xlarge \n + * Memory optimized: Current generation: R6g node types (available + only for Redis engine version 5.0.6 onward and for Memcached engine + version 1.5.16 onward). cache.r6g.large, cache.r6g.xlarge, cache.r6g.2xlarge, + cache.r6g.4xlarge, cache.r6g.8xlarge, cache.r6g.12xlarge, cache.r6g.16xlarge + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + For region availability, see Supported Node Types (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html#CacheNodes.SupportedTypesByRegion) + R5 node types: cache.r5.large, cache.r5.xlarge, cache.r5.2xlarge, + cache.r5.4xlarge, cache.r5.12xlarge, cache.r5.24xlarge R4 node types: + cache.r4.large, cache.r4.xlarge, cache.r4.2xlarge, cache.r4.4xlarge, + cache.r4.8xlarge, cache.r4.16xlarge Previous generation: (not recommended. + Existing clusters are still supported but creation of new clusters + is not supported for these types.) M2 node types: cache.m2.xlarge, + cache.m2.2xlarge, cache.m2.4xlarge R3 node types: cache.r3.large, + cache.r3.xlarge, cache.r3.2xlarge, cache.r3.4xlarge, cache.r3.8xlarge + \n Additional node type info \n * All current generation instance + types are created in Amazon VPC by default. \n * Redis append-only + files (AOF) are not supported for T1 or T2 instances. \n * Redis + Multi-AZ with automatic failover is not supported on T1 instances. + \n * Redis configuration variables appendonly and appendfsync are + not supported on Redis version 2.8.22 and later." + type: string + cacheParameterGroupName: + description: The cache parameter group that is associated with the + source cluster. + type: string + cacheSubnetGroupName: + description: The name of the cache subnet group associated with the + source cluster. + type: string + conditions: + description: All CRS managed by ACK have a common `Status.Conditions` + member that contains a collection of `ackv1alpha1.Condition` objects + that describe the various terminal states of the CR and its backend + AWS service API resource + 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 + dataTiering: + description: Enables data tiering. Data tiering is only supported + for replication groups using the r6gd node type. This parameter + must be set to true when using r6gd nodes. For more information, + see Data tiering (https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/data-tiering.html). + type: string + engine: + description: The name of the cache engine (memcached or redis) used + by the source cluster. + type: string + engineVersion: + description: The version of the cache engine version that is used + by the source cluster. + type: string + nodeSnapshots: + description: A list of the cache nodes in the source cluster. + items: + description: Represents an individual cache node in a snapshot of + a cluster. + properties: + cacheClusterID: + type: string + cacheNodeCreateTime: + format: date-time + type: string + cacheNodeID: + type: string + cacheSize: + type: string + nodeGroupConfiguration: + description: 'Node group (shard) configuration options. Each + node group (shard) configuration has the following: Slots, + PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount.' + properties: + nodeGroupID: + type: string + primaryAvailabilityZone: + type: string + primaryOutpostARN: + type: string + replicaAvailabilityZones: + items: + type: string + type: array + replicaCount: + format: int64 + type: integer + replicaOutpostARNs: + items: + type: string + type: array + slots: + type: string + type: object + nodeGroupID: + type: string + snapshotCreateTime: + format: date-time + type: string + type: object + type: array + numCacheNodes: + description: "The number of cache nodes in the source cluster. \n + For clusters running Redis, this value must be 1. For clusters running + Memcached, this value must be between 1 and 40." + format: int64 + type: integer + numNodeGroups: + description: The number of node groups (shards) in this snapshot. + When restoring from a snapshot, the number of node groups (shards) + in the snapshot and in the restored replication group must be the + same. + format: int64 + type: integer + port: + description: The port number used by each cache nodes in the source + cluster. + format: int64 + type: integer + preferredAvailabilityZone: + description: The name of the Availability Zone in which the source + cluster is located. + type: string + preferredMaintenanceWindow: + description: "Specifies the weekly time range during which maintenance + on the cluster is performed. It is specified as a range in the format + ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance + window is a 60 minute period. \n Valid values for ddd are: \n * + sun \n * mon \n * tue \n * wed \n * thu \n * fri \n * sat \n Example: + sun:23:00-mon:01:30" + type: string + preferredOutpostARN: + description: The ARN (Amazon Resource Name) of the preferred outpost. + type: string + replicationGroupDescription: + description: A description of the source replication group. + type: string + snapshotRetentionLimit: + description: "For an automatic snapshot, the number of days for which + ElastiCache retains the snapshot before deleting it. \n For manual + snapshots, this field reflects the SnapshotRetentionLimit for the + source cluster when the snapshot was created. This field is otherwise + ignored: Manual snapshots do not expire, and can only be deleted + using the DeleteSnapshot operation. \n Important If the value of + SnapshotRetentionLimit is set to zero (0), backups are turned off." + format: int64 + type: integer + snapshotSource: + description: Indicates whether the snapshot is from an automatic backup + (automated) or was created manually (manual). + type: string + snapshotStatus: + description: 'The status of the snapshot. Valid values: creating | + available | restoring | copying | deleting.' + type: string + snapshotWindow: + description: The daily time range during which ElastiCache takes daily + snapshots of the source cluster. + type: string + topicARN: + description: The Amazon Resource Name (ARN) for the topic used by + the source cluster for publishing notifications. + type: string + vpcID: + description: The Amazon Virtual Private Cloud identifier (VPC ID) + of the cache subnet group for the source cluster. + 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-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_usergroups.yaml b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_usergroups.yaml new file mode 100644 index 00000000000..32c64dc77d0 --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_usergroups.yaml @@ -0,0 +1,170 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null + name: usergroups.elasticache.services.k8s.aws +spec: + group: elasticache.services.k8s.aws + names: + kind: UserGroup + listKind: UserGroupList + plural: usergroups + singular: usergroup + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: UserGroup is the Schema for the UserGroups API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + 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: + properties: + engine: + description: The current supported value is Redis. + type: string + tags: + description: A list of tags to be added to this resource. A tag is + a key-value pair. A tag key must be accompanied by a tag value, + although null is accepted. + items: + description: A tag that can be added to an ElastiCache cluster or + replication group. Tags are composed of a Key/Value pair. You + can use tags to categorize and track all your ElastiCache resources, + with the exception of global replication group. When you add or + remove tags on replication groups, those actions will be replicated + to all nodes in the replication group. A tag with a null Value + is permitted. + properties: + key: + type: string + value: + type: string + type: object + type: array + userGroupID: + description: The ID of the user group. + type: string + userIDs: + description: The list of user IDs that belong to the user group. + items: + type: string + type: array + required: + - engine + - userGroupID + type: object + status: + description: UserGroupStatus defines the observed state of UserGroup + properties: + ackResourceMetadata: + description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` + member that is used to contain resource sync state, account ownership, + 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' + 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 + minimumEngineVersion: + description: The minimum engine version required, which is Redis 6.0 + type: string + pendingChanges: + description: A list of updates being applied to the user group. + properties: + userIDsToAdd: + items: + type: string + type: array + userIDsToRemove: + items: + type: string + type: array + type: object + replicationGroups: + description: A list of replication groups that the user group can + access. + items: + type: string + type: array + status: + description: Indicates user group status. Can be "creating", "active", + "modifying", "deleting". + 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-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_users.yaml b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_users.yaml new file mode 100644 index 00000000000..aaf12f89835 --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/manifests/elasticache.services.k8s.aws_users.yaml @@ -0,0 +1,202 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.9.2 + creationTimestamp: null + name: users.elasticache.services.k8s.aws +spec: + group: elasticache.services.k8s.aws + names: + kind: User + listKind: UserList + plural: users + singular: user + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: User is the Schema for the Users API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + 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: + properties: + accessString: + description: Access permissions string used for this user. + type: string + engine: + description: The current supported value is Redis. + type: string + noPasswordRequired: + description: Indicates a password is not required for this user. + type: boolean + passwords: + description: Passwords used for this user. You can create up to two + passwords for each user. + items: + description: SecretKeyReference combines a k8s corev1.SecretReference + with a specific key within the referred-to Secret + properties: + key: + description: Key is the key within the secret + type: string + name: + description: name is unique within a namespace to reference + a secret resource. + type: string + namespace: + description: namespace defines the space within which the secret + name must be unique. + type: string + required: + - key + type: object + x-kubernetes-map-type: atomic + type: array + tags: + description: A list of tags to be added to this resource. A tag is + a key-value pair. A tag key must be accompanied by a tag value, + although null is accepted. + items: + description: A tag that can be added to an ElastiCache cluster or + replication group. Tags are composed of a Key/Value pair. You + can use tags to categorize and track all your ElastiCache resources, + with the exception of global replication group. When you add or + remove tags on replication groups, those actions will be replicated + to all nodes in the replication group. A tag with a null Value + is permitted. + properties: + key: + type: string + value: + type: string + type: object + type: array + userID: + description: The ID of the user. + type: string + userName: + description: The username of the user. + type: string + required: + - accessString + - engine + - userID + - userName + type: object + status: + description: UserStatus defines the observed state of User + properties: + ackResourceMetadata: + description: All CRs managed by ACK have a common `Status.ACKResourceMetadata` + member that is used to contain resource sync state, account ownership, + 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' + 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 + authentication: + description: Denotes whether the user requires a password to authenticate. + properties: + passwordCount: + format: int64 + type: integer + type_: + type: string + type: object + conditions: + description: All CRS managed by ACK have a common `Status.Conditions` + member that contains a collection of `ackv1alpha1.Condition` objects + that describe the various terminal states of the CR and its backend + AWS service API resource + 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 + expandedAccessString: + description: Access permissions string used for this user. + type: string + lastRequestedAccessString: + description: Access permissions string used for this user. + type: string + minimumEngineVersion: + description: The minimum engine version required, which is Redis 6.0 + type: string + status: + description: Indicates the user status. Can be "active", "modifying" + or "deleting". + type: string + userGroupIDs: + description: Returns a list of the user group IDs the user belongs + to. + items: + type: string + type: array + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/ack-elasticache-controller/0.0.28/metadata/annotations.yaml b/operators/ack-elasticache-controller/0.0.28/metadata/annotations.yaml new file mode 100644 index 00000000000..51bb1651381 --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/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-elasticache-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-elasticache-controller/0.0.28/tests/scorecard/config.yaml b/operators/ack-elasticache-controller/0.0.28/tests/scorecard/config.yaml new file mode 100644 index 00000000000..382ddefd156 --- /dev/null +++ b/operators/ack-elasticache-controller/0.0.28/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: {}