Commit 42780d19 authored by DJ Mountney's avatar DJ Mountney

Merge branch 'docs-cleanup-architecture-naming' into 'master'

Docs: cleanup Architecture documentation

See merge request charts/gitlab!756
parents ed0106a7 8adfdc15
Pipeline #56424065 failed with stages
in 10 minutes and 57 seconds
# Design Decisions
This documentation collects reasoning and documentation regard decisions made
regarding the design of the charts in this repository.
regarding the design of the Helm charts in this repository.
## Breaking changes via deprecation
......@@ -20,7 +20,7 @@ will cause the helm `install` or `upgrade` commands to stop with a parse error,
All deprecations must be addressed in order for a successful deployment to occur. We believe
the user would prefer to be informed of a breaking change over experiencing unexpected
behavior complete failure that requires debugging.
behavior or complete failure that requires debugging.
Introduced in [!396 Deprecations: implement buffered list of deprecations](
......@@ -29,7 +29,7 @@ Introduced in [!396 Deprecations: implement buffered list of deprecations](https
Much of the container ecosystem has, or expects, the capability to be configured
through environment variables. This [configuration practice](
stems from the concept of [The Twelve-Factor App]( This
greatly simplifies configuration across multiple deployment environemnts, there
greatly simplifies configuration across multiple deployment environments, but there
remains a security concern with passing connection secrets such as passwords and
private keys via the container's environment.
......@@ -47,6 +47,7 @@ This concern is why we've decided to prefer the population of sensitive informat
via [initContainers][].
Related issues:
- [#90](
- [#114](
......@@ -63,6 +64,7 @@ properties facilitated by the global chart.
This decision simplifies both the use and maintenance of the repository as a whole.
Related issue:
- [#352](
## Template partials for `gitlab/*` should be global whenever possible
......@@ -73,13 +75,16 @@ GitLab sub-chart `templates/_helpers.tpl` whenever possible. Templates from
the maintenance impact of these forks.
The benefits of this are straight-forward:
- Increased DRY behavior, leading to easier maintenance. There should be no reason
to have duplicates of the same function across multiple sub-charts when a single
entry will suffice.
- Reduction of template naming conflicts. All [partials throughout a chart are compiled together][helm-dev-doc],
and thus we can treat them like the global behavior they are.
Related issue:
- [#352](
......@@ -17,11 +17,13 @@ downstream Kubernetes projects like OpenShift and Tectonic. In the future other
schedulers may also be supported like Docker Swarm and Mesosphere.
We aim to support the scaling and self-healing capabilities of Kubernetes:
* Readiness and Health checks to ensure pods are functioning, and if not to recycle them
* Tracks to support canary and rolling deployments
* [Auto-scaling](
We will try to leverage standard Kubernetes features:
* ConfigMaps for managing configuration. These will then get mapped or passed to
Docker containers
* Secrets for sensitive data
......@@ -40,9 +42,3 @@ We plan to offer a three tiered set of Helm Charts
![Helm Chart Structure](../images/charts.png)
## Redis and Postgres Charts
We will also likely need to create specific charts for Redis and Postgres.
One reason is that there is a bug with variable handling between parent and
child charts, but also because we will need to include the respective Prometheus exporters
as well.
# Architecture of
# Architecture of Cloud native GitLab Helm charts
Documentation Organization:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment