Commit 8adfdc15 authored by Jason Plum's avatar Jason Plum

Docs: cleanup Architecture documentation

- Cleanup formatting of doc/architecture, especially lists
- Cleanup a few language gaffs
- Replace 'helm.gitlab.io' name
- Remove comment on custom PgSQL & Redis charts, as no longer correct

[ci skip]
parent bfca884a
Pipeline #56319522 skipped
# 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](https://gitlab.com/charts/gitlab/merge_requests/396)
......@@ -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](https://12factor.net/config)
stems from the concept of [The Twelve-Factor App](https://12factor.net). 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](https://gitlab.com/charts/gitlab/issues/90)
- [#114](https://gitlab.com/charts/gitlab/issues/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](https://gitlab.com/charts/gitlab/issues/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](https://gitlab.com/charts/gitlab/issues/352)
[helm-dev-doc]: https://docs.helm.sh/chart_template_guide/#declaring-and-using-templates-with-define-and-template
......
......@@ -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](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)
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 helm.gitlab.io
# 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