Skip to content

Commit 499eb82

Browse files
authored
operator ack-ecr-controller (1.0.25)
1 parent 3ab08ea commit 499eb82

9 files changed

+803
-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-ecr-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: 272 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
apiVersion: operators.coreos.com/v1alpha1
2+
kind: ClusterServiceVersion
3+
metadata:
4+
annotations:
5+
alm-examples: |-
6+
[
7+
{
8+
"apiVersion": "ecr.services.k8s.aws/v1alpha1",
9+
"kind": "Repository",
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/ecr-controller:1.0.25
20+
createdAt: "2025-02-20T20:51:55Z"
21+
description: AWS ECR controller is a service controller for managing ECR 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-ecr-controller.v1.0.25
33+
namespace: placeholder
34+
spec:
35+
apiservicedefinitions: {}
36+
customresourcedefinitions:
37+
owned:
38+
- description: PullThroughCacheRule represents the state of an AWS ecr PullThroughCacheRule
39+
resource.
40+
displayName: PullThroughCacheRule
41+
kind: PullThroughCacheRule
42+
name: pullthroughcacherules.ecr.services.k8s.aws
43+
version: v1alpha1
44+
- description: Repository represents the state of an AWS ecr Repository resource.
45+
displayName: Repository
46+
kind: Repository
47+
name: repositories.ecr.services.k8s.aws
48+
version: v1alpha1
49+
description: |-
50+
Manage Amazon Elastic Container Registry (ECR) resources in AWS from within your Kubernetes cluster.
51+
52+
**About Amazon ECR**
53+
54+
Amazon Elastic Container Registry (Amazon ECR) is an AWS managed container image registry service that is secure, scalable, and reliable. Amazon ECR supports private repositories with resource-based permissions using AWS IAM. This is so that specified users or Amazon EC2 instances can access your container repositories and images. You can use your preferred CLI to push, pull, and manage Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts.
55+
56+
**About the AWS Controllers for Kubernetes**
57+
58+
This controller is a component of the [AWS Controller for Kubernetes](https://github.com/aws/aws-controllers-k8s) project.
59+
60+
**Pre-Installation Steps**
61+
62+
Please follow the following link: [Red Hat OpenShift](https://aws-controllers-k8s.github.io/community/docs/user-docs/openshift/)
63+
displayName: AWS Controllers for Kubernetes - Amazon ECR
64+
icon:
65+
- base64data: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMzA0IDE4MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzA0IDE4MjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMyNTJGM0U7fQoJLnN0MXtmaWxsLXJ1bGU6ZXZlbm9kZDtjbGlwLXJ1bGU6ZXZlbm9kZDtmaWxsOiNGRjk5MDA7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik04Ni40LDY2LjRjMCwzLjcsMC40LDYuNywxLjEsOC45YzAuOCwyLjIsMS44LDQuNiwzLjIsNy4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi4zYzAsMS0wLjYsMi0xLjksM2wtNi4zLDQuMiAgIGMtMC45LDAuNi0xLjgsMC45LTIuNiwwLjljLTEsMC0yLTAuNS0zLTEuNEM3Ni4yLDkwLDc1LDg4LjQsNzQsODYuOGMtMS0xLjctMi0zLjYtMy4xLTUuOWMtNy44LDkuMi0xNy42LDEzLjgtMjkuNCwxMy44ICAgYy04LjQsMC0xNS4xLTIuNC0yMC03LjJjLTQuOS00LjgtNy40LTExLjItNy40LTE5LjJjMC04LjUsMy0xNS40LDkuMS0yMC42YzYuMS01LjIsMTQuMi03LjgsMjQuNS03LjhjMy40LDAsNi45LDAuMywxMC42LDAuOCAgIGMzLjcsMC41LDcuNSwxLjMsMTEuNSwyLjJ2LTcuM2MwLTcuNi0xLjYtMTIuOS00LjctMTZjLTMuMi0zLjEtOC42LTQuNi0xNi4zLTQuNmMtMy41LDAtNy4xLDAuNC0xMC44LDEuM2MtMy43LDAuOS03LjMsMi0xMC44LDMuNCAgIGMtMS42LDAuNy0yLjgsMS4xLTMuNSwxLjNjLTAuNywwLjItMS4yLDAuMy0xLjYsMC4zYy0xLjQsMC0yLjEtMS0yLjEtMy4xdi00LjljMC0xLjYsMC4yLTIuOCwwLjctMy41YzAuNS0wLjcsMS40LTEuNCwyLjgtMi4xICAgYzMuNS0xLjgsNy43LTMuMywxMi42LTQuNWM0LjktMS4zLDEwLjEtMS45LDE1LjYtMS45YzExLjksMCwyMC42LDIuNywyNi4yLDguMWM1LjUsNS40LDguMywxMy42LDguMywyNC42VjY2LjR6IE00NS44LDgxLjYgICBjMy4zLDAsNi43LTAuNiwxMC4zLTEuOGMzLjYtMS4yLDYuOC0zLjQsOS41LTYuNGMxLjYtMS45LDIuOC00LDMuNC02LjRjMC42LTIuNCwxLTUuMywxLTguN3YtNC4yYy0yLjktMC43LTYtMS4zLTkuMi0xLjcgICBjLTMuMi0wLjQtNi4zLTAuNi05LjQtMC42Yy02LjcsMC0xMS42LDEuMy0xNC45LDRjLTMuMywyLjctNC45LDYuNS00LjksMTEuNWMwLDQuNywxLjIsOC4yLDMuNywxMC42ICAgQzM3LjcsODAuNCw0MS4yLDgxLjYsNDUuOCw4MS42eiBNMTI2LjEsOTIuNGMtMS44LDAtMy0wLjMtMy44LTFjLTAuOC0wLjYtMS41LTItMi4xLTMuOUw5Ni43LDEwLjJjLTAuNi0yLTAuOS0zLjMtMC45LTQgICBjMC0xLjYsMC44LTIuNSwyLjQtMi41aDkuOGMxLjksMCwzLjIsMC4zLDMuOSwxYzAuOCwwLjYsMS40LDIsMiwzLjlsMTYuOCw2Ni4ybDE1LjYtNjYuMmMwLjUtMiwxLjEtMy4zLDEuOS0zLjljMC44LTAuNiwyLjItMSw0LTEgICBoOGMxLjksMCwzLjIsMC4zLDQsMWMwLjgsMC42LDEuNSwyLDEuOSwzLjlsMTUuOCw2N2wxNy4zLTY3YzAuNi0yLDEuMy0zLjMsMi0zLjljMC44LTAuNiwyLjEtMSwzLjktMWg5LjNjMS42LDAsMi41LDAuOCwyLjUsMi41ICAgYzAsMC41LTAuMSwxLTAuMiwxLjZjLTAuMSwwLjYtMC4zLDEuNC0wLjcsMi41bC0yNC4xLDc3LjNjLTAuNiwyLTEuMywzLjMtMi4xLDMuOWMtMC44LDAuNi0yLjEsMS0zLjgsMWgtOC42Yy0xLjksMC0zLjItMC4zLTQtMSAgIGMtMC44LTAuNy0xLjUtMi0xLjktNEwxNTYsMjNsLTE1LjQsNjQuNGMtMC41LDItMS4xLDMuMy0xLjksNGMtMC44LDAuNy0yLjIsMS00LDFIMTI2LjF6IE0yNTQuNiw5NS4xYy01LjIsMC0xMC40LTAuNi0xNS40LTEuOCAgIGMtNS0xLjItOC45LTIuNS0xMS41LTRjLTEuNi0wLjktMi43LTEuOS0zLjEtMi44Yy0wLjQtMC45LTAuNi0xLjktMC42LTIuOHYtNS4xYzAtMi4xLDAuOC0zLjEsMi4zLTMuMWMwLjYsMCwxLjIsMC4xLDEuOCwwLjMgICBjMC42LDAuMiwxLjUsMC42LDIuNSwxYzMuNCwxLjUsNy4xLDIuNywxMSwzLjVjNCwwLjgsNy45LDEuMiwxMS45LDEuMmM2LjMsMCwxMS4yLTEuMSwxNC42LTMuM2MzLjQtMi4yLDUuMi01LjQsNS4yLTkuNSAgIGMwLTIuOC0wLjktNS4xLTIuNy03Yy0xLjgtMS45LTUuMi0zLjYtMTAuMS01LjJMMjQ2LDUyYy03LjMtMi4zLTEyLjctNS43LTE2LTEwLjJjLTMuMy00LjQtNS05LjMtNS0xNC41YzAtNC4yLDAuOS03LjksMi43LTExLjEgICBjMS44LTMuMiw0LjItNiw3LjItOC4yYzMtMi4zLDYuNC00LDEwLjQtNS4yYzQtMS4yLDguMi0xLjcsMTIuNi0xLjdjMi4yLDAsNC41LDAuMSw2LjcsMC40YzIuMywwLjMsNC40LDAuNyw2LjUsMS4xICAgYzIsMC41LDMuOSwxLDUuNywxLjZjMS44LDAuNiwzLjIsMS4yLDQuMiwxLjhjMS40LDAuOCwyLjQsMS42LDMsMi41YzAuNiwwLjgsMC45LDEuOSwwLjksMy4zdjQuN2MwLDIuMS0wLjgsMy4yLTIuMywzLjIgICBjLTAuOCwwLTIuMS0wLjQtMy44LTEuMmMtNS43LTIuNi0xMi4xLTMuOS0xOS4yLTMuOWMtNS43LDAtMTAuMiwwLjktMTMuMywyLjhjLTMuMSwxLjktNC43LDQuOC00LjcsOC45YzAsMi44LDEsNS4yLDMsNy4xICAgYzIsMS45LDUuNywzLjgsMTEsNS41bDE0LjIsNC41YzcuMiwyLjMsMTIuNCw1LjUsMTUuNSw5LjZjMy4xLDQuMSw0LjYsOC44LDQuNiwxNGMwLDQuMy0wLjksOC4yLTIuNiwxMS42ICAgYy0xLjgsMy40LTQuMiw2LjQtNy4zLDguOGMtMy4xLDIuNS02LjgsNC4zLTExLjEsNS42QzI2NC40LDk0LjQsMjU5LjcsOTUuMSwyNTQuNiw5NS4xeiIvPgoJPGc+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI3My41LDE0My43Yy0zMi45LDI0LjMtODAuNywzNy4yLTEyMS44LDM3LjJjLTU3LjYsMC0xMDkuNS0yMS4zLTE0OC43LTU2LjdjLTMuMS0yLjgtMC4zLTYuNiwzLjQtNC40ICAgIGM0Mi40LDI0LjYsOTQuNywzOS41LDE0OC44LDM5LjVjMzYuNSwwLDc2LjYtNy42LDExMy41LTIzLjJDMjc0LjIsMTMzLjYsMjc4LjksMTM5LjcsMjczLjUsMTQzLjd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTI4Ny4yLDEyOC4xYy00LjItNS40LTI3LjgtMi42LTM4LjUtMS4zYy0zLjIsMC40LTMuNy0yLjQtMC44LTQuNWMxOC44LTEzLjIsNDkuNy05LjQsNTMuMy01ICAgIGMzLjYsNC41LTEsMzUuNC0xOC42LDUwLjJjLTIuNywyLjMtNS4zLDEuMS00LjEtMS45QzI4Mi41LDE1NS43LDI5MS40LDEzMy40LDI4Ny4yLDEyOC4xeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPg==
66+
mediatype: image/svg+xml
67+
install:
68+
spec:
69+
clusterPermissions:
70+
- rules:
71+
- apiGroups:
72+
- ""
73+
resources:
74+
- configmaps
75+
- secrets
76+
verbs:
77+
- get
78+
- list
79+
- patch
80+
- watch
81+
- apiGroups:
82+
- ""
83+
resources:
84+
- namespaces
85+
verbs:
86+
- get
87+
- list
88+
- watch
89+
- apiGroups:
90+
- ecr.services.k8s.aws
91+
resources:
92+
- pullthroughcacherules
93+
- repositories
94+
verbs:
95+
- create
96+
- delete
97+
- get
98+
- list
99+
- patch
100+
- update
101+
- watch
102+
- apiGroups:
103+
- ecr.services.k8s.aws
104+
resources:
105+
- pullthroughcacherules/status
106+
- repositories/status
107+
verbs:
108+
- get
109+
- patch
110+
- update
111+
- apiGroups:
112+
- services.k8s.aws
113+
resources:
114+
- adoptedresources
115+
- fieldexports
116+
verbs:
117+
- create
118+
- delete
119+
- get
120+
- list
121+
- patch
122+
- update
123+
- watch
124+
- apiGroups:
125+
- services.k8s.aws
126+
resources:
127+
- adoptedresources/status
128+
- fieldexports/status
129+
verbs:
130+
- get
131+
- patch
132+
- update
133+
serviceAccountName: ack-ecr-controller
134+
deployments:
135+
- label:
136+
app.kubernetes.io/name: ack-ecr-controller
137+
app.kubernetes.io/part-of: ack-system
138+
name: ack-ecr-controller
139+
spec:
140+
replicas: 1
141+
selector:
142+
matchLabels:
143+
app.kubernetes.io/name: ack-ecr-controller
144+
strategy: {}
145+
template:
146+
metadata:
147+
labels:
148+
app.kubernetes.io/name: ack-ecr-controller
149+
spec:
150+
containers:
151+
- args:
152+
- --aws-region
153+
- $(AWS_REGION)
154+
- --aws-endpoint-url
155+
- $(AWS_ENDPOINT_URL)
156+
- --enable-development-logging=$(ACK_ENABLE_DEVELOPMENT_LOGGING)
157+
- --log-level
158+
- $(ACK_LOG_LEVEL)
159+
- --resource-tags
160+
- $(ACK_RESOURCE_TAGS)
161+
- --watch-namespace
162+
- $(ACK_WATCH_NAMESPACE)
163+
- --enable-leader-election=$(ENABLE_LEADER_ELECTION)
164+
- --leader-election-namespace
165+
- $(LEADER_ELECTION_NAMESPACE)
166+
- --reconcile-default-max-concurrent-syncs
167+
- $(RECONCILE_DEFAULT_MAX_CONCURRENT_SYNCS)
168+
- --feature-gates
169+
- $(FEATURE_GATES)
170+
command:
171+
- ./bin/controller
172+
env:
173+
- name: ACK_SYSTEM_NAMESPACE
174+
valueFrom:
175+
fieldRef:
176+
fieldPath: metadata.namespace
177+
envFrom:
178+
- configMapRef:
179+
name: ack-ecr-user-config
180+
optional: false
181+
- secretRef:
182+
name: ack-ecr-user-secrets
183+
optional: true
184+
image: public.ecr.aws/aws-controllers-k8s/ecr-controller:1.0.25
185+
livenessProbe:
186+
httpGet:
187+
path: /healthz
188+
port: 8081
189+
initialDelaySeconds: 15
190+
periodSeconds: 20
191+
name: controller
192+
ports:
193+
- containerPort: 8080
194+
name: http
195+
readinessProbe:
196+
httpGet:
197+
path: /readyz
198+
port: 8081
199+
initialDelaySeconds: 5
200+
periodSeconds: 10
201+
resources:
202+
limits:
203+
cpu: 100m
204+
memory: 300Mi
205+
requests:
206+
cpu: 100m
207+
memory: 200Mi
208+
securityContext:
209+
allowPrivilegeEscalation: false
210+
capabilities:
211+
drop:
212+
- ALL
213+
privileged: false
214+
runAsNonRoot: true
215+
dnsPolicy: ClusterFirst
216+
securityContext:
217+
seccompProfile:
218+
type: RuntimeDefault
219+
serviceAccountName: ack-ecr-controller
220+
terminationGracePeriodSeconds: 10
221+
permissions:
222+
- rules:
223+
- apiGroups:
224+
- coordination.k8s.io
225+
resources:
226+
- leases
227+
verbs:
228+
- get
229+
- list
230+
- watch
231+
- create
232+
- update
233+
- patch
234+
- delete
235+
- apiGroups:
236+
- ""
237+
resources:
238+
- events
239+
verbs:
240+
- create
241+
- patch
242+
serviceAccountName: ack-ecr-controller
243+
strategy: deployment
244+
installModes:
245+
- supported: true
246+
type: OwnNamespace
247+
- supported: true
248+
type: SingleNamespace
249+
- supported: true
250+
type: MultiNamespace
251+
- supported: true
252+
type: AllNamespaces
253+
keywords:
254+
- ecr
255+
- aws
256+
- amazon
257+
- ack
258+
links:
259+
- name: AWS Controllers for Kubernetes
260+
url: https://github.com/aws-controllers-k8s/community
261+
- name: Documentation
262+
url: https://aws-controllers-k8s.github.io/community/
263+
- name: Amazon ECR Developer Resources
264+
url: https://aws.amazon.com/ecr/resources/
265+
maintainers:
266+
267+
name: ecr maintainer team
268+
maturity: alpha
269+
provider:
270+
name: Amazon, Inc.
271+
url: https://aws.amazon.com
272+
version: 1.0.25
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-ecr-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-ecr-controller
14+
type: NodePort
15+
status:
16+
loadBalancer: {}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
creationTimestamp: null
5+
name: ack-ecr-reader
6+
rules:
7+
- apiGroups:
8+
- ecr.services.k8s.aws
9+
resources:
10+
- pullthroughcacherules
11+
- repositories
12+
verbs:
13+
- get
14+
- list
15+
- watch
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
creationTimestamp: null
5+
name: ack-ecr-writer
6+
rules:
7+
- apiGroups:
8+
- ecr.services.k8s.aws
9+
resources:
10+
- pullthroughcacherules
11+
- repositories
12+
verbs:
13+
- create
14+
- delete
15+
- get
16+
- list
17+
- patch
18+
- update
19+
- watch
20+
- apiGroups:
21+
- ecr.services.k8s.aws
22+
resources:
23+
- pullthroughcacherules
24+
- repositories
25+
verbs:
26+
- get
27+
- patch
28+
- update

0 commit comments

Comments
 (0)