The following resources are composed to implement the referenced Composite Resource Definition (XRD).
SubnetGroup
Cluster
SecurityGroup
SecurityGroupRule
kind: Composition
apiVersion: apiextensions.crossplane.io/v1
metadata:
name: xredis.discourse.upbound.io
creationTimestamp: null
labels:
provider: aws
spec:
compositeTypeRef:
apiVersion: discourse.upbound.io/v1alpha1
kind: XCache
resources:
- name: elasticacheSubnetGroup
base:
apiVersion: elasticache.aws.upbound.io/v1beta1
kind: SubnetGroup
spec:
deletionPolicy: Delete
forProvider:
description: Cache 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: elasticacheCluster
base:
apiVersion: elasticache.aws.upbound.io/v1beta1
kind: Cluster
spec:
deletionPolicy: Delete
forProvider:
engine: redis
engineVersion: "7.0"
nodeType: cache.t2.micro
numCacheNodes: 1
parameterGroupName: default.redis7
port: 6379
region: to-be-patched
securityGroupIds:
- to-be-patched
subnetGroupNameSelector:
matchControllerRef: true
patches:
- fromFieldPath: spec.parameters.region
toFieldPath: spec.forProvider.region
- fromFieldPath: spec.parameters.securityGroupIds
toFieldPath: spec.forProvider.securityGroupIds
- fromFieldPath: metadata.uid
toFieldPath: spec.writeConnectionSecretToRef.name
transforms:
- type: string
string:
fmt: "%s-cluster"
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
toFieldPath: spec.writeConnectionSecretToRef.namespace
connectionDetails:
- name: endpoint
fromFieldPath: status.atProvider.cacheNodes[0].address
- name: host
fromFieldPath: status.atProvider.cacheNodes[0].address
- name: securityGroup
base:
apiVersion: ec2.aws.upbound.io/v1beta1
kind: SecurityGroup
spec:
deletionPolicy: Delete
forProvider:
description: Allow access to cache
name: discourse-cache
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: 6379
protocol: tcp
region: us-east-2
securityGroupIdSelector:
matchControllerRef: true
toPort: 6379
type: ingress
patches:
- fromFieldPath: spec.parameters.region
toFieldPath: spec.forProvider.region
writeConnectionSecretsToNamespace: upbound-system