This commit is contained in:
2025-11-30 03:37:07 +01:00
parent 9f04b70cd9
commit 86f733b118
3 changed files with 50 additions and 10 deletions

View File

@@ -0,0 +1,6 @@
apiVersion: pkg.crossplane.io/v1
kind: Function
metadata:
name: function-patch-and-transform
spec:
package: xpkg.crossplane.io/crossplane-contrib/function-patch-and-transform:v0.8.2

View File

@@ -29,7 +29,8 @@ spec:
forProvider: forProvider:
region: eu-west-1 region: eu-west-1
providerConfigRef: providerConfigRef:
name: aws-provider name: default
kind: ProviderConfig
patches: patches:
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: spec.parameters.bucketName fromFieldPath: spec.parameters.bucketName
@@ -51,20 +52,28 @@ spec:
kind: BucketVersioning kind: BucketVersioning
spec: spec:
forProvider: forProvider:
region: eu-west-1
bucketRef: bucketRef:
name: "" name: ""
versioningConfiguration: versioningConfiguration:
- status: Disabled status: Disabled
providerConfigRef: providerConfigRef:
name: aws-provider name: default
kind: ProviderConfig
patches: patches:
- type: FromCompositeFieldPath
fromFieldPath: spec.parameters.region
toFieldPath: spec.forProvider.region
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: spec.parameters.bucketName fromFieldPath: spec.parameters.bucketName
toFieldPath: spec.forProvider.bucketRef.name toFieldPath: spec.forProvider.bucketRef.name
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: spec.parameters.versioning fromFieldPath: spec.parameters.versioning
toFieldPath: spec.forProvider.versioningConfiguration[0].status toFieldPath: spec.forProvider.versioningConfiguration.status
transforms: transforms:
- type: convert
convert:
toType: string
- type: map - type: map
map: map:
"true": Enabled "true": Enabled
@@ -77,21 +86,29 @@ spec:
kind: BucketServerSideEncryptionConfiguration kind: BucketServerSideEncryptionConfiguration
spec: spec:
forProvider: forProvider:
region: eu-west-1
bucketRef: bucketRef:
name: "" name: ""
rule: rule:
- applyServerSideEncryptionByDefault: - applyServerSideEncryptionByDefault:
- sseAlgorithm: AES256 sseAlgorithm: AES256
providerConfigRef: providerConfigRef:
name: aws-provider name: default
kind: ProviderConfig
patches: patches:
- type: FromCompositeFieldPath
fromFieldPath: spec.parameters.region
toFieldPath: spec.forProvider.region
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: spec.parameters.bucketName fromFieldPath: spec.parameters.bucketName
toFieldPath: spec.forProvider.bucketRef.name toFieldPath: spec.forProvider.bucketRef.name
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: spec.parameters.encryption fromFieldPath: spec.parameters.encryption
toFieldPath: spec.forProvider.rule[0].applyServerSideEncryptionByDefault[0].sseAlgorithm toFieldPath: spec.forProvider.rule[0].applyServerSideEncryptionByDefault.sseAlgorithm
transforms: transforms:
- type: convert
convert:
toType: string
- type: map - type: map
map: map:
"true": AES256 "true": AES256
@@ -104,6 +121,7 @@ spec:
kind: BucketPublicAccessBlock kind: BucketPublicAccessBlock
spec: spec:
forProvider: forProvider:
region: eu-west-1
bucketRef: bucketRef:
name: "" name: ""
blockPublicAcls: true blockPublicAcls: true
@@ -111,8 +129,12 @@ spec:
ignorePublicAcls: true ignorePublicAcls: true
restrictPublicBuckets: true restrictPublicBuckets: true
providerConfigRef: providerConfigRef:
name: aws-provider name: default
kind: ProviderConfig
patches: patches:
- type: FromCompositeFieldPath
fromFieldPath: spec.parameters.region
toFieldPath: spec.forProvider.region
- type: FromCompositeFieldPath - type: FromCompositeFieldPath
fromFieldPath: spec.parameters.bucketName fromFieldPath: spec.parameters.bucketName
toFieldPath: spec.forProvider.bucketRef.name toFieldPath: spec.forProvider.bucketRef.name
@@ -120,6 +142,9 @@ spec:
fromFieldPath: spec.parameters.publicAccess fromFieldPath: spec.parameters.publicAccess
toFieldPath: spec.forProvider.blockPublicAcls toFieldPath: spec.forProvider.blockPublicAcls
transforms: transforms:
- type: convert
convert:
toType: string
- type: map - type: map
map: map:
"true": false "true": false
@@ -128,6 +153,9 @@ spec:
fromFieldPath: spec.parameters.publicAccess fromFieldPath: spec.parameters.publicAccess
toFieldPath: spec.forProvider.blockPublicPolicy toFieldPath: spec.forProvider.blockPublicPolicy
transforms: transforms:
- type: convert
convert:
toType: string
- type: map - type: map
map: map:
"true": false "true": false
@@ -136,6 +164,9 @@ spec:
fromFieldPath: spec.parameters.publicAccess fromFieldPath: spec.parameters.publicAccess
toFieldPath: spec.forProvider.ignorePublicAcls toFieldPath: spec.forProvider.ignorePublicAcls
transforms: transforms:
- type: convert
convert:
toType: string
- type: map - type: map
map: map:
"true": false "true": false
@@ -144,6 +175,9 @@ spec:
fromFieldPath: spec.parameters.publicAccess fromFieldPath: spec.parameters.publicAccess
toFieldPath: spec.forProvider.restrictPublicBuckets toFieldPath: spec.forProvider.restrictPublicBuckets
transforms: transforms:
- type: convert
convert:
toType: string
- type: map - type: map
map: map:
"true": false "true": false

View File

@@ -2,10 +2,10 @@ apiVersion: mathod.io/v1alpha1
kind: XObjectStorage kind: XObjectStorage
metadata: metadata:
name: my-s3-bucket-example name: my-s3-bucket-example
namespace: default namespace: crossplane-system
spec: spec:
parameters: parameters:
bucketName: mon-bucket-exemple-123 bucketName: app1-bucket-mathod-93150
region: eu-west-1 region: eu-west-1
versioning: true versioning: true
encryption: true encryption: true