Install Flux
See https://fluxcd.io/docs/installation/#install-the-flux-cli
...
Code Block |
---|
$ curl -s https://fluxcd.io/install.sh | sudo bash |
Generate a User Token in GitHub
https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
...
Code Block |
---|
|
$ export GITHUB_TOKEN=xxxx
$ export GITHUB_USER=johnmehan |
Bootstrap the Repository
Perform pre-check to make sure we are able to install flux.
...
Code Block |
---|
|
$ flux bootstrap github --owner=$GITHUB_USER --repository=<REPO_NAME> --branch=main --path=<CLUSTER_NAME> --personal
# example
$ flux bootstrap github --owner=$GITHUB_USER --repository=ft --branch=main --path=local --personal |
...
Git Clone New Repo
Code Block |
---|
|
$ git clone git@github.com:johnmehan/ft.git
$ cd ft
$ cd local |
Create Helm Repository
Create secret for flux to use to talk to the helm repository
Code Block |
---|
|
$ kubectl create secret generic acr --from-literal username=mehan --from-literal "password=xxx" -n flux-system |
Create a helm repoDefine Helm Repo
Code Block |
---|
|
$ flux create source helm ncyd-helm-virtual --url https://artifactory-fpark1.int.net.nokia.com/artifactory/ncyd-helm-virtual --interval 1m0s --secret-ref=acr --export > >helmrepohelmrepo-ncyd-helm-virtual.yaml |
View Repo
Code Block |
---|
|
- | ncyd.yaml---
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: HelmRepository
metadata:
name: ncyd-helm-virtual
namespace: flux-system
spec:
interval: 1m0s
secretRef:
name: acr
url: https://artifactory-fpark1.int.net.nokia.com/artifactory/ncyd-helm-virtual
passCredentials: true |
Commit the newly created file.
Code Block |
---|
$ git add <file>
$ git commit
$ git push
|
...
Code Block |
---|
|
$ flux get sources helm
NAME READY MESSAGE REVISION SUSPENDED
ncyd True Fetched revision: 732d32e292bd0def8d5782211f139523d23880a1 732d32e292bd0def8d5782211f139523d23880a1 False |
Create
...
a Helm Release
Create secret for flux to use to talk to the helm repository
Code Block |
---|
|
$ kubectl create secret generic acr --from-literal username=mehan --from-literal "password=xxx" -n flux-system |
Create a helm repo
Code Block |
---|
|
$ flux create source helm ncyd-helm-virtual --url https://artifactory-fpark1.int.net.nokia.com/artifactory/ncyd-helm-virtual --interval 1m0s --secret-ref=acr --export > helmrepo-ncyd-helm-virtual.yaml |
View Repo
Code Block |
---|
|
---
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: HelmRepository
metadata:
name: ncyd-helm-virtual
namespace: flux-system
spec:
interval: 1m0s
secretRef:
name: acr
url: https://artifactory-fpark1.int.net.nokia.com/artifactory/ncyd-helm-virtual/ |
Code Block |
---|
|
$ flux create helmrelease ssh-server --source=HelmRepository/ncyd-helm-virtual --chart ssh-server --release-name ssh-server --target-namespace default --interval 5m0s --export > helmrelease-ssh-server.yaml |
You may want to update this helmrelease helm release to override certain values
...
Code Block |
---|
|
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: ssh-server
namespace: flux-system
spec:
chart:
spec:
chart: ssh-server
version: '1.0.0-13624391362206'
sourceRef:
kind: HelmRepository
name: ncyd-helm-virtual
interval: 5m0s
releaseName: ssh-server
targetNamespace: default
values:
usePasswordsome: falsetrue |
Now, commit this file to your git and wait a little bit before executing the following command:
Code Block |
---|
|
$ flux get helmreleases |
To force a reconciliation, you can issue the following command:
Code Block |
---|
flux reconcile ks flux-system --with-source |
Debugging a Failed Helm Release
You may some of the following commands in order to determine the failure.Debug a Failed helmrelease
Code Block |
---|
|
# get list of helmreleases
$ flux get hr -A
# get details about the helmrelease
$ kubectl describe helmrelease ssh-server<HR_NAME> -n flux-system
$# See fluxlogs getin hrsource -A
controller
$ kubectl logs -f -n flux-system deployment/source-controller
$ flux reconcile ks flux-system --with-source |
References
...