5 Oracle Cloud Infrastructure Provider

Learn about the oci provider used to create Kubernetes clusters on Oracle Cloud Infrastructure.

Kubernetes clusters are deployed to Oracle Cloud Infrastructure using the oci provider. The oci provider uses the Kubernetes Cluster API Provider for Oracle Cloud Infrastructure to perform the deployment. This is an implementation of the Kubernetes Cluster API. The Kubernetes Cluster API is implemented as Kubernetes Custom Resources (CRs), that are serviced by applications running in a Kubernetes cluster. The Kubernetes Cluster API has a large interface and is explained in the upstream documentation. For information on the Kubernetes Cluster API, see the Kubernetes Cluster API documentation. For information the Cluster API implementation for Oracle Cloud Infrastructure, see the Kubernetes Cluster API Provider for Oracle Cloud Infrastructure documentation.

Creating a cluster on Oracle Cloud Infrastructure requires you to provide the credentials to an existing tenancy. The required privileges depend on the configuration of the cluster that's created. For some deployments, it might be enough to have the privileges to create and destroy compute instances. For other deployments, more privilege might be required.

Clusters are deployed into specific compartments. The oci provider requires that a compartment is available. Compartments can be specified either by the Oracle Cloud Identifier (OCID), or by its path in the compartment hierarchy, for example, parentcompartment/mycompartment.

The controllers that implement the Kubernetes Cluster API run inside a Kubernetes cluster. These clusters are known as management clusters. Management clusters control the life cycle of other clusters, known as workload clusters. A workload cluster can be its own management cluster.

Using the Kubernetes Cluster API to deploy a cluster on Oracle Cloud Infrastructure requires that a Kubernetes cluster is available. Any running cluster can be used. To set the cluster to use, set the KUBECONFIG environment variable, or use the --kubeconfig option of ocne commands. You could also set this cluster using a configuration file. If no cluster is available, a cluster is created automatically using the libvirt provider, with the default configuration. This cluster is known as a bootstrap cluster, or an ephemeral cluster, depending on the context.

When a cluster has been deployed, it's managed using the Kubernetes Cluster API resources in the management cluster.

A workload cluster can be its own management cluster. This is known as a self-managed cluster. When the cluster has been deployed by a bootstrap cluster, the Kubernetes Cluster API resources are migrated from the bootstrap cluster into the new cluster.