Simple web app with a status endpoint
Used mainly to test the setup of a k3s cluster on raspberryPi 4 (Ubuntu server 64bit)
Checkable at https://api.shipperizer.org/api/v0/status
shipperizer@xxx 9:36:57 π http https://api.shipperizer.org/api/v0/status
HTTP/1.1 200 OK
Content-Length: 25
Content-Type: text/plain; charset=utf-8
Date: Fri, 09 Apr 2021 08:43:37 GMT
Vary: Accept-Encoding
{
"message": "Purple Bro"
}
Build setup is for multiarch support, a requirements for this is buildx
For skaffold
integration i followed the suggestion here as ther eis no direct integration between skaffold
and buildx
Images are pushed to ghcr.io/shipperizer/furry-train-web-app
, k3s
cluster has a secret allowing it to pull them, see the snippet below in deployments.yaml
containers:
- image: ghcr.io/shipperizer/furry-train-web-app
name: furry-train-web-app
envFrom:
- configMapRef:
name: furry-train-web-app
name: furry-train-web-app
ports:
- name: http
containerPort: 8000
imagePullSecrets:
- name: regcred-github
For kaniko
builds, use the --profile kaniko
modifier on skaffold
, for this you will need an Opaque
secret:
echo '{"auths":{"ghcr.io":{"auth":"****************"}}}' | kubectl create secret generic regcred-github-kaniko --from-file=config.json=/dev/stdin
the profile is targeted at building on an arm64
cluster only, if you need to use a different arch change initImage
and image
values
ArgoCD is used (together with ArgoCD image updater) to keep application up-to-date
see the argocd-app.yaml
for extra informations
local setup will be described eventually in here, step by step
Plan is to setup argocd
and argocd image updater
to pull images and update the deployment files, skaffold
will be used only for local/manual deployment