vRelevant blog post: https://vrelevant.net/crossplane-all-the-patches-with-aws-irsa-config/
Note
To keep this setup simple, I'm using Kustomize to apply the Crossplane Provider-aws, XRDs, and Compositions. Using a Crossplane Configuration would be the best practice for production use. See the Crossplane docs for more info on Configuration.
- K8s cluster
- kubectl cli
- AWS account
- aws cli
(All steps assume you are working from the root of the repo clone.)
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
kubectl apply -k config/.
AWS_PROFILE=default && echo -e "[default]\naws_access_key_id = $(aws configure get aws_access_key_id --profile $AWS_PROFILE)\naws_secret_access_key = $(aws configure get aws_secret_access_key --profile $AWS_PROFILE)" > creds.conf
kubectl create secret generic aws-creds -n crossplane-system --from-file=credentials=./creds.conf
kubectl apply -f config/provider/aws-providerConfig.yaml
kubectl create -f examples/cluster-claim.yaml
watch kubectl get managed