The aim of this repository is to test crossplane and create set of resources to remember in the future how it works.
kubectl create namespace crossplane-system
helm repo add crossplane-stable <https://charts.crossplane.io/stable>
helm repo update
helm install crossplane --namespace crossplane-system crossplane-stable/crossplane
Create a file credentials.txt
:
[default]
aws_access_key_id = <aws_access_key>
aws_secret_access_key = <aws_secret_key>
kubectl create secret \
generic aws-secret \
-n crossplane-system \
--from-file=creds=./credentials.txt
You have two options, oficial crossplane or aws contrib
cat <<EOF | kubectl apply -f -
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-aws
spec:
package: xpkg.upbound.io/crossplane-contrib/provider-aws:v0.33.0
EOF
cat <<EOF | kubectl apply -f -
apiVersion: aws.crossplane.io/v1beta1
kind: ProviderConfig
metadata:
name: provider-config-aws
spec:
credentials:
secretRef:
namespace: crossplane-system
name: aws-secret
key: creds
source: Secret
endpoint:
url:
dynamic:
host: amazonaws.com
protocol: https
type: Dynamic
EOF
-
Create composition
-
Create the CRD (a.k.a XRD) that using prior composition
1
-
Create the XMR using composition
1
and XRD2
(non namespaced) -
Create another XMR using composition
1
and XRD2
(non namespaced) -
Create claim using composition
1
and XRD2
(namespaced) -
Create composition with parameters
-
Create claim using composition
7
and XRD2
(namespaced) -
Create composition with parameters and labels
-
Create claim using composition
9
and XRD2
(namespaced) with proper label --> works -
Create claim using composition
9
and XRD2
(namespaced) with no proper label --> doesn't work -
Create claim using composition
9
and XRD2
(namespaced) without labels --> works -
Import DynamoDB table already exists in AWS
-
Import S3 table already exists in AWS
-
Create isolated DynamoDB table MR
-
Create isolated S3 MR
k get composite -A #get all composites (resource created throught composition)