GitLab's Auto-deploy Helm Chart
Deprecation Notice
GitLab is moving all development for auto-deploy-app
into auto-deploy-image
.
Going forward, the auto-deploy-app
Helm chart will be bundled with auto-deploy-image
and will no longer released as a stand-alone Helm chart. Existing releases of auto-deploy-app
will remain in GitLab's chart registry.
If you have any questions, please ask in https://gitlab.com/gitlab-org/charts/auto-deploy-app/-/issues/70.
Requirements
- Helm
2.9.0
and above is required in order support"helm.sh/hook-delete-policy": before-hook-creation
for migrations
Configuration
Parameter | Description | Default |
---|---|---|
replicaCount | 1 |
|
strategyType | Pod deployment strategy | nil |
enableSelector | If true , enables selector field for the deployment. Only applicable for extensions/v1beta1 , as selector field will always be included for apps/v1
|
nil |
deploymentApiVersion | Sets apiVersion field for the deployment. Can be set to either extensions/v1beta1 or apps/v1 . |
extensions/v1beta1 |
image.repository | gitlab.example.com/group/project |
|
image.tag | stable |
|
image.pullPolicy | Always |
|
image.secrets | [name: gitlab-registry] |
|
podAnnotations | Pod annotations | {} |
application.track | stable |
|
application.tier | web |
|
application.migrateCommand | If present, this variable will run as a shell command within an application Container as a Helm pre-upgrade Hook. Intended to run migration commands. | nil |
application.initializeCommand | If present, this variable will run as shell command within an application Container as a Helm post-install Hook. Intended to run database initialization commands. When set, the Deployment resource will be skipped. | nil |
application.secretName | Pass in the name of a Secret which the deployment will load all key-value pairs from the Secret as environment variables in the application container. | nil |
application.secretChecksum | Pass in the checksum of the secrets referenced by application.secretName . |
nil |
hpa.enabled | If true, enables horizontal pod autoscaler. A resource request is also required to be set, such as resources.requests.cpu: 200m . |
false |
hpa.minReplicas | 1 |
|
hpa.maxReplicas | 5 |
|
hpa.targetCPUUtilizationPercentage | Percentage threshold when HPA begins scaling out pods | 80 |
gitlab.app | GitLab project slug. | nil |
gitlab.env | GitLab environment slug. | nil |
gitlab.envName | GitLab environment name. | nil |
gitlab.envURL | GitLab environment URL. | nil |
service.enabled | true |
|
service.annotations | Service annotations | {} |
service.name | web |
|
service.type | ClusterIP |
|
service.url | http://my.host.com/ |
|
service.additionalHosts | If present, this list will add additional hostnames to the server configuration. | nil |
service.commonName | If present, this will define the ssl certificate common name to be used by CertManager. service.url and service.additionalHosts will be added as Subject Alternative Names (SANs) |
nil |
service.externalPort | 5000 |
|
service.internalPort | 5000 |
|
ingress.enabled | If true, enables ingress | true |
ingress.tls.enabled | If true, enables SSL | true |
ingress.tls.secretName | Name of the secret used to terminate SSL traffic | "" |
ingress.modSecurity.enabled | Enable custom configuration for modsecurity, defaulting to the Core Rule Set | false |
ingress.modSecurity.secRuleEngine | Configuration for ModSecurity's rule engine | DetectionOnly |
ingress.modSecurity.secRules | Configuration for custom ModSecurity's rules | nil |
ingress.annotations | Ingress annotations | {kubernetes.io/tls-acme: "true", kubernetes.io/ingress.class: "nginx"} |
livenessProbe.path | Path to access on the HTTP server on periodic probe of container liveness. | / |
livenessProbe.scheme | Scheme to access the HTTP server (HTTP or HTTPS). | HTTP |
livenessProbe.initialDelaySeconds | # of seconds after the container has started before liveness probes are initiated. | 15 |
livenessProbe.timeoutSeconds | # of seconds after which the liveness probe times out. | 15 |
livenessProbe.probeType | Type of liveness probe to use. | httpGet |
livenessProbe.command | Commands for use with probe type 'exec'. | {} |
readinessProbe.path | Path to access on the HTTP server on periodic probe of container readiness. | / |
readinessProbe.scheme | Scheme to access the HTTP server (HTTP or HTTPS). | HTTP |
readinessProbe.initialDelaySeconds | # of seconds after the container has started before readiness probes are initiated. | 5 |
readinessProbe.timeoutSeconds | # of seconds after which the readiness probe times out. | 3 |
readinessProbe.probeType | Type of readiness probe to use. | httpGet |
readinessProbe.command | Commands for use with probe type 'exec'. | {} |
postgresql.enabled | true |
|
postgresql.managed | If true, this will provision a managed Postgres instance via crossplane. | false |
postgresql.managedClassSelector | This will allow provisioning a Postgres instance based on label selectors via Crossplane, eg: managedClassSelector.matchLabels.stack: gitlab . The postgresql.managed value should be true as well for this to be honoured. Crossplane Configuration
|
{} |
podDisruptionBudget.enabled | false |
|
podDisruptionBudget.maxUnavailable | 1 |
|
podDisruptionBudget.minAvailable | If present, this variable will configure minAvailable in the PodDisruptionBudget. ⚠️ if you have replicaCount: 1 and podDisruptionBudget.minAvailable: 1 kubectl drain will be blocked. |
nil |
prometheus.metrics | Annotates the service for prometheus auto-discovery. Also denies access to the /metrics endpoint from external addresses with Ingress. |
false |
networkPolicy.enabled | Enable container network policy | false |
networkPolicy.spec | Network policy definition | { podSelector: { matchLabels: {} }, ingress: [{ from: [{ podSelector: { matchLabels: {} } }, { namespaceSelector: { matchLabels: { app.gitlab.com/managed_by: gitlab } } }] }] } |
PostgreSQL
This chart depends on version 0.7.1 of the stable/postgresql
chart.
For reference the source code for this specific version can be found at https://github.com/helm/charts/tree/b90ad657e1a226eb52c3eb6a2a95ba3d6d494f58/stable/postgresql