The folder contains the following top directories:
providerscontains Crossplane providers- resources dir contains Crossplane managed resources and composite resources.
└── cloud
├── providers
│ ├── base
│ ├── dev
│ ├── prod
│ └── staging
└── resources
├── base
├── dev
├── prod
└── staging
- A Kubernetes cluster with at least 6 GB of RAM permissions to create pods and secrets in the Kubernetes cluster
- Helm version v3.2.0 or later
- A GCP account with permissions to create a storage bucket
- GCP account keys
- GCP Project ID
Steps to provision a Crossplane cluster so that it can manage GKE resources.
A provider installs their own Kubernetes Custom Resource Definitions (CRDs). These CRDs allow you to create GCP resources directly inside Kubernetes.
You can view the new CRDs with kubectl get crds. Every CRD maps to a unique GCP service Crossplane can provision and manage.
The provider requires credentials to create and manage GCP resources. Providers use a Kubernetes Secret to connect the credentials to the provider.
For basic user authentication, use a Google Cloud service account JSON file. See the GCP Docs.
Save the JSON file as gcp-credentials.json. Its base64 encoded value is the one that will go
to the secret.
A ProviderConfig customizes the settings of the GCP Provider.
Now that the provider is configured we can create Kubernetes resources so Crossplane defines the required state in our target cloud provider.
The ./resources/ folder has some managed resource examples.