This subordinate charm manages the cloud controller-manager components for gcp.
- these polices are defined as prerequisites
- the primary unit, the gcp-integrator application must have access to create IAM Policies
The charm requires gcp credentials and connection information, which
can be provided the gcp-integration relation to the GCP Integrator charm.
The GCP Cloud Provider subordinate charm can be deployed alongside Charmed Kubernetes using the overlay provided in the Charmed Kubernetes bundle repository:
juju deploy charmed-kubernetes --overlay gcp-cloud-overlay.yamljuju deploy charmed-kubernetes
juju deploy gcp-integrator --trust
juju deploy gcp-cloud-provider
juju relate gcp-cloud-provider:certificates easyrsa
juju relate gcp-cloud-provider:kube-control kubernetes-control-plane
juju relate gcp-cloud-provider:external-cloud-provider kubernetes-control-plane
juju relate gcp-cloud-provider:gcp-integration gcp-integrator
## wait for the gcp controller daemonset to be running
# the cloud-controller will set the node's ProviderID
kubectl describe nodes |egrep "Taints:|Name:|Provider"- to access Native GCP storage, see the GCP Storage charm.
- Requires a
charmed-kubernetesdeployment on a gcp cloud launched by juju with theallow-privilegedflag enabled. - Deploy the
gcp-integratorcharm into the model using--trustso juju provided vsphere credentials - Deploy the
gcp-cloud-providercharm in the model relating to the integrator and to charmed-kubernetes components - Once the model is active/idle, the cloud-provider charm will have successfully deployed the gcp controller-manager in the kube-system namespace
- Taint the existing nodes so the controller will apply the correct provider id to those nodes.
- Confirm the
ProviderIDis set on each node - For the controller to operate, the gcp-integrator charm will apply the appropriate IAM policies and standardize the cluster-tag
- the Kubernetes-Worker and Kuberenetes-Control-Plane charms start their binaries with
--external-providerrather than the in-tree switch--cloud-provider=gcpwhich has been removed starting in kubernetes 1.27
Please see the Juju SDK docs for guidelines on enhancements to this charm following best practice guidelines, and CONTRIBUTING.md for developer guidance.