You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: break long lines to comply with markdown linting rules
- Reformat lines exceeding 80 character limit in README.md
- Break long lines in docs/how-to/install-kubernetes.md
- Improve readability while maintaining markdown formatting
https://claude.ai/code/session_01UJodgmvR7sQz79waMx2bq4
Copy file name to clipboardExpand all lines: docs/how-to/install-kubernetes.md
+28-11Lines changed: 28 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,10 @@
1
1
# How to Install on Kubernetes
2
2
3
-
This guide describes how to deploy docker-mailserver on Kubernetes with Kustomize. An external MySQL-compatible database is required; the kustomization does not provision a database.
3
+
This guide describes how to deploy docker-mailserver on Kubernetes with
4
+
Kustomize. An external MySQL-compatible database is required; the
5
+
kustomization does not provision a database.
4
6
5
-
A full example is in [example-configs/kustomize/external-db-and-https-ingress](https://github.com/jeboehm/docker-mailserver/tree/main/docs/example-configs/kustomize/external-db-and-https-ingress).
7
+
A full example is in [example-configs/kustomize/external-db-and-https-ingress](../example-configs/kustomize/external-db-and-https-ingress/).
6
8
7
9
## Prerequisites
8
10
@@ -14,9 +16,15 @@ A full example is in [example-configs/kustomize/external-db-and-https-ingress](h
14
16
15
17
### 1. Configure environment (ConfigMap and Secrets)
16
18
17
-
Use `.env.dist` as a reference for the required variables. Create a Kubernetes ConfigMap from the non-sensitive values and Kubernetes Secrets for sensitive values (database credentials, passwords, API keys). See [Environment variables reference](../reference/environment-variables.md) for the full variable list.
19
+
Use `.env.dist` as a reference for required variables. Create a Kubernetes
20
+
ConfigMap for non-sensitive values and Secrets for sensitive values
21
+
(credentials, passwords, API keys). See [Environment variables
22
+
reference](../reference/environment-variables.md) for the full list.
18
23
19
-
The example configuration in [example-configs/kustomize/external-db-and-https-ingress](../example-configs/kustomize/external-db-and-https-ingress/) shows how to structure these resources.
directory for a sample configuration showing how to structure these
27
+
resources.
20
28
21
29
### 2. Create namespace
22
30
@@ -30,7 +38,9 @@ kubectl create namespace mail
30
38
bin/create-tls-certs.sh
31
39
```
32
40
33
-
This writes a self-signed certificate and key to `config/tls/tls.crt` and `config/tls/tls.key`. For production, use certificates from a CA (e.g. cert-manager with Let's Encrypt) instead.
41
+
This writes a self-signed certificate to `config/tls/tls.crt` and key to
42
+
`config/tls/tls.key`. For production, use CA certificates (e.g.
43
+
cert-manager with Let's Encrypt) instead.
34
44
35
45
### 4. Create TLS secret
36
46
@@ -62,20 +72,27 @@ Wait until all pods are running and healthy.
62
72
kubectl exec -n mail -it deployment/web -c php-fpm -- setup.sh
63
73
```
64
74
65
-
Use the wizard to set initial configuration, create the first email address, and create an admin user.
75
+
Use the wizard to set initial configuration, create the first email
76
+
address, and create an admin user.
66
77
67
78
### 8. Access the management interface
68
79
69
80
Use your configured ingress and the admin credentials from the wizard.
70
81
71
82
## Post-installation
72
83
73
-
- Configure DNS and TLS as for Docker. See [How to configure DNS](configure-dns.md) and [How to configure TLS certificates](configure-tls.md).
84
+
- Configure DNS and TLS like Docker deployment. See [How to configure
85
+
DNS](configure-dns.md) and [How to configure TLS
86
+
certificates](configure-tls.md).
74
87
- Change `DOVEADM_API_KEY` from default if using observability (v7.3+).
75
88
76
89
## Troubleshooting
77
90
78
-
-**Pods not starting:** Check pod logs with `kubectl logs -n mail <pod-name>` and events with `kubectl describe pod -n mail <pod-name>`.
79
-
-**Database errors:** Verify database connectivity and that the `MYSQL_*` variables in the ConfigMap/Secrets are correct.
80
-
-**TLS errors:** Confirm the `tls-certs` secret exists in the `mail` namespace and the certificate paths are correct.
81
-
-**Setup wizard fails:** Ensure the web pod is running (`kubectl get pods -n mail`) before running the exec command.
91
+
-**Pods not starting:** Check logs with `kubectl logs -n mail <pod-name>`
92
+
and events with `kubectl describe pod -n mail <pod-name>`.
93
+
-**Database errors:** Verify database connectivity and that the
94
+
`MYSQL_*` variables in ConfigMap/Secrets are correct.
95
+
-**TLS errors:** Confirm the `tls-certs` secret exists in the `mail`
96
+
namespace and certificate paths are correct.
97
+
-**Setup wizard fails:** Ensure the web pod is running (`kubectl get pods
0 commit comments