DO-K8s ¶
Cluster.dev uses stack templates to generate users' projects in a desired cloud. DO-K8s is a stack template that creates and provisions Kubernetes clusters in the DigitalOcean cloud.
On this page you will find guidance on how to create a Kubernetes cluster on DigitalOcean using one of the Cluster.dev prepared samples – the DO-K8s stack template. Running the example code will have the following resources created:
-
DO Kubernetes cluster with addons:
-
cert-manager
-
argocd
-
-
(optional, if vpc_id is not set) VPC for Kubernetes cluster
Prerequisites ¶
-
Terraform version 1.4+
-
DigitalOcean account
Authentication ¶
Create an access token for a user.
Info
Make sure to grant the user with administrative permissions.
For details on using DO spaces bucket as a backend, see here.
DO access configuration ¶
-
Install
doctl
. For more information, see the official documentation. -
Export your DIGITALOCEAN_TOKEN - for details see here.
-
Export SPACES_ACCESS_KEY_ID and SPACES_SECRET_ACCESS_KEY environment variables - for details see here.
-
Create a spaces bucket for Terraform states in the chosen region (in the example we used the 'cdev-data' bucket name).
-
Create a domain in DigitalOcean domains service.
Info
In the project generated by default we used 'k8s.cluster.dev' zone as an example. Please make sure to change it.
Create project ¶
-
Configure access to DigitalOcean and export required variables.
-
Create locally a project directory, cd into it and execute the command:
This will create a new, empty project. -
Edit variables in the example's files, if necessary:
-
project.yaml
- main project config. Sets common global variables for the current project, such as organization, region, state bucket name etc. See project configuration docs. -
backend.yaml
- configures backend for Cluster.dev states (including Terraform states). Uses variables fromproject.yaml
. See backend docs. -
stack.yaml
- describes stack configuration. See stack docs.
-
-
Run
cdev plan
to build the project. In the output you will see an infrastructure that is going to be created after runningcdev apply
.Note
Prior to running
cdev apply
, make sure to look through thestack.yaml
file and replace the commented fields with real values. In case you would like to use existing VPC and subnets, uncomment preset options and set correct VPC ID and subnets' IDs. If you leave them as is, Cluster.dev will have VPC and subnets created for you. -
Run
cdev apply
Tip
We highly recommend running
cdev apply
in a debug mode so that you can see the Cluster.dev logging in the output:cdev apply -l debug
-
After
cdev apply
is successfully executed, in the output you will see the ArgoCD URL of your cluster. Sign in to the console to check whether ArgoCD is up and running and that the stack template has been deployed correctly. To sign in, use the "admin" login and the bcrypted password that you have generated for thestack.yaml
. -
Displayed in the output will also be a command on how to get kubeconfig and connect to your Kubernetes cluster.
-
Destroy the cluster and all created resources with the command
cdev destroy