--- apiVersion: apiextensions.crossplane.io/v1 kind: Composition metadata: name: vpcpostgresqlinstances.aws.database.example.org labels: provider: aws guide: quickstart vpc: new spec: writeConnectionSecretsToNamespace: crossplane-system compositeTypeRef: apiVersion: database.example.org/v1alpha1 kind: XPostgreSQLInstance resources: - name: vpc base: apiVersion: ec2.aws.crossplane.io/v1beta1 kind: VPC spec: forProvider: region: us-east-1 cidrBlock: 192.168.0.0/16 enableDnsSupport: true enableDnsHostNames: true - name: subnet-a base: apiVersion: ec2.aws.crossplane.io/v1beta1 kind: Subnet metadata: labels: zone: us-east-1a spec: forProvider: region: us-east-1 cidrBlock: 192.168.64.0/18 vpcIdSelector: matchControllerRef: true availabilityZone: us-east-1a - name: subnet-b base: apiVersion: ec2.aws.crossplane.io/v1beta1 kind: Subnet metadata: labels: zone: us-east-1b spec: forProvider: region: us-east-1 cidrBlock: 192.168.128.0/18 vpcIdSelector: matchControllerRef: true availabilityZone: us-east-1b - name: subnet-c base: apiVersion: ec2.aws.crossplane.io/v1beta1 kind: Subnet metadata: labels: zone: us-east-1c spec: forProvider: region: us-east-1 cidrBlock: 192.168.192.0/18 vpcIdSelector: matchControllerRef: true availabilityZone: us-east-1c - name: dbsubnetgroup base: apiVersion: database.aws.crossplane.io/v1beta1 kind: DBSubnetGroup spec: forProvider: region: us-east-1 description: An excellent formation of subnetworks. subnetIdSelector: matchControllerRef: true - name: internetgateway base: apiVersion: ec2.aws.crossplane.io/v1beta1 kind: InternetGateway spec: forProvider: region: us-east-1 vpcIdSelector: matchControllerRef: true - name: routetable base: apiVersion: ec2.aws.crossplane.io/v1beta1 kind: RouteTable spec: forProvider: region: us-east-1 vpcIdSelector: matchControllerRef: true routes: - destinationCidrBlock: 0.0.0.0/0 gatewayIdSelector: matchControllerRef: true associations: - subnetIdSelector: matchLabels: zone: us-east-1a - subnetIdSelector: matchLabels: zone: us-east-1b - subnetIdSelector: matchLabels: zone: us-east-1c - name: securitygroup base: apiVersion: ec2.aws.crossplane.io/v1beta1 kind: SecurityGroup spec: forProvider: region: us-east-1 vpcIdSelector: matchControllerRef: true groupName: crossplane-getting-started description: Allow access to PostgreSQL ingress: - fromPort: 5432 toPort: 5432 ipProtocol: tcp ipRanges: - cidrIp: 0.0.0.0/0 description: Everywhere - name: rdsinstance base: apiVersion: database.aws.crossplane.io/v1beta1 kind: RDSInstance spec: forProvider: region: us-east-1 dbSubnetGroupNameSelector: matchControllerRef: true vpcSecurityGroupIDSelector: matchControllerRef: true dbInstanceClass: db.t2.small masterUsername: masteruser engine: postgres engineVersion: "12" skipFinalSnapshotBeforeDeletion: true publiclyAccessible: true writeConnectionSecretToRef: namespace: crossplane-system patches: - fromFieldPath: "metadata.uid" toFieldPath: "spec.writeConnectionSecretToRef.name" transforms: - type: string string: fmt: "%s-postgresql" - fromFieldPath: "spec.parameters.storageGB" toFieldPath: "spec.forProvider.allocatedStorage" connectionDetails: - fromConnectionSecretKey: username - fromConnectionSecretKey: password - fromConnectionSecretKey: endpoint - fromConnectionSecretKey: port