first working chart version

This commit is contained in:
2023-09-22 13:36:02 +02:00
parent fc0b2dfa8d
commit e491b89320
5 changed files with 120 additions and 123 deletions

View File

@@ -1,6 +1,8 @@
# ephemerup
A Helm chart for ephemerup
![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.0.2](https://img.shields.io/badge/AppVersion-0.0.2-informational?style=flat-square)
A Helm chart for Ephemerup.
## Source Code
@@ -14,108 +16,111 @@ A Helm chart for ephemerup
## Values
| Key | Type | Description | Default |
|---------------------------------------------------|--------|-----------------------------------------------------------|-----------------------|
| kubeVersion | string | | `""` |
| nameOverride | string | | `""` |
| fullnameOverride | string | | `""` |
| namespaceOverride | string | | `""` |
| commonLabels | object | | `{}` |
| commonAnnotations.app | string | | `"ephemerup"` |
| clusterDomain | string | | `"cluster.local"` |
| logLevel | string | | `"info"` |
| image.registry | string | | `"docker.io"` |
| image.repository | string | | `"tlinden/ephemerup"` |
| image.tag | string | | `"latest"` |
| image.pullPolicy | string | | `"IfNotPresent"` |
| image.pullSecrets | list | | `[]` |
| secrets | object | | `{}` |
| mountSecrets | list | | `[]` |
| env | list | | `[]` |
| config | object | Backup plans. For details, see [values.yaml](values.yaml) | `{}` |
| replicaCount | int | | `1` |
| sidecars | list | | `[]` |
| lifecycleHooks | object | | `{}` |
| podAnnotations | object | | `{}` |
| podLabels | object | | `{}` |
| updateStrategy.type | string | | `"RollingUpdate"` |
| podAffinityPreset | string | | `""` |
| podAntiAffinityPreset | string | | `"soft"` |
| nodeAffinityPreset.type | string | | `""` |
| nodeAffinityPreset.key | string | | `""` |
| nodeAffinityPreset.values | list | | `[]` |
| affinity | object | | `{}` |
| nodeSelector | object | | `{}` |
| tolerations | list | | `[]` |
| resources.limits.cpu | string | | `"500m"` |
| resources.limits.memory | string | | `"256Mi"` |
| resources.requests.cpu | string | | `"100m"` |
| resources.requests.memory | string | | `"128Mi"` |
| podSecurityContext.fsGroup | int | | `65534` |
| containerSecurityContext.enabled | bool | | `false` |
| containerSecurityContext.allowPrivilegeEscalation | bool | | `false` |
| containerSecurityContext.capabilities.drop[0] | string | | `"ALL"` |
| containerSecurityContext.privileged | bool | | `false` |
| containerSecurityContext.runAsUser | int | | `0` |
| containerSecurityContext.runAsNonRoot | bool | | `false` |
| livenessProbe.enabled | bool | | `true` |
| livenessProbe.initialDelaySeconds | int | | `5` |
| livenessProbe.timeoutSeconds | int | | `1` |
| livenessProbe.periodSeconds | int | | `20` |
| livenessProbe.failureThreshold | int | | `6` |
| livenessProbe.successThreshold | int | | `1` |
| readinessProbe.enabled | bool | | `true` |
| readinessProbe.initialDelaySeconds | int | | `5` |
| readinessProbe.timeoutSeconds | int | | `1` |
| readinessProbe.periodSeconds | int | | `20` |
| readinessProbe.failureThreshold | int | | `6` |
| readinessProbe.successThreshold | int | | `1` |
| startupProbe.enabled | bool | | `true` |
| startupProbe.initialDelaySeconds | int | | `10` |
| startupProbe.timeoutSeconds | int | | `1` |
| startupProbe.periodSeconds | int | | `20` |
| startupProbe.failureThreshold | int | | `6` |
| startupProbe.successThreshold | int | | `1` |
| customLivenessProbe | object | | `{}` |
| customStartupProbe | object | | `{}` |
| customReadinessProbe | object | | `{}` |
| service.type | string | | `"ClusterIP"` |
| service.ports.http | int | | `8090` |
| service.nodePorts.http | string | | `""` |
| service.clusterIP | string | | `""` |
| service.extraPorts | list | | `[]` |
| service.loadBalancerIP | string | | `""` |
| service.loadBalancerSourceRanges | list | | `[]` |
| service.externalTrafficPolicy | string | | `"Cluster"` |
| service.annotations | object | | `{}` |
| service.sessionAffinity | string | | `"None"` |
| service.sessionAffinityConfig | object | | `{}` |
| ingress.enabled | bool | | `false` |
| ingress.pathType | string | | `"Prefix"` |
| ingress.apiVersion | string | | `""` |
| ingress.hostname | string | | `"ephemerup.local"` |
| ingress.path | string | | `"/"` |
| ingress.annotations | object | | `{}` |
| ingress.tls | bool | | `false` |
| ingress.tlsSecretName | string | | `""` |
| ingress.extraPaths | list | | `[]` |
| ingress.selfSigned | bool | | `false` |
| ingress.ingressClassName | string | | `"nginx"` |
| ingress.extraHosts | list | | `[]` |
| ingress.extraTls | list | | `[]` |
| ingress.secrets | list | | `[]` |
| ingress.extraRules | list | | `[]` |
metrics.serviceMonitor.enabled | bool | `true` | |
| metrics.serviceMonitor.port | string | `"http"` | |
| metrics.serviceMonitor.namespace | string | `""` | |
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
| clusterDomain | string | `"cluster.local"` | |
| commonAnnotations.app | string | `"ephemerup"` | |
| commonLabels | object | `{}` | |
| config.apicontexts[0].context | string | `"root"` | |
| config.apicontexts[0].key | string | `"0fddbff5d8010f81cd28a7d77f3e38981b13d6164c2fd6e1c3f60a4287630c37"` | |
| config.bodylimit | int | `1024` | |
| config.listen | int | `8080` | |
| config.mail.from | string | `"root@localhost"` | |
| config.mail.port | int | `25` | |
| config.mail.server | string | `"localhost"` | |
| config.super | string | `"root"` | |
| containerSecurityContext.allowPrivilegeEscalation | bool | `false` | |
| containerSecurityContext.capabilities.drop[0] | string | `"ALL"` | |
| containerSecurityContext.enabled | bool | `false` | |
| containerSecurityContext.privileged | bool | `false` | |
| containerSecurityContext.runAsNonRoot | bool | `false` | |
| containerSecurityContext.runAsUser | int | `0` | |
| customLivenessProbe | object | `{}` | |
| customReadinessProbe | object | `{}` | |
| customStartupProbe | object | `{}` | |
| env | list | `[]` | |
| fullnameOverride | string | `""` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.pullSecrets | list | `[]` | |
| image.registry | string | `"ghcr.io/tlinden"` | |
| image.repository | string | `"ephemerup"` | |
| image.tag | string | `"latest"` | |
| ingress.annotations | object | `{}` | |
| ingress.apiVersion | string | `""` | |
| ingress.enabled | bool | `false` | |
| ingress.extraHosts | list | `[]` | |
| ingress.extraPaths | list | `[]` | |
| ingress.extraRules | list | `[]` | |
| ingress.extraTls | list | `[]` | |
| ingress.hostname | string | `"ephemerup.local"` | |
| ingress.ingressClassName | string | `"nginx"` | |
| ingress.path | string | `"/"` | |
| ingress.pathType | string | `"Prefix"` | |
| ingress.secrets | list | `[]` | |
| ingress.selfSigned | bool | `false` | |
| ingress.tls | bool | `false` | |
| ingress.tlsSecretName | string | `""` | |
| kubeVersion | string | `""` | |
| lifecycleHooks | object | `{}` | |
| livenessProbe.enabled | bool | `true` | |
| livenessProbe.failureThreshold | int | `6` | |
| livenessProbe.initialDelaySeconds | int | `5` | |
| livenessProbe.periodSeconds | int | `20` | |
| livenessProbe.successThreshold | int | `1` | |
| livenessProbe.timeoutSeconds | int | `1` | |
| logLevel | string | `"info"` | |
| metrics.serviceMonitor.enabled | bool | `false` | |
| metrics.serviceMonitor.interval | string | `"30s"` | |
| metrics.serviceMonitor.namespace | string | `""` | |
| metrics.serviceMonitor.port | string | `"http"` | |
| metrics.serviceMonitor.scrapeTimeout | string | `"10s"` | |
| storage.longTerm | object | `{"name":"ephemerup-storage","spec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"100Gi"}},"storageClassName":"standard"}}` | Persistent volume for backups, see `config.retention` |
| mountSecrets | list | `[]` | |
| nameOverride | string | `""` | |
| namespaceOverride | string | `""` | |
| nodeAffinityPreset.key | string | `""` | |
| nodeAffinityPreset.type | string | `""` | |
| nodeAffinityPreset.values | list | `[]` | |
| nodeSelector | object | `{}` | |
| podAffinityPreset | string | `""` | |
| podAnnotations | object | `{}` | |
| podAntiAffinityPreset | string | `"soft"` | |
| podLabels | object | `{}` | |
| podSecurityContext.fsGroup | int | `65534` | |
| readinessProbe.enabled | bool | `true` | |
| readinessProbe.failureThreshold | int | `6` | |
| readinessProbe.initialDelaySeconds | int | `5` | |
| readinessProbe.periodSeconds | int | `20` | |
| readinessProbe.successThreshold | int | `1` | |
| readinessProbe.timeoutSeconds | int | `1` | |
| replicaCount | int | `1` | |
| resources.limits.cpu | string | `"500m"` | |
| resources.limits.memory | string | `"256Mi"` | |
| resources.requests.cpu | string | `"100m"` | |
| resources.requests.memory | string | `"128Mi"` | |
| secrets | object | `{}` | |
| service.annotations | object | `{}` | |
| service.clusterIP | string | `""` | |
| service.externalTrafficPolicy | string | `"Cluster"` | |
| service.extraPorts | list | `[]` | |
| service.loadBalancerIP | string | `""` | |
| service.loadBalancerSourceRanges | list | `[]` | |
| service.nodePorts.http | string | `""` | |
| service.ports.http | int | `8080` | |
| service.sessionAffinity | string | `"None"` | |
| service.sessionAffinityConfig | object | `{}` | |
| service.type | string | `"ClusterIP"` | |
| sidecars | list | `[]` | |
| startupProbe.enabled | bool | `true` | |
| startupProbe.failureThreshold | int | `6` | |
| startupProbe.initialDelaySeconds | int | `10` | |
| startupProbe.periodSeconds | int | `20` | |
| startupProbe.successThreshold | int | `1` | |
| startupProbe.timeoutSeconds | int | `1` | |
| storage.longTerm | object | `{"name":"ephemerup-storage","spec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"10Gi"}},"storageClassName":"standard"}}` | Persistent volume for bolt database and uploads |
| storage.tmp | object | `{"name":"ephemerup-tmp","spec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"10Gi"}},"storageClassName":"standard"}}` | Persistent volume for temporary files |
| storage.restoreTmp.name | string | `"ephemerup-restore-tmp"` | |
| storage.restoreTmp.spec.accessModes[0] | string | `"ReadWriteOnce"` | |
| storage.restoreTmp.spec.resources.requests.storage | string | `"100Gi"` | |
| storage.restoreTmp.spec.storageClassName | string | `"standard"` | |
| tolerations | list | `[]` | |
| updateStrategy.type | string | `"RollingUpdate"` | |
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)
Autogenerated from chart metadata using [helm-docs v1.11.2](https://github.com/norwoodj/helm-docs/releases/v1.11.2)

Binary file not shown.

View File

@@ -23,7 +23,9 @@ data:
server = {{ .Values.config.mail.server | quote }}
port = {{ .Values.config.mail.port | quote }}
from = {{ .Values.config.mail.from | quote }}
{{- if .Values.config.password }}
password = {{ .Values.config.password | quote }}
{{- end }}
}
apicontexts = [
{{- range $context := .Values.config.apicontexts }}
@@ -33,4 +35,5 @@ data:
}
{{- end }}
]
storagedir = "/data"
{{- end }}

View File

@@ -32,8 +32,7 @@ spec:
- name: ephemerup
image: {{ include "ephemerup.image" . }}
imagePullPolicy: {{ .Values.image.pullPolicy | quote}}
args:
- "-LogLevel={{ .Values.logLevel }}"
command: ['/app/ephemerupd', '-c', '/config/ephemerup.hcl']
env:
{{- range $envVar := .Values.env }}
- name: {{ $envVar.name }}
@@ -46,7 +45,7 @@ spec:
{{- if .Values.livenessProbe.enabled }}
livenessProbe:
httpGet:
port: http
port: {{ .Values.service.ports.http }}
path: /status
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
@@ -59,7 +58,7 @@ spec:
{{- if .Values.readinessProbe.enabled }}
readinessProbe:
httpGet:
port: http
port: {{ .Values.service.ports.http }}
path: /status
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
@@ -72,7 +71,7 @@ spec:
{{- if .Values.startupProbe.enabled }}
startupProbe:
tcpSocket:
port: http
port: {{ .Values.service.ports.http }}
initialDelaySeconds: {{ .Values.startupProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.startupProbe.periodSeconds }}
timeoutSeconds: {{ .Values.startupProbe.timeoutSeconds }}
@@ -89,11 +88,9 @@ spec:
{{- end }}
volumeMounts:
- name: "ephemerup-storage"
mountPath: "/storage"
mountPath: "/data"
- name: "ephemerup-tmp"
mountPath: "/tmp"
- name: "ephemerup-tmp"
mountPath: "/data"
- mountPath: "/config/ephemerup.hcl"
name: config
subPath: "ephemerup.hcl"

View File

@@ -29,8 +29,8 @@ logLevel: info
##
image:
registry: docker.io
repository: tlinden/ephemerup
registry: ghcr.io/tlinden
repository: ephemerup
tag: "latest"
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
@@ -71,7 +71,8 @@ config:
server: "localhost"
port: 25
from: "root@localhost"
password: ""
## required when using SMTP Auth
#password: ""
## context config, add more as needed
apicontexts:
- context: "root"
@@ -270,7 +271,7 @@ service:
## @param service.ports.http application service HTTP port
##
ports:
http: 8090
http: 8080
## @param service.nodePorts.http Node ports to expose
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
##
@@ -449,7 +450,7 @@ metrics:
scrapeTimeout: "10s"
storage:
# -- Persistent volume for backups, see `config.retention`
# -- Persistent volume for bolt database and uploads
longTerm:
name: "ephemerup-storage"
spec:
@@ -469,12 +470,3 @@ storage:
requests:
storage: 10Gi
storageClassName: standard
restoreTmp:
name: "ephemerup-restore-tmp"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: standard