jx-boot-helmfile
Experimental repo looking at getting helmfile working with a jx boot config repo.
prerequisits
- helmfile
brew install helmfile
- note this also installs a helm 3 binary on your$PATH
- helm plugins
helm plugin install https://github.com/aslafy-z/helm-git.git
helm plugin install https://github.com/databus23/helm-diff
-
clean Jenkins X cluster created with
jx create cluster gke --skip-installation
-
jx
version2.0.1145
or later
running the helmfile installer
There's lots of info on the helmfile github repo, take a look to see how things fit together.
git clone git@github.com:jenkins-x-labs/boot-helmfile-poc.git
cd boot-helmfile-poc
modify requirements
modify the jx-requirements.yml
to modify the cluster
fields to point to your cluster:
clusterName
project
zone
- set
gitops: false
for now while you work on your local checkout
setup Secrets
write some installation secrets to a file using the template below, this is a temporary solution
vi $HOME/.jx/localSecrets/{{ add your cluster name }}/secrets.yaml
secrets:
adminUser:
username: "admin"
password: ""
hmacToken: ""
pipelineUser:
username: ""
email: ""
token: ""
run boot
from inside your git clone run boot - making sure you have $JX_SECRETS_DIR set to point to your secrets:
export JX_SECRETS_DIR=$HOME/.jx/localSecrets/{{ add your cluster name }}/
jx boot -b --no-update-git
using a recent jx
version
uninstall
helmfile destroy
Source Layout
We still have a boot pipeline in the jenkins-x.yml file though its much simpler; mostly invoking jx step verify XXX
commands and then invoking helmfile sync
.
Apps folder
The main application charts get installed via the apps/helmfile.yaml file which is quite similar to the traditional env/requirements.yaml file in the classic boot configuration.
Then rather like in the classic boot env folder we have child folders in the apps folder which can contain custom values.yaml
or values.yaml.gotmpl
files to override any values for a file.
Also note the use of values:
inside the apps/helmfile.yaml to configure which values files are used for which app.
Repositories folder
The repositories folder mirrors the folder of the same name in jenkins-x-boot-config and is a chart which contains any SourceRepository
YAML files in repositories/templates which are generated by the jx create quickstart / jx import
commands.
System folder
The system folder contains the system/helmfile.yaml for setting up system level charts for core services which need setting up before Ingress / TLS / Certs and the like.