Skip to content

Commit 862718c

Browse files
Merge pull request #131 from genestack/feature/ODM-12563-admin-docs
[ODM-12761] Processors-controller doc
1 parent 47fbe70 commit 862718c

File tree

2 files changed

+89
-4
lines changed

2 files changed

+89
-4
lines changed

docs/home/clouds/aws.md

Lines changed: 77 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,71 @@ If the S3 bucket uses `SSE-KMS` encryption, then it is necessary to additionally
133133

134134
- in the `Key policy` of the KMS key that is used to encrypt data in the S3 bucket
135135

136+
## Cross-account ECR access
137+
138+
⚠️ **Mandatory in case of processors-controller usage**
139+
140+
The approach is based on the [official AWS documentation](https://repost.aws/knowledge-center/secondary-account-access-ecr) for ECR repository policies and cross-account access patterns.
141+
142+
ECR cross-account access requires configuring both:
143+
144+
- `IAM policy` attached to the IAM role/user
145+
146+
If the ECR repository uses `KMS encryption` with a customer-managed key, then it is necessary to additionally grant access to the KMS key in:
147+
148+
- The `IAM policy` that is attached to the IAM role/user
149+
150+
- The `Key policy` of the KMS key used to encrypt the ECR repository
151+
136152
## Configuration examples
137153

154+
<details><summary>IAM policy for ECR access</summary>
155+
156+
```json
157+
{
158+
"Version": "2012-10-17",
159+
"Statement": [
160+
{
161+
"Sid": "ECRRepositoryAccess",
162+
"Effect": "Allow",
163+
"Action": [
164+
"ecr:GetAuthorizationToken"
165+
],
166+
"Resource": "*"
167+
},
168+
{
169+
"Sid": "ECRImagePull",
170+
"Effect": "Allow",
171+
"Action": [
172+
"ecr:GetDownloadUrlForLayer",
173+
"ecr:BatchGetImage",
174+
"ecr:BatchCheckLayerAvailability",
175+
"ecr:DescribeRepositories",
176+
"ecr:DescribeImages",
177+
"ecr:ListImages"
178+
],
179+
"Resource": "*"
180+
},
181+
{
182+
"Sid" : "AllowUseOfTheKey",
183+
"Effect": "Allow",
184+
"Action" : [
185+
"kms:Encrypt",
186+
"kms:Decrypt",
187+
"kms:ReEncrypt*",
188+
"kms:GenerateDataKey*",
189+
"kms:DescribeKey"
190+
],
191+
"Resource" : ["KMS_KEY_ARN"]
192+
}
193+
]
194+
}
195+
```
196+
197+
</details>
198+
138199
<details><summary>AbortIncompleteMultipartUpload rule</summary>
200+
139201
```json
140202
{
141203
"Rules": [
@@ -149,27 +211,29 @@ If the S3 bucket uses `SSE-KMS` encryption, then it is necessary to additionally
149211
]
150212
}
151213
```
214+
152215
</details>
153216

154217
<details><summary>IAM policy for S3 access</summary>
218+
155219
```json
156220
{
157221
"Version" : "2012-10-17",
158222
"Statement" : [
159223
{
160224
"Sid" : "ListObjectsInBucket",
161-
"Effect" : "Allow",
225+
"Effect": "Allow",
162226
"Action" : [
163227
"s3:ListBucket",
164228
"s3:GetBucketLocation",
165229
"s3:ListBucketMultipartUploads",
166230
"s3:ListBucketVersions"
167231
],
168-
"Resource" : ["S3_BUCKET_ARN"]
232+
"Resource": ["S3_BUCKET_ARN"]
169233
},
170234
{
171235
"Sid" : "AllObjectActions",
172-
"Effect" : "Allow",
236+
"Effect": "Allow",
173237
"Action" : [
174238
"s3:*Object*",
175239
"s3:AbortMultipartUpload",
@@ -179,7 +243,7 @@ If the S3 bucket uses `SSE-KMS` encryption, then it is necessary to additionally
179243
},
180244
{
181245
"Sid" : "AllowUseOfTheKey",
182-
"Effect" : "Allow",
246+
"Effect": "Allow",
183247
"Action" : [
184248
"kms:Encrypt",
185249
"kms:Decrypt",
@@ -192,9 +256,11 @@ If the S3 bucket uses `SSE-KMS` encryption, then it is necessary to additionally
192256
]
193257
}
194258
```
259+
195260
</details>
196261

197262
<details><summary>IRSA Trust Relationships</summary>
263+
198264
```json
199265
{
200266
"Version": "2012-10-17",
@@ -215,9 +281,11 @@ If the S3 bucket uses `SSE-KMS` encryption, then it is necessary to additionally
215281
]
216282
}
217283
```
284+
218285
</details>
219286

220287
<details><summary>Pod Identity Trust Relationships</summary>
288+
221289
```json
222290
{
223291
"Version": "2012-10-17",
@@ -235,9 +303,11 @@ If the S3 bucket uses `SSE-KMS` encryption, then it is necessary to additionally
235303
]
236304
}
237305
```
306+
238307
</details>
239308

240309
<details><summary>GP3 StorageClass example</summary>
310+
241311
```yaml
242312
apiVersion: storage.k8s.io/v1
243313
kind: StorageClass
@@ -249,9 +319,11 @@ provisioner: ebs.csi.aws.com
249319
volumeBindingMode: Immediate
250320
allowVolumeExpansion: true
251321
```
322+
252323
</details>
253324
254325
<details><summary>TargetGroupBinding example</summary>
326+
255327
```yaml
256328
apiVersion: elbv2.k8s.aws/v1beta1
257329
kind: TargetGroupBinding
@@ -265,4 +337,5 @@ spec:
265337
port: 80
266338
targetGroupARN: TARGET_GROUP_ARN
267339
```
340+
268341
</details>

docs/home/release-notes/v1.60-v1.69.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
# Release notes
22

3+
## Version 1.62
4+
5+
!!! tip ""
6+
Helm chart version 1.62.0
7+
8+
### Helm configuration changes
9+
10+
- Added a new service, `processors-controller`, which manages the lifecycle of `transformation` pods.
11+
- To use transformations, configure cross-account ECR access. See [Cross-account ECR access](./../clouds/aws.md#cross-account-ecr-access).
12+
- The `processors-controller` requires RBAC permissions to manage `Pods`, `ConfigMaps`, and `PersistentVolumeClaims`.
13+
The required manifests are included in the Helm chart and can be disabled by setting `processorsController.rbac.enabled` to `false`.
14+
315
## Version 1.61
416

517
!!! tip ""

0 commit comments

Comments
 (0)