The following resources are composed to implement the referenced Composite Resource Definition (XRD).
SubnetGroup
Instance
SecurityGroup
SecurityGroupRule
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
name: xpostgres.discourse.upbound.io
creationTimestamp: null
labels:
provider: aws
spec:
compositeTypeRef:
apiVersion: discourse.upbound.io/v1alpha1
kind: XDatabase
resources:
- name: rdsSubnetGroup
base:
apiVersion: rds.aws.upbound.io/v1beta1
kind: SubnetGroup
spec:
deletionPolicy: Delete
forProvider:
description: Database subnets.
region: to-be-patched
subnetIds:
- to-be-patched
patches:
- fromFieldPath: spec.parameters.region
toFieldPath: spec.forProvider.region
- fromFieldPath: spec.parameters.subnetIds
toFieldPath: spec.forProvider.subnetIds
- name: rdsInstance
base:
apiVersion: rds.aws.upbound.io/v1beta1
kind: Instance
spec:
deletionPolicy: Delete
forProvider:
allocatedStorage: 20
dbSubnetGroupNameSelector:
matchControllerRef: true
engine: postgres
engineVersion: "12"
instanceClass: db.t3.micro
publiclyAccessible: false
region: to-be-patched
skipFinalSnapshot: true
username: discourseadmin
vpcSecurityGroupIdSelector:
matchControllerRef: true
patches:
- fromFieldPath: spec.parameters.region
toFieldPath: spec.forProvider.region
- fromFieldPath: spec.parameters.passwordSecretRef.namespace
toFieldPath: spec.forProvider.passwordSecretRef.namespace
- fromFieldPath: spec.parameters.passwordSecretRef.name
toFieldPath: spec.forProvider.passwordSecretRef.name
- fromFieldPath: spec.parameters.passwordSecretRef.key
toFieldPath: spec.forProvider.passwordSecretRef.key
- fromFieldPath: metadata.uid
toFieldPath: spec.writeConnectionSecretToRef.name
transforms:
- type: string
string:
fmt: "%s-instance"
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
toFieldPath: spec.writeConnectionSecretToRef.namespace
connectionDetails:
- name: endpoint
fromFieldPath: status.atProvider.endpoint
- name: host
fromFieldPath: status.atProvider.address
- name: username
fromFieldPath: spec.forProvider.username
- name: password
fromConnectionSecretKey: attribute.password
- name: securityGroup
base:
apiVersion: ec2.aws.upbound.io/v1beta1
kind: SecurityGroup
spec:
deletionPolicy: Delete
forProvider:
description: Allow access to database
name: discourse-database
region: to-be-patched
vpcId: to-be-patched
patches:
- fromFieldPath: spec.parameters.region
toFieldPath: spec.forProvider.region
- fromFieldPath: spec.parameters.vpcId
toFieldPath: spec.forProvider.vpcId
- name: securityGroupRule
base:
apiVersion: ec2.aws.upbound.io/v1beta1
kind: SecurityGroupRule
spec:
deletionPolicy: Delete
forProvider:
cidrBlocks:
- 0.0.0.0/0
fromPort: 5432
protocol: tcp
region: to-be-patched
securityGroupIdSelector:
matchControllerRef: true
toPort: 5432
type: ingress
patches:
- fromFieldPath: spec.parameters.region
toFieldPath: spec.forProvider.region
writeConnectionSecretsToNamespace: upbound-system