Skip to content

Commit 0009880

Browse files
authored
operator ack-dynamodb-controller (1.5.1)
1 parent c316018 commit 0009880

10 files changed

+1568
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
FROM scratch
2+
3+
# Core bundle labels.
4+
LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1
5+
LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/
6+
LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
7+
LABEL operators.operatorframework.io.bundle.package.v1=ack-dynamodb-controller
8+
LABEL operators.operatorframework.io.bundle.channels.v1=alpha
9+
LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha
10+
LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.28.0
11+
LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1
12+
LABEL operators.operatorframework.io.metrics.project_layout=unknown
13+
14+
# Labels for testing.
15+
LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1
16+
LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/
17+
18+
# Copy files to locations specified by labels.
19+
COPY bundle/manifests /manifests/
20+
COPY bundle/metadata /metadata/
21+
COPY bundle/tests/scorecard /tests/scorecard/
Lines changed: 303 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,303 @@
1+
apiVersion: operators.coreos.com/v1alpha1
2+
kind: ClusterServiceVersion
3+
metadata:
4+
annotations:
5+
alm-examples: |-
6+
[
7+
{
8+
"apiVersion": "dynamodb.services.k8s.aws/v1alpha1",
9+
"kind": "Backup",
10+
"metadata": {
11+
"name": "example"
12+
},
13+
"spec": {}
14+
},
15+
{
16+
"apiVersion": "dynamodb.services.k8s.aws/v1alpha1",
17+
"kind": "GlobalTable",
18+
"metadata": {
19+
"name": "example"
20+
},
21+
"spec": {}
22+
},
23+
{
24+
"apiVersion": "dynamodb.services.k8s.aws/v1alpha1",
25+
"kind": "Table",
26+
"metadata": {
27+
"name": "example"
28+
},
29+
"spec": {}
30+
}
31+
]
32+
capabilities: Basic Install
33+
categories: Cloud Provider
34+
certified: "false"
35+
containerImage: public.ecr.aws/aws-controllers-k8s/dynamodb-controller:1.5.1
36+
createdAt: "2025-09-11T18:48:01Z"
37+
description: AWS DynamoDB controller is a service controller for managing DynamoDB
38+
resources in Kubernetes
39+
operatorframework.io/suggested-namespace: ack-system
40+
operators.operatorframework.io/builder: operator-sdk-v1.28.0
41+
operators.operatorframework.io/project_layout: unknown
42+
repository: https://github.com/aws-controllers-k8s
43+
support: Community
44+
labels:
45+
operatorframework.io/arch.amd64: supported
46+
operatorframework.io/arch.arm64: supported
47+
operatorframework.io/os.linux: supported
48+
name: ack-dynamodb-controller.v1.5.1
49+
namespace: placeholder
50+
spec:
51+
apiservicedefinitions: {}
52+
customresourcedefinitions:
53+
owned:
54+
- description: Backup represents the state of an AWS dynamodb Backup resource.
55+
displayName: Backup
56+
kind: Backup
57+
name: backups.dynamodb.services.k8s.aws
58+
version: v1alpha1
59+
- description: GlobalTable represents the state of an AWS dynamodb GlobalTable
60+
resource.
61+
displayName: GlobalTable
62+
kind: GlobalTable
63+
name: globaltables.dynamodb.services.k8s.aws
64+
version: v1alpha1
65+
- description: Table represents the state of an AWS dynamodb Table resource.
66+
displayName: Table
67+
kind: Table
68+
name: tables.dynamodb.services.k8s.aws
69+
version: v1alpha1
70+
description: |-
71+
Manage Amazon DynamoDB resources in AWS from within your Kubernetes cluster.
72+
73+
**About Amazon DynamoDB**
74+
75+
Amazon DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. DynamoDB lets you offload the administrative burdens of operating and scaling a distributed database so that you don't have to worry about hardware provisioning, setup and configuration, replication, software patching, or cluster scaling. DynamoDB also offers encryption at rest, which eliminates the operational burden and complexity involved in protecting sensitive data. For more information, see [DynamoDB Encryption at Rest](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EncryptionAtRest.html).
76+
77+
**About the AWS Controllers for Kubernetes**
78+
79+
This controller is a component of the [AWS Controller for Kubernetes](https://github.com/aws/aws-controllers-k8s) project.
80+
81+
**Pre-Installation Steps**
82+
83+
Please follow the following link: [Red Hat OpenShift](https://aws-controllers-k8s.github.io/community/docs/user-docs/openshift/)
84+
displayName: AWS Controllers for Kubernetes - Amazon DynamoDB
85+
icon:
86+
- base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzA0IDE4MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzA0IDE4MjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMyNTJGM0U7fQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRjk5MDA7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04Ni40LDY2LjRjMCwzLjcsMC40LDYuNywxLjEsOC45YzAuOCwyLjIsMS44LDQuNiwzLjIsNy4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi4zYzAsMS0wLjYsMi0xLjksM2wtNi4zLDQuMiAgIGMtMC45LDAuNi0xLjgsMC45LTIuNiwwLjljLTEsMC0yLTAuNS0zLTEuNEM3Ni4yLDkwLDc1LDg4LjQsNzQsODYuOGMtMS0xLjctMi0zLjYtMy4xLTUuOWMtNy44LDkuMi0xNy42LDEzLjgtMjkuNCwxMy44ICAgYy04LjQsMC0xNS4xLTIuNC0yMC03LjJjLTQuOS00LjgtNy40LTExLjItNy40LTE5LjJjMC04LjUsMy0xNS40LDkuMS0yMC42YzYuMS01LjIsMTQuMi03LjgsMjQuNS03LjhjMy40LDAsNi45LDAuMywxMC42LDAuOCAgIGMzLjcsMC41LDcuNSwxLjMsMTEuNSwyLjJ2LTcuM2MwLTcuNi0xLjYtMTIuOS00LjctMTZjLTMuMi0zLjEtOC42LTQuNi0xNi4zLTQuNmMtMy41LDAtNy4xLDAuNC0xMC44LDEuM2MtMy43LDAuOS03LjMsMi0xMC44LDMuNCAgIGMtMS42LDAuNy0yLjgsMS4xLTMuNSwxLjNjLTAuNywwLjItMS4yLDAuMy0xLjYsMC4zYy0xLjQsMC0yLjEtMS0yLjEtMy4xdi00LjljMC0xLjYsMC4yLTIuOCwwLjctMy41YzAuNS0wLjcsMS40LTEuNCwyLjgtMi4xICAgYzMuNS0xLjgsNy43LTMuMywxMi42LTQuNWM0LjktMS4zLDEwLjEtMS45LDE1LjYtMS45YzExLjksMCwyMC42LDIuNywyNi4yLDguMWM1LjUsNS40LDguMywxMy42LDguMywyNC42VjY2LjR6IE00NS44LDgxLjYgICBjMy4zLDAsNi43LTAuNiwxMC4zLTEuOGMzLjYtMS4yLDYuOC0zLjQsOS41LTYuNGMxLjYtMS45LDIuOC00LDMuNC02LjRjMC42LTIuNCwxLTUuMywxLTguN3YtNC4yYy0yLjktMC43LTYtMS4zLTkuMi0xLjcgICBjLTMuMi0wLjQtNi4zLTAuNi05LjQtMC42Yy02LjcsMC0xMS42LDEuMy0xNC45LDRjLTMuMywyLjctNC45LDYuNS00LjksMTEuNWMwLDQuNywxLjIsOC4yLDMuNywxMC42ICAgQzM3LjcsODAuNCw0MS4yLDgxLjYsNDUuOCw4MS42eiBNMTI2LjEsOTIuNGMtMS44LDAtMy0wLjMtMy44LTFjLTAuOC0wLjYtMS41LTItMi4xLTMuOUw5Ni43LDEwLjJjLTAuNi0yLTAuOS0zLjMtMC45LTQgICBjMC0xLjYsMC44LTIuNSwyLjQtMi41aDkuOGMxLjksMCwzLjIsMC4zLDMuOSwxYzAuOCwwLjYsMS40LDIsMiwzLjlsMTYuOCw2Ni4ybDE1LjYtNjYuMmMwLjUtMiwxLjEtMy4zLDEuOS0zLjljMC44LTAuNiwyLjItMSw0LTEgICBoOGMxLjksMCwzLjIsMC4zLDQsMWMwLjgsMC42LDEuNSwyLDEuOSwzLjlsMTUuOCw2N2wxNy4zLTY3YzAuNi0yLDEuMy0zLjMsMi0zLjljMC44LTAuNiwyLjEtMSwzLjktMWg5LjNjMS42LDAsMi41LDAuOCwyLjUsMi41ICAgYzAsMC41LTAuMSwxLTAuMiwxLjZjLTAuMSwwLjYtMC4zLDEuNC0wLjcsMi41bC0yNC4xLDc3LjNjLTAuNiwyLTEuMywzLjMtMi4xLDMuOWMtMC44LDAuNi0yLjEsMS0zLjgsMWgtOC42Yy0xLjksMC0zLjItMC4zLTQtMSAgIGMtMC44LTAuNy0xLjUtMi0xLjktNEwxNTYsMjNsLTE1LjQsNjQuNGMtMC41LDItMS4xLDMuMy0xLjksNGMtMC44LDAuNy0yLjIsMS00LDFIMTI2LjF6IE0yNTQuNiw5NS4xYy01LjIsMC0xMC40LTAuNi0xNS40LTEuOCAgIGMtNS0xLjItOC45LTIuNS0xMS41LTRjLTEuNi0wLjktMi43LTEuOS0zLjEtMi44Yy0wLjQtMC45LTAuNi0xLjktMC42LTIuOHYtNS4xYzAtMi4xLDAuOC0zLjEsMi4zLTMuMWMwLjYsMCwxLjIsMC4xLDEuOCwwLjMgICBjMC42LDAuMiwxLjUsMC42LDIuNSwxYzMuNCwxLjUsNy4xLDIuNywxMSwzLjVjNCwwLjgsNy45LDEuMiwxMS45LDEuMmM2LjMsMCwxMS4yLTEuMSwxNC42LTMuM2MzLjQtMi4yLDUuMi01LjQsNS4yLTkuNSAgIGMwLTIuOC0wLjktNS4xLTIuNy03Yy0xLjgtMS45LTUuMi0zLjYtMTAuMS01LjJMMjQ2LDUyYy03LjMtMi4zLTEyLjctNS43LTE2LTEwLjJjLTMuMy00LjQtNS05LjMtNS0xNC41YzAtNC4yLDAuOS03LjksMi43LTExLjEgICBjMS44LTMuMiw0LjItNiw3LjItOC4yYzMtMi4zLDYuNC00LDEwLjQtNS4yYzQtMS4yLDguMi0xLjcsMTIuNi0xLjdjMi4yLDAsNC41LDAuMSw2LjcsMC40YzIuMywwLjMsNC40LDAuNyw2LjUsMS4xICAgYzIsMC41LDMuOSwxLDUuNywxLjZjMS44LDAuNiwzLjIsMS4yLDQuMiwxLjhjMS40LDAuOCwyLjQsMS42LDMsMi41YzAuNiwwLjgsMC45LDEuOSwwLjksMy4zdjQuN2MwLDIuMS0wLjgsMy4yLTIuMywzLjIgICBjLTAuOCwwLTIuMS0wLjQtMy44LTEuMmMtNS43LTIuNi0xMi4xLTMuOS0xOS4yLTMuOWMtNS43LDAtMTAuMiwwLjktMTMuMywyLjhjLTMuMSwxLjktNC43LDQuOC00LjcsOC45YzAsMi44LDEsNS4yLDMsNy4xICAgYzIsMS45LDUuNywzLjgsMTEsNS41bDE0LjIsNC41YzcuMiwyLjMsMTIuNCw1LjUsMTUuNSw5LjZjMy4xLDQuMSw0LjYsOC44LDQuNiwxNGMwLDQuMy0wLjksOC4yLTIuNiwxMS42ICAgYy0xLjgsMy40LTQuMiw2LjQtNy4zLDguOGMtMy4xLDIuNS02LjgsNC4zLTExLjEsNS42QzI2NC40LDk0LjQsMjU5LjcsOTUuMSwyNTQuNiw5NS4xeiIvPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI3My41LDE0My43Yy0zMi45LDI0LjMtODAuNywzNy4yLTEyMS44LDM3LjJjLTU3LjYsMC0xMDkuNS0yMS4zLTE0OC43LTU2LjdjLTMuMS0yLjgtMC4zLTYuNiwzLjQtNC40ICAgIGM0Mi40LDI0LjYsOTQuNywzOS41LDE0OC44LDM5LjVjMzYuNSwwLDc2LjYtNy42LDExMy41LTIzLjJDMjc0LjIsMTMzLjYsMjc4LjksMTM5LjcsMjczLjUsMTQzLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI4Ny4yLDEyOC4xYy00LjItNS40LTI3LjgtMi42LTM4LjUtMS4zYy0zLjIsMC40LTMuNy0yLjQtMC44LTQuNWMxOC44LTEzLjIsNDkuNy05LjQsNTMuMy01ICAgIGMzLjYsNC41LTEsMzUuNC0xOC42LDUwLjJjLTIuNywyLjMtNS4zLDEuMS00LjEtMS45QzI4Mi41LDE1NS43LDI5MS40LDEzMy40LDI4Ny4yLDEyOC4xeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPg==
87+
mediatype: image/svg+xml
88+
install:
89+
spec:
90+
clusterPermissions:
91+
- rules:
92+
- apiGroups:
93+
- ""
94+
resources:
95+
- configmaps
96+
- secrets
97+
verbs:
98+
- get
99+
- list
100+
- patch
101+
- watch
102+
- apiGroups:
103+
- ""
104+
resources:
105+
- namespaces
106+
verbs:
107+
- get
108+
- list
109+
- watch
110+
- apiGroups:
111+
- dynamodb.services.k8s.aws
112+
resources:
113+
- backups
114+
- globaltables
115+
- tables
116+
verbs:
117+
- create
118+
- delete
119+
- get
120+
- list
121+
- patch
122+
- update
123+
- watch
124+
- apiGroups:
125+
- dynamodb.services.k8s.aws
126+
resources:
127+
- backups/status
128+
- globaltables/status
129+
- tables/status
130+
verbs:
131+
- get
132+
- patch
133+
- update
134+
- apiGroups:
135+
- kms.services.k8s.aws
136+
resources:
137+
- keys
138+
- keys/status
139+
verbs:
140+
- get
141+
- list
142+
- apiGroups:
143+
- services.k8s.aws
144+
resources:
145+
- adoptedresources
146+
- fieldexports
147+
verbs:
148+
- create
149+
- delete
150+
- get
151+
- list
152+
- patch
153+
- update
154+
- watch
155+
- apiGroups:
156+
- services.k8s.aws
157+
resources:
158+
- adoptedresources/status
159+
- fieldexports/status
160+
verbs:
161+
- get
162+
- patch
163+
- update
164+
serviceAccountName: ack-dynamodb-controller
165+
deployments:
166+
- label:
167+
app.kubernetes.io/name: ack-dynamodb-controller
168+
app.kubernetes.io/part-of: ack-system
169+
name: ack-dynamodb-controller
170+
spec:
171+
replicas: 1
172+
selector:
173+
matchLabels:
174+
app.kubernetes.io/name: ack-dynamodb-controller
175+
strategy: {}
176+
template:
177+
metadata:
178+
labels:
179+
app.kubernetes.io/name: ack-dynamodb-controller
180+
spec:
181+
containers:
182+
- args:
183+
- --aws-region
184+
- $(AWS_REGION)
185+
- --aws-endpoint-url
186+
- $(AWS_ENDPOINT_URL)
187+
- --enable-development-logging=$(ACK_ENABLE_DEVELOPMENT_LOGGING)
188+
- --log-level
189+
- $(ACK_LOG_LEVEL)
190+
- --resource-tags
191+
- $(ACK_RESOURCE_TAGS)
192+
- --watch-namespace
193+
- $(ACK_WATCH_NAMESPACE)
194+
- --enable-leader-election=$(ENABLE_LEADER_ELECTION)
195+
- --leader-election-namespace
196+
- $(LEADER_ELECTION_NAMESPACE)
197+
- --reconcile-default-max-concurrent-syncs
198+
- $(RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS)
199+
- --feature-gates
200+
- $(FEATURE_GATES)
201+
command:
202+
- ./bin/controller
203+
env:
204+
- name: ACK_SYSTEM_NAMESPACE
205+
valueFrom:
206+
fieldRef:
207+
fieldPath: metadata.namespace
208+
envFrom:
209+
- configMapRef:
210+
name: ack-dynamodb-user-config
211+
optional: false
212+
- secretRef:
213+
name: ack-dynamodb-user-secrets
214+
optional: true
215+
image: public.ecr.aws/aws-controllers-k8s/dynamodb-controller:1.5.1
216+
livenessProbe:
217+
httpGet:
218+
path: /healthz
219+
port: 8081
220+
initialDelaySeconds: 15
221+
periodSeconds: 20
222+
name: controller
223+
ports:
224+
- containerPort: 8080
225+
name: http
226+
readinessProbe:
227+
httpGet:
228+
path: /readyz
229+
port: 8081
230+
initialDelaySeconds: 5
231+
periodSeconds: 10
232+
resources:
233+
limits:
234+
cpu: 100m
235+
memory: 300Mi
236+
requests:
237+
cpu: 100m
238+
memory: 200Mi
239+
securityContext:
240+
allowPrivilegeEscalation: false
241+
capabilities:
242+
drop:
243+
- ALL
244+
privileged: false
245+
runAsNonRoot: true
246+
dnsPolicy: ClusterFirst
247+
securityContext:
248+
seccompProfile:
249+
type: RuntimeDefault
250+
serviceAccountName: ack-dynamodb-controller
251+
terminationGracePeriodSeconds: 10
252+
permissions:
253+
- rules:
254+
- apiGroups:
255+
- coordination.k8s.io
256+
resources:
257+
- leases
258+
verbs:
259+
- get
260+
- list
261+
- watch
262+
- create
263+
- update
264+
- patch
265+
- delete
266+
- apiGroups:
267+
- ""
268+
resources:
269+
- events
270+
verbs:
271+
- create
272+
- patch
273+
serviceAccountName: ack-dynamodb-controller
274+
strategy: deployment
275+
installModes:
276+
- supported: true
277+
type: OwnNamespace
278+
- supported: true
279+
type: SingleNamespace
280+
- supported: true
281+
type: MultiNamespace
282+
- supported: true
283+
type: AllNamespaces
284+
keywords:
285+
- dynamodb
286+
- aws
287+
- amazon
288+
- ack
289+
links:
290+
- name: AWS Controllers for Kubernetes
291+
url: https://github.com/aws-controllers-k8s/community
292+
- name: Documentation
293+
url: https://aws-controllers-k8s.github.io/community/
294+
- name: Amazon DynamoDB Developer Resources
295+
url: https://aws.amazon.com/dynamodb/resources/
296+
maintainers:
297+
298+
name: dynamodb maintainer team
299+
maturity: alpha
300+
provider:
301+
name: Amazon, Inc.
302+
url: https://aws.amazon.com
303+
version: 1.5.1
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
creationTimestamp: null
5+
name: ack-dynamodb-metrics-service
6+
spec:
7+
ports:
8+
- name: metricsport
9+
port: 8080
10+
protocol: TCP
11+
targetPort: http
12+
selector:
13+
app.kubernetes.io/name: ack-dynamodb-controller
14+
type: ClusterIP
15+
status:
16+
loadBalancer: {}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
creationTimestamp: null
5+
name: ack-dynamodb-reader
6+
rules:
7+
- apiGroups:
8+
- dynamodb.services.k8s.aws
9+
resources:
10+
- backups
11+
- globaltables
12+
- tables
13+
verbs:
14+
- get
15+
- list
16+
- watch
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
creationTimestamp: null
5+
name: ack-dynamodb-writer
6+
rules:
7+
- apiGroups:
8+
- dynamodb.services.k8s.aws
9+
resources:
10+
- backups
11+
- globaltables
12+
- tables
13+
verbs:
14+
- create
15+
- delete
16+
- get
17+
- list
18+
- patch
19+
- update
20+
- watch
21+
- apiGroups:
22+
- dynamodb.services.k8s.aws
23+
resources:
24+
- backups
25+
- globaltables
26+
- tables
27+
verbs:
28+
- get
29+
- patch
30+
- update

0 commit comments

Comments
 (0)