This repository is a helm chart that contains all the charts that are used by provisioned Hub clusters.
The charts
directory contains forked charts that require edits beyond the scope that their values originally provided. If at all possible,
we should avoid forking charts and should instead the values should be updated to provide the desired functionality in templates
. However,
if that is not possible, the forked chart should be kept as close to the original as possible.
To package all these charts
, run ./scripts/package.sh
. This will package the charts into the docs
directory so long as the script
has been updated to be aware of any new charts.
For the purposes of using istio withing provisioned clusters, we have forked the upstream Istiod
chart and setup:
- A second Istiod Deployment called
istiod-master
with hardcoded nodeAffinity to run only on master nodes. - Hardcoded nodeAffinity on the other
istiod
Deployment to run only on worker nodes. - A second HPA and PDB to target the
istiod-master
Deployment. - A new Service in the
istio-system
namespace calledistiod-remote
that only selects pods from theistiod-master
Deployment. - The
MutatingWebhookConfiguration
to send requests to theistiod-remote
Service
only.
These edits were not possible outside of directly editing the chart. The upstream chart's values would not allow us to do this so we had to fork it.
The templates
directory contains the k3s HelmChart
resources. These deploy the charts packaged from the charts
directory as well as any other upstream charts. They can
be controlled to be deployed or not via the values.yaml
file.
The docs
directory contains the packaged helm charts. They are served via GitHub pages at https://acorn-io.github.io/hub-system-charts/{chart}.tgz. While they
can be installed individually, they are intended to be installed all together via the aggregate chart defined by Chart.yaml
.
Currently, these include: