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: MG1kcWpvYWp6Nw== 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: v1 kind: PersistentVolumeClaim 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: accessModes: - ReadWriteOnce resources: requests: storage: 3Gi storageClassName: openebs-3-replicas --- 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: - name: data persistentVolumeClaim: claimName: dolibarr --- 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: 5Gi storageClassName: openebs-3-replicas --- 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