Getting Started¶
Setting up Welkin consists of two parts: setting up at least two Kubernetes Clusters and deploying welkin-apps on top of them.
In theory, any Kubernetes Cluster can be used for Welkin. We suggest to use Kubespray or Cluster-API.
Before you start¶
Note
The following ZIP files are retrieved from Elastisys.
Download and extract the ZIP archives for the following:
welkin-appswelkin-kubesprayorwelkin-cluster-api
cd </path/to/zips>
unzip welkin-apps-v0.51.5.zip -d welkin-apps
unzip welkin-kubespray-v2.28.0-ck8s1.zip -d welkin-kubespray
unzip welkin-cluster-api-v0.9.0.zip -d welkin-cluster-api
Install the following required tools:
Pre-requisites for Kubespray¶
The following tools are necessary for Kubespray.
Ansible for Kubespray and Terraform is best installed as follows:
cd welkin-kubespray
pip3 install -r kubespray/requirements.txt
ansible-playbook -e 'ansible_python_interpreter=/usr/bin/python3' --ask-become-pass --connection local --inventory 127.0.0.1, get-requirements.yaml
Pre-requisites for Cluster-API¶
Install pre-requisites for Cluster-API:
welkin-cluster-api/bin/ck8s-capi install-requirements
Pre-requisites for Welkin Apps¶
Install pre-requisites for Welkin Apps:
welkin-apps/bin/ck8s install-requirements
Optional tools¶
For debugging, you may want CLI tools to interact with your chosen Infrastructure Provider:
Secrets Encryption (SOPS & GPG)¶
Important
Welkin recommends storing GPG and SSH keys on a personal HSM, such as YubiKey. Please consult documentation from the personal HSM vendor to generates keys on-device, so as to make sure that private keys cannot be exfiltrated even if the platform administrator's workstation is compromised. This section provides documentation for platform administrators without access to a personal HSM.
Welkin uses SOPS to encrypt configuration secrets. We currently only support using PGP when encrypting secrets.
1. Generate a GPG Key¶
If you do not already have a GPG key, generate one now.
- Run the generation command:
gpg --full-generate-key
- When prompted: - Select RSA and RSA (default). - Choose a key size of 4096 bits. - Set the expiration as preferred. - Enter your Name and Email.
2. Verify GPG Setup¶
To ensure SOPS can use your GPG key, locate your GPG Fingerprint:
gpg --list-secret-keys --keyid-format LONG
Note
You will need this fingerprint later to set the CK8S_PGP_FP environment variable to initialize your Welkin configuration.
After initialization, a .sops.yaml file is created at $CK8S_CONFIG_PATH/.sops.yaml. This file controls which keys are used for encrypting the configuration secrets after initialization.
Misc¶
Welkin relies on SSH for accessing Nodes. If you haven't already done so, generate an SSH key as follows:
ssh-keygen