dolibarr added

This commit is contained in:
Philip Haupt
2025-04-03 21:44:39 +02:00
parent 9622f267e7
commit 114c58ed34
4 changed files with 654 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- main.yaml
- pv.yaml

627
dolibarr/main.yaml Normal file
View File

@@ -0,0 +1,627 @@
apiVersion: v1
automountServiceAccountToken: false
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
app.kubernetes.io/version: 11.4.5
helm.sh/chart: mariadb-20.4.2
name: dolibarr-mariadb
namespace: dolibarr
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: dolibarr
app.kubernetes.io/version: 21.0.0
helm.sh/chart: dolibarr-7.0.0
name: dolibarr
---
apiVersion: v1
data:
my.cnf: |-
[mysqld]
skip-name-resolve
explicit_defaults_for_timestamp
basedir=/opt/bitnami/mariadb
datadir=/bitnami/mariadb/data
plugin_dir=/opt/bitnami/mariadb/plugin
port=3306
socket=/opt/bitnami/mariadb/tmp/mysql.sock
tmpdir=/opt/bitnami/mariadb/tmp
max_allowed_packet=16M
bind-address=*
pid-file=/opt/bitnami/mariadb/tmp/mysqld.pid
log-error=/opt/bitnami/mariadb/logs/mysqld.log
character-set-server=UTF8
collation-server=utf8_general_ci
slow_query_log=0
long_query_time=10.0
binlog_expire_logs_seconds=2592000
[client]
port=3306
socket=/opt/bitnami/mariadb/tmp/mysql.sock
default-character-set=UTF8
plugin_dir=/opt/bitnami/mariadb/plugin
[manager]
port=3306
socket=/opt/bitnami/mariadb/tmp/mysql.sock
pid-file=/opt/bitnami/mariadb/tmp/mysqld.pid
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
app.kubernetes.io/version: 11.4.5
helm.sh/chart: mariadb-20.4.2
name: dolibarr-mariadb
namespace: dolibarr
---
apiVersion: v1
data:
test_all.py: |
import requests
def test_service_connection():
url = "http://dolibarr:80/"
response = requests.get(url)
assert response.status_code == 200
kind: ConfigMap
metadata:
annotations:
helm.sh/hook: test
labels:
app.kubernetes.io/component: tests
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: dolibarr
app.kubernetes.io/version: 21.0.0
helm.sh/chart: dolibarr-7.0.0
name: dolibarr-tests
---
apiVersion: v1
data:
mariadb-password: ZG9saWJhcnI=
mariadb-root-password: QmNQRVVGajZYTw==
kind: Secret
metadata:
labels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
app.kubernetes.io/version: 11.4.5
helm.sh/chart: mariadb-20.4.2
name: dolibarr-mariadb
namespace: dolibarr
type: Opaque
---
apiVersion: v1
data:
dolibarr-admin-password: YWRtaW4=
kind: Secret
metadata:
labels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: dolibarr
app.kubernetes.io/version: 21.0.0
helm.sh/chart: dolibarr-7.0.0
name: dolibarr
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
app.kubernetes.io/version: 11.4.5
helm.sh/chart: mariadb-20.4.2
name: dolibarr-mariadb
namespace: dolibarr
spec:
ports:
- name: mysql
nodePort: null
port: 3306
protocol: TCP
targetPort: mysql
selector:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/name: mariadb
sessionAffinity: None
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
app.kubernetes.io/version: 11.4.5
helm.sh/chart: mariadb-20.4.2
name: dolibarr-mariadb-headless
namespace: dolibarr
spec:
clusterIP: None
ports:
- name: mysql
port: 3306
protocol: TCP
targetPort: mysql
publishNotReadyAddresses: true
selector:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: dolibarr
app.kubernetes.io/version: 21.0.0
helm.sh/chart: dolibarr-7.0.0
name: dolibarr
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
selector:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/name: dolibarr
sessionAffinity: None
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: dolibarr
app.kubernetes.io/version: 21.0.0
helm.sh/chart: dolibarr-7.0.0
name: dolibarr
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/name: dolibarr
strategy:
type: Recreate
template:
metadata:
annotations:
checksum/secret: 541efa5059812db22d6496d656a2ba104aed45d13df16a95ef81a71c06d7832c
labels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/name: dolibarr
spec:
containers:
- env:
- name: DOLI_ADMIN_LOGIN
value: admin
- name: DOLI_ADMIN_PASSWORD
valueFrom:
secretKeyRef:
key: dolibarr-admin-password
name: dolibarr
- name: DOLI_DB_HOST
value: dolibarr-mariadb
- name: DOLI_DB_HOST_PORT
value: "3306"
- name: DOLI_DB_USER
value: dolibarr
- name: DOLI_DB_PASSWORD
valueFrom:
secretKeyRef:
key: mariadb-password
name: dolibarr-mariadb
- name: DOLI_DB_NAME
value: dolibarr
- name: DOLI_URL_ROOT
value: http://dolibarr.ggw
image: docker.io/dolibarr/dolibarr:21.0.0
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /
port: http
initialDelaySeconds: 180
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: dolibarr
ports:
- containerPort: 80
name: http
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
path: /
port: http
initialDelaySeconds: 0
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources: {}
securityContext: {}
volumeMounts:
- mountPath: /var/www/documents
name: data
enableServiceLinks: false
initContainers:
- command:
- /bin/sh
- -ec
- |
wait4x mysql "${MARIADB_USERNAME}:${MARIADB_PASSWORD}@tcp(${MARIADB_HOST}:${MARIADB_PORT})/${MARIADB_DATABASE}" --timeout 0
env:
- name: MARIADB_HOST
value: dolibarr-mariadb
- name: MARIADB_PORT
value: "3306"
- name: MARIADB_USERNAME
value: dolibarr
- name: MARIADB_PASSWORD
valueFrom:
secretKeyRef:
key: mariadb-password
name: dolibarr-mariadb
- name: MARIADB_DATABASE
value: dolibarr
image: docker.io/wait4x/wait4x:3.2.0
imagePullPolicy: IfNotPresent
name: wait-mariadb
resources: {}
securityContext: {}
volumeMounts: null
- command:
- /bin/bash
- -ec
- |
rm -f /var/www/documents/install.lock
image: docker.io/dolibarr/dolibarr:21.0.0
imagePullPolicy: IfNotPresent
name: init
resources: {}
securityContext: {}
volumeMounts:
- mountPath: /var/www/documents
name: data
securityContext: {}
serviceAccountName: dolibarr
volumes:
- emptyDir: {}
name: data
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
app.kubernetes.io/version: 11.4.5
helm.sh/chart: mariadb-20.4.2
name: dolibarr-mariadb
namespace: dolibarr
spec:
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
serviceName: dolibarr-mariadb-headless
template:
metadata:
annotations:
checksum/configuration: e667a69337110d2250a6d16ff2f79b3f8b6e7eec68cbe863a785afaf02d2b3a7
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
app.kubernetes.io/version: 11.4.5
helm.sh/chart: mariadb-20.4.2
spec:
affinity:
nodeAffinity: null
podAffinity: null
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchLabels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/name: mariadb
topologyKey: kubernetes.io/hostname
weight: 1
automountServiceAccountToken: false
containers:
- env:
- name: BITNAMI_DEBUG
value: "false"
- name: MARIADB_ROOT_PASSWORD_FILE
value: /opt/bitnami/mariadb/secrets/mariadb-root-password
- name: MARIADB_USER
value: dolibarr
- name: MARIADB_PASSWORD_FILE
value: /opt/bitnami/mariadb/secrets/mariadb-password
- name: MARIADB_DATABASE
value: dolibarr
- name: MARIADB_ENABLE_SSL
value: "no"
image: docker.io/bitnami/mariadb:11.4.5-debian-12-r9
imagePullPolicy: IfNotPresent
livenessProbe:
exec:
command:
- /bin/bash
- -ec
- |
password_aux="${MARIADB_ROOT_PASSWORD:-}"
if [[ -f "${MARIADB_ROOT_PASSWORD_FILE:-}" ]]; then
password_aux=$(cat "$MARIADB_ROOT_PASSWORD_FILE")
fi
mariadb-admin status -uroot -p"${password_aux}"
failureThreshold: 3
initialDelaySeconds: 120
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: mariadb
ports:
- containerPort: 3306
name: mysql
readinessProbe:
exec:
command:
- /bin/bash
- -ec
- |
password_aux="${MARIADB_ROOT_PASSWORD:-}"
if [[ -f "${MARIADB_ROOT_PASSWORD_FILE:-}" ]]; then
password_aux=$(cat "$MARIADB_ROOT_PASSWORD_FILE")
fi
mariadb-admin ping -uroot -p"${password_aux}"
failureThreshold: 3
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
cpu: 750m
ephemeral-storage: 2Gi
memory: 768Mi
requests:
cpu: 500m
ephemeral-storage: 50Mi
memory: 512Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
seLinuxOptions: {}
seccompProfile:
type: RuntimeDefault
volumeMounts:
- mountPath: /bitnami/mariadb
name: data
- mountPath: /opt/bitnami/mariadb/conf/my.cnf
name: config
subPath: my.cnf
- mountPath: /opt/bitnami/mariadb/secrets/
name: mariadb-credentials
- mountPath: /tmp
name: empty-dir
subPath: tmp-dir
- mountPath: /opt/bitnami/mariadb/conf
name: empty-dir
subPath: app-conf-dir
- mountPath: /opt/bitnami/mariadb/tmp
name: empty-dir
subPath: app-tmp-dir
- mountPath: /opt/bitnami/mariadb/logs
name: empty-dir
subPath: app-logs-dir
initContainers:
- args:
- -ec
- |
#!/bin/bash
. /opt/bitnami/scripts/libfs.sh
# We copy the logs folder because it has symlinks to stdout and stderr
if ! is_dir_empty /opt/bitnami/mariadb/logs; then
cp -r /opt/bitnami/mariadb/logs /emptydir/app-logs-dir
fi
command:
- /bin/bash
image: docker.io/bitnami/mariadb:11.4.5-debian-12-r9
imagePullPolicy: IfNotPresent
name: preserve-logs-symlinks
resources:
limits:
cpu: 750m
ephemeral-storage: 2Gi
memory: 768Mi
requests:
cpu: 500m
ephemeral-storage: 50Mi
memory: 512Mi
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
seLinuxOptions: {}
seccompProfile:
type: RuntimeDefault
volumeMounts:
- mountPath: /emptydir
name: empty-dir
securityContext:
fsGroup: 1001
fsGroupChangePolicy: Always
supplementalGroups: []
sysctls: []
serviceAccountName: dolibarr-mariadb
volumes:
- emptyDir: {}
name: empty-dir
- configMap:
name: dolibarr-mariadb
name: config
- name: mariadb-credentials
secret:
items:
- key: mariadb-root-password
path: mariadb-root-password
- key: mariadb-password
path: mariadb-password
secretName: dolibarr-mariadb
updateStrategy:
type: RollingUpdate
volumeClaimTemplates:
- metadata:
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/name: mariadb
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
---
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
labels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
app.kubernetes.io/version: 11.4.5
helm.sh/chart: mariadb-20.4.2
name: dolibarr-mariadb
namespace: dolibarr
spec:
maxUnavailable: 1
selector:
matchLabels:
app.kubernetes.io/component: primary
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/name: mariadb
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
labels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mariadb
app.kubernetes.io/part-of: mariadb
app.kubernetes.io/version: 11.4.5
helm.sh/chart: mariadb-20.4.2
name: dolibarr-mariadb
namespace: dolibarr
spec:
egress:
- {}
ingress:
- ports:
- port: 3306
- port: 3306
podSelector:
matchLabels:
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: mariadb
app.kubernetes.io/version: 11.4.5
helm.sh/chart: mariadb-20.4.2
policyTypes:
- Ingress
- Egress
---
apiVersion: v1
kind: Pod
metadata:
annotations:
helm.sh/hook: test
labels:
app.kubernetes.io/component: tests
app.kubernetes.io/instance: dolibarr
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: dolibarr
app.kubernetes.io/version: 21.0.0
helm.sh/chart: dolibarr-7.0.0
name: dolibarr-tests
spec:
containers:
- image: ghcr.io/cowboysysop/pytest:1.0.41
imagePullPolicy: IfNotPresent
name: tests
volumeMounts:
- mountPath: /tests
name: tests
readOnly: true
workingDir: /tests
restartPolicy: Never
volumes:
- configMap:
name: dolibarr-tests
name: tests

View File

@@ -0,0 +1,12 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
helmCharts:
- name: dolibarr
repo: https://cowboysysop.github.io/charts/
version: 7.0.0
releaseName: dolibarr
includeCRDs: true
namespace: dolibarr
valuesFile: values.yaml

8
dolibarr/src/values.yaml Normal file
View File

@@ -0,0 +1,8 @@
replicaCount: 1
persistence:
size: 3Gi
storageClass: openebs-3-replicas
dolibarr:
externalUrl: http://dolibarr.ggw