Skip to content

Commit 635fd2d

Browse files
authored
operator ack-acm-controller (1.3.0)
1 parent 6beb4dd commit 635fd2d

8 files changed

+986
-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-acm-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: 269 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,269 @@
1+
apiVersion: operators.coreos.com/v1alpha1
2+
kind: ClusterServiceVersion
3+
metadata:
4+
annotations:
5+
alm-examples: |-
6+
[
7+
{
8+
"apiVersion": "acm.services.k8s.aws/v1alpha1",
9+
"kind": "Certificate",
10+
"metadata": {
11+
"name": "example"
12+
},
13+
"spec": {}
14+
}
15+
]
16+
capabilities: Basic Install
17+
categories: Cloud Provider
18+
certified: "false"
19+
containerImage: public.ecr.aws/aws-controllers-k8s/acm-controller:1.3.0
20+
createdAt: "2025-12-09T23:26:23Z"
21+
description: AWS ACM controller is a service controller for managing ACM resources
22+
in Kubernetes
23+
operatorframework.io/suggested-namespace: ack-system
24+
operators.operatorframework.io/builder: operator-sdk-v1.28.0
25+
operators.operatorframework.io/project_layout: unknown
26+
repository: https://github.com/aws-controllers-k8s
27+
support: Community
28+
labels:
29+
operatorframework.io/arch.amd64: supported
30+
operatorframework.io/arch.arm64: supported
31+
operatorframework.io/os.linux: supported
32+
name: ack-acm-controller.v1.3.0
33+
namespace: placeholder
34+
spec:
35+
apiservicedefinitions: {}
36+
customresourcedefinitions:
37+
owned:
38+
- description: Certificate represents the state of an AWS acm Certificate resource.
39+
displayName: Certificate
40+
kind: Certificate
41+
name: certificates.acm.services.k8s.aws
42+
version: v1alpha1
43+
description: |-
44+
Manage AWS Certificate Manager (ACM) resources in AWS from within your Kubernetes cluster.
45+
46+
**About Amazon ACM**
47+
48+
AWS Certificate Manager (ACM) handles the complexity of creating, storing, and renewing public and private SSL/TLS X.509 certificates and keys that protect your AWS websites and applications. You can provide certificates for your [integrated AWS services](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html) either by issuing them directly with ACM or by [importing](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) third-party certificates into the ACM management system. ACM certificates can secure singular domain names, multiple specific domain names, wildcard domains, or combinations of these. ACM wildcard certificates can protect an unlimited number of subdomains. You can also [export](https://docs.aws.amazon.com/acm/latest/userguide/export-private.html) ACM certificates signed by AWS Private CA for use anywhere in your internal PKI.
49+
50+
**About the AWS Controllers for Kubernetes**
51+
52+
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**.
53+
displayName: AWS Controllers for Kubernetes - Amazon ACM
54+
icon:
55+
- base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzA0IDE4MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzA0IDE4MjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMyNTJGM0U7fQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRjk5MDA7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04Ni40LDY2LjRjMCwzLjcsMC40LDYuNywxLjEsOC45YzAuOCwyLjIsMS44LDQuNiwzLjIsNy4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi4zYzAsMS0wLjYsMi0xLjksM2wtNi4zLDQuMiAgIGMtMC45LDAuNi0xLjgsMC45LTIuNiwwLjljLTEsMC0yLTAuNS0zLTEuNEM3Ni4yLDkwLDc1LDg4LjQsNzQsODYuOGMtMS0xLjctMi0zLjYtMy4xLTUuOWMtNy44LDkuMi0xNy42LDEzLjgtMjkuNCwxMy44ICAgYy04LjQsMC0xNS4xLTIuNC0yMC03LjJjLTQuOS00LjgtNy40LTExLjItNy40LTE5LjJjMC04LjUsMy0xNS40LDkuMS0yMC42YzYuMS01LjIsMTQuMi03LjgsMjQuNS03LjhjMy40LDAsNi45LDAuMywxMC42LDAuOCAgIGMzLjcsMC41LDcuNSwxLjMsMTEuNSwyLjJ2LTcuM2MwLTcuNi0xLjYtMTIuOS00LjctMTZjLTMuMi0zLjEtOC42LTQuNi0xNi4zLTQuNmMtMy41LDAtNy4xLDAuNC0xMC44LDEuM2MtMy43LDAuOS03LjMsMi0xMC44LDMuNCAgIGMtMS42LDAuNy0yLjgsMS4xLTMuNSwxLjNjLTAuNywwLjItMS4yLDAuMy0xLjYsMC4zYy0xLjQsMC0yLjEtMS0yLjEtMy4xdi00LjljMC0xLjYsMC4yLTIuOCwwLjctMy41YzAuNS0wLjcsMS40LTEuNCwyLjgtMi4xICAgYzMuNS0xLjgsNy43LTMuMywxMi42LTQuNWM0LjktMS4zLDEwLjEtMS45LDE1LjYtMS45YzExLjksMCwyMC42LDIuNywyNi4yLDguMWM1LjUsNS40LDguMywxMy42LDguMywyNC42VjY2LjR6IE00NS44LDgxLjYgICBjMy4zLDAsNi43LTAuNiwxMC4zLTEuOGMzLjYtMS4yLDYuOC0zLjQsOS41LTYuNGMxLjYtMS45LDIuOC00LDMuNC02LjRjMC42LTIuNCwxLTUuMywxLTguN3YtNC4yYy0yLjktMC43LTYtMS4zLTkuMi0xLjcgICBjLTMuMi0wLjQtNi4zLTAuNi05LjQtMC42Yy02LjcsMC0xMS42LDEuMy0xNC45LDRjLTMuMywyLjctNC45LDYuNS00LjksMTEuNWMwLDQuNywxLjIsOC4yLDMuNywxMC42ICAgQzM3LjcsODAuNCw0MS4yLDgxLjYsNDUuOCw4MS42eiBNMTI2LjEsOTIuNGMtMS44LDAtMy0wLjMtMy44LTFjLTAuOC0wLjYtMS41LTItMi4xLTMuOUw5Ni43LDEwLjJjLTAuNi0yLTAuOS0zLjMtMC45LTQgICBjMC0xLjYsMC44LTIuNSwyLjQtMi41aDkuOGMxLjksMCwzLjIsMC4zLDMuOSwxYzAuOCwwLjYsMS40LDIsMiwzLjlsMTYuOCw2Ni4ybDE1LjYtNjYuMmMwLjUtMiwxLjEtMy4zLDEuOS0zLjljMC44LTAuNiwyLjItMSw0LTEgICBoOGMxLjksMCwzLjIsMC4zLDQsMWMwLjgsMC42LDEuNSwyLDEuOSwzLjlsMTUuOCw2N2wxNy4zLTY3YzAuNi0yLDEuMy0zLjMsMi0zLjljMC44LTAuNiwyLjEtMSwzLjktMWg5LjNjMS42LDAsMi41LDAuOCwyLjUsMi41ICAgYzAsMC41LTAuMSwxLTAuMiwxLjZjLTAuMSwwLjYtMC4zLDEuNC0wLjcsMi41bC0yNC4xLDc3LjNjLTAuNiwyLTEuMywzLjMtMi4xLDMuOWMtMC44LDAuNi0yLjEsMS0zLjgsMWgtOC42Yy0xLjksMC0zLjItMC4zLTQtMSAgIGMtMC44LTAuNy0xLjUtMi0xLjktNEwxNTYsMjNsLTE1LjQsNjQuNGMtMC41LDItMS4xLDMuMy0xLjksNGMtMC44LDAuNy0yLjIsMS00LDFIMTI2LjF6IE0yNTQuNiw5NS4xYy01LjIsMC0xMC40LTAuNi0xNS40LTEuOCAgIGMtNS0xLjItOC45LTIuNS0xMS41LTRjLTEuNi0wLjktMi43LTEuOS0zLjEtMi44Yy0wLjQtMC45LTAuNi0xLjktMC42LTIuOHYtNS4xYzAtMi4xLDAuOC0zLjEsMi4zLTMuMWMwLjYsMCwxLjIsMC4xLDEuOCwwLjMgICBjMC42LDAuMiwxLjUsMC42LDIuNSwxYzMuNCwxLjUsNy4xLDIuNywxMSwzLjVjNCwwLjgsNy45LDEuMiwxMS45LDEuMmM2LjMsMCwxMS4yLTEuMSwxNC42LTMuM2MzLjQtMi4yLDUuMi01LjQsNS4yLTkuNSAgIGMwLTIuOC0wLjktNS4xLTIuNy03Yy0xLjgtMS45LTUuMi0zLjYtMTAuMS01LjJMMjQ2LDUyYy03LjMtMi4zLTEyLjctNS43LTE2LTEwLjJjLTMuMy00LjQtNS05LjMtNS0xNC41YzAtNC4yLDAuOS03LjksMi43LTExLjEgICBjMS44LTMuMiw0LjItNiw3LjItOC4yYzMtMi4zLDYuNC00LDEwLjQtNS4yYzQtMS4yLDguMi0xLjcsMTIuNi0xLjdjMi4yLDAsNC41LDAuMSw2LjcsMC40YzIuMywwLjMsNC40LDAuNyw2LjUsMS4xICAgYzIsMC41LDMuOSwxLDUuNywxLjZjMS44LDAuNiwzLjIsMS4yLDQuMiwxLjhjMS40LDAuOCwyLjQsMS42LDMsMi41YzAuNiwwLjgsMC45LDEuOSwwLjksMy4zdjQuN2MwLDIuMS0wLjgsMy4yLTIuMywzLjIgICBjLTAuOCwwLTIuMS0wLjQtMy44LTEuMmMtNS43LTIuNi0xMi4xLTMuOS0xOS4yLTMuOWMtNS43LDAtMTAuMiwwLjktMTMuMywyLjhjLTMuMSwxLjktNC43LDQuOC00LjcsOC45YzAsMi44LDEsNS4yLDMsNy4xICAgYzIsMS45LDUuNywzLjgsMTEsNS41bDE0LjIsNC41YzcuMiwyLjMsMTIuNCw1LjUsMTUuNSw5LjZjMy4xLDQuMSw0LjYsOC44LDQuNiwxNGMwLDQuMy0wLjksOC4yLTIuNiwxMS42ICAgYy0xLjgsMy40LTQuMiw2LjQtNy4zLDguOGMtMy4xLDIuNS02LjgsNC4zLTExLjEsNS42QzI2NC40LDk0LjQsMjU5LjcsOTUuMSwyNTQuNiw5NS4xeiIvPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI3My41LDE0My43Yy0zMi45LDI0LjMtODAuNywzNy4yLTEyMS44LDM3LjJjLTU3LjYsMC0xMDkuNS0yMS4zLTE0OC43LTU2LjdjLTMuMS0yLjgtMC4zLTYuNiwzLjQtNC40ICAgIGM0Mi40LDI0LjYsOTQuNywzOS41LDE0OC44LDM5LjVjMzYuNSwwLDc2LjYtNy42LDExMy41LTIzLjJDMjc0LjIsMTMzLjYsMjc4LjksMTM5LjcsMjczLjUsMTQzLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI4Ny4yLDEyOC4xYy00LjItNS40LTI3LjgtMi42LTM4LjUtMS4zYy0zLjIsMC40LTMuNy0yLjQtMC44LTQuNWMxOC44LTEzLjIsNDkuNy05LjQsNTMuMy01ICAgIGMzLjYsNC41LTEsMzUuNC0xOC42LDUwLjJjLTIuNywyLjMtNS4zLDEuMS00LjEtMS45QzI4Mi41LDE1NS43LDI5MS40LDEzMy40LDI4Ny4yLDEyOC4xeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPg==
56+
mediatype: image/svg+xml
57+
install:
58+
spec:
59+
clusterPermissions:
60+
- rules:
61+
- apiGroups:
62+
- ""
63+
resources:
64+
- configmaps
65+
- secrets
66+
verbs:
67+
- get
68+
- list
69+
- patch
70+
- watch
71+
- apiGroups:
72+
- ""
73+
resources:
74+
- namespaces
75+
verbs:
76+
- get
77+
- list
78+
- watch
79+
- apiGroups:
80+
- acm.services.k8s.aws
81+
resources:
82+
- certificates
83+
verbs:
84+
- create
85+
- delete
86+
- get
87+
- list
88+
- patch
89+
- update
90+
- watch
91+
- apiGroups:
92+
- acm.services.k8s.aws
93+
resources:
94+
- certificates/status
95+
verbs:
96+
- get
97+
- patch
98+
- update
99+
- apiGroups:
100+
- acmpca.services.k8s.aws
101+
resources:
102+
- certificateauthorities
103+
- certificateauthorities/status
104+
verbs:
105+
- get
106+
- list
107+
- apiGroups:
108+
- services.k8s.aws
109+
resources:
110+
- fieldexports
111+
- iamroleselectors
112+
verbs:
113+
- create
114+
- delete
115+
- get
116+
- list
117+
- patch
118+
- update
119+
- watch
120+
- apiGroups:
121+
- services.k8s.aws
122+
resources:
123+
- fieldexports/status
124+
- iamroleselectors/status
125+
verbs:
126+
- get
127+
- patch
128+
- update
129+
serviceAccountName: ack-acm-controller
130+
deployments:
131+
- label:
132+
app.kubernetes.io/name: ack-acm-controller
133+
app.kubernetes.io/part-of: ack-system
134+
name: ack-acm-controller
135+
spec:
136+
replicas: 1
137+
selector:
138+
matchLabels:
139+
app.kubernetes.io/name: ack-acm-controller
140+
strategy: {}
141+
template:
142+
metadata:
143+
labels:
144+
app.kubernetes.io/name: ack-acm-controller
145+
spec:
146+
containers:
147+
- args:
148+
- --aws-region
149+
- $(AWS_REGION)
150+
- --aws-endpoint-url
151+
- $(AWS_ENDPOINT_URL)
152+
- --enable-development-logging=$(ACK_ENABLE_DEVELOPMENT_LOGGING)
153+
- --log-level
154+
- $(ACK_LOG_LEVEL)
155+
- --resource-tags
156+
- $(ACK_RESOURCE_TAGS)
157+
- --watch-namespace
158+
- $(ACK_WATCH_NAMESPACE)
159+
- --enable-leader-election=$(ENABLE_LEADER_ELECTION)
160+
- --leader-election-namespace
161+
- $(LEADER_ELECTION_NAMESPACE)
162+
- --reconcile-default-max-concurrent-syncs
163+
- $(RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS)
164+
- --feature-gates
165+
- $(FEATURE_GATES)
166+
- --enable-carm=$(ENABLE_CARM)
167+
command:
168+
- ./bin/controller
169+
env:
170+
- name: ACK_SYSTEM_NAMESPACE
171+
valueFrom:
172+
fieldRef:
173+
fieldPath: metadata.namespace
174+
envFrom:
175+
- configMapRef:
176+
name: ack-acm-user-config
177+
optional: false
178+
- secretRef:
179+
name: ack-acm-user-secrets
180+
optional: true
181+
image: public.ecr.aws/aws-controllers-k8s/acm-controller:1.3.0
182+
livenessProbe:
183+
httpGet:
184+
path: /healthz
185+
port: 8081
186+
initialDelaySeconds: 15
187+
periodSeconds: 20
188+
name: controller
189+
ports:
190+
- containerPort: 8080
191+
name: http
192+
readinessProbe:
193+
httpGet:
194+
path: /readyz
195+
port: 8081
196+
initialDelaySeconds: 5
197+
periodSeconds: 10
198+
resources:
199+
limits:
200+
cpu: 100m
201+
memory: 300Mi
202+
requests:
203+
cpu: 100m
204+
memory: 200Mi
205+
securityContext:
206+
allowPrivilegeEscalation: false
207+
capabilities:
208+
drop:
209+
- ALL
210+
privileged: false
211+
runAsNonRoot: true
212+
dnsPolicy: ClusterFirst
213+
securityContext:
214+
seccompProfile:
215+
type: RuntimeDefault
216+
serviceAccountName: ack-acm-controller
217+
terminationGracePeriodSeconds: 10
218+
permissions:
219+
- rules:
220+
- apiGroups:
221+
- coordination.k8s.io
222+
resources:
223+
- leases
224+
verbs:
225+
- get
226+
- list
227+
- watch
228+
- create
229+
- update
230+
- patch
231+
- delete
232+
- apiGroups:
233+
- ""
234+
resources:
235+
- events
236+
verbs:
237+
- create
238+
- patch
239+
serviceAccountName: ack-acm-controller
240+
strategy: deployment
241+
installModes:
242+
- supported: true
243+
type: OwnNamespace
244+
- supported: true
245+
type: SingleNamespace
246+
- supported: true
247+
type: MultiNamespace
248+
- supported: true
249+
type: AllNamespaces
250+
keywords:
251+
- acm
252+
- aws
253+
- amazon
254+
- ack
255+
links:
256+
- name: AWS Controllers for Kubernetes
257+
url: https://github.com/aws-controllers-k8s/community
258+
- name: Documentation
259+
url: https://aws-controllers-k8s.github.io/community/
260+
- name: Amazon ACM Developer Resources
261+
url: https://aws.amazon.com/certificate-manager/resources/
262+
maintainers:
263+
264+
name: acm maintainer team
265+
maturity: alpha
266+
provider:
267+
name: Amazon, Inc.
268+
url: https://aws.amazon.com
269+
version: 1.3.0
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-acm-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-acm-controller
14+
type: ClusterIP
15+
status:
16+
loadBalancer: {}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
creationTimestamp: null
5+
name: ack-acm-reader
6+
rules:
7+
- apiGroups:
8+
- acm.services.k8s.aws
9+
resources:
10+
- certificates
11+
verbs:
12+
- get
13+
- list
14+
- watch
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
creationTimestamp: null
5+
name: ack-acm-writer
6+
rules:
7+
- apiGroups:
8+
- acm.services.k8s.aws
9+
resources:
10+
- certificates
11+
verbs:
12+
- create
13+
- delete
14+
- get
15+
- list
16+
- patch
17+
- update
18+
- watch
19+
- apiGroups:
20+
- acm.services.k8s.aws
21+
resources:
22+
- certificates
23+
verbs:
24+
- get
25+
- patch
26+
- update

0 commit comments

Comments
 (0)