commit 1724a99840fe0656a549051d26ce8c0fe0b7e59a Author: snt Date: Thu Oct 10 01:21:12 2024 +0200 odoo17 helm chart diff --git a/prod/Chart.yaml b/prod/Chart.yaml new file mode 100644 index 0000000..beb9b62 --- /dev/null +++ b/prod/Chart.yaml @@ -0,0 +1,8 @@ +name: prod +description: A generated Helm Chart for prod from Skippbox Kompose +version: 0.0.1 +apiVersion: v2 +keywords: + - prod +sources: +home: diff --git a/prod/README.md b/prod/README.md new file mode 100644 index 0000000..d3885b6 --- /dev/null +++ b/prod/README.md @@ -0,0 +1 @@ +This chart was created by Kompose diff --git a/prod/templates/db-access-env-configmap.yaml b/prod/templates/db-access-env-configmap.yaml new file mode 100644 index 0000000..4e1bc2f --- /dev/null +++ b/prod/templates/db-access-env-configmap.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +data: + PGPASSWORD: zdGWreOYD8WoDxNYiN +kind: ConfigMap +metadata: + labels: + io.kompose.service: odoo-db-access-env + name: db-access-env diff --git a/prod/templates/db-creation-env-configmap.yaml b/prod/templates/db-creation-env-configmap.yaml new file mode 100644 index 0000000..0bfccc2 --- /dev/null +++ b/prod/templates/db-creation-env-configmap.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +data: + POSTGRES_PASSWORD: zdGWreOYD8WoDxNYiN +kind: ConfigMap +metadata: + labels: + io.kompose.service: db-db-creation-env + name: db-creation-env diff --git a/prod/templates/db-deployment.yaml b/prod/templates/db-deployment.yaml new file mode 100644 index 0000000..10a95e7 --- /dev/null +++ b/prod/templates/db-deployment.yaml @@ -0,0 +1,48 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + kompose.cmd: kompose -f prod.yaml convert -c + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: db + name: db +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: db + strategy: + type: Recreate + template: + metadata: + annotations: + kompose.cmd: kompose -f prod.yaml convert -c + kompose.version: 1.34.0 (cbf2835db) + labels: + io.kompose.service: db + spec: + containers: + - env: + - name: CONF_EXTRA + value: | + work_mem = 512MB + - name: POSTGRES_DB + value: prod + - name: POSTGRES_PASSWORD + valueFrom: + configMapKeyRef: + key: POSTGRES_PASSWORD + name: db-creation-env + - name: POSTGRES_USER + value: odoo + image: ghcr.io/tecnativa/postgres-autoconf:15-alpine + name: db + volumeMounts: + - mountPath: /var/lib/postgresql/data + name: db + restartPolicy: Always + volumes: + - name: db + persistentVolumeClaim: + claimName: db diff --git a/prod/templates/db-persistentvolumeclaim.yaml b/prod/templates/db-persistentvolumeclaim.yaml new file mode 100644 index 0000000..0aa2c19 --- /dev/null +++ b/prod/templates/db-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: db + name: db +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/prod/templates/filestore-persistentvolumeclaim.yaml b/prod/templates/filestore-persistentvolumeclaim.yaml new file mode 100644 index 0000000..95b0030 --- /dev/null +++ b/prod/templates/filestore-persistentvolumeclaim.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + io.kompose.service: filestore + name: filestore +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Mi diff --git a/prod/templates/odoo-deployment.yaml b/prod/templates/odoo-deployment.yaml new file mode 100644 index 0000000..7124186 --- /dev/null +++ b/prod/templates/odoo-deployment.yaml @@ -0,0 +1,191 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + doodba.domain.main: "" + kompose.cmd: kompose -f prod.yaml convert -c + kompose.version: 1.34.0 (cbf2835db) + traefik.backend.buffering.retryExpression: IsNetworkError() && Attempts() < 5 + traefik.docker.network: inverseproxy_shared + traefik.domain: "" + traefik.enable: "true" + traefik.forbiddenCrawlers-0.frontend.headers.customResponseHeaders: + X-Robots-Tag:noindex, nofollow + traefik.forbiddenCrawlers-0.frontend.rule: Host(``);Path:/web,/web/{anything:.*},/website/info,/website/info/{anything:.*} + traefik.frontend.passHostHeader: "true" + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-addSTS.headers.forceSTSHeader: "true" + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-buffering.buffering.retryExpression: + IsNetworkError() && Attempts() < 5 + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-compress.compress: "true" + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-forbid-crawlers.headers.customResponseHeaders.X-Robots-Tag: + noindex, nofollow + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-forceSecure.redirectScheme.permanent: "true" + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-forceSecure.redirectScheme.scheme: https + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-buffering, + odoo-cloud-v17-17-0-prod-compress, odoo-cloud-v17-17-0-prod-forbid-crawlers, + odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-0.rule: + Host() && (PathPrefix(`/web/`, `/website/info/`) || Path(`/web`, `/website/info`)) + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-0.service: odoo-cloud-v17-17-0-prod-main + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-secure-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-buffering, + odoo-cloud-v17-17-0-prod-compress, odoo-cloud-v17-17-0-prod-forbid-crawlers, + odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-secure-0.rule: + Host() && (PathPrefix(`/web/`, `/website/info/`) || Path(`/web`, `/website/info`)) + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-secure-0.service: odoo-cloud-v17-17-0-prod-main + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-secure-0.tls: "true" + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-secure-0.tls.certResolver: letsencrypt + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-0.rule: + Host() && Path(`/websocket`) + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-0.service: odoo-cloud-v17-17-0-prod-longpolling + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-secure-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-secure-0.rule: + Host() && Path(`/websocket`) + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-secure-0.service: odoo-cloud-v17-17-0-prod-longpolling + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-secure-0.tls: "true" + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-secure-0.tls.certResolver: letsencrypt + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-buffering, + odoo-cloud-v17-17-0-prod-compress, odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-0.rule: Host() + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-0.service: odoo-cloud-v17-17-0-prod-main + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-secure-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-buffering, + odoo-cloud-v17-17-0-prod-compress, odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-secure-0.rule: Host() + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-secure-0.service: odoo-cloud-v17-17-0-prod-main + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-secure-0.tls: "true" + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-secure-0.tls.certResolver: letsencrypt + traefik.http.services.odoo-cloud-v17-17-0-prod-longpolling.loadbalancer.server.port: "8072" + traefik.http.services.odoo-cloud-v17-17-0-prod-main.loadbalancer.server.port: "8069" + traefik.longpolling-0.frontend.rule: Host(``);Path:/websocket,/websocket/{anything:.*} + traefik.longpolling-0.port: "8072" + traefik.main-0.frontend.rule: Host(``) + traefik.port: "8069" + labels: + io.kompose.service: odoo + name: odoo +spec: + replicas: 1 + selector: + matchLabels: + io.kompose.service: odoo + strategy: + type: Recreate + template: + metadata: + annotations: + doodba.domain.main: "" + kompose.cmd: kompose -f prod.yaml convert -c + kompose.version: 1.34.0 (cbf2835db) + traefik.backend.buffering.retryExpression: IsNetworkError() && Attempts() < 5 + traefik.docker.network: inverseproxy_shared + traefik.domain: "" + traefik.enable: "true" + traefik.forbiddenCrawlers-0.frontend.headers.customResponseHeaders: + X-Robots-Tag:noindex, nofollow + traefik.forbiddenCrawlers-0.frontend.rule: Host(``);Path:/web,/web/{anything:.*},/website/info,/website/info/{anything:.*} + traefik.frontend.passHostHeader: "true" + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-addSTS.headers.forceSTSHeader: "true" + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-buffering.buffering.retryExpression: + IsNetworkError() && Attempts() < 5 + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-compress.compress: "true" + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-forbid-crawlers.headers.customResponseHeaders.X-Robots-Tag: + noindex, nofollow + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-forceSecure.redirectScheme.permanent: "true" + traefik.http.middlewares.odoo-cloud-v17-17-0-prod-forceSecure.redirectScheme.scheme: https + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-buffering, + odoo-cloud-v17-17-0-prod-compress, odoo-cloud-v17-17-0-prod-forbid-crawlers, + odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-0.rule: + Host() && (PathPrefix(`/web/`, `/website/info/`) || Path(`/web`, + `/website/info`)) + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-0.service: odoo-cloud-v17-17-0-prod-main + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-secure-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-buffering, + odoo-cloud-v17-17-0-prod-compress, odoo-cloud-v17-17-0-prod-forbid-crawlers, + odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-secure-0.rule: + Host() && (PathPrefix(`/web/`, `/website/info/`) || Path(`/web`, + `/website/info`)) + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-secure-0.service: odoo-cloud-v17-17-0-prod-main + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-secure-0.tls: "true" + traefik.http.routers.odoo-cloud-v17-17-0-prod-forbiddenCrawlers-secure-0.tls.certResolver: letsencrypt + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-0.rule: + Host() && Path(`/websocket`) + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-0.service: odoo-cloud-v17-17-0-prod-longpolling + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-secure-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-secure-0.rule: + Host() && Path(`/websocket`) + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-secure-0.service: odoo-cloud-v17-17-0-prod-longpolling + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-secure-0.tls: "true" + traefik.http.routers.odoo-cloud-v17-17-0-prod-longpolling-secure-0.tls.certResolver: letsencrypt + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-buffering, + odoo-cloud-v17-17-0-prod-compress, odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-0.rule: Host() + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-0.service: odoo-cloud-v17-17-0-prod-main + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-secure-0.middlewares: + odoo-cloud-v17-17-0-prod-addSTS, odoo-cloud-v17-17-0-prod-buffering, + odoo-cloud-v17-17-0-prod-compress, odoo-cloud-v17-17-0-prod-forceSecure + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-secure-0.rule: Host() + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-secure-0.service: odoo-cloud-v17-17-0-prod-main + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-secure-0.tls: "true" + traefik.http.routers.odoo-cloud-v17-17-0-prod-main-secure-0.tls.certResolver: letsencrypt + traefik.http.services.odoo-cloud-v17-17-0-prod-longpolling.loadbalancer.server.port: "8072" + traefik.http.services.odoo-cloud-v17-17-0-prod-main.loadbalancer.server.port: "8069" + traefik.longpolling-0.frontend.rule: Host(``);Path:/websocket,/websocket/{anything:.*} + traefik.longpolling-0.port: "8072" + traefik.main-0.frontend.rule: Host(``) + traefik.port: "8069" + labels: + io.kompose.service: odoo + spec: + containers: + - env: + - name: ADMIN_PASSWORD + valueFrom: + configMapKeyRef: + key: ADMIN_PASSWORD + name: odoo-env + - name: DB_FILTER + value: ^prod + - name: DOODBA_ENVIRONMENT + value: prod + - name: EMAIL_FROM + value: notifications@cloud.criptomart.net + - name: INITIAL_LANG + value: es_ES + - name: LIST_DB + value: "true" + - name: PGDATABASE + value: prod + - name: PGPASSWORD + valueFrom: + configMapKeyRef: + key: PGPASSWORD + name: db-access-env + - name: PGUSER + value: odoo + - name: PROXY_MODE + value: "true" + image: odoo + name: odoo + tty: true + volumeMounts: + - mountPath: /var/lib/odoo + name: filestore + restartPolicy: Always + volumes: + - name: filestore + persistentVolumeClaim: + claimName: filestore diff --git a/prod/templates/odoo-env-configmap.yaml b/prod/templates/odoo-env-configmap.yaml new file mode 100644 index 0000000..2a58ea2 --- /dev/null +++ b/prod/templates/odoo-env-configmap.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +data: + ADMIN_PASSWORD: mihXE20eYkstN0rHYY +kind: ConfigMap +metadata: + labels: + io.kompose.service: odoo-odoo-env + name: odoo-env