mirror of https://github.com/crossplane/docs.git
161 lines
4.7 KiB
YAML
161 lines
4.7 KiB
YAML
---
|
|
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
|