The gateway-certs-generator
is an opinionated single-file OpenVPN TLS certificate configuration generator for slice gateways. It enhances easy-rsa
(typically bundled with OpenVPN).
easy-rsa
is a CLI tool/utility to build and manage a PKI CA. use the CLI tool easy-rsa
. Using the tool, create a root certificate authority, and request and sign certificates including intermediate CAs and certificate revocation lists (CRL).
It is strongly recommended that you use a released version.
Refer to our documentation on:
To generate certificates, the controller requires the 'gateway-cert-generator' image. So, we create the image and use the image version in the controller values file.
Before you begin, make sure the following prerequisites are met:
- Docker is installed and running on your local machine.
- A running
kind
cluster. kubectl
is installed and configured.- You have prepared the environment to install
kubeslice-controller
on the controller cluster andworker-operator
on the worker cluster. For more information, see Prerequisites.
If you have not added avesha helm repo
yet, add it.
helm repo add avesha https://kubeslice.github.io/charts/
Upgrade the avesha helm repo.
helm repo update
To download the latest docker image for gateway-certs-generator, click here.
-
Clone the latest version of gateway-certs-generator from the
master
branch.git clone https://github.com/kubeslice/gateway-certs-generator.git cd gateway-certs-generator
-
Modify the image name variable
IMG
in theMakefile
to change the docker tag to be built. The default image is set asIMG ?= aveshasystems/gateway-certs-generator:latest
. Modify as needed.make docker-build
- Load the gateway-certs-generator image into your kind cluster (kind).
If needed, replace
aveshasystems/gateway-certs-generator
with your locally built image name in the previous step.
-
Note: If you use a named cluster, specify the name of the cluster you wish to load the images into. See loading an image into your kind cluster.
kind load docker-image aveshasystems/gateway-certs-generator --name cluster-name
Example
kind load docker-image aveshasystems/kubeslice-controller --name kind
- Check the loaded image in the cluster. Modify the node name if required.
-
Note:
kind-control-plane
is the name of the Docker container. Modify as needed.docker exec -it kind-control-plane critical images
- Create the chart values file called
yourvaluesfile.yaml
. Refer to values.yaml to update thekubeslice-controller
image to the local build image.
From the sample:
kubeslice:
---
---
ovpnJob:
---
---
image: aveshasystems/gateway-certs-generator
tag: 0.1.0
Change it to:
kubeslice:
---
---
ovpnJob:
---
---
image: <my-custom-image>
tag: <unique-tag>
-
Deploy the updated chart.
make chart-deploy VALUESFILE=yourvaluesfile.yaml
For more information, see uninstalling KubeSlice.
make chart-undeploy
Apache License 2.0