80 lines
2.8 KiB
YAML
80 lines
2.8 KiB
YAML
apiVersion: apiextensions.crossplane.io/v1
|
|
kind: Composition
|
|
metadata:
|
|
name: s3bucket.awsblueprints.io
|
|
labels:
|
|
awsblueprints.io/provider: aws
|
|
awsblueprints.io/environment: dev
|
|
s3.awsblueprints.io/configuration: standard
|
|
spec:
|
|
writeConnectionSecretsToNamespace: crossplane-system
|
|
compositeTypeRef:
|
|
apiVersion: awsblueprints.io/v1alpha1
|
|
kind: XObjectStorage
|
|
patchSets:
|
|
- name: common-fields
|
|
patches:
|
|
- type: FromCompositeFieldPath
|
|
fromFieldPath: spec.resourceConfig.providerConfigName
|
|
toFieldPath: spec.providerConfigRef.name
|
|
- type: FromCompositeFieldPath
|
|
fromFieldPath: spec.resourceConfig.deletionPolicy
|
|
toFieldPath: spec.deletionPolicy
|
|
- type: FromCompositeFieldPath
|
|
fromFieldPath: spec.resourceConfig.region
|
|
toFieldPath: spec.forProvider.region
|
|
- type: FromCompositeFieldPath
|
|
fromFieldPath: spec.resourceConfig.name
|
|
toFieldPath: metadata.annotations[crossplane.io/external-name]
|
|
resources:
|
|
- name: s3-bucket
|
|
connectionDetails:
|
|
- name: bucket-name
|
|
fromConnectionSecretKey: endpoint
|
|
- name: region
|
|
fromConnectionSecretKey: region
|
|
base:
|
|
apiVersion: s3.aws.crossplane.io/v1beta1
|
|
kind: Bucket
|
|
spec:
|
|
deletionPolicy: Delete
|
|
forProvider:
|
|
objectOwnership: BucketOwnerEnforced
|
|
publicAccessBlockConfiguration:
|
|
blockPublicPolicy: true
|
|
restrictPublicBuckets: true
|
|
serverSideEncryptionConfiguration:
|
|
rules:
|
|
- applyServerSideEncryptionByDefault:
|
|
sseAlgorithm: AES256
|
|
tagging:
|
|
tagSet:
|
|
- key: cnoe
|
|
value: "1"
|
|
patches:
|
|
- type: PatchSet
|
|
patchSetName: common-fields
|
|
- type: FromCompositeFieldPath
|
|
fromFieldPath: spec.resourceConfig.tags
|
|
toFieldPath: spec.forProvider.tagging.tagSet
|
|
policy:
|
|
mergeOptions:
|
|
appendSlice: true
|
|
keepMapValues: true
|
|
- type: FromCompositeFieldPath
|
|
fromFieldPath: spec.resourceConfig.region
|
|
toFieldPath: spec.forProvider.locationConstraint
|
|
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
|
|
toFieldPath: spec.writeConnectionSecretToRef.namespace
|
|
- type: ToCompositeFieldPath
|
|
fromFieldPath: metadata.annotations[crossplane.io/external-name]
|
|
toFieldPath: status.bucketName
|
|
- type: ToCompositeFieldPath
|
|
fromFieldPath: status.atProvider.arn
|
|
toFieldPath: status.bucketArn
|
|
- fromFieldPath: metadata.uid
|
|
toFieldPath: spec.writeConnectionSecretToRef.name
|
|
transforms:
|
|
- type: string
|
|
string:
|
|
fmt: "%s-bucket"
|