Skip to content

Commit c84b72a

Browse files
authored
Add resource reference for Amazon MQ brokers in EventSourceMapping resource (#64)
Instead of manually passing the broker name, this feature will allow ACK lambda-controller users to cross-reference ACK MQ broker in their EventSourceMapping resource By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent d5b114d commit c84b72a

17 files changed

+188
-8
lines changed
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
ack_generate_info:
2-
build_date: "2022-10-25T17:58:30Z"
3-
build_hash: 9727031b415481d9ac28bb94cac9f1e73336401d
2+
build_date: "2022-11-04T23:25:04Z"
3+
build_hash: 7cd74c3a855e38ea3fb5e1cf40b26fbe96283870
44
go_version: go1.19
5-
version: v0.19.3-9-g9727031
6-
api_directory_checksum: e2da75eafa3ab7fe7cc4c8c26ba01e495e31d494
5+
version: v0.19.3-15-g7cd74c3-dirty
6+
api_directory_checksum: f01a03847a7bb58e935fdca90ecfb910f645ea61
77
api_version: v1alpha1
88
aws_sdk_go_version: v1.44.93
99
generator_config_info:
10-
file_checksum: 1328b65627cf7280ef4df6c1b0435653e99fe62f
10+
file_checksum: 8c3d1a125902512d09de13f6ff4337e07a5518f0
1111
original_file_name: generator.yaml
1212
last_modification:
1313
reason: API generation

apis/v1alpha1/event_source_mapping.go

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

apis/v1alpha1/generator.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,11 @@ resources:
9797
ignore: true
9898
EventSourceMapping:
9999
fields:
100+
Queues:
101+
references:
102+
resource: Broker
103+
path: Status.BrokerID
104+
service_name: mq
100105
UUID:
101106
is_primary_key: true
102107
FunctionName:

apis/v1alpha1/zz_generated.deepcopy.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/controller/main.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/lambda.services.k8s.aws_eventsourcemappings.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,22 @@ spec:
155155
each shard concurrently.
156156
format: int64
157157
type: integer
158+
queueRefs:
159+
items:
160+
description: 'AWSResourceReferenceWrapper provides a wrapper around
161+
*AWSResourceReference type to provide more user friendly syntax
162+
for references using ''from'' field Ex: APIIDRef: from: name:
163+
my-api'
164+
properties:
165+
from:
166+
description: AWSResourceReference provides all the values necessary
167+
to reference another k8s resource for finding the identifier(Id/ARN/Name)
168+
properties:
169+
name:
170+
type: string
171+
type: object
172+
type: object
173+
type: array
158174
queues:
159175
description: (MQ) The name of the Amazon MQ broker destination queue
160176
to consume.

config/rbac/cluster-role-controller.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,20 @@ rules:
173173
- get
174174
- patch
175175
- update
176+
- apiGroups:
177+
- mq.services.k8s.aws
178+
resources:
179+
- brokers
180+
verbs:
181+
- get
182+
- list
183+
- apiGroups:
184+
- mq.services.k8s.aws
185+
resources:
186+
- brokers/status
187+
verbs:
188+
- get
189+
- list
176190
- apiGroups:
177191
- s3.services.k8s.aws
178192
resources:

generator.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,11 @@ resources:
9797
ignore: true
9898
EventSourceMapping:
9999
fields:
100+
Queues:
101+
references:
102+
resource: Broker
103+
path: Status.BrokerID
104+
service_name: mq
100105
UUID:
101106
is_primary_key: true
102107
FunctionName:

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ go 1.17
55
require (
66
github.com/aws-controllers-k8s/ec2-controller v0.0.21
77
github.com/aws-controllers-k8s/kms-controller v0.1.2
8+
github.com/aws-controllers-k8s/mq-controller v0.0.22
89
github.com/aws-controllers-k8s/runtime v0.20.1
910
github.com/aws-controllers-k8s/s3-controller v0.1.5
1011
github.com/aws/aws-sdk-go v1.44.93

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ github.com/aws-controllers-k8s/ec2-controller v0.0.21 h1:5O7/9aED2Tl9OT0TL2rWrc1
6868
github.com/aws-controllers-k8s/ec2-controller v0.0.21/go.mod h1:OMsmJeJ3iQZ1sJgs3hqnjBRnJ3hmTzJUO38W5rxnB5M=
6969
github.com/aws-controllers-k8s/kms-controller v0.1.2 h1:9lb98jspqOpFpmIFHOJ6pRnOkC8kDEPIgTAb5QnVGZo=
7070
github.com/aws-controllers-k8s/kms-controller v0.1.2/go.mod h1:6CoV0UMFd03EUF9dXgOTTScGdBhJzsWn9W0dw2n0kA4=
71+
github.com/aws-controllers-k8s/mq-controller v0.0.22 h1:XxFSQL9yaaiiuZ6E/fh/+Y9C+3DG2c5oXWG/4ZNwd1w=
72+
github.com/aws-controllers-k8s/mq-controller v0.0.22/go.mod h1:p+YVFjpwlgRC+1cPeCabk1xTB1hTCU+RwYtFzrTnJmE=
7173
github.com/aws-controllers-k8s/runtime v0.20.0/go.mod h1:oA8ML1/LL3chPn26P6SzBNu1CUI2nekB+PTqykNs0qU=
7274
github.com/aws-controllers-k8s/runtime v0.20.1 h1:L/Huf1shRahx5BqJBCSS5u+vYg3f0Rotsq1jutORpdI=
7375
github.com/aws-controllers-k8s/runtime v0.20.1/go.mod h1:k7z4qlf6aK1Kzd4ff49wzcyhDKHjWaUpqxrwgl4uS1o=

helm/crds/lambda.services.k8s.aws_eventsourcemappings.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,22 @@ spec:
155155
each shard concurrently.
156156
format: int64
157157
type: integer
158+
queueRefs:
159+
items:
160+
description: 'AWSResourceReferenceWrapper provides a wrapper around
161+
*AWSResourceReference type to provide more user friendly syntax
162+
for references using ''from'' field Ex: APIIDRef: from: name:
163+
my-api'
164+
properties:
165+
from:
166+
description: AWSResourceReference provides all the values necessary
167+
to reference another k8s resource for finding the identifier(Id/ARN/Name)
168+
properties:
169+
name:
170+
type: string
171+
type: object
172+
type: object
173+
type: array
158174
queues:
159175
description: (MQ) The name of the Amazon MQ broker destination queue
160176
to consume.

helm/templates/cluster-role-controller.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,19 @@ kind: ClusterRole
44
metadata:
55
creationTimestamp: null
66
name: ack-lambda-controller
7+
labels:
8+
{{- range $key, $value := .Values.role.labels }}
9+
{{ $key }}: {{ $value | quote }}
10+
{{- end }}
711
{{ else }}
812
kind: Role
913
metadata:
1014
creationTimestamp: null
1115
name: ack-lambda-controller
16+
labels:
17+
{{- range $key, $value := .Values.role.labels }}
18+
{{ $key }}: {{ $value | quote }}
19+
{{- end }}
1220
namespace: {{ .Release.Namespace }}
1321
{{ end }}
1422
rules:
@@ -180,6 +188,20 @@ rules:
180188
- get
181189
- patch
182190
- update
191+
- apiGroups:
192+
- mq.services.k8s.aws
193+
resources:
194+
- brokers
195+
verbs:
196+
- get
197+
- list
198+
- apiGroups:
199+
- mq.services.k8s.aws
200+
resources:
201+
- brokers/status
202+
verbs:
203+
- get
204+
- list
183205
- apiGroups:
184206
- s3.services.k8s.aws
185207
resources:

helm/values.schema.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@
6565
],
6666
"type": "object"
6767
},
68+
"role": {
69+
"description": "Role settings",
70+
"properties": {
71+
"labels": {
72+
"type": "object"
73+
}
74+
}
75+
},
6876
"metrics": {
6977
"description": "Metrics settings",
7078
"properties": {

helm/values.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ deployment:
2828
# Which priorityClassName to set?
2929
# See: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#pod-priority
3030
priorityClassName: ""
31+
32+
# If "installScope: cluster" then these labels will be applied to ClusterRole
33+
role:
34+
labels: {}
3135

3236
metrics:
3337
service:

pkg/resource/event_source_mapping/delta.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/resource/event_source_mapping/references.go

Lines changed: 72 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/resource/function/references.go

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)