Quick Start
The recommended method for installing Canary Checker is using helm
1. Deploy Canary Checker
Using Helm
Add the Flanksource helm repository
helm repo add flanksource https://flanksource.github.io/charts
helm repo update
To install into a new canary-checker
namespace, run
helm install \
canary-checker \
flanksource/canary-checker \
-n canary-checker \
--create-namespace \
--wait \
-f values.yaml
values.yamlflanksource-ui:
ingress:
host: canary-checker.127.0.0.1.nip.io
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: 'true'
tls:
- secretName: canary-checker-tls
hosts:
- canary-checker.127.0.0.1.nip.io
Using Flux CD
apiVersion: v1
kind: Namespace
metadata:
name: canary-checker
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: flanksource
namespace: canary-checker
spec:
interval: 5m
url: https://flanksource.github.io/charts
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: canary-checker
namespace: canary-checker
spec:
interval: 5m
chart:
spec:
chart: canary-checker
sourceRef:
kind: HelmRepository
name: flanksource
interval: 1m
values:
flanksource-ui:
ingress:
host: canary-checker.127.0.0.1.nip.io
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: 'true'
tls:
- secretName: canary-checker-tls
hosts:
- canary-checker.127.0.0.1.nip.io
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: canary-checker
namespace: flux-system
spec:
interval: 5m
sourceRef:
kind: GitRepository
name: <Flux Gitrepo Name>
path: path/to/canary-checker/helmrelease/folder
prune: true
healthChecks: # wait for the HelmRelease to be reconciled with
- apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
name: canary-checker
namespace: canary-checker
info
Note the default installation of canary-checker uses an embedded postgres database and does not persist history, see: Database
3. Create a canary
cat <<EOF | kubectl apply -f -
apiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
name: http-check
spec:
interval: 30
http:
- name: http pass response 200 status code
url: https://httpbin.demo.aws.flanksource.com/status/200
EOF
4. Check the results via the CLI
kubectl get canary
NAME INTERVAL STATUS LAST CHECK UPTIME 1H LATENCY 1H LAST TRANSITIONED
http-check 30 Passed 13s 18/18 (100.0%) 480ms 13s
5. Access the dashboard
You can access the web dashboard by forwarding the port:
kubectl -n canary-checker port-forward svc/canary-checker-ui 8080:80
To deploy an ingress for the dashboard, update the values.yaml
:
flanksource-ui:
enabled: true
ingress:
annotations:
kubernetes.io/tls-acme: 'true'
host: <DOMAIN>
tls:
- hosts:
- <DOMAIN>
secretName: ingress-tls