This repo contains two "educational" helm charts, useful for exploration, local development and testing.
-
The first chart is simply called "argo" here. Applications like Argo Workflows can be quite tricky to set up, so once you have a working dev system, it becomes easier to experiment with, and adapt it to your liking and production environment requirements so that it offers a clear migration path. For details on what applications are deployed with the
argo
chart, see the Argo chart README.md. -
A second
argo-event-based-operator
chart is provided, containing an example on how to use Argo Workflows in conjunction with Argo Events to create a Kubernetes Operator.
The purpose of this repo is to provide an "umbrella helm chart" for a local dev/test setup of the Argo ecosystem, with batteries included. This allows you to freely experiment and muck around without requiring access to a full cloud cluster. All applications work out of the box. Hints on application logins are provided by the installation NOTES.txt.
The Agro-batteries-included chart is for education, experimentation and exploration only. Do NOT under any circumstance use this chart for ANY kind of production environment! Although every single component used can be configured in a secure manner, it is insecure in this chart due to the configuration provided here:
- dead giveaway default passwords,
- exposed endpoints,
- missing database backups,
- insecure authentication and/or
- disabled authentication.
Please check every security setting, if possible with your cloud security engineer in order to reshape the settings provided here into a security-hardened setup. Make sure you enable TLS encryption where applicable and available, disable the default password settings and disable every Ingress that should not expose infrastructure to the outside world.
The Argo ecosystem is an incredibly useful set of tools for managing workflows, events and releases. However:
- The default settings for the Argo Helm charts leave quite a bit of configuration and tweaking to set in order to get a working development environment. This Helm chart is intended to help you set up full-featured Argo components, with batteries included.
- Also: this chart is targeted specifically at local "bare metal" or minimal development or testing installation environments, rather than full-scale large cloud clusters. Once you reach that stage, you have probably (re-)visited every configuration setting that this chart provides as a "getting started" resource.
- I scratched an itch I had for a while. With Argo Events and Argo Workflows, you can replace basically any operator
framework with something that has a lot better logging and archiving, is much more transparent, has less code you
need to be concerned with (much of it is, admittedly, hidden in the Argo applications) and is much more
multi-purpose. The result of this itch is in
the
argo-event-based-operator
chart.
For now, I've decided to run with a simple Makefile approach, which keeps things extremely simple. After installing
- k3s (tested), minikube (untested), minik8s (never tried) or any other installation that provides a Kubernetes control plane,
- and Helm
you can start hacking!
make install
and the entire umbrella chart is deployed. This also takes care of creating the operators
and data
namespaces. If
you want to install to other namespaces, you need to either edit or override the settings in both the
Makefile and charts/argo/values.yaml.
make uninstall
This will not delete the operators
and data
namespaces, in case you started deploying other stuff there as well.
Also: the data volume for PostgreSQL is kept, so the Workflow archive is still present. It does, however, delete the
MinIO bucket data.
Once you have deployed and want to tweak the deployment settings, you can update the Argo release using
make update
- Easy reconfigurable support for installing into namespaces other than
operators
anddata
. - Easily configurable way to keep MinIO persistent volumes after uninstall. Something to do with the deletion policy of the PV(C).
- Metrics for services