From d916907add3e096b74969e721a77b3cdb9f7c8e7 Mon Sep 17 00:00:00 2001 From: AWS Controllers for Kubernetes Bot <82905295+ack-bot@users.noreply.github.com> Date: Thu, 1 Aug 2024 23:26:40 -0700 Subject: [PATCH] operator ack-memorydb-controller (1.0.3) --- .../1.0.3/bundle.Dockerfile | 21 + ...rydb-controller.clusterserviceversion.yaml | 513 ++++++++++++++++++ ...k-memorydb-metrics-service_v1_service.yaml | 16 + ...der_rbac.authorization.k8s.io_v1_role.yaml | 19 + ...ter_rbac.authorization.k8s.io_v1_role.yaml | 36 ++ .../memorydb.services.k8s.aws_acls.yaml | 217 ++++++++ .../memorydb.services.k8s.aws_clusters.yaml | 495 +++++++++++++++++ ...rydb.services.k8s.aws_parametergroups.yaml | 197 +++++++ .../memorydb.services.k8s.aws_snapshots.yaml | 258 +++++++++ ...emorydb.services.k8s.aws_subnetgroups.yaml | 208 +++++++ .../memorydb.services.k8s.aws_users.yaml | 231 ++++++++ .../1.0.3/metadata/annotations.yaml | 15 + .../1.0.3/tests/scorecard/config.yaml | 50 ++ 13 files changed, 2276 insertions(+) create mode 100644 operators/ack-memorydb-controller/1.0.3/bundle.Dockerfile create mode 100644 operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-controller.clusterserviceversion.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-metrics-service_v1_service.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-reader_rbac.authorization.k8s.io_v1_role.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-writer_rbac.authorization.k8s.io_v1_role.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_acls.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_clusters.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_parametergroups.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_snapshots.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_subnetgroups.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_users.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/metadata/annotations.yaml create mode 100644 operators/ack-memorydb-controller/1.0.3/tests/scorecard/config.yaml diff --git a/operators/ack-memorydb-controller/1.0.3/bundle.Dockerfile b/operators/ack-memorydb-controller/1.0.3/bundle.Dockerfile new file mode 100644 index 00000000000..f3feb063b20 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/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-memorydb-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-memorydb-controller/1.0.3/manifests/ack-memorydb-controller.clusterserviceversion.yaml b/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-controller.clusterserviceversion.yaml new file mode 100644 index 00000000000..049121faac6 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-controller.clusterserviceversion.yaml @@ -0,0 +1,513 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "memorydb.services.k8s.aws/v1alpha1", + "kind": "ACL", + "metadata": { + "name": "example" + }, + "spec": {} + }, + { + "apiVersion": "memorydb.services.k8s.aws/v1alpha1", + "kind": "Cluster", + "metadata": { + "name": "example" + }, + "spec": {} + }, + { + "apiVersion": "memorydb.services.k8s.aws/v1alpha1", + "kind": "ParameterGroup", + "metadata": { + "name": "example" + }, + "spec": {} + }, + { + "apiVersion": "memorydb.services.k8s.aws/v1alpha1", + "kind": "Snapshot", + "metadata": { + "name": "example" + }, + "spec": {} + }, + { + "apiVersion": "memorydb.services.k8s.aws/v1alpha1", + "kind": "SubnetGroup", + "metadata": { + "name": "example" + }, + "spec": {} + }, + { + "apiVersion": "memorydb.services.k8s.aws/v1alpha1", + "kind": "User", + "metadata": { + "name": "example" + }, + "spec": {} + } + ] + capabilities: Basic Install + categories: Cloud Provider + certified: "false" + containerImage: public.ecr.aws/aws-controllers-k8s/memorydb-controller:1.0.3 + createdAt: "2024-08-02T06:13:45Z" + description: Amazon MemoryDB for Redis controller is a service controller for + managing MemoryDB resources in Kubernetes + operatorframework.io/suggested-namespace: ack-system + operators.operatorframework.io/builder: operator-sdk-v1.28.0 + operators.operatorframework.io/project_layout: unknown + repository: https://github.com/aws-controllers-k8s + support: Community + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/os.linux: supported + name: ack-memorydb-controller.v1.0.3 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: ACL represents the state of an AWS memorydb ACL resource. + displayName: ACL + kind: ACL + name: acls.memorydb.services.k8s.aws + version: v1alpha1 + - description: Cluster represents the state of an AWS memorydb Cluster resource. + displayName: Cluster + kind: Cluster + name: clusters.memorydb.services.k8s.aws + version: v1alpha1 + - description: ParameterGroup represents the state of an AWS memorydb ParameterGroup + resource. + displayName: ParameterGroup + kind: ParameterGroup + name: parametergroups.memorydb.services.k8s.aws + version: v1alpha1 + - description: Snapshot represents the state of an AWS memorydb Snapshot resource. + displayName: Snapshot + kind: Snapshot + name: snapshots.memorydb.services.k8s.aws + version: v1alpha1 + - description: SubnetGroup represents the state of an AWS memorydb SubnetGroup + resource. + displayName: SubnetGroup + kind: SubnetGroup + name: subnetgroups.memorydb.services.k8s.aws + version: v1alpha1 + - description: User represents the state of an AWS memorydb User resource. + displayName: User + kind: User + name: users.memorydb.services.k8s.aws + version: v1alpha1 + description: |- + Manage Amazon MemoryDB for Redis resources in AWS from within your Kubernetes cluster. + + **About Amazon MemoryDB for Redis** + + MemoryDB for Redis is a durable, in-memory database service that delivers ultra-fast performance. It is purpose-built for modern applications with microservices architectures. + MemoryDB is compatible with Redis, a popular open source data store, enabling you to quickly build applications using the same flexible and friendly Redis data structures, APIs, and commands that they already use today. With MemoryDB, all of your data is stored in memory, which enables you to achieve microsecond read and single-digit millisecond write latency and high throughput. MemoryDB also stores data durably across multiple Availability Zones (AZs) using a Multi-AZ transactional log to enable fast failover, database recovery, and node restarts. + Delivering both in-memory performance and Multi-AZ durability, MemoryDB can be used as a high-performance primary database for your microservices applications, eliminating the need to separately manage both a cache and durable database. + + **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. + + **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 - MemoryDB + 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: + - kms.services.k8s.aws + resources: + - keys + verbs: + - get + - list + - apiGroups: + - kms.services.k8s.aws + resources: + - keys/status + verbs: + - get + - list + - apiGroups: + - memorydb.services.k8s.aws + resources: + - acls + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - memorydb.services.k8s.aws + resources: + - acls/status + verbs: + - get + - patch + - update + - apiGroups: + - memorydb.services.k8s.aws + resources: + - clusters + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - memorydb.services.k8s.aws + resources: + - clusters/status + verbs: + - get + - patch + - update + - apiGroups: + - memorydb.services.k8s.aws + resources: + - parametergroups + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - memorydb.services.k8s.aws + resources: + - parametergroups/status + verbs: + - get + - patch + - update + - apiGroups: + - memorydb.services.k8s.aws + resources: + - snapshots + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - memorydb.services.k8s.aws + resources: + - snapshots/status + verbs: + - get + - patch + - update + - apiGroups: + - memorydb.services.k8s.aws + resources: + - subnetgroups + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - memorydb.services.k8s.aws + resources: + - subnetgroups/status + verbs: + - get + - patch + - update + - apiGroups: + - memorydb.services.k8s.aws + resources: + - users + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - memorydb.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 + - apiGroups: + - sns.services.k8s.aws + resources: + - topics + verbs: + - get + - list + - apiGroups: + - sns.services.k8s.aws + resources: + - topics/status + verbs: + - get + - list + serviceAccountName: ack-memorydb-controller + deployments: + - label: + app.kubernetes.io/name: ack-memorydb-controller + app.kubernetes.io/part-of: ack-system + name: ack-memorydb-controller + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: ack-memorydb-controller + strategy: {} + template: + metadata: + labels: + app.kubernetes.io/name: ack-memorydb-controller + spec: + containers: + - args: + - --aws-region + - $(AWS_REGION) + - --aws-endpoint-url + - $(AWS_ENDPOINT_URL) + - --enable-development-logging=$(ACK_ENABLE_DEVELOPMENT_LOGGING) + - --log-level + - $(ACK_LOG_LEVEL) + - --resource-tags + - $(ACK_RESOURCE_TAGS) + - --watch-namespace + - $(ACK_WATCH_NAMESPACE) + - --enable-leader-election=$(ENABLE_LEADER_ELECTION) + - --leader-election-namespace + - $(LEADER_ELECTION_NAMESPACE) + - --reconcile-default-max-concurrent-syncs + - $(RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS) + command: + - ./bin/controller + env: + - name: ACK_SYSTEM_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + envFrom: + - configMapRef: + name: ack-memorydb-user-config + optional: false + - secretRef: + name: ack-memorydb-user-secrets + optional: true + image: public.ecr.aws/aws-controllers-k8s/memorydb-controller:1.0.3 + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: controller + ports: + - containerPort: 8080 + name: http + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 100m + memory: 300Mi + requests: + cpu: 100m + memory: 200Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + privileged: false + runAsNonRoot: true + dnsPolicy: ClusterFirst + securityContext: + seccompProfile: + type: RuntimeDefault + serviceAccountName: ack-memorydb-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-memorydb-controller + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - memorydb + - 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 MemoryDB for Redis Developer Resources + url: https://docs.aws.amazon.com/memorydb/?id=docs_gateway + maintainers: + - email: ack-maintainers@amazon.com + name: memorydb maintainer team + maturity: alpha + provider: + name: Amazon, Inc. + url: https://aws.amazon.com + version: 1.0.3 diff --git a/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-metrics-service_v1_service.yaml b/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-metrics-service_v1_service.yaml new file mode 100644 index 00000000000..0d8256985f3 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-metrics-service_v1_service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + name: ack-memorydb-metrics-service +spec: + ports: + - name: metricsport + port: 8080 + protocol: TCP + targetPort: http + selector: + app.kubernetes.io/name: ack-memorydb-controller + type: NodePort +status: + loadBalancer: {} diff --git a/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-reader_rbac.authorization.k8s.io_v1_role.yaml b/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-reader_rbac.authorization.k8s.io_v1_role.yaml new file mode 100644 index 00000000000..a4d0ab930a8 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-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-memorydb-reader +rules: +- apiGroups: + - memorydb.services.k8s.aws + resources: + - acls + - clusters + - parametergroups + - snapshots + - subnetgroups + - users + verbs: + - get + - list + - watch diff --git a/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-writer_rbac.authorization.k8s.io_v1_role.yaml b/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-writer_rbac.authorization.k8s.io_v1_role.yaml new file mode 100644 index 00000000000..2981bd05372 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/manifests/ack-memorydb-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-memorydb-writer +rules: +- apiGroups: + - memorydb.services.k8s.aws + resources: + - acls + - clusters + - parametergroups + - snapshots + - subnetgroups + - users + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - memorydb.services.k8s.aws + resources: + - acls + - clusters + - parametergroups + - snapshots + - subnetgroups + - users + verbs: + - get + - patch + - update diff --git a/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_acls.yaml b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_acls.yaml new file mode 100644 index 00000000000..718dbf701e4 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_acls.yaml @@ -0,0 +1,217 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + creationTimestamp: null + name: acls.memorydb.services.k8s.aws +spec: + group: memorydb.services.k8s.aws + names: + kind: ACL + listKind: ACLList + plural: acls + singular: acl + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: ACL is the Schema for the ACLS 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: |- + ACLSpec defines the desired state of ACL. + + + An Access Control List. You can authenticate users with Access Contol Lists. + ACLs enable you to control cluster access by grouping users. These Access + control lists are designed as a way to organize access to clusters. + properties: + name: + description: The name of the Access Control List. + 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 MemoryDB resource. Tags are composed of a Key/Value + pair. You can use tags to categorize and track all your MemoryDB resources. + When you add or remove tags on clusters, those actions will be replicated + to all nodes in the cluster. A tag with a null Value is permitted. For more + information, see Tagging your MemoryDB resources (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging-resources.html) + properties: + key: + type: string + value: + type: string + type: object + type: array + userNames: + description: The list of users that belong to the Access Control List. + items: + type: string + type: array + userRefs: + items: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + properties: + name: + type: string + type: object + type: object + type: array + required: + - name + type: object + status: + description: ACLStatus defines the observed state of ACL + 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 + clusters: + description: A list of clusters associated with the ACL. + items: + type: string + type: array + conditions: + description: |- + All CRS managed by ACK have a common `Status.Conditions` member that + contains a collection of `ackv1alpha1.Condition` objects that describe + the various terminal states of the CR and its backend AWS service API + resource + 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 or adding or removing a node. + properties: + date: + format: date-time + type: string + message: + type: string + sourceName: + type: string + sourceType: + type: string + type: object + type: array + minimumEngineVersion: + description: The minimum engine version supported for the ACL + type: string + pendingChanges: + description: A list of updates being applied to the ACL. + properties: + userNamesToAdd: + items: + type: string + type: array + userNamesToRemove: + items: + type: string + type: array + type: object + status: + description: Indicates ACL 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-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_clusters.yaml b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_clusters.yaml new file mode 100644 index 00000000000..d2f571044c1 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_clusters.yaml @@ -0,0 +1,495 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + creationTimestamp: null + name: clusters.memorydb.services.k8s.aws +spec: + group: memorydb.services.k8s.aws + names: + kind: Cluster + listKind: ClusterList + plural: clusters + singular: cluster + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: Cluster is the Schema for the Clusters 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: |- + ClusterSpec defines the desired state of Cluster. + + + Contains all of the attributes of a specific cluster. + properties: + aclName: + description: The name of the Access Control List to associate with + the cluster. + type: string + aclRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + properties: + name: + type: string + type: object + type: object + autoMinorVersionUpgrade: + description: |- + When set to true, the cluster will automatically receive minor engine version + upgrades after launch. + type: boolean + description: + description: An optional description of the cluster. + type: string + engineVersion: + description: The version number of the Redis engine to be used for + the cluster. + type: string + kmsKeyID: + description: The ID of the KMS key used to encrypt the cluster. + type: string + maintenanceWindow: + 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. + type: string + name: + description: |- + The name of the cluster. This value must be unique as it also serves as the + cluster identifier. + type: string + nodeType: + description: The compute and memory capacity of the nodes in the cluster. + type: string + numReplicasPerShard: + description: |- + The number of replicas to apply to each shard. The default value is 1. The + maximum is 5. + format: int64 + type: integer + numShards: + description: The number of shards the cluster will contain. The default + value is 1. + format: int64 + type: integer + parameterGroupName: + description: The name of the parameter group associated with the cluster. + type: string + parameterGroupRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + properties: + name: + type: string + type: object + type: object + port: + description: The port number on which each of the nodes accepts connections. + format: int64 + type: integer + securityGroupIDs: + description: A list of security group names to associate with this + cluster. + items: + type: string + type: array + securityGroupRefs: + items: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + properties: + name: + type: string + type: object + type: object + type: array + snapshotARNs: + description: |- + A list of Amazon Resource Names (ARN) that uniquely identify the RDB snapshot + files stored in Amazon S3. The snapshot files are used to populate the new + cluster. The Amazon S3 object name in the ARN cannot contain any commas. + items: + type: string + type: array + snapshotName: + description: |- + The name of a snapshot from which to restore data into the new cluster. The + snapshot status changes to restoring while the new cluster is being created. + type: string + snapshotRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + properties: + name: + type: string + type: object + type: object + snapshotRetentionLimit: + description: |- + The number of days for which MemoryDB 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. + format: int64 + type: integer + snapshotWindow: + description: |- + The daily time range (in UTC) during which MemoryDB begins taking a daily + snapshot of your shard. + + + Example: 05:00-09:00 + + + If you do not specify this parameter, MemoryDB automatically chooses an appropriate + time range. + type: string + snsTopicARN: + description: |- + The Amazon Resource Name (ARN) of the Amazon Simple Notification Service + (SNS) topic to which notifications are sent. + type: string + snsTopicRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + properties: + name: + type: string + type: object + type: object + subnetGroupName: + description: The name of the subnet group to be used for the cluster. + type: string + subnetGroupRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + properties: + name: + type: string + type: object + type: object + 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. + items: + description: |- + A tag that can be added to an MemoryDB resource. Tags are composed of a Key/Value + pair. You can use tags to categorize and track all your MemoryDB resources. + When you add or remove tags on clusters, those actions will be replicated + to all nodes in the cluster. A tag with a null Value is permitted. For more + information, see Tagging your MemoryDB resources (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging-resources.html) + properties: + key: + type: string + value: + type: string + type: object + type: array + tlsEnabled: + description: A flag to enable in-transit encryption on the cluster. + type: boolean + required: + - name + - nodeType + type: object + status: + description: ClusterStatus defines the observed state of Cluster + 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 + allowedScaleDownNodeTypes: + description: A list node types which you can use to scale down your + cluster. + items: + type: string + type: array + allowedScaleUpNodeTypes: + description: A list node types which you can use to scale up your + cluster. + items: + type: string + type: array + availabilityMode: + description: Indicates if the cluster has a Multi-AZ configuration + (multiaz) or not (singleaz). + type: string + clusterEndpoint: + description: The cluster's configuration endpoint + properties: + address: + type: string + port: + format: int64 + type: integer + 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 + enginePatchVersion: + description: The Redis engine patch version used by the cluster + 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 or adding or removing a node. + properties: + date: + format: date-time + type: string + message: + type: string + sourceName: + type: string + sourceType: + type: string + type: object + type: array + numberOfShards: + description: The number of shards in the cluster + format: int64 + type: integer + parameterGroupStatus: + description: |- + The status of the parameter group used by the cluster, for example 'active' + or 'applying'. + type: string + pendingUpdates: + description: A group of settings that are currently being applied. + properties: + acls: + description: The status of the ACL update + properties: + aclToApply: + type: string + type: object + resharding: + description: The status of the online resharding + properties: + slotMigration: + description: Represents the progress of an online resharding + operation. + properties: + progressPercentage: + type: number + type: object + type: object + serviceUpdates: + items: + description: |- + Update action that has yet to be processed for the corresponding apply/stop + request + properties: + serviceUpdateName: + type: string + status: + type: string + type: object + type: array + type: object + securityGroups: + description: A list of security groups used by the cluster + items: + description: Represents a single security group and its status. + properties: + securityGroupID: + type: string + status: + type: string + type: object + type: array + shards: + description: A list of shards that are members of the cluster. + items: + description: |- + Represents a collection of nodes in a cluster. One node in the node group + is the read/write primary node. All the other nodes are read-only Replica + nodes. + properties: + name: + type: string + nodes: + items: + description: |- + Represents an individual node within a cluster. Each node runs its own instance + of the cluster's protocol-compliant caching software. + properties: + availabilityZone: + type: string + createTime: + format: date-time + type: string + endpoint: + description: |- + Represents the information required for client programs to connect to the + cluster and its nodes. + properties: + address: + type: string + port: + format: int64 + type: integer + type: object + name: + type: string + status: + type: string + type: object + type: array + numberOfNodes: + format: int64 + type: integer + slots: + type: string + status: + type: string + type: object + type: array + snsTopicStatus: + description: The SNS topic must be in Active status to receive notifications + type: string + status: + description: The status of the cluster. For example, Available, Updating, + Creating. + 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-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_parametergroups.yaml b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_parametergroups.yaml new file mode 100644 index 00000000000..50ea0c19fc2 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_parametergroups.yaml @@ -0,0 +1,197 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + creationTimestamp: null + name: parametergroups.memorydb.services.k8s.aws +spec: + group: memorydb.services.k8s.aws + names: + kind: ParameterGroup + listKind: ParameterGroupList + plural: parametergroups + singular: parametergroup + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: ParameterGroup is the Schema for the ParameterGroups 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: |- + ParameterGroupSpec defines the desired state of ParameterGroup. + + + Represents the output of a CreateParameterGroup operation. A parameter group + represents a combination of specific values for the parameters that are passed + to the engine software during startup. + properties: + description: + description: An optional description of the parameter group. + type: string + family: + description: |- + The name of the parameter group family that the parameter group can be used + with. + type: string + name: + description: The name of the 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 updated 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 MemoryDB resource. Tags are composed of a Key/Value + pair. You can use tags to categorize and track all your MemoryDB resources. + When you add or remove tags on clusters, those actions will be replicated + to all nodes in the cluster. A tag with a null Value is permitted. For more + information, see Tagging your MemoryDB resources (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging-resources.html) + properties: + key: + type: string + value: + type: string + type: object + type: array + required: + - family + - name + type: object + status: + description: ParameterGroupStatus defines the observed state of ParameterGroup + 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 + parameters: + description: |- + A list of parameters specific to a particular parameter group. Each element + in the list contains detailed information about one parameter. + items: + description: Describes an individual setting that controls some + aspect of MemoryDB behavior. + properties: + allowedValues: + type: string + dataType: + type: string + description: + type: string + minimumEngineVersion: + type: string + name: + type: string + value: + 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-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_snapshots.yaml b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_snapshots.yaml new file mode 100644 index 00000000000..24073aeed76 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_snapshots.yaml @@ -0,0 +1,258 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + creationTimestamp: null + name: snapshots.memorydb.services.k8s.aws +spec: + group: memorydb.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. + + + Represents a copy of an entire cluster as of the time when the snapshot was + taken. + properties: + clusterName: + description: The snapshot is created from this cluster. + type: string + clusterRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + properties: + name: + type: string + type: object + type: object + kmsKeyID: + description: The ID of the KMS key used to encrypt the snapshot. + type: string + kmsKeyRef: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + properties: + name: + type: string + type: object + type: object + name: + 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 MemoryDB resource. Tags are composed of a Key/Value + pair. You can use tags to categorize and track all your MemoryDB resources. + When you add or remove tags on clusters, those actions will be replicated + to all nodes in the cluster. A tag with a null Value is permitted. For more + information, see Tagging your MemoryDB resources (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging-resources.html) + properties: + key: + type: string + value: + type: string + type: object + type: array + required: + - name + 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 + clusterConfiguration: + description: The configuration of the cluster from which the snapshot + was taken + properties: + description: + type: string + engineVersion: + type: string + maintenanceWindow: + type: string + name: + type: string + nodeType: + type: string + numShards: + format: int64 + type: integer + parameterGroupName: + type: string + port: + format: int64 + type: integer + shards: + items: + description: Provides details of a shard in a snapshot + properties: + configuration: + description: |- + Shard configuration options. Each shard configuration has the following: + Slots and ReplicaCount. + properties: + replicaCount: + format: int64 + type: integer + slots: + type: string + type: object + name: + type: string + size: + type: string + snapshotCreationTime: + format: date-time + type: string + type: object + type: array + snapshotRetentionLimit: + format: int64 + type: integer + snapshotWindow: + type: string + subnetGroupName: + type: string + topicARN: + type: string + vpcID: + 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 + source: + description: |- + Indicates whether the snapshot is from an automatic backup (automated) or + was created manually (manual). + type: string + status: + description: |- + The status of the snapshot. Valid values: creating | available | restoring + | copying | 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-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_subnetgroups.yaml b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_subnetgroups.yaml new file mode 100644 index 00000000000..d0984d49753 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_subnetgroups.yaml @@ -0,0 +1,208 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + creationTimestamp: null + name: subnetgroups.memorydb.services.k8s.aws +spec: + group: memorydb.services.k8s.aws + names: + kind: SubnetGroup + listKind: SubnetGroupList + plural: subnetgroups + singular: subnetgroup + scope: Namespaced + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: SubnetGroup is the Schema for the SubnetGroups 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: |- + SubnetGroupSpec defines the desired state of SubnetGroup. + + + Represents the output of one of the following operations: + + + * CreateSubnetGroup + + + * UpdateSubnetGroup + + + A subnet group is a collection of subnets (typically private) that you can + designate for your clusters running in an Amazon Virtual Private Cloud (VPC) + environment. + properties: + description: + description: A description for the subnet group. + type: string + name: + description: The name of the subnet group. + type: string + subnetIDs: + description: A list of VPC subnet IDs for the subnet group. + items: + type: string + type: array + subnetRefs: + items: + description: "AWSResourceReferenceWrapper provides a wrapper around + *AWSResourceReference\ntype to provide more user friendly syntax + for references using 'from' field\nEx:\nAPIIDRef:\n\n\n\tfrom:\n\t + \ name: my-api" + properties: + from: + description: |- + AWSResourceReference provides all the values necessary to reference another + k8s resource for finding the identifier(Id/ARN/Name) + 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 MemoryDB resource. Tags are composed of a Key/Value + pair. You can use tags to categorize and track all your MemoryDB resources. + When you add or remove tags on clusters, those actions will be replicated + to all nodes in the cluster. A tag with a null Value is permitted. For more + information, see Tagging your MemoryDB resources (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging-resources.html) + properties: + key: + type: string + value: + type: string + type: object + type: array + required: + - name + type: object + status: + description: SubnetGroupStatus defines the observed state of SubnetGroup + 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 + subnets: + description: A list of subnets associated with the 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 + MemoryDB. + properties: + availabilityZone: + description: Indicates if the cluster has a Multi-AZ configuration + (multiaz) or not (singleaz). + properties: + name: + type: string + type: object + identifier: + type: string + type: object + type: array + vpcID: + description: The Amazon Virtual Private Cloud identifier (VPC ID) + of the 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-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_users.yaml b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_users.yaml new file mode 100644 index 00000000000..84d80747719 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/manifests/memorydb.services.k8s.aws_users.yaml @@ -0,0 +1,231 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + creationTimestamp: null + name: users.memorydb.services.k8s.aws +spec: + group: memorydb.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: + description: |- + UserSpec defines the desired state of User. + + + You create users and assign them specific permissions by using an access + string. You assign the users to Access Control Lists aligned with a specific + role (administrators, human resources) that are then deployed to one or more + MemoryDB clusters. + properties: + accessString: + description: Access permissions string used for this user. + type: string + authenticationMode: + description: |- + Denotes the user's authentication properties, such as whether it requires + a password to authenticate. + properties: + passwords: + 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 + type_: + type: string + type: object + name: + description: |- + The name of the user. This value must be unique as it also serves as the + user identifier. + 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 MemoryDB resource. Tags are composed of a Key/Value + pair. You can use tags to categorize and track all your MemoryDB resources. + When you add or remove tags on clusters, those actions will be replicated + to all nodes in the cluster. A tag with a null Value is permitted. For more + information, see Tagging your MemoryDB resources (https://docs.aws.amazon.com/MemoryDB/latest/devguide/tagging-resources.html) + properties: + key: + type: string + value: + type: string + type: object + type: array + required: + - accessString + - authenticationMode + - name + 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 + aclNames: + description: The names of the Access Control Lists to which the user + belongs + items: + type: string + type: array + 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 + 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 or adding or removing a node. + properties: + date: + format: date-time + type: string + message: + type: string + sourceName: + type: string + sourceType: + type: string + type: object + type: array + minimumEngineVersion: + description: The minimum engine version supported for the user + type: string + status: + description: Indicates the user status. Can be "active", "modifying" + or "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-memorydb-controller/1.0.3/metadata/annotations.yaml b/operators/ack-memorydb-controller/1.0.3/metadata/annotations.yaml new file mode 100644 index 00000000000..af2d3e7880f --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/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-memorydb-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-memorydb-controller/1.0.3/tests/scorecard/config.yaml b/operators/ack-memorydb-controller/1.0.3/tests/scorecard/config.yaml new file mode 100644 index 00000000000..382ddefd156 --- /dev/null +++ b/operators/ack-memorydb-controller/1.0.3/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: {}