This commit is contained in:
commit
aeaae484d3
101
.drone.yml
Normal file
101
.drone.yml
Normal file
@ -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
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*.tgz
|
||||||
|
values2.yml
|
||||||
|
values2.yaml
|
32
.helmignore
Normal file
32
.helmignore
Normal file
@ -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
|
144
.markdownlint.yaml
Normal file
144
.markdownlint.yaml
Normal file
@ -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"
|
20
Chart.yaml
Normal file
20
Chart.yaml
Normal file
@ -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
|
13
LICENSE
Normal file
13
LICENSE
Normal file
@ -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.
|
62
README.md
Normal file
62
README.md
Normal file
@ -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).
|
62
templates/_helpers.tpl
Normal file
62
templates/_helpers.tpl
Normal file
@ -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 }}
|
60
templates/postfixadmin/deployment.yaml
Normal file
60
templates/postfixadmin/deployment.yaml
Normal file
@ -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 }}
|
61
templates/postfixadmin/ingress.yaml
Normal file
61
templates/postfixadmin/ingress.yaml
Normal file
@ -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 }}
|
19
templates/postfixadmin/secrets.yaml
Normal file
19
templates/postfixadmin/secrets.yaml
Normal file
@ -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 }}
|
15
templates/postfixadmin/service.yaml
Normal file
15
templates/postfixadmin/service.yaml
Normal file
@ -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 }}
|
204
values.yaml
Normal file
204
values.yaml
Normal file
@ -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: {}
|
Loading…
Reference in New Issue
Block a user