From aeaae484d30c05719a431cd0fca2c5e0148a6eb7 Mon Sep 17 00:00:00 2001 From: Markus Pesch Date: Sun, 26 Sep 2021 20:33:17 +0200 Subject: [PATCH] Initial Commit --- .drone.yml | 101 ++++++++++++ .gitignore | 3 + .helmignore | 32 ++++ .markdownlint.yaml | 144 +++++++++++++++++ Chart.yaml | 20 +++ LICENSE | 13 ++ README.md | 62 ++++++++ templates/_helpers.tpl | 62 ++++++++ templates/postfixadmin/deployment.yaml | 60 ++++++++ templates/postfixadmin/ingress.yaml | 61 ++++++++ templates/postfixadmin/secrets.yaml | 19 +++ templates/postfixadmin/service.yaml | 15 ++ values.yaml | 204 +++++++++++++++++++++++++ 13 files changed, 796 insertions(+) create mode 100644 .drone.yml create mode 100644 .gitignore create mode 100644 .helmignore create mode 100644 .markdownlint.yaml create mode 100644 Chart.yaml create mode 100644 LICENSE create mode 100644 README.md create mode 100644 templates/_helpers.tpl create mode 100644 templates/postfixadmin/deployment.yaml create mode 100644 templates/postfixadmin/ingress.yaml create mode 100644 templates/postfixadmin/secrets.yaml create mode 100644 templates/postfixadmin/service.yaml create mode 100644 values.yaml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..ec83a05 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,101 @@ +--- +kind: pipeline +type: kubernetes +name: linter + +platform: + os: linux + arch: amd64 + +steps: +- name: helm lint + commands: + - helm lint + image: quay.io/helmpack/chart-testing:latest + resources: + limits: + cpu: 50 + memory: 50M + +- name: markdown lint + commands: + - markdownlint *.md + image: docker.io/volkerraschek/markdownlint:0.28.1 + resources: + limits: + cpu: 50 + memory: 50M + +- name: email-notification + environment: + PLUGIN_HOST: + from_secret: smtp_host + PLUGIN_USERNAME: + from_secret: smtp_username + PLUGIN_PASSWORD: + from_secret: smtp_password + PLUGIN_FROM: + from_secret: smtp_mail_address + image: docker.io/drillster/drone-email:latest + resources: + limits: + cpu: 50 + memory: 25M + when: + status: + - changed + - failure + +trigger: + event: + exclude: + - tag + +--- +kind: pipeline +type: kubernetes +name: sync + +platform: + os: linux + arch: amd64 + +steps: +- name: github + image: docker.io/appleboy/drone-git-push:latest + resources: + limits: + cpu: 50 + memory: 25M + settings: + branch: master + remote: ssh://git@github.com/volker-raschek/postfixadmin-charts.git + force: true + ssh_key: + from_secret: ssh_key + +- name: email-notification + environment: + PLUGIN_HOST: + from_secret: smtp_host + PLUGIN_USERNAME: + from_secret: smtp_username + PLUGIN_PASSWORD: + from_secret: smtp_password + PLUGIN_FROM: + from_secret: smtp_mail_address + image: docker.io/drillster/drone-email:latest + resources: + limits: + cpu: 50 + memory: 25M + when: + status: + - changed + - failure + +trigger: + event: + - push + repo: + - volker.raschek/postfixadmin-charts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cdcaed9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.tgz +values2.yml +values2.yaml \ No newline at end of file diff --git a/.helmignore b/.helmignore new file mode 100644 index 0000000..22b5ff9 --- /dev/null +++ b/.helmignore @@ -0,0 +1,32 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# drone +.drone.yml +# markdownlint +.markdownlint.yaml +# customized values +values2.yml +values2.yaml +# helm packages +*.tgz \ No newline at end of file diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..c158976 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,144 @@ +# markdownlint YAML configuration +# https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml + +# Default state for all rules +default: true + +# Path to configuration file to extend +extends: null + +# MD003/heading-style/header-style - Heading style +MD003: + # Heading style + style: "atx" + +# MD004/ul-style - Unordered list style +MD004: + style: "dash" + +# MD007/ul-indent - Unordered list indentation +MD007: + # Spaces for indent + indent: 2 + # Whether to indent the first level of the list + start_indented: false + +# MD009/no-trailing-spaces - Trailing spaces +MD009: + # Spaces for line break + br_spaces: 2 + # Allow spaces for empty lines in list items + list_item_empty_lines: false + # Include unnecessary breaks + strict: false + +# MD010/no-hard-tabs - Hard tabs +MD010: + # Include code blocks + code_blocks: true + +# MD012/no-multiple-blanks - Multiple consecutive blank lines +MD012: + # Consecutive blank lines + maximum: 1 + +# MD013/line-length - Line length +MD013: + # Number of characters + line_length: 80 + # Number of characters for headings + heading_line_length: 80 + # Number of characters for code blocks + code_block_line_length: 80 + # Include code blocks + code_blocks: false + # Include tables + tables: false + # Include headings + headings: true + # Include headings + headers: true + # Strict length checking + strict: false + # Stern length checking + stern: false + +# MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines +MD022: + # Blank lines above heading + lines_above: 1 + # Blank lines below heading + lines_below: 1 + +# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content +MD024: + # Only check sibling headings + allow_different_nesting: true + +# MD025/single-title/single-h1 - Multiple top-level headings in the same document +MD025: + # Heading level + level: 1 + # RegExp for matching title in front matter + front_matter_title: "^\\s*title\\s*[:=]" + +# MD026/no-trailing-punctuation - Trailing punctuation in heading +MD026: + # Punctuation characters + punctuation: ".,;:!。,;:!" + +# MD029/ol-prefix - Ordered list item prefix +MD029: + # List style + style: "one_or_ordered" + +# MD030/list-marker-space - Spaces after list markers +MD030: + # Spaces for single-line unordered list items + ul_single: 1 + # Spaces for single-line ordered list items + ol_single: 1 + # Spaces for multi-line unordered list items + ul_multi: 1 + # Spaces for multi-line ordered list items + ol_multi: 1 + +# MD033/no-inline-html - Inline HTML +MD033: + # Allowed elements + allowed_elements: [] + +# MD035/hr-style - Horizontal rule style +MD035: + # Horizontal rule style + style: "---" + +# MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading +MD036: + # Punctuation characters + punctuation: ".,;:!?。,;:!?" + +# MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading +MD041: + # Heading level + level: 1 + # RegExp for matching title in front matter + front_matter_title: "^\\s*title\\s*[:=]" + +# MD044/proper-names - Proper names should have the correct capitalization +MD044: + # List of proper names + # names: + # - drone + # Include code blocks + code_blocks: false + +# MD046/code-block-style - Code block style +MD046: + # Block style + style: "fenced" + +# MD048/code-fence-style - Code fence style +MD048: + # Code fence syle + style: "backtick" \ No newline at end of file diff --git a/Chart.yaml b/Chart.yaml new file mode 100644 index 0000000..dd7ec85 --- /dev/null +++ b/Chart.yaml @@ -0,0 +1,20 @@ +apiVersion: v2 +name: postfixadmin +description: Helm chart for postfixadmin +type: application +version: 0.1.0 +appVersion: 3.3.10 +icon: https://a.fsdn.com/allura/p/postfixadmin/icon?1620415130 + +keywords: +- postfix +- postfixadmin + +sources: +- https://github.com/volker-raschek/postfixadmin-charts +- https://github.com/postfixadmin/postfixadmin +- https://hub.docker.com/_/postfixadmin + +maintainers: +- name: Markus Pesch + email: markus.pesch+apps@cryptic.systems \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bf58594 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Copyright 2021 Markus Pesch + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d43d27e --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +# postfixadmin-charts + +[![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/postfixadmin-charts/status.svg)](https://drone.cryptic.systems/volker.raschek/postfixadmin-charts) +[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/volker-raschek)](https://artifacthub.io/packages/search?repo=volker-raschek) + +This is an inofficial helm chart for +[postfixadmin](https://github.com/postfixadmin/postfixadmin), because the +maintainer does not provide currently an official one. + +This helm chart can be found on [artifacthub.io](https://artifacthub.io/) and +can be installed via helm. + +```bash +helm repo add volker.raschek https://charts.cryptic.systems/volker.raschek +helm install postfixadmin volker.raschek/postfixadmin +``` + +## Customization + +The list below is only an excerpt of the listed environment variables from the +used [container image](https://github.com/volker-raschek/postfixadmin-docker). + +The environment variables are composed on the key of the PHP configuration with +the prefix `POSTFIXADMIN_`. You can take an example +[configuration](https://github.com/postfixadmin/postfixadmin/blob/master/config.inc.php) +from the upstream project. + +| value | reference | +| ------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| `.config.POSTFIXADMIN_ADMIN_EMAIL` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_admin_email) | +| `.config.POSTFIXADMIN_ADMIN_SMTP_PASSWORD` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_smtp_password) | +| `.config.POSTFIXADMIN_ADMIN_NAME` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_admin_name) | +| `.config.POSTFIXADMIN_DATABASE_TYPE` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_type) | +| `.config.POSTFIXADMIN_DATABASE_USER` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_user) | +| `.config.POSTFIXADMIN_DATABASE_PASSWORD` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_password) | +| `.config.POSTFIXADMIN_DATABASE_HOST` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_host) | +| `.config.POSTFIXADMIN_DATABASE_PORT` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_port) | +| `.config.POSTFIXADMIN_DATABASE_NAME` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_name) | +| `.config.POSTFIXADMIN_DEFAULT_LANGUAGE` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_default_language) | +| `.config.POSTFIXADMIN_DATABASE_USE_SSL` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_use_ssl) | +| `.config.POSTFIXADMIN_DATABASE_KEY` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_key) | +| `.config.POSTFIXADMIN_DATABASE_CERT` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_cert) | +| `.config.POSTFIXADMIN_DATABASE_CA` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_ca) | +| `.config.POSTFIXADMIN_DATABASE_PREFIX` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_prefix) | +| `.config.POSTFIXADMIN_ENCRYPT` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_encrypt) | +| `.config.POSTFIXADMIN_SMTP_SERVER` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_smtp_server) | +| `.config.POSTFIXADMIN_SMTP_PORT` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_smtp_port) | +| `.config.POSTFIXADMIN_SMTP_CLIENT` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_smtp_client) | +| `.config.POSTFIXADMIN_SHOW_FOOTER_TEXT` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_show_footer_text) | +| `.config.POSTFIXADMIN_FOOTER_TEXT` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_footer_text) | +| `.config.POSTFIXADMIN_FOOTER_LINK` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_footer_link) | +| `.config.POSTFIXADMIN_FETCHMAIL` | [Documentation](https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_fetchmail) | + +## Postfixadmin-Fetchmail + +As addon can be additionally the helm chart +`volker.raschek/postfixadmi-fetchmail` installed. The the `fetchmail.pl` script +has been packaged into an own container to support among others non-kubernetes +based postfixadmin instances with the `fetchmail.pl` script on kubernetes basis. + +More about the addon is documented +[here](https://github.com/volker-raschek/postfixadmin-fetchmail-charts). diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl new file mode 100644 index 0000000..317991e --- /dev/null +++ b/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "postfixadmin.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "postfixadmin.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "postfixadmin.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "postfixadmin.labels" -}} +helm.sh/chart: {{ include "postfixadmin.chart" . }} +{{ include "postfixadmin.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "postfixadmin.selectorLabels" -}} +app.kubernetes.io/name: {{ include "postfixadmin.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "postfixadmin.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "postfixadmin.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/templates/postfixadmin/deployment.yaml b/templates/postfixadmin/deployment.yaml new file mode 100644 index 0000000..83f82dd --- /dev/null +++ b/templates/postfixadmin/deployment.yaml @@ -0,0 +1,60 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "postfixadmin.fullname" . }} + labels: + {{- include "postfixadmin.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + {{- include "postfixadmin.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "postfixadmin.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + envFrom: + - secretRef: + name: {{ include "postfixadmin.fullname" . }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/templates/postfixadmin/ingress.yaml b/templates/postfixadmin/ingress.yaml new file mode 100644 index 0000000..95e2420 --- /dev/null +++ b/templates/postfixadmin/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "postfixadmin.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "postfixadmin.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/templates/postfixadmin/secrets.yaml b/templates/postfixadmin/secrets.yaml new file mode 100644 index 0000000..c141c91 --- /dev/null +++ b/templates/postfixadmin/secrets.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "postfixadmin.fullname" . }} +type: Opaque +stringData: + + {{- if not (hasKey .Values "config") -}} + {{- $_ := set .Values "config" dict -}} + {{- end -}} + + {{- if not (hasKey .Values.config "POSTFIXADMIN_SETUP_PASSWORD") -}} + {{- $_ := set .Values.config "POSTFIXADMIN_SETUP_PASSWORD" (randAlphaNum 48 | quote ) -}} + {{- end -}} + + {{/* SETUP CONFIG */}} + {{ range $key, $value := .Values.config }} + {{ upper $key}}: {{ quote $value }} + {{ end }} diff --git a/templates/postfixadmin/service.yaml b/templates/postfixadmin/service.yaml new file mode 100644 index 0000000..60b58b7 --- /dev/null +++ b/templates/postfixadmin/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "postfixadmin.fullname" . }} + labels: + {{- include "postfixadmin.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "postfixadmin.selectorLabels" . | nindent 4 }} diff --git a/values.yaml b/values.yaml new file mode 100644 index 0000000..80c33ba --- /dev/null +++ b/values.yaml @@ -0,0 +1,204 @@ +# Default values for postfixadmin. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +image: + repository: docker.io/volkerraschek/postfixadmin + pullPolicy: Always + # Overrides the image tag whose default is the chart appVersion. + tag: "" + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +podAnnotations: {} + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +config: + # POSTFIXADMIN_ADMIN_EMAIL + # Define the email address of an admin via POSTFIXADMIN_ADMIN_EMAIL to send + # emails or broadcast messages in his name instead of the email address of the + # logged in admin, which wants to send an email or broadcast message about the + # PostfixAdmin interface. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_admin_email + # POSTFIXADMIN_ADMIN_EMAIL: + + # POSTFIXADMIN_ADMIN_SMTP_PASSWORD + # Define the smtp password via POSTFIXADMIN_ADMIN_SMTP_PASSWORD of the admin + # which should be used to send emails or broadcast messages about the + # PostfixAdmin interface. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_admin_smtp_password + # POSTFIXADMIN_ADMIN_SMTP_PASSWORD: + + # POSTFIXADMIN_ADMIN_NAME + # Define the name of the admin via POSTFIXADMIN_ADMIN_NAME which should be + # used to send emails or broadcast messages about the PostfixAdmin interface. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_admin_name + # POSTFIXADMIN_ADMIN_NAME: + + # POSTFIXADMIN_DATABASE_TYPE + # PostfixAdmin support currently sqlite, postgres and mysql/mariadb. About the + # environment variable POSTFIXADMIN_DATABASE_TYPE can the backend type + # defined. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_type + # POSTFIXADMIN_DATABASE_TYPE: + + # POSTFIXADMIN_DATABASE_USER + # The environment variable POSTFIXADMIN_DATABASE_USER is undefined and only + # required if the database backend is not sqlite. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_user + # POSTFIXADMIN_DATABASE_USER: + + # POSTFIXADMIN_DATABASE_PASSWORD + # The environment variable POSTFIXADMIN_DATABASE_PASSWORD is undefined and + # only required if the database backend is not sqlite. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_password + # POSTFIXADMIN_DATABASE_PASSWORD: + + # POSTFIXADMIN_DATABASE_HOST + # The environment variable POSTFIXADMIN_DATABASE_HOST is undefined and only + # required if the database backend is not sqlite + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_host + # POSTFIXADMIN_DATABASE_HOST: + + # POSTFIXADMIN_DATABASE_PORT + # The environment variable POSTFIXADMIN_DATABASE_PORT will automatically + # defined with default values when instead of sqlite an other database backend + # has been selected. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_port + # POSTFIXADMIN_DATABASE_PORT: + + # POSTFIXADMIN_DATABASE_NAME + # The environment variable POSTFIXADMIN_DATABASE_NAME is defined by default + # with the value /var/tmp/postfixadmin.db. This is the path where the sqlite + # database is stored. If pgsql or mysqli is defined instead of sqlite as + # database backend type, can the environment variable used to define the + # database name. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_name + # POSTFIXADMIN_DATABASE_NAME: + + # POSTFIXADMIN_DATABASE_USE_SSL + # Encrypt a database connection to an external database like postgres, mariadb + # or mysqli via SSL when POSTFIXADMIN_DATABASE_USE_SSL=true. Additionally + # should be the other SSL environment variables defined to establish + # successfully a SSL encrypted connection. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_use_ssl + # POSTFIXADMIN_DATABASE_USE_SSL: + + # POSTFIXADMIN_DATABASE_SSL_KEY + # Via POSTFIXADMIN_DATABASE_SSL_KEY can be the path to the private key defined + # which should be used to encrypt the database connection via SSL. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_ssl_key + # POSTFIXADMIN_DATABASE_SSL_KEY: + + # POSTFIXADMIN_DATABASE_SSL_CERT + # Via POSTFIXADMIN_DATABASE_SSL_CERT can be the path to the certificate + # defined which should be used to encrypt the database connection via SSL. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_ssl_cert + # POSTFIXADMIN_DATABASE_SSL_CERT: + + # POSTFIXADMIN_DATABASE_SSL_CA + # Via POSTFIXADMIN_DATABASE_SSL_CA can be the path to the root certificate of + # the certificate authority defined which should be trusted to encrypt the + # database connection via SSL. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_ssl_ca + # POSTFIXADMIN_DATABASE_SSL_CA: + + # POSTFIXADMIN_DATABASE_PREFIX + # It make much sense to use a prefix name for all PostfixAdmin related tables, + # when the tables, views and so on should be stored into a shared schema like + # public. About the environment variable POSTFIXADMIN_DATABASE_PREFIX can such + # a prefix defined. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_database_prefix + # POSTFIXADMIN_DATABASE_PREFIX: + + # POSTFIXADMIN_DEFAULT_LANGUAGE + # Default language of PostfixAdmin. Checkout the official repository under + # ./languages to get a list of all supported languages. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_default_language + # POSTFIXADMIN_DEFAULT_LANGUAGE: + + # POSTFIXADMIN_ENCRYPT + # Via POSTFIXADMIN_ENCRYPT can be the algorithm specified to encrypt passwords + # of users. The algorithm md5crypt is defined as default. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_encrypt + # POSTFIXADMIN_ENCRYPT: + + # POSTFIXADMIN_SETUP_PASSWORD + # To login into the `setup.php` page is the setup password required. If the + # setup_password is undefined, it will be set by a random string via helm. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_setup_password + # POSTFIXADMIN_SETUP_PASSWORD: + + # POSTFIXADMIN_SMTP_SERVER + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_smtp_server + # POSTFIXADMIN_SMTP_SERVER: + + # POSTFIXADMIN_SMTP_PORT + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_smtp_port + # POSTFIXADMIN_SMTP_PORT: + + # POSTFIXADMIN_SHOW_FOOTER_TEXT + # Enable or disable via YES or NO the footer text displayed on all sites. Use + # POSTFIXADMIN_FOOTER_TEXT and POSTFIX_FOOTER_LINK to customize the text. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_show_footer_text + # POSTFIXADMIN_SHOW_FOOTER_TEXT: + # POSTFIXADMIN_FOOTER_TEXT: + # POSTFIXADMIN_FOOTER_LINK: + + # POSTFIXADMIN_FETCHMAIL + # Enable or disable via YES or NO the fetchmail tab. It has nothing todo with + # the fetchmail cron job. + # https://github.com/volker-raschek/postfixadmin-docker#postfixadmin_fetchmail + # POSTFIXADMIN_FETCHMAIL: + +service: + type: ClusterIP + port: 80 + +ingress: + enabled: false + className: "nginx" + annotations: + # cert-manager.io/cluster-issuer: + # cert-manager.io/issuer: + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: "your-hostname" + paths: + - path: / + pathType: ImplementationSpecific + tls: + - secretName: "your-tls-secret" + hosts: + - "your-hostname" + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} \ No newline at end of file