Skip to content

Commit 5dc5d13

Browse files
authored
Add support for imageTagMutabilityExclusionFilters (#127)
Issue #, if available: Description of changes: - Remove imageTagMutabilityExclusionFilters from ignored field paths - Include imageTagMutabilityExclusionFilters in custom update operation - Add e2e tests for imageTagMutabilityExclusionFilters functionality By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 47364dd commit 5dc5d13

17 files changed

+305
-39
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: "2025-08-22T23:52:19Z"
3-
build_hash: 1045a5e99038b11b0630ca2f2f69c3bae4bedba6
2+
build_date: "2025-09-04T20:26:34Z"
3+
build_hash: 1d9076d0211773ff8ab8682b28b912c7ece10676
44
go_version: go1.25.0
5-
version: v0.51.0-1-g1045a5e
6-
api_directory_checksum: a02c92c1fc20760c9af96da828ba7e0542ab69ba
5+
version: v0.51.0-2-g1d9076d
6+
api_directory_checksum: 4ec6553b4d5f236283df39b882ff81fe134e095e
77
api_version: v1alpha1
88
aws_sdk_go_version: v1.38.1
99
generator_config_info:
10-
file_checksum: 251b971a278822d87fec11b66bfc87de187bb5ef
10+
file_checksum: 509c2957665b24cbb498c341f2f2d5e7adec004c
1111
original_file_name: generator.yaml
1212
last_modification:
1313
reason: API generation

apis/v1alpha1/generator.yaml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,4 @@ resources:
9696
ignore: true
9797
ignore:
9898
resource_names:
99-
- RepositoryCreationTemplate
100-
field_paths:
101-
- CreateRepositoryInput.ImageTagMutabilityExclusionFilters
102-
- CreateRepositoryOutput.Repository.ImageTagMutabilityExclusionFilters
99+
- RepositoryCreationTemplate

apis/v1alpha1/repository.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.

apis/v1alpha1/types.go

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

apis/v1alpha1/zz_generated.deepcopy.go

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

config/crd/bases/ecr.services.k8s.aws_repositories.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,21 @@ spec:
7777
be overwritten. If IMMUTABLE is specified, all image tags within the repository
7878
will be immutable which will prevent them from being overwritten.
7979
type: string
80+
imageTagMutabilityExclusionFilters:
81+
description: |-
82+
Creates a repository with a list of filters that define which image tags
83+
can override the default image tag mutability setting.
84+
items:
85+
description: |-
86+
Overrides the default image tag mutability setting of the repository for
87+
image tags that match the specified filters.
88+
properties:
89+
filter:
90+
type: string
91+
filterType:
92+
type: string
93+
type: object
94+
type: array
8095
lifecyclePolicy:
8196
description: The JSON repository policy text to apply to the repository.
8297
type: string

generator.yaml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,4 @@ resources:
9696
ignore: true
9797
ignore:
9898
resource_names:
99-
- RepositoryCreationTemplate
100-
field_paths:
101-
- CreateRepositoryInput.ImageTagMutabilityExclusionFilters
102-
- CreateRepositoryOutput.Repository.ImageTagMutabilityExclusionFilters
99+
- RepositoryCreationTemplate

helm/crds/ecr.services.k8s.aws_repositories.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,21 @@ spec:
7777
be overwritten. If IMMUTABLE is specified, all image tags within the repository
7878
will be immutable which will prevent them from being overwritten.
7979
type: string
80+
imageTagMutabilityExclusionFilters:
81+
description: |-
82+
Creates a repository with a list of filters that define which image tags
83+
can override the default image tag mutability setting.
84+
items:
85+
description: |-
86+
Overrides the default image tag mutability setting of the repository for
87+
image tags that match the specified filters.
88+
properties:
89+
filter:
90+
type: string
91+
filterType:
92+
type: string
93+
type: object
94+
type: array
8095
lifecyclePolicy:
8196
description: The JSON repository policy text to apply to the repository.
8297
type: string

pkg/resource/pull_through_cache_rule/resource.go

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

pkg/resource/repository/custom_update_api.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func (rm *resourceManager) customUpdateRepository(
6161
return nil, err
6262
}
6363
}
64-
if delta.DifferentAt("Spec.ImageTagMutability") {
64+
if delta.DifferentAt("Spec.ImageTagMutability") || delta.DifferentAt("Spec.ImageTagMutabilityExclusionFilters") {
6565
updated, err = rm.updateImageTagMutability(ctx, updated)
6666
if err != nil {
6767
return nil, err
@@ -143,6 +143,19 @@ func (rm *resourceManager) updateImageTagMutability(
143143
} else {
144144
input.ImageTagMutability = svcsdktypes.ImageTagMutability(*dspec.ImageTagMutability)
145145
}
146+
147+
if dspec.ImageTagMutabilityExclusionFilters != nil {
148+
imageTagMutabilityExclusionFilters := []svcsdktypes.ImageTagMutabilityExclusionFilter{}
149+
for _, exclusionFilter := range dspec.ImageTagMutabilityExclusionFilters {
150+
imageTagMutabilityExclusionFilters = append(imageTagMutabilityExclusionFilters, svcsdktypes.ImageTagMutabilityExclusionFilter{
151+
Filter: aws.String(*exclusionFilter.Filter),
152+
FilterType: svcsdktypes.ImageTagMutabilityExclusionFilterType(*exclusionFilter.FilterType),
153+
})
154+
}
155+
156+
input.ImageTagMutabilityExclusionFilters = imageTagMutabilityExclusionFilters
157+
}
158+
146159
_, err = rm.sdkapi.PutImageTagMutability(ctx, input)
147160
rm.metrics.RecordAPICall("UPDATE", "PutImageTagMutability", err)
148161
if err != nil {

0 commit comments

Comments
 (0)