Experimental repo looking at getting helmfile working with a jx boot config repo.
- 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
There's lots of info on the helmfile github repo, take a look to see how things fit together.
git clone [email protected]:jenkins-x-labs/boot-helmfile-poc.git
cd boot-helmfile-poc
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
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: ""
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
helmfile destroy
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
.
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.
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.
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.