Welcome to Atlas the Universal Helm Chart repository! This Helm Chart is designed to provide a flexible and customizable solution for deploying applications on Kubernetes. It supports various features, including custom volume mounting, secret mounting, multiple ingress hosts and paths, and more.
-
Custom Volume Mounting: Easily attach custom volumes to your pods for persistent data storage.
-
Secret Mounting: Securely inject secrets into your application through Kubernetes secrets.
-
Multiple Ingress Configuration: Define multiple ingress hosts and paths for better routing and accessibility.
-
Configurable Options: Fine-tune your deployment with a wide range of customizable options and parameters.
-
Scalability: Scale your application horizontally by adjusting replica counts and resource allocations.
-
Compatibility: Works seamlessly with different Kubernetes distributions and cloud providers.
- Helm installed on your Kubernetes cluster.
helm repo add atlas https://herwinz.github.io/atlas/stable/
helm repo update
helm install my-atlas atlas/atlas [--version=1.0.0]
The Helm Chart provides extensive configuration options to tailor the deployment to your specific needs. Review the values.yaml
file for a comprehensive list of available parameters.
Example:
helm install my-atlas atlas/atlas -f my-values.yaml
Describe how users can customize and use your Helm Chart in their own projects. Provide examples and best practices for configuration.
Name | Description | Value |
---|---|---|
nameOverride | Override helm chart name | atlas |
fullnameOverride | Override helm chart name | atlas |
namespace | The namespace in which the App will be created | "" |
replicaCount | Number of App replicas to deploy | 1 |
Name | Description | Value |
---|---|---|
gracePeriodSeconds.enabled | Enable grace period second | true |
gracePeriodSeconds.value | Amount of time before pod killed while on not ready state | 60 |
Secret management
Name | Description | Value |
---|---|---|
secrets.configs.enabled | Enable config | true |
secrets.configs.path | Path config | secrets/configs/atlas-example |
secrets.configs.autorestart.enabled | Enable config auto restart | true |
secrets.creds.enabled | Enable creds | true |
secrets.creds.path | Path config | secrets/creds/atlas-example |
secrets.creds.autorestart.enabled | Enable config | true |
For set up service account or volume, sometimes pair with volumeMounts
Name | Description | Value |
---|---|---|
volume.name | Volume name | |
volume.secret.secretName | If want to mount secret | atlas-sa |
volume.persistentVolumeClaim.claimName | If want to mount volume | volumes-pvc |
Name | Description | Value |
---|---|---|
volumeMounts.name | volumeMounts name | |
volume.mountPath | Path for volume inside container | /data |
Name | Description | Value |
---|---|---|
liveness.port | liveness port | 8000 |
liveness.type | type of liveness (httpGet | exec |
liveness.path | declare liveness path for grpc (exec) and http (httpGet) only | /ping |
liveness.initialDelay | Amount of time before start check | 30 |
liveness.periodSeconds | Amount of time use to check | 10 |
liveness.successThreshold | Minimum successes to be considered successful after having failed | 1 |
liveness.failureThreshold | Threshold amount to set container not ready | 3 |
Name | Description | Value |
---|---|---|
service.type | type of service | ClusterIP |
service.configs | config for service | |
service.headless | enable headless if app service use GRPC protocol | false |
Name | Description | Value |
---|---|---|
imagePullSecrets.name | secret name to pull image from gcr | "gcr-json-key" |
Name | Description | Value |
---|---|---|
image.pullPolicy | policy when pull image | "IfNotPresent" |
image.repository | repository url | "" |
image.tag | app image tag | "" |
Name | Description | Value |
---|---|---|
interceptor.enabled | enable interceptor | false |
interceptor.args | command that execute when container run | "echo 'test-interceptor'" |
Name | Description | Value |
---|---|---|
migrations.enabled | enable migrations | false |
migrations.type | type of migration use init-container or pre-upgrade-job | init-container |
migrations.args | command that execute when migration run | "cd /opt/atlas ; envsubst < config/app.yaml.dist > config/app.yaml; echo 'Initializing Service...'" |
migrations.customImage.enabled | enable custom image | false |
migrations.customImage.image.repository | repository name for custom image | [] |
migrations.customImage.image.tag | repository tag | [] |
Name | Description | Value |
---|---|---|
autoscaling.enabled | enabled autoscaling | false |
autoscaling.minReplicas | replica minimal when less trrafic | 1 |
autoscaling.maxReplicas | replica maximal when high trrafic | 2 |
autoscaling.averageUtilMem | amount of memory to trigger scaling | 80 |
autoscaling.averageUtilCpu | amount of cpu to trigger scaling | 80 |
Name | Description | Value |
---|---|---|
resources.limits.cpu | enabled autoscaling | 400m |
resources.limits.memory | enabled autoscaling | 256Mi |
resources.requests.cpu | enabled autoscaling | 300m |
resources.requests.memory | enabled autoscaling | 192Mi |
Name | Description | Value |
---|---|---|
ingress.enabled | enabled ingress | false |
ingress.config | ingress config |
Name | Description | Value |
---|---|---|
annotations.ingress | add annotation for ingress | |
annotations.deployment | add annotation for deployment | |
annotations.hpa | add annotation for deployment | |
annotations.preupgradejob | add annotation for preupgradejob | |
annotations.serviceaccount | add annotation for serviceaccount | |
annotations.vault | add annotation for vault |
Name | Description | Value |
---|---|---|
hostAliases | add hostaliases for dns local |
# Example values.yaml
image:
repository: "atlas-example"
tag: "stable"
fullnameOverride: "atlas-example"
nameOverride: "atlas-example"
namespace: atlas
replicaCount: 1
service:
type: ClusterIP
configs:
- name: http
port: 80
targetPort: 6969
protocol: TCP
- name: grpc
port: 4054
targetPort: 4053
protocol: TCP
headless: true
liveness:
type: exec
port: 4054
migrations:
enabled: true
type: init-container
args:
- "cd /go/src/atlas-example && ./main db:migrate"
secrets:
configs:
enabled: true
autorestart:
enabled: true
path: secrets/configs/atlas-example
creds:
enabled: true
autorestart:
enabled: true
path: secrets/creds/atlas-example
volumes:
- name: service-account
secret:
secretName: atlas-example-sa
volumeMounts:
- name: service-account
mountPath: /mnt
resources:
limits:
cpu: 300m
memory: 500Mi
requests:
cpu: 200m
memory: 384Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 2
averageUtilMem: 80
averageUtilCpu: 80
ingress:
enabled: true
configs:
- ingressName: "internal-ingress"
className: "internal-nginx"
rules:
- host: atlas.geekinthecloud.xyz
http:
paths:
- path: /rc(?:\/|$)(.)
pathType: Prefix
backend:
service:
name: rc-atlas
port:
number: 80
- ingressName: "external-ingress"
className: "internal-nginx"
rules:
- host: atlas.geekinthecloud.xyz
http:
- path: /(.)
pathType: Prefix
backend:
service:
name: atlas
port:
number: 80
We welcome contributions! If you find a bug or have an idea for improvement, please open an issue or submit a pull request.
This project is licensed under the MIT License.
Remember to replace the placeholder URLs, names, and images with your actual details. Customize the sections as needed for your specific Helm Chart.