Create kind
cluster with Crossplane installed:
kind create cluster
helm install crossplane --namespace crossplane-system --create-namespace crossplane-stable/crossplane
kubectl -n crossplane-system get pod
Create a XRD/XR that can dynamically create objects:
kubectl apply -f test/definition.yaml
kubectl apply -f test/composition.yaml
Install extensions (Providers/Functions), along with DeploymentRuntimeConfig
and other pre-reqs:
kubectl apply -f drc.yaml
kubectl apply -f rbac.yaml
kubectl apply -f provider.yaml
kubectl apply -f test/functions.yaml
Wait for all packages to become installed and healthy:
kubectl get pkg
Create a ProviderConfig:
kubectl apply -f providerconfig.yaml
Create some Objects
(you can update claim.yaml
to create more or less Objects
):
kubectl apply -f test/claim.yaml
Check Objects
are created and examine the pod logs:
crossplane beta trace traceperf.trace-perf.crossplane.io/traceperf-tester
kubectl -n crossplane-system logs -l pkg.crossplane.io/provider=provider-kubernetes -c change-log-sidecar
kubectl -n crossplane-system logs -l pkg.crossplane.io/provider=provider-kubernetes -c change-log-sidecar | jq '.timestamp + " " + .provider + " " + .name + " " + .operation'
kubectl -n crossplane-system logs -l pkg.crossplane.io/provider=provider-kubernetes -c change-log-sidecar --tail 1 | jq .
You can also check the main provider logs, which should hopefully be sparse unless something went wrong:
kubectl -n crossplane-system logs -l pkg.crossplane.io/provider=provider-kubernetes
Now update the claim in order to see an update operation in the change logs,
e.g. by changing the spec.textData
field to a new string value, then apply it
again:
kubectl apply -f test/claim.yaml
Then delete the claim in order to clean up the Objects
and see delete
operations in the change logs:
kubectl delete -f test/claim.yaml
For local development steps, please refer to the DEVELOPMENT.md file.