Installing Crossplane & a provider
The core + a cloud provider package.
Crossplane has two layers: the core, installed into a Kubernetes cluster (usually via its Helm chart), and providers, which are packages that add support for a specific platform — provider-aws, provider-gcp, provider-azure, and many others. The core gives you the composition and packaging machinery; a provider gives you the actual CRDs for that platform’s resources.
$ helm install crossplane crossplane-stable/crossplane \--namespace crossplane-system --create-namespace$ kubectl get pods -n crossplane-systemNAME READY STATUScrossplane-7d... 1/1 Running# install a provider as a package$ kubectl apply -f - <<EOFapiVersion: pkg.crossplane.io/v1kind: Providermetadata: { name: provider-aws-s3 }spec: { package: xpkg.upbound.io/upbound/provider-aws-s3:v1 }EOF
Providers bring CRDs
Installing a provider registers its custom resource definitions, so the cluster suddenly knows about dozens or hundreds of new kinds — Bucket, Instance, Vpc. You can watch them appear, and from then on those cloud resources are first-class Kubernetes objects you get, describe, and apply. Modern AWS/Azure/GCP providers are split into families (per-service packages) so you install only the services you use rather than one giant provider.
$ kubectl get providersNAME INSTALLED HEALTHYprovider-aws-s3 True True$ kubectl api-resources | grep s3.awsbucket s3.aws.upbound.io/v1beta1 Bucket # a new CRD, ready to use