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 # 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 ## Source Code
@@ -14,108 +16,111 @@ A Helm chart for ephemerup
## Values ## Values
| Key | Type | Description | Default | | Key | Type | Default | Description |
|---------------------------------------------------|--------|-----------------------------------------------------------|-----------------------| |-----|------|---------|-------------|
| kubeVersion | string | | `""` | | affinity | object | `{}` | |
| nameOverride | string | | `""` | | clusterDomain | string | `"cluster.local"` | |
| fullnameOverride | string | | `""` | | commonAnnotations.app | string | `"ephemerup"` | |
| namespaceOverride | string | | `""` | | commonLabels | object | `{}` | |
| commonLabels | object | | `{}` | | config.apicontexts[0].context | string | `"root"` | |
| commonAnnotations.app | string | | `"ephemerup"` | | config.apicontexts[0].key | string | `"0fddbff5d8010f81cd28a7d77f3e38981b13d6164c2fd6e1c3f60a4287630c37"` | |
| clusterDomain | string | | `"cluster.local"` | | config.bodylimit | int | `1024` | |
| logLevel | string | | `"info"` | | config.listen | int | `8080` | |
| image.registry | string | | `"docker.io"` | | config.mail.from | string | `"root@localhost"` | |
| image.repository | string | | `"tlinden/ephemerup"` | | config.mail.port | int | `25` | |
| image.tag | string | | `"latest"` | | config.mail.server | string | `"localhost"` | |
| image.pullPolicy | string | | `"IfNotPresent"` | | config.super | string | `"root"` | |
| image.pullSecrets | list | | `[]` | | containerSecurityContext.allowPrivilegeEscalation | bool | `false` | |
| secrets | object | | `{}` | | containerSecurityContext.capabilities.drop[0] | string | `"ALL"` | |
| mountSecrets | list | | `[]` | | containerSecurityContext.enabled | bool | `false` | |
| env | list | | `[]` | | containerSecurityContext.privileged | bool | `false` | |
| config | object | Backup plans. For details, see [values.yaml](values.yaml) | `{}` | | containerSecurityContext.runAsNonRoot | bool | `false` | |
| replicaCount | int | | `1` | | containerSecurityContext.runAsUser | int | `0` | |
| sidecars | list | | `[]` | | customLivenessProbe | object | `{}` | |
| lifecycleHooks | object | | `{}` | | customReadinessProbe | object | `{}` | |
| podAnnotations | object | | `{}` | | customStartupProbe | object | `{}` | |
| podLabels | object | | `{}` | | env | list | `[]` | |
| updateStrategy.type | string | | `"RollingUpdate"` | | fullnameOverride | string | `""` | |
| podAffinityPreset | string | | `""` | | image.pullPolicy | string | `"IfNotPresent"` | |
| podAntiAffinityPreset | string | | `"soft"` | | image.pullSecrets | list | `[]` | |
| nodeAffinityPreset.type | string | | `""` | | image.registry | string | `"ghcr.io/tlinden"` | |
| nodeAffinityPreset.key | string | | `""` | | image.repository | string | `"ephemerup"` | |
| nodeAffinityPreset.values | list | | `[]` | | image.tag | string | `"latest"` | |
| affinity | object | | `{}` | | ingress.annotations | object | `{}` | |
| nodeSelector | object | | `{}` | | ingress.apiVersion | string | `""` | |
| tolerations | list | | `[]` | | ingress.enabled | bool | `false` | |
| resources.limits.cpu | string | | `"500m"` | | ingress.extraHosts | list | `[]` | |
| resources.limits.memory | string | | `"256Mi"` | | ingress.extraPaths | list | `[]` | |
| resources.requests.cpu | string | | `"100m"` | | ingress.extraRules | list | `[]` | |
| resources.requests.memory | string | | `"128Mi"` | | ingress.extraTls | list | `[]` | |
| podSecurityContext.fsGroup | int | | `65534` | | ingress.hostname | string | `"ephemerup.local"` | |
| containerSecurityContext.enabled | bool | | `false` | | ingress.ingressClassName | string | `"nginx"` | |
| containerSecurityContext.allowPrivilegeEscalation | bool | | `false` | | ingress.path | string | `"/"` | |
| containerSecurityContext.capabilities.drop[0] | string | | `"ALL"` | | ingress.pathType | string | `"Prefix"` | |
| containerSecurityContext.privileged | bool | | `false` | | ingress.secrets | list | `[]` | |
| containerSecurityContext.runAsUser | int | | `0` | | ingress.selfSigned | bool | `false` | |
| containerSecurityContext.runAsNonRoot | bool | | `false` | | ingress.tls | bool | `false` | |
| livenessProbe.enabled | bool | | `true` | | ingress.tlsSecretName | string | `""` | |
| livenessProbe.initialDelaySeconds | int | | `5` | | kubeVersion | string | `""` | |
| livenessProbe.timeoutSeconds | int | | `1` | | lifecycleHooks | object | `{}` | |
| livenessProbe.periodSeconds | int | | `20` | | livenessProbe.enabled | bool | `true` | |
| livenessProbe.failureThreshold | int | | `6` | | livenessProbe.failureThreshold | int | `6` | |
| livenessProbe.successThreshold | int | | `1` | | livenessProbe.initialDelaySeconds | int | `5` | |
| readinessProbe.enabled | bool | | `true` | | livenessProbe.periodSeconds | int | `20` | |
| readinessProbe.initialDelaySeconds | int | | `5` | | livenessProbe.successThreshold | int | `1` | |
| readinessProbe.timeoutSeconds | int | | `1` | | livenessProbe.timeoutSeconds | int | `1` | |
| readinessProbe.periodSeconds | int | | `20` | | logLevel | string | `"info"` | |
| readinessProbe.failureThreshold | int | | `6` | | metrics.serviceMonitor.enabled | bool | `false` | |
| 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 | `""` | |
| metrics.serviceMonitor.interval | string | `"30s"` | | | metrics.serviceMonitor.interval | string | `"30s"` | |
| metrics.serviceMonitor.namespace | string | `""` | |
| metrics.serviceMonitor.port | string | `"http"` | |
| metrics.serviceMonitor.scrapeTimeout | string | `"10s"` | | | 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.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"` | | | tolerations | list | `[]` | |
| storage.restoreTmp.spec.accessModes[0] | string | `"ReadWriteOnce"` | | | updateStrategy.type | string | `"RollingUpdate"` | |
| storage.restoreTmp.spec.resources.requests.storage | string | `"100Gi"` | |
| storage.restoreTmp.spec.storageClassName | string | `"standard"` | |
---------------------------------------------- ----------------------------------------------
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 }} server = {{ .Values.config.mail.server | quote }}
port = {{ .Values.config.mail.port | quote }} port = {{ .Values.config.mail.port | quote }}
from = {{ .Values.config.mail.from | quote }} from = {{ .Values.config.mail.from | quote }}
{{- if .Values.config.password }}
password = {{ .Values.config.password | quote }} password = {{ .Values.config.password | quote }}
{{- end }}
} }
apicontexts = [ apicontexts = [
{{- range $context := .Values.config.apicontexts }} {{- range $context := .Values.config.apicontexts }}
@@ -33,4 +35,5 @@ data:
} }
{{- end }} {{- end }}
] ]
storagedir = "/data"
{{- end }} {{- end }}

View File

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

View File

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