From b44df6dcda552f5dfe9fac3ffdf04be1a045471d Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Thu, 3 Dec 2020 17:41:21 +0100 Subject: [PATCH] feat(k8s): use @socialgouv/kosko-charts@alpha (#428) --- .gitlab-ci.yml | 2 +- .../kosko generate --env dev.ts.snap | 666 ++++++++++++++++++ .../kosko generate --env preprod.ts.snap | 628 +++++++++++++++++ .../kosko generate --env prod.ts.snap | 586 +++++++++++++++ .k8s/__tests__/kosko generate --env dev.ts | 8 + .../__tests__/kosko generate --env preprod.ts | 8 + .k8s/__tests__/kosko generate --env prod.ts | 8 + .k8s/babel.config.js | 3 + .k8s/components/_namespace.ts | 2 +- .k8s/components/_pgweb.ts | 43 +- .k8s/components/hasura.ts | 3 + .k8s/environments/.gitlab-ci.env | 32 - .k8s/environments/.gitlab.env | 20 + .k8s/environments/dev/.gitlab.env | 10 + .k8s/environments/preprod/.gitlab.env | 11 + .k8s/environments/preprod/app.ts | 5 - .k8s/environments/prod/.gitlab.env | 9 + .k8s/main.js | 34 - .k8s/package.json | 9 +- .k8s/yarn.lock | 439 +++++++++++- 20 files changed, 2379 insertions(+), 147 deletions(-) create mode 100644 .k8s/__tests__/__snapshots__/kosko generate --env dev.ts.snap create mode 100644 .k8s/__tests__/__snapshots__/kosko generate --env preprod.ts.snap create mode 100644 .k8s/__tests__/__snapshots__/kosko generate --env prod.ts.snap create mode 100644 .k8s/__tests__/kosko generate --env dev.ts create mode 100644 .k8s/__tests__/kosko generate --env preprod.ts create mode 100644 .k8s/__tests__/kosko generate --env prod.ts create mode 100644 .k8s/babel.config.js delete mode 100644 .k8s/environments/.gitlab-ci.env create mode 100644 .k8s/environments/.gitlab.env create mode 100644 .k8s/environments/dev/.gitlab.env create mode 100644 .k8s/environments/preprod/.gitlab.env delete mode 100644 .k8s/environments/preprod/app.ts create mode 100644 .k8s/environments/prod/.gitlab.env delete mode 100644 .k8s/main.js diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 632763e8..08408074 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,7 @@ include: - project: SocialGouv/gitlab-ci-yml file: /autodevops.yml - ref: v17.10.0 + ref: v19.0.0 variables: AUTO_DEVOPS_RELEASE_AUTO: "🔖" diff --git a/.k8s/__tests__/__snapshots__/kosko generate --env dev.ts.snap b/.k8s/__tests__/__snapshots__/kosko generate --env dev.ts.snap new file mode 100644 index 00000000..2291fd97 --- /dev/null +++ b/.k8s/__tests__/__snapshots__/kosko generate --env dev.ts.snap @@ -0,0 +1,666 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`kosko generate --dev 1`] = ` +"--- +metadata: + annotations: + field.cattle.io/creatorId: gitlab + field.cattle.io/projectId: 'c-bd7z2:p-7ms8p' + git/branch: master + git/remote: >- + https://gitlab-ci-token:[MASKED]@gitlab.factory.social.gouv.fr/SocialGouv/sample-next-app.git + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: sample-next-app-85-master-dev2 +apiVersion: v1 +kind: Namespace +--- +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: pgweb + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + component: pgweb + name: pgweb + namespace: sample-next-app-85-master-dev2 +spec: + replicas: 1 + selector: + matchLabels: + app: pgweb + template: + metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: pgweb + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + component: pgweb + spec: + containers: + - image: 'sosedoff/pgweb:0.11.7' + livenessProbe: + failureThreshold: 6 + httpGet: + path: / + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 5 + name: pgweb + ports: + - containerPort: 8081 + name: http + readinessProbe: + failureThreshold: 15 + httpGet: + path: / + port: http + initialDelaySeconds: 0 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 500m + memory: 256Mi + requests: + cpu: 100m + memory: 64Mi + startupProbe: + failureThreshold: 12 + httpGet: + path: / + port: http + periodSeconds: 5 + envFrom: + - secretRef: + name: azure-pg-user-c18cfdbb + initContainers: + - env: + - name: WAIT_FOR_RETRIES + value: '24' + envFrom: + - secretRef: + name: azure-pg-user-c18cfdbb + image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/docker/wait-for-postgres:2.0.0 + imagePullPolicy: Always + name: wait-for-postgres + resources: + limits: + cpu: 20m + memory: 32Mi + requests: + cpu: 5m + memory: 16Mi +apiVersion: apps/v1 +kind: Deployment +--- +metadata: + labels: + app: pgweb + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: pgweb + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + namespace: sample-next-app-85-master-dev2 +spec: + ports: + - name: http + port: 80 + targetPort: 8081 + selector: + app: pgweb + type: ClusterIP +apiVersion: v1 +kind: Service +--- +metadata: + annotations: + kubernetes.io/ingress.class: nginx + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: pgweb + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: pgweb + namespace: sample-next-app-85-master-dev2 +spec: + rules: + - host: pgweb-master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr + http: + paths: + - backend: + serviceName: pgweb + servicePort: 80 + path: / + tls: + - hosts: + - pgweb-master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr + secretName: wildcard-crt +apiVersion: extensions/v1beta1 +kind: Ingress +--- +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: app + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: app + namespace: sample-next-app-85-master-dev2 +spec: + replicas: 1 + selector: + matchLabels: + app: app + template: + metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: app + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + spec: + containers: + - image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/sample-next-app/app:c18cfdbb191c5c401f4110e1f15707b21ca995df + livenessProbe: + failureThreshold: 6 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 5 + name: app + ports: + - containerPort: 3030 + name: http + readinessProbe: + failureThreshold: 15 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 0 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 50m + memory: 128Mi + requests: + cpu: 1m + memory: 64Mi + startupProbe: + failureThreshold: 12 + httpGet: + path: /healthz + port: http + periodSeconds: 5 + envFrom: + - secretRef: + name: app-sealed-secret + - configMapRef: + name: app-configmap +apiVersion: apps/v1 +kind: Deployment +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: 'true' + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + creationTimestamp: null + name: app-sealed-secret + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-master-dev2 +spec: + encryptedData: + ACCOUNT_EMAIL_SECRET: >- + AgCYU5zQRAGub/7BY2VzhhQ/Y5EtYeWcgdBrHMfOdhK6DLDbkiYTVBvdIVbvUp/AtHP8V3UwT0zoQfKRiECwdH6oJ92GJ2DQ6svTNJH+x4EyQRJTeRMOrx6y+iVAcFx6I5RbT6SdKkpzGztpY4t4pGt3IOUoKNrJRqshj170LQqsw57NyxzSgZ0HONNsHE+HUK6AijgZXBthAfWqlFyrg6WIBY1f/jyuZ7jvzlotTI9JXXSBz8LryNYG7kth2weHcmlQKiqERPbWGFuGwM77hzgFwixjqnrGJEjWXDfsAmBLk+B9nVht2H54pPYCD+cyRea5NeisxnNCAOw10BJHEX1gxgNzSwQDVfOSINWT1a8R81tm7Dz7j3LyKKT+UH8BREHMlu4qv7+D6PjrRXJXtAMGN6Vsz0Hqvf6vlZou7O4ygcAtirRaSPvsuU1FOg2JvwfheUVZ7StBGhsTBWyQ0jw9UqAXcjtcbqfzeOc8sEEe/5xyRJctT+A4s4XNGxiF/Mnaa9XB5OHtz55FUDzy2o0S21JXFjnNs2kmDji3gjPwYJzg+qat7ZcGBNMR4KNvu2SiUoDdQMKzmh7mi4nwqlOv08eJVP8ZzXGS3F8QcsMFXPfrH/53hunKq6gQ61D3+CsCN6Hz89X7FgWnMroMv52gNwtUc0yeQ+klIB2RsY6+NefWx0p+ikxHY9MG64qMPtFNG+RW2TwRgcdbD6CC31GUVmGVLpEF95RF7v1i66H9EvNwiRZCagnZ4qYcrQ== + HASURA_GRAPHQL_ADMIN_SECRET: >- + AgCAqhKgc3PtqkQnkPeR0pAyh5bkICHiNpYkHBwRAhRCSo4kktC4p1/OJapMewk2glYBZHdUIad4JEn1V7/EvfMkWs7Eh7CXLYQB8xdJxbl7tyopNSppQxLA2YkMTPmnja5kGJrf2nvZNR1u7aQ7z5ZuP9KFzPsWTj/pFQiczsoyhNrKJmSeAUMRKophVfgKDdvNuM6ZEuSiR9iGhhrGJVD1gHlQaOW0JKCjweuC0opYdP/rlZOD6BvqzlaYc+dHVYbot7ktDzYT98YCIJdS0sKe0/6+L/CQgWeqAUxZxyPrtOk5BsBOXKNuXIrG9sQQ8SXSykubqYRGdClVv6TlazMXvBtuoind14bkJ1G4Are0FsokIPoJxrYAM1Nd4hKvRJvT3BiiEY2JdqRbmeHyZc+yCYUeUkvbtVIHFHGnSjVzAfriR6mLj4psmUGAtjq7qqaa6fJQb1fRr6pnb6//i6B6NjspyMHNi5uwLCn3Rvrqbq0abgtZCh1PUPZeqA/kAENyg3FunPzxiCdlHJnKch7lQDSkoQDukEGWipUnr9/ICfMuAMlu1uTHqjjGrsZoewqY00MHkPNyFiHVwYmEqY9INfmEH9G5UBLaWTorLyvleJUK60d8ZteFArZlskOs82gtcVhYGtE1TZ3VSn/sGKHdC53BlWJ5b65GKP8bn1xKmuu+ah3+NNWkgTydoKzTjHxOiX3FVeDHyVM9v3Xyv/6/Z8KCvRw9cgbmcX+PkTifzsT/10iGvP+aa/8+3tOmikLHHGpTyALG9YOZ4MPOHR5owd1xI0TUm++0+JgxYfeNny+Ybk0O0x/ikVx+gSDR7MKDD9sI2V6wX8cJKpl6hLFIxFV0EUCwHiWW0N5ZnXJarMMhMWzV+4YaD0c6ZxhDgizvIX6nOs0aEihvFBVBgZuiIiO3RW0fUDel0kcqzg== + HASURA_GRAPHQL_JWT_SECRET: >- + AgAnThMc6uuayn1BR4rLy65IoFDsv8pzBpphbYxf36e4OJooSi9s2upWe8g3HpVfdb5SthH77uw+64Ks+Tvku1gHrUOOXh89F+RS1mLwBfNhe4Nlf55AosasYsUOjE5mWOd0Czdp723ujL9T1SoZNyGeGyG2ZPxR+clgBJIgX5fRMvfi76SSq5trUasItHflHp+io2leMD8QBB0jukLf8vmHHCZ36S1hwtISj7NMHtiv4bl2AQPj6KjyO2U0AB+Uf+Un21RwCRsXv4mDkKNZAGSMn67IkqLRK02TFJQRz4qn+WrX4DPkgNG+fELYHBK0CSi8orSN07Z0qY4y86IYbXRiqJDDKIXq6jNQ2V3Ffox8uNNPk8BJ4lrxz4Bn9r9/rTWRLS70Uzv+OXViJ2xcb4HxBZFSKucOVK4Gx8kFf5xoKd6LV6g6kbjtYQUR4FGQihvZYsDrr5qGv1rxHO7EkY4o9Hre2iHVQJ08imfDoXscfzeJC9lxo/e5M7LusDtIkzwkMkmsv8WXMlGjfg4JoYiQzVA8oMsmeWQLHNdJUdSkZF8tFc3skvgYEeMuDi89KRiuCOwnShrVLzPzYbWO+7dwnyay5NVvtvNE9kXYn5U4EwGExeLGWoRRrDCOUM9sgwAJF7AcDcQUQ+MWupWacW7YE+VjBMuDmJR+1Gx9qDXGUspG1DkDfKqLCxT1L2RoMlbIfubACEYYbZ5IiooqjwbHCMUzbr4aRNSM2C3KqN8wSlB18xVfrgVpWYqZFtXWjJAgvLbn5Pi6ryaBPy/adnlBpGf1S2EakV9uR6gdpsKR1yTmzNT7MCIiInzvq/KijQCiJwAyqIkpU+tQv+HInHxWZQ== + SMTP_EMAIL_PASSWORD: >- + AgAGdvTnBpg52nSwcqvGIoTRkxweutFd7x1hbU/HHAH9gxPa4ICT5AOZyb+Ec9OeaSBQjf9T+4qYGC5FngtbhqfSiloVvir2NvXZOUy+O3ME33QCzfw4+nANvHmsngFDVsJdjvSz2ykT9dyNbiyFrqRBhV5RnIAqgTfvXozVOFdFeUVRelL+tZQC0miGdHUOmjjOSh4T8LntBwJOj9lv/oW1g+Vai2zOwfSGFRTeWHv/Y5WYXCiuprOzgrYUEEzxDb/ELD45S5fcwYM4KVezHe1NAWqjPhcVwLq1q4iqSaHBwGBH528pxcFcPUn3u1uK/ip3lsPiA32vi5bFantUoBiL8HfB5NedJMls/3AeyIQl53Ymu55kr/NZ5YugXExs+uCgm3aRE8EyMWnVjvYZ2npSXS9hiTsBm0jyEHOSfdLiuWvGK5r+1zz6mHuBYemQQnLjEpmRhrG5XJyJmHAsRNR1P7H1+3pqSDD8iw0yXinth3URP/4L9JrTaI4Mx2LmDmVj34oGrbMx1Ekqe7t8MjrHy/fIXRqct7X+F+GFjklALzYNuBqNUg+HxbdVKxuo9STbUVhxTXkSvlgOaT9sUiyYFybiqj8vX9VPKhKBxrUmEPue4d63v/ud3YhyHcFENUQ7PKteBUKjzPOaMNi4xvmUi6Wk/sSCBi5BZiin0obLdUGplnmO0rzX9wxllUBS+o14T5m6kWk0b1oUesVOORk9mBR1rUPKHJWCmkFYcoqTjQ== + SMTP_EMAIL_USER: >- + AgCVO/tUEz52Bt2Az91fIjWN6MYoV+eHqyufJ1N1RzkzgF/sw5DRdpKR5+s9ZOJvPlsEBUoUtd+iH16ZJz/vx4oSR5+KeTg4fXyOIi+jL/AB4hBYP8cQvvC9kXvK4KiS1FXiYvXKATcusvTkHdJZf/CfYB7jyXpyvMdmefiOexjwyieIP//YqPygqgOvi7RGnqohrk2S28YW17/oJA1QatbUh84wNG/6sSAfyy7coYaSU+6gTjHdommuypMRN7QKts/Hj0ZdM8xzXjQ630NzIPjZha6gG++ZDhR2hyo+vGuUESKuE37ifeEJlBhnWr/T9Qm2xE29UDChUpmtGtFz5xoxLabk8eU32qWy3WzclX26D2Ctcl1zy8atbaHq7A5JeWrV9wowhrUMVg/uiDXbt4NTcegHwCfSXl1kqNMVtJl7HijmUBMy+Yf7ntKyhdA6AoLZFQxrypzY3lgIS+2p46Ig1CP/DXakOn7yyoRW+k1KkzKv9E18QlvaRn6coyq705brLLM3/RuISw+FwGbD/VLgiHMIpCarY+Uy+K/c28320DXvoMLopAJekUnbdiPzL7vPLs2ao7BPZ+a0GDvpp+f+/T/EoVIHgiZoHiXEYmc/n2fmYd7Gb0UCa1og2ovhiegLnaFewD2OKMuP/gDuIwvnX9jU093dVupOw1muX0wgB+NH4xl7rTB42nvxLZK6N/ymfqg+LzQnqU+3drEWunSgepvKYem+86aKq2BkoJF+Ng== + SMTP_URL: >- + AgDVilgKuupA5C2U/aA69wX3hl3Rbv58xFS7WGeUjq7ubq5meZhRyT3QG3Ly1rXzoPCfB3LDC0JDjRMJ1G2jmn9o0znEXYks/49m6hDaKhcwnnlIE/ThBJ/BBqnZtoAjxzoeBSvaEhV/dd/a7GrIQYiswfT8P3LVza4gKdj1li5vs7htCLnZfOrAgAqfXSxILDfHlEk9lmbL5J4JdYlVKesp6XNjcnUWaP2ycc0vW3qWlwrFU2DJw45wZCoE/76hG2s+Tk3VF5Q6kiNJCKTCf88jpeiggxIpntjLJk8nmrr9/aZ8fl8gDWUYV+15UFgh5jSP0nlWlCTmxAMmEL2lwBb9289rt0o3ZM7L+yfzLGD9QTy/Ns0hm2M4Cynwh0SD1ti/lMv/GO73XFShUO2glHM96isPFqvbBdBGua8ksp59W0TYQRMFFHbygZEj4k5K516w3gV4XonZN6INOqKt4s27R9oiOoFup2mQo0ns1sH7XB8q/wXVmro3km/dqToSOFRa/0v+fZNfzlh1X0JlqI+940CQz7I3rusrFDR5kfryVt0A6AP9tjyG9jQAjiM0lwcJgHrDARpNXuo9qzLf0yDK68NrR49XGWNugRuKHEA8Ka7vLmbeIvZOElsfn/ZCpnWrUNcRO/5dvxIQgNRIKiHVcqM1QV6V31YZMa6ZfJI/zhLaWEoOV0svcYrO9jy9H0rRtrMEqXZO0IQ8pYVfHhNxbA== + template: + metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: 'true' + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + creationTimestamp: null + name: app-sealed-secret + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard +--- +metadata: + name: app-configmap + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-master-dev2 +data: + NODE_ENV: production + GRAPHQL_ENDPOINT: 'http://hasura/v1/graphql' + ACCOUNT_MAIL_SENDER: contact@fabrique.social.gouv.fr + FRONTEND_PORT: '3030' + PRODUCTION: 'false' +apiVersion: v1 +kind: ConfigMap +--- +metadata: + labels: + app: app + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: app + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + namespace: sample-next-app-85-master-dev2 +spec: + ports: + - name: http + port: 80 + targetPort: 3030 + selector: + app: app + type: ClusterIP +apiVersion: v1 +kind: Service +--- +metadata: + annotations: + kubernetes.io/ingress.class: nginx + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: app + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: app + namespace: sample-next-app-85-master-dev2 +spec: + rules: + - host: master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr + http: + paths: + - backend: + serviceName: app + servicePort: 80 + path: / + tls: + - hosts: + - master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr + secretName: wildcard-crt +apiVersion: extensions/v1beta1 +kind: Ingress +--- +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: hasura + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: hasura + namespace: sample-next-app-85-master-dev2 +spec: + replicas: 1 + selector: + matchLabels: + app: hasura + template: + metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: hasura + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + spec: + containers: + - image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/sample-next-app/hasura:c18cfdbb191c5c401f4110e1f15707b21ca995df + livenessProbe: + failureThreshold: 6 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 5 + name: hasura + ports: + - containerPort: 80 + name: http + readinessProbe: + failureThreshold: 15 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 0 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 100m + memory: 64Mi + startupProbe: + failureThreshold: 12 + httpGet: + path: /healthz + port: http + periodSeconds: 5 + envFrom: + - secretRef: + name: azure-pg-user-c18cfdbb + - secretRef: + name: hasura-sealed-secret + - configMapRef: + name: hasura-configmap + initContainers: + - env: + - name: WAIT_FOR_RETRIES + value: '24' + envFrom: + - secretRef: + name: azure-pg-user-c18cfdbb + image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/docker/wait-for-postgres:2.0.0 + imagePullPolicy: Always + name: wait-for-postgres + resources: + limits: + cpu: 20m + memory: 32Mi + requests: + cpu: 5m + memory: 16Mi +apiVersion: apps/v1 +kind: Deployment +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: 'true' + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + creationTimestamp: null + name: hasura-sealed-secret + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-master-dev2 +spec: + encryptedData: + ACCOUNT_EMAIL_SECRET: >- + AgCYU5zQRAGub/7BY2VzhhQ/Y5EtYeWcgdBrHMfOdhK6DLDbkiYTVBvdIVbvUp/AtHP8V3UwT0zoQfKRiECwdH6oJ92GJ2DQ6svTNJH+x4EyQRJTeRMOrx6y+iVAcFx6I5RbT6SdKkpzGztpY4t4pGt3IOUoKNrJRqshj170LQqsw57NyxzSgZ0HONNsHE+HUK6AijgZXBthAfWqlFyrg6WIBY1f/jyuZ7jvzlotTI9JXXSBz8LryNYG7kth2weHcmlQKiqERPbWGFuGwM77hzgFwixjqnrGJEjWXDfsAmBLk+B9nVht2H54pPYCD+cyRea5NeisxnNCAOw10BJHEX1gxgNzSwQDVfOSINWT1a8R81tm7Dz7j3LyKKT+UH8BREHMlu4qv7+D6PjrRXJXtAMGN6Vsz0Hqvf6vlZou7O4ygcAtirRaSPvsuU1FOg2JvwfheUVZ7StBGhsTBWyQ0jw9UqAXcjtcbqfzeOc8sEEe/5xyRJctT+A4s4XNGxiF/Mnaa9XB5OHtz55FUDzy2o0S21JXFjnNs2kmDji3gjPwYJzg+qat7ZcGBNMR4KNvu2SiUoDdQMKzmh7mi4nwqlOv08eJVP8ZzXGS3F8QcsMFXPfrH/53hunKq6gQ61D3+CsCN6Hz89X7FgWnMroMv52gNwtUc0yeQ+klIB2RsY6+NefWx0p+ikxHY9MG64qMPtFNG+RW2TwRgcdbD6CC31GUVmGVLpEF95RF7v1i66H9EvNwiRZCagnZ4qYcrQ== + HASURA_GRAPHQL_ADMIN_SECRET: >- + AgDZX0nGJWSkGYaaTpArKf3L1jsBEzKzsE1qkDIziGJHgVuqdPUhvZwmd6/9yPtkw7ohLh4/yqpQFELURajvHPJy4ZBok5bRhX4eC2tbsEQ+20YmL86KGNUhGSdJ9Ua3m/jV5qEyFnLPBG4cPJL4OjEDNvm/WwJvQfTlXaV4YoZMzlZmPMLFKAQ/8jKoefaIjtTXPq3YSeULlEx94Pv08C5b6o0US4fQwhtBAUOlUmhPEDXo0u4r4yM5w7HGWSCD4Dsb+rHlcRi7ulCCafeaBLITq3BMhzS1eO5XNrLGzh4iDh4rTtv83Y8kFFvb/zXlq/uiPZMoTxaH5eTqYQkCRA3L/2T7hWWiINDB9kbNTIyIZ2uF0W1RLnwgq2VASruNEhxXHYKeQfnhxcqTxGAsTgJgAGhMm17vALEAHt+72L4O822WJw39TB9ozqbnZ0I++ZAmd+kIrZ3Uxp7WfzmM7bKzdqn8L2k0jxHCOKWxChXayONqTFUq9YfJdqSHtNnfi5Bt610SjmD62Vil1hmxIhQv6xmzRwo2pfbhrUj6gNsNdDTrV5fxfZzEOtvwl6C+bPuHmD+qbke78eiJp8A4WIgn1CayHsSoaokH36Q1IW+ETuyQHhz8RMd8ZmrGAeSWUm71SR0nKCWgCwtRX4NhBR5fGR8M7CLTJm3ofrv1fyZ8WKPC7OcnhHmKYBeaw6qku9K+0qRCuvIp/6/dd28SC1obdir77d924ZTkFxUVIAu9J0u0AOEu6UZS + HASURA_GRAPHQL_JWT_SECRET: >- + AgB0yHuBM57mDtyon+1dEC9PTgejHVGA5uOHbdu5P4tH6CuOgpH2cnbXnBaeD+7d52aCNto7a0qD5TN4MtwMQZbJuyXdH8QIsZSvvVmKK0Tf5dgYBnTqDKfJnaH/frlIyrFrZs9aj84uHpZPMw1jP6Rrn/gHLn6oNdvkJS668c5ALSvjJoNoqT2l+2TC0p4fNq9H/q0HaLkL+s5Jfkb9ZqPevo3sBQKJvGEEZmgld0U6S95hiGRVhEGqLR90ZbnYpKpHXk09fxva/UgRGGniK4yAJ7noeUsB2HZU8+X88I0TeX7vx0+WHAqV65eA14e2BegKI55JPeX8rXte/Iy0KRkyBQ8KtD5jkfTsmdeLMchdnmys7pu4CGiRXyAANT8uWzP0QifqfZhG6fHqZiMPhOa8XM2Z8KhFgtWH0m8IG/OUZCllWeRyAFTcupa5Jsq3jn+Y/0N2sgeALvBEmhGSN8jTAWa4cetoF//1kk67BaLFpLrc9P2nSGqd5HII7HGL1C8kCbV9Fmz/etX705sB9g9Sg0xFVhNqUvwYUOs9h51MQJLn64zO1Bd0q/U8LN3k71tqidJbsEc9P1JX90U6QbGu2FpQrPFAIz3Y0UnAiCfxyfVxwGvciwAQw5yIo8S2/XbB1wyGY/hWCYy0s4qOl11Dj1YpNwe7Xjbq7cnGfxp2BFC5Ps4O42jeSj7mhpUSyacLG6MavSdSPdrnOAMGKD7Gdz7jBd5/EBFhGmN8roCR+8H/Q5kbUlKfS5kEQR3Xkx8uNHqW8mr8ka7Fbn06vlmCDc09L9sXC6rJOXwIsZ6peqD7e1gPnotGfARHh5D07R3x6v491eS/FVCWao19XUHsaA== + template: + metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: 'true' + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + creationTimestamp: null + name: hasura-sealed-secret + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + type: Opaque +--- +metadata: + name: hasura-configmap + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-master-dev2 +data: + ACCOUNT_EMAIL_WEBHOOK_URL: 'http://app:80/api/webhooks/account' + HASURA_GRAPHQL_ENABLE_CONSOLE: 'true' + HASURA_GRAPHQL_ENABLED_LOG_TYPES: 'startup, http-log, webhook-log, websocket-log, query-log' + HASURA_GRAPHQL_LOG_LEVEL: debug + HASURA_GRAPHQL_NO_OF_RETRIES: '5' + HASURA_GRAPHQL_SERVER_PORT: '80' + HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anonymous +apiVersion: v1 +kind: ConfigMap +--- +metadata: + labels: + app: hasura + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: hasura + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + namespace: sample-next-app-85-master-dev2 +spec: + ports: + - name: http + port: 80 + targetPort: 80 + selector: + app: hasura + type: ClusterIP +apiVersion: v1 +kind: Service +--- +metadata: + annotations: + kubernetes.io/ingress.class: nginx + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: hasura + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: hasura + namespace: sample-next-app-85-master-dev2 +spec: + rules: + - host: hasura-master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr + http: + paths: + - backend: + serviceName: hasura + servicePort: 80 + path: / + tls: + - hosts: + - hasura-master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr + secretName: wildcard-crt +apiVersion: extensions/v1beta1 +kind: Ingress +--- +spec: + backoffLimit: 0 + template: + spec: + containers: + - command: + - create-db-user + env: + - name: NEW_DB_NAME + value: autodevops_c18cfdbb + - name: NEW_USER + value: user_c18cfdbb + - name: NEW_PASSWORD + value: password_c18cfdbb + - name: NEW_DB_EXTENSIONS + value: hstore pgcrypto citext + envFrom: + - secretRef: + name: azure-pg-admin-user + image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/docker/azure-db:2.1.0 + imagePullPolicy: IfNotPresent + name: create-db-user + resources: + limits: + cpu: 300m + memory: 256Mi + requests: + cpu: 100m + memory: 64Mi + restartPolicy: Never + metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + ttlSecondsAfterFinished: 86400 +apiVersion: batch/v1 +kind: Job +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: create-db-job-c18cfdbb + namespace: sample-next-app-secret +--- +stringData: + DATABASE_URL: >- + postgresql://user_c18cfdbb%40samplenextappdevserver.postgres.database.azure.com:password_c18cfdbb@samplenextappdevserver.postgres.database.azure.com/autodevops_c18cfdbb?sslmode=require + DB_URI: >- + postgresql://user_c18cfdbb%40samplenextappdevserver.postgres.database.azure.com:password_c18cfdbb@samplenextappdevserver.postgres.database.azure.com/autodevops_c18cfdbb?sslmode=require + HASURA_GRAPHQL_DATABASE_URL: >- + postgresql://user_c18cfdbb%40samplenextappdevserver.postgres.database.azure.com:password_c18cfdbb@samplenextappdevserver.postgres.database.azure.com/autodevops_c18cfdbb?sslmode=require + PGDATABASE: autodevops_c18cfdbb + PGHOST: samplenextappdevserver.postgres.database.azure.com + PGPASSWORD: password_c18cfdbb + PGRST_DB_URI: >- + postgresql://user_c18cfdbb%40samplenextappdevserver.postgres.database.azure.com:password_c18cfdbb@samplenextappdevserver.postgres.database.azure.com/autodevops_c18cfdbb?sslmode=require + PGSSLMODE: require + PGUSER: user_c18cfdbb@samplenextappdevserver.postgres.database.azure.com +apiVersion: v1 +kind: Secret +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: azure-pg-user-c18cfdbb + namespace: sample-next-app-85-master-dev2 +" +`; diff --git a/.k8s/__tests__/__snapshots__/kosko generate --env preprod.ts.snap b/.k8s/__tests__/__snapshots__/kosko generate --env preprod.ts.snap new file mode 100644 index 00000000..60adcecf --- /dev/null +++ b/.k8s/__tests__/__snapshots__/kosko generate --env preprod.ts.snap @@ -0,0 +1,628 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`kosko generate --preprod 1`] = ` +"--- +metadata: + annotations: + field.cattle.io/creatorId: gitlab + field.cattle.io/projectId: 'c-bd7z2:p-7ms8p' + git/branch: v1.2.3 + git/remote: >- + https://gitlab-ci-token:[MASKED]@gitlab.factory.social.gouv.fr/SocialGouv/sample-next-app.git + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: sample-next-app-85-preprod-dev2 +apiVersion: v1 +kind: Namespace +--- +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + app: pgweb + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + component: pgweb + name: pgweb + namespace: sample-next-app-85-preprod-dev2 +spec: + replicas: 1 + selector: + matchLabels: + app: pgweb + template: + metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + app: pgweb + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + component: pgweb + spec: + containers: + - image: 'sosedoff/pgweb:0.11.7' + livenessProbe: + failureThreshold: 6 + httpGet: + path: / + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 5 + name: pgweb + ports: + - containerPort: 8081 + name: http + readinessProbe: + failureThreshold: 15 + httpGet: + path: / + port: http + initialDelaySeconds: 0 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 500m + memory: 256Mi + requests: + cpu: 100m + memory: 64Mi + startupProbe: + failureThreshold: 12 + httpGet: + path: / + port: http + periodSeconds: 5 + envFrom: + - secretRef: + name: azure-pg-user + initContainers: + - env: + - name: WAIT_FOR_RETRIES + value: '24' + envFrom: + - secretRef: + name: azure-pg-user + image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/docker/wait-for-postgres:2.0.0 + imagePullPolicy: Always + name: wait-for-postgres + resources: + limits: + cpu: 20m + memory: 32Mi + requests: + cpu: 5m + memory: 16Mi +apiVersion: apps/v1 +kind: Deployment +--- +metadata: + labels: + app: pgweb + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: pgweb + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + namespace: sample-next-app-85-preprod-dev2 +spec: + ports: + - name: http + port: 80 + targetPort: 8081 + selector: + app: pgweb + type: ClusterIP +apiVersion: v1 +kind: Service +--- +metadata: + annotations: + kubernetes.io/ingress.class: nginx + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + app: pgweb + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: pgweb + namespace: sample-next-app-85-preprod-dev2 +spec: + rules: + - host: pgweb-preprod-sample-next-app.dev2.fabrique.social.gouv.fr + http: + paths: + - backend: + serviceName: pgweb + servicePort: 80 + path: / + tls: + - hosts: + - pgweb-preprod-sample-next-app.dev2.fabrique.social.gouv.fr + secretName: wildcard-crt +apiVersion: extensions/v1beta1 +kind: Ingress +--- +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + app: app + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: app + namespace: sample-next-app-85-preprod-dev2 +spec: + replicas: 1 + selector: + matchLabels: + app: app + template: + metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + app: app + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + spec: + containers: + - image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/sample-next-app/app:1.2.3 + livenessProbe: + failureThreshold: 6 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 5 + name: app + ports: + - containerPort: 3030 + name: http + readinessProbe: + failureThreshold: 15 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 0 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 50m + memory: 128Mi + requests: + cpu: 1m + memory: 64Mi + startupProbe: + failureThreshold: 12 + httpGet: + path: /healthz + port: http + periodSeconds: 5 + envFrom: + - secretRef: + name: app-sealed-secret + - configMapRef: + name: app-configmap +apiVersion: apps/v1 +kind: Deployment +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: 'true' + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + creationTimestamp: null + name: app-sealed-secret + labels: + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-preprod-dev2 +spec: + encryptedData: + ACCOUNT_EMAIL_SECRET: >- + AgCYU5zQRAGub/7BY2VzhhQ/Y5EtYeWcgdBrHMfOdhK6DLDbkiYTVBvdIVbvUp/AtHP8V3UwT0zoQfKRiECwdH6oJ92GJ2DQ6svTNJH+x4EyQRJTeRMOrx6y+iVAcFx6I5RbT6SdKkpzGztpY4t4pGt3IOUoKNrJRqshj170LQqsw57NyxzSgZ0HONNsHE+HUK6AijgZXBthAfWqlFyrg6WIBY1f/jyuZ7jvzlotTI9JXXSBz8LryNYG7kth2weHcmlQKiqERPbWGFuGwM77hzgFwixjqnrGJEjWXDfsAmBLk+B9nVht2H54pPYCD+cyRea5NeisxnNCAOw10BJHEX1gxgNzSwQDVfOSINWT1a8R81tm7Dz7j3LyKKT+UH8BREHMlu4qv7+D6PjrRXJXtAMGN6Vsz0Hqvf6vlZou7O4ygcAtirRaSPvsuU1FOg2JvwfheUVZ7StBGhsTBWyQ0jw9UqAXcjtcbqfzeOc8sEEe/5xyRJctT+A4s4XNGxiF/Mnaa9XB5OHtz55FUDzy2o0S21JXFjnNs2kmDji3gjPwYJzg+qat7ZcGBNMR4KNvu2SiUoDdQMKzmh7mi4nwqlOv08eJVP8ZzXGS3F8QcsMFXPfrH/53hunKq6gQ61D3+CsCN6Hz89X7FgWnMroMv52gNwtUc0yeQ+klIB2RsY6+NefWx0p+ikxHY9MG64qMPtFNG+RW2TwRgcdbD6CC31GUVmGVLpEF95RF7v1i66H9EvNwiRZCagnZ4qYcrQ== + HASURA_GRAPHQL_ADMIN_SECRET: >- + AgCAqhKgc3PtqkQnkPeR0pAyh5bkICHiNpYkHBwRAhRCSo4kktC4p1/OJapMewk2glYBZHdUIad4JEn1V7/EvfMkWs7Eh7CXLYQB8xdJxbl7tyopNSppQxLA2YkMTPmnja5kGJrf2nvZNR1u7aQ7z5ZuP9KFzPsWTj/pFQiczsoyhNrKJmSeAUMRKophVfgKDdvNuM6ZEuSiR9iGhhrGJVD1gHlQaOW0JKCjweuC0opYdP/rlZOD6BvqzlaYc+dHVYbot7ktDzYT98YCIJdS0sKe0/6+L/CQgWeqAUxZxyPrtOk5BsBOXKNuXIrG9sQQ8SXSykubqYRGdClVv6TlazMXvBtuoind14bkJ1G4Are0FsokIPoJxrYAM1Nd4hKvRJvT3BiiEY2JdqRbmeHyZc+yCYUeUkvbtVIHFHGnSjVzAfriR6mLj4psmUGAtjq7qqaa6fJQb1fRr6pnb6//i6B6NjspyMHNi5uwLCn3Rvrqbq0abgtZCh1PUPZeqA/kAENyg3FunPzxiCdlHJnKch7lQDSkoQDukEGWipUnr9/ICfMuAMlu1uTHqjjGrsZoewqY00MHkPNyFiHVwYmEqY9INfmEH9G5UBLaWTorLyvleJUK60d8ZteFArZlskOs82gtcVhYGtE1TZ3VSn/sGKHdC53BlWJ5b65GKP8bn1xKmuu+ah3+NNWkgTydoKzTjHxOiX3FVeDHyVM9v3Xyv/6/Z8KCvRw9cgbmcX+PkTifzsT/10iGvP+aa/8+3tOmikLHHGpTyALG9YOZ4MPOHR5owd1xI0TUm++0+JgxYfeNny+Ybk0O0x/ikVx+gSDR7MKDD9sI2V6wX8cJKpl6hLFIxFV0EUCwHiWW0N5ZnXJarMMhMWzV+4YaD0c6ZxhDgizvIX6nOs0aEihvFBVBgZuiIiO3RW0fUDel0kcqzg== + HASURA_GRAPHQL_JWT_SECRET: >- + AgAnThMc6uuayn1BR4rLy65IoFDsv8pzBpphbYxf36e4OJooSi9s2upWe8g3HpVfdb5SthH77uw+64Ks+Tvku1gHrUOOXh89F+RS1mLwBfNhe4Nlf55AosasYsUOjE5mWOd0Czdp723ujL9T1SoZNyGeGyG2ZPxR+clgBJIgX5fRMvfi76SSq5trUasItHflHp+io2leMD8QBB0jukLf8vmHHCZ36S1hwtISj7NMHtiv4bl2AQPj6KjyO2U0AB+Uf+Un21RwCRsXv4mDkKNZAGSMn67IkqLRK02TFJQRz4qn+WrX4DPkgNG+fELYHBK0CSi8orSN07Z0qY4y86IYbXRiqJDDKIXq6jNQ2V3Ffox8uNNPk8BJ4lrxz4Bn9r9/rTWRLS70Uzv+OXViJ2xcb4HxBZFSKucOVK4Gx8kFf5xoKd6LV6g6kbjtYQUR4FGQihvZYsDrr5qGv1rxHO7EkY4o9Hre2iHVQJ08imfDoXscfzeJC9lxo/e5M7LusDtIkzwkMkmsv8WXMlGjfg4JoYiQzVA8oMsmeWQLHNdJUdSkZF8tFc3skvgYEeMuDi89KRiuCOwnShrVLzPzYbWO+7dwnyay5NVvtvNE9kXYn5U4EwGExeLGWoRRrDCOUM9sgwAJF7AcDcQUQ+MWupWacW7YE+VjBMuDmJR+1Gx9qDXGUspG1DkDfKqLCxT1L2RoMlbIfubACEYYbZ5IiooqjwbHCMUzbr4aRNSM2C3KqN8wSlB18xVfrgVpWYqZFtXWjJAgvLbn5Pi6ryaBPy/adnlBpGf1S2EakV9uR6gdpsKR1yTmzNT7MCIiInzvq/KijQCiJwAyqIkpU+tQv+HInHxWZQ== + SMTP_EMAIL_PASSWORD: >- + AgAGdvTnBpg52nSwcqvGIoTRkxweutFd7x1hbU/HHAH9gxPa4ICT5AOZyb+Ec9OeaSBQjf9T+4qYGC5FngtbhqfSiloVvir2NvXZOUy+O3ME33QCzfw4+nANvHmsngFDVsJdjvSz2ykT9dyNbiyFrqRBhV5RnIAqgTfvXozVOFdFeUVRelL+tZQC0miGdHUOmjjOSh4T8LntBwJOj9lv/oW1g+Vai2zOwfSGFRTeWHv/Y5WYXCiuprOzgrYUEEzxDb/ELD45S5fcwYM4KVezHe1NAWqjPhcVwLq1q4iqSaHBwGBH528pxcFcPUn3u1uK/ip3lsPiA32vi5bFantUoBiL8HfB5NedJMls/3AeyIQl53Ymu55kr/NZ5YugXExs+uCgm3aRE8EyMWnVjvYZ2npSXS9hiTsBm0jyEHOSfdLiuWvGK5r+1zz6mHuBYemQQnLjEpmRhrG5XJyJmHAsRNR1P7H1+3pqSDD8iw0yXinth3URP/4L9JrTaI4Mx2LmDmVj34oGrbMx1Ekqe7t8MjrHy/fIXRqct7X+F+GFjklALzYNuBqNUg+HxbdVKxuo9STbUVhxTXkSvlgOaT9sUiyYFybiqj8vX9VPKhKBxrUmEPue4d63v/ud3YhyHcFENUQ7PKteBUKjzPOaMNi4xvmUi6Wk/sSCBi5BZiin0obLdUGplnmO0rzX9wxllUBS+o14T5m6kWk0b1oUesVOORk9mBR1rUPKHJWCmkFYcoqTjQ== + SMTP_EMAIL_USER: >- + AgCVO/tUEz52Bt2Az91fIjWN6MYoV+eHqyufJ1N1RzkzgF/sw5DRdpKR5+s9ZOJvPlsEBUoUtd+iH16ZJz/vx4oSR5+KeTg4fXyOIi+jL/AB4hBYP8cQvvC9kXvK4KiS1FXiYvXKATcusvTkHdJZf/CfYB7jyXpyvMdmefiOexjwyieIP//YqPygqgOvi7RGnqohrk2S28YW17/oJA1QatbUh84wNG/6sSAfyy7coYaSU+6gTjHdommuypMRN7QKts/Hj0ZdM8xzXjQ630NzIPjZha6gG++ZDhR2hyo+vGuUESKuE37ifeEJlBhnWr/T9Qm2xE29UDChUpmtGtFz5xoxLabk8eU32qWy3WzclX26D2Ctcl1zy8atbaHq7A5JeWrV9wowhrUMVg/uiDXbt4NTcegHwCfSXl1kqNMVtJl7HijmUBMy+Yf7ntKyhdA6AoLZFQxrypzY3lgIS+2p46Ig1CP/DXakOn7yyoRW+k1KkzKv9E18QlvaRn6coyq705brLLM3/RuISw+FwGbD/VLgiHMIpCarY+Uy+K/c28320DXvoMLopAJekUnbdiPzL7vPLs2ao7BPZ+a0GDvpp+f+/T/EoVIHgiZoHiXEYmc/n2fmYd7Gb0UCa1og2ovhiegLnaFewD2OKMuP/gDuIwvnX9jU093dVupOw1muX0wgB+NH4xl7rTB42nvxLZK6N/ymfqg+LzQnqU+3drEWunSgepvKYem+86aKq2BkoJF+Ng== + SMTP_URL: >- + AgDVilgKuupA5C2U/aA69wX3hl3Rbv58xFS7WGeUjq7ubq5meZhRyT3QG3Ly1rXzoPCfB3LDC0JDjRMJ1G2jmn9o0znEXYks/49m6hDaKhcwnnlIE/ThBJ/BBqnZtoAjxzoeBSvaEhV/dd/a7GrIQYiswfT8P3LVza4gKdj1li5vs7htCLnZfOrAgAqfXSxILDfHlEk9lmbL5J4JdYlVKesp6XNjcnUWaP2ycc0vW3qWlwrFU2DJw45wZCoE/76hG2s+Tk3VF5Q6kiNJCKTCf88jpeiggxIpntjLJk8nmrr9/aZ8fl8gDWUYV+15UFgh5jSP0nlWlCTmxAMmEL2lwBb9289rt0o3ZM7L+yfzLGD9QTy/Ns0hm2M4Cynwh0SD1ti/lMv/GO73XFShUO2glHM96isPFqvbBdBGua8ksp59W0TYQRMFFHbygZEj4k5K516w3gV4XonZN6INOqKt4s27R9oiOoFup2mQo0ns1sH7XB8q/wXVmro3km/dqToSOFRa/0v+fZNfzlh1X0JlqI+940CQz7I3rusrFDR5kfryVt0A6AP9tjyG9jQAjiM0lwcJgHrDARpNXuo9qzLf0yDK68NrR49XGWNugRuKHEA8Ka7vLmbeIvZOElsfn/ZCpnWrUNcRO/5dvxIQgNRIKiHVcqM1QV6V31YZMa6ZfJI/zhLaWEoOV0svcYrO9jy9H0rRtrMEqXZO0IQ8pYVfHhNxbA== + template: + metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: 'true' + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + creationTimestamp: null + name: app-sealed-secret + labels: + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard +--- +metadata: + name: app-configmap + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-preprod-dev2 +data: + NODE_ENV: production + GRAPHQL_ENDPOINT: 'http://hasura/v1/graphql' + ACCOUNT_MAIL_SENDER: contact@fabrique.social.gouv.fr + FRONTEND_PORT: '3030' + PRODUCTION: 'false' +apiVersion: v1 +kind: ConfigMap +--- +metadata: + labels: + app: app + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: app + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + namespace: sample-next-app-85-preprod-dev2 +spec: + ports: + - name: http + port: 80 + targetPort: 3030 + selector: + app: app + type: ClusterIP +apiVersion: v1 +kind: Service +--- +metadata: + annotations: + kubernetes.io/ingress.class: nginx + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + app: app + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: app + namespace: sample-next-app-85-preprod-dev2 +spec: + rules: + - host: preprod-sample-next-app.dev2.fabrique.social.gouv.fr + http: + paths: + - backend: + serviceName: app + servicePort: 80 + path: / + tls: + - hosts: + - preprod-sample-next-app.dev2.fabrique.social.gouv.fr + secretName: wildcard-crt +apiVersion: extensions/v1beta1 +kind: Ingress +--- +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + app: hasura + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: hasura + namespace: sample-next-app-85-preprod-dev2 +spec: + replicas: 1 + selector: + matchLabels: + app: hasura + template: + metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + app: hasura + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + spec: + containers: + - image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/sample-next-app/hasura:1.2.3 + livenessProbe: + failureThreshold: 6 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 5 + name: hasura + ports: + - containerPort: 80 + name: http + readinessProbe: + failureThreshold: 15 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 0 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 100m + memory: 64Mi + startupProbe: + failureThreshold: 12 + httpGet: + path: /healthz + port: http + periodSeconds: 5 + envFrom: + - secretRef: + name: azure-pg-user + - secretRef: + name: hasura-sealed-secret + - configMapRef: + name: hasura-configmap + initContainers: + - env: + - name: WAIT_FOR_RETRIES + value: '24' + envFrom: + - secretRef: + name: azure-pg-user + image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/docker/wait-for-postgres:2.0.0 + imagePullPolicy: Always + name: wait-for-postgres + resources: + limits: + cpu: 20m + memory: 32Mi + requests: + cpu: 5m + memory: 16Mi +apiVersion: apps/v1 +kind: Deployment +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: 'true' + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + creationTimestamp: null + name: hasura-sealed-secret + labels: + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-preprod-dev2 +spec: + encryptedData: + ACCOUNT_EMAIL_SECRET: >- + AgCYU5zQRAGub/7BY2VzhhQ/Y5EtYeWcgdBrHMfOdhK6DLDbkiYTVBvdIVbvUp/AtHP8V3UwT0zoQfKRiECwdH6oJ92GJ2DQ6svTNJH+x4EyQRJTeRMOrx6y+iVAcFx6I5RbT6SdKkpzGztpY4t4pGt3IOUoKNrJRqshj170LQqsw57NyxzSgZ0HONNsHE+HUK6AijgZXBthAfWqlFyrg6WIBY1f/jyuZ7jvzlotTI9JXXSBz8LryNYG7kth2weHcmlQKiqERPbWGFuGwM77hzgFwixjqnrGJEjWXDfsAmBLk+B9nVht2H54pPYCD+cyRea5NeisxnNCAOw10BJHEX1gxgNzSwQDVfOSINWT1a8R81tm7Dz7j3LyKKT+UH8BREHMlu4qv7+D6PjrRXJXtAMGN6Vsz0Hqvf6vlZou7O4ygcAtirRaSPvsuU1FOg2JvwfheUVZ7StBGhsTBWyQ0jw9UqAXcjtcbqfzeOc8sEEe/5xyRJctT+A4s4XNGxiF/Mnaa9XB5OHtz55FUDzy2o0S21JXFjnNs2kmDji3gjPwYJzg+qat7ZcGBNMR4KNvu2SiUoDdQMKzmh7mi4nwqlOv08eJVP8ZzXGS3F8QcsMFXPfrH/53hunKq6gQ61D3+CsCN6Hz89X7FgWnMroMv52gNwtUc0yeQ+klIB2RsY6+NefWx0p+ikxHY9MG64qMPtFNG+RW2TwRgcdbD6CC31GUVmGVLpEF95RF7v1i66H9EvNwiRZCagnZ4qYcrQ== + HASURA_GRAPHQL_ADMIN_SECRET: >- + AgDZX0nGJWSkGYaaTpArKf3L1jsBEzKzsE1qkDIziGJHgVuqdPUhvZwmd6/9yPtkw7ohLh4/yqpQFELURajvHPJy4ZBok5bRhX4eC2tbsEQ+20YmL86KGNUhGSdJ9Ua3m/jV5qEyFnLPBG4cPJL4OjEDNvm/WwJvQfTlXaV4YoZMzlZmPMLFKAQ/8jKoefaIjtTXPq3YSeULlEx94Pv08C5b6o0US4fQwhtBAUOlUmhPEDXo0u4r4yM5w7HGWSCD4Dsb+rHlcRi7ulCCafeaBLITq3BMhzS1eO5XNrLGzh4iDh4rTtv83Y8kFFvb/zXlq/uiPZMoTxaH5eTqYQkCRA3L/2T7hWWiINDB9kbNTIyIZ2uF0W1RLnwgq2VASruNEhxXHYKeQfnhxcqTxGAsTgJgAGhMm17vALEAHt+72L4O822WJw39TB9ozqbnZ0I++ZAmd+kIrZ3Uxp7WfzmM7bKzdqn8L2k0jxHCOKWxChXayONqTFUq9YfJdqSHtNnfi5Bt610SjmD62Vil1hmxIhQv6xmzRwo2pfbhrUj6gNsNdDTrV5fxfZzEOtvwl6C+bPuHmD+qbke78eiJp8A4WIgn1CayHsSoaokH36Q1IW+ETuyQHhz8RMd8ZmrGAeSWUm71SR0nKCWgCwtRX4NhBR5fGR8M7CLTJm3ofrv1fyZ8WKPC7OcnhHmKYBeaw6qku9K+0qRCuvIp/6/dd28SC1obdir77d924ZTkFxUVIAu9J0u0AOEu6UZS + HASURA_GRAPHQL_JWT_SECRET: >- + AgB0yHuBM57mDtyon+1dEC9PTgejHVGA5uOHbdu5P4tH6CuOgpH2cnbXnBaeD+7d52aCNto7a0qD5TN4MtwMQZbJuyXdH8QIsZSvvVmKK0Tf5dgYBnTqDKfJnaH/frlIyrFrZs9aj84uHpZPMw1jP6Rrn/gHLn6oNdvkJS668c5ALSvjJoNoqT2l+2TC0p4fNq9H/q0HaLkL+s5Jfkb9ZqPevo3sBQKJvGEEZmgld0U6S95hiGRVhEGqLR90ZbnYpKpHXk09fxva/UgRGGniK4yAJ7noeUsB2HZU8+X88I0TeX7vx0+WHAqV65eA14e2BegKI55JPeX8rXte/Iy0KRkyBQ8KtD5jkfTsmdeLMchdnmys7pu4CGiRXyAANT8uWzP0QifqfZhG6fHqZiMPhOa8XM2Z8KhFgtWH0m8IG/OUZCllWeRyAFTcupa5Jsq3jn+Y/0N2sgeALvBEmhGSN8jTAWa4cetoF//1kk67BaLFpLrc9P2nSGqd5HII7HGL1C8kCbV9Fmz/etX705sB9g9Sg0xFVhNqUvwYUOs9h51MQJLn64zO1Bd0q/U8LN3k71tqidJbsEc9P1JX90U6QbGu2FpQrPFAIz3Y0UnAiCfxyfVxwGvciwAQw5yIo8S2/XbB1wyGY/hWCYy0s4qOl11Dj1YpNwe7Xjbq7cnGfxp2BFC5Ps4O42jeSj7mhpUSyacLG6MavSdSPdrnOAMGKD7Gdz7jBd5/EBFhGmN8roCR+8H/Q5kbUlKfS5kEQR3Xkx8uNHqW8mr8ka7Fbn06vlmCDc09L9sXC6rJOXwIsZ6peqD7e1gPnotGfARHh5D07R3x6v491eS/FVCWao19XUHsaA== + template: + metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: 'true' + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + creationTimestamp: null + name: hasura-sealed-secret + labels: + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + type: Opaque +--- +metadata: + name: hasura-configmap + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-preprod-dev2 +data: + ACCOUNT_EMAIL_WEBHOOK_URL: 'http://app:80/api/webhooks/account' + HASURA_GRAPHQL_ENABLE_CONSOLE: 'true' + HASURA_GRAPHQL_ENABLED_LOG_TYPES: 'startup, http-log, webhook-log, websocket-log, query-log' + HASURA_GRAPHQL_LOG_LEVEL: debug + HASURA_GRAPHQL_NO_OF_RETRIES: '5' + HASURA_GRAPHQL_SERVER_PORT: '80' + HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anonymous +apiVersion: v1 +kind: ConfigMap +--- +metadata: + labels: + app: hasura + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: hasura + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + namespace: sample-next-app-85-preprod-dev2 +spec: + ports: + - name: http + port: 80 + targetPort: 80 + selector: + app: hasura + type: ClusterIP +apiVersion: v1 +kind: Service +--- +metadata: + annotations: + kubernetes.io/ingress.class: nginx + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + labels: + app: hasura + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: hasura + namespace: sample-next-app-85-preprod-dev2 +spec: + rules: + - host: hasura-preprod-sample-next-app.dev2.fabrique.social.gouv.fr + http: + paths: + - backend: + serviceName: hasura + servicePort: 80 + path: / + tls: + - hosts: + - hasura-preprod-sample-next-app.dev2.fabrique.social.gouv.fr + secretName: wildcard-crt +apiVersion: extensions/v1beta1 +kind: Ingress +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: 'true' + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + creationTimestamp: null + name: azure-pg-user + labels: + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-preprod-dev2 +spec: + encryptedData: + DATABASE_URL: >- + AgCCUh5cNw9n+Qnihd1or/z2NYR1eCdReiOY6PRkL+E5l/cmoC88PHy2BNtRY1t1wDAJK9yIsH9PJKYikgPFsnaYx8cc9Sl7SQ8iIjyt3pWINxLidtCSH6f+dpcJ/wsSHKzGEI7V7OXTzecyjJdGEvvfPgWVw9oVbpYpI6DEyh54NskNBzomNj6EAzY4SAeS33zoACpVbHVDRf68bdcCT34U6OdJfTAB0pBT0V5dB3xZ3pmsU68LCTWHelz2jcepyN96wqspCOsTU1qpSQkmS3UPf1riwDCBEMP8hRHrliw6ncldNtBUozD44wE2/UUyOOOwtcxDM7IsycxuMzQyimVFZRj/kHZG+N0liWj9N0KsZ6jKuaJB/Y+1ZiyJckPkjces7aHETqEEmV89TRdLDMPvz3tgJCb/g1mgbadKcpfJ+8DMN873d3rHBKNKgDZICJEyvJrXvA2bHGNFJjnzMa4Cn6lDKtcgxZioTfHbiJuT+GRxK0/X0dJd+H860JOWnsR5i8YXjXOwT1taH+YL5cd6UWlML53iVDYq/VbWCQh1xKEaC0XUxi6hRO0Kt1UhRXUmTTEDSTnn54beHS7lCJ58m3jrnTN3uSz2GiISfu5o5usXtwKQsPWpju/33JjIa5tFy91/R/UY9bHGizqulWEuVbJKI3ctERee7CoskPV5offkbBqRUWhg3+63YowzgwpB1nPZ6AZVr5VFSgYF0rtPlsj+4KSt+BOPB6sT9FWmH/03ePy7uZPAIILI/m9zddWil2nU2wEsbSGiONkubj6jthNvpoolxbEfV8qY+JTac6pATkVM5a0yxeMbDhddrtpb3X2KaidO76XE0yXfdDKOeKXDS0vwlwEuy0XdHpRTPO7VSZbeBTIPxaBcviJOAX4VPwFjQiJG8GXA0cVkAXAX5/jrQv8N+dZJtA4KVw== + HASURA_GRAPHQL_DATABASE_URL: >- + AgCCUh5cNw9n+Qnihd1or/z2NYR1eCdReiOY6PRkL+E5l/cmoC88PHy2BNtRY1t1wDAJK9yIsH9PJKYikgPFsnaYx8cc9Sl7SQ8iIjyt3pWINxLidtCSH6f+dpcJ/wsSHKzGEI7V7OXTzecyjJdGEvvfPgWVw9oVbpYpI6DEyh54NskNBzomNj6EAzY4SAeS33zoACpVbHVDRf68bdcCT34U6OdJfTAB0pBT0V5dB3xZ3pmsU68LCTWHelz2jcepyN96wqspCOsTU1qpSQkmS3UPf1riwDCBEMP8hRHrliw6ncldNtBUozD44wE2/UUyOOOwtcxDM7IsycxuMzQyimVFZRj/kHZG+N0liWj9N0KsZ6jKuaJB/Y+1ZiyJckPkjces7aHETqEEmV89TRdLDMPvz3tgJCb/g1mgbadKcpfJ+8DMN873d3rHBKNKgDZICJEyvJrXvA2bHGNFJjnzMa4Cn6lDKtcgxZioTfHbiJuT+GRxK0/X0dJd+H860JOWnsR5i8YXjXOwT1taH+YL5cd6UWlML53iVDYq/VbWCQh1xKEaC0XUxi6hRO0Kt1UhRXUmTTEDSTnn54beHS7lCJ58m3jrnTN3uSz2GiISfu5o5usXtwKQsPWpju/33JjIa5tFy91/R/UY9bHGizqulWEuVbJKI3ctERee7CoskPV5offkbBqRUWhg3+63YowzgwpB1nPZ6AZVr5VFSgYF0rtPlsj+4KSt+BOPB6sT9FWmH/03ePy7uZPAIILI/m9zddWil2nU2wEsbSGiONkubj6jthNvpoolxbEfV8qY+JTac6pATkVM5a0yxeMbDhddrtpb3X2KaidO76XE0yXfdDKOeKXDS0vwlwEuy0XdHpRTPO7VSZbeBTIPxaBcviJOAX4VPwFjQiJG8GXA0cVkAXAX5/jrQv8N+dZJtA4KVw== + PGDATABASE: >- + AgBVY5QZGrT9+hteFDOUgSUJcNRuaVIHNHae6OLC+9ULSw1hMvibjTGrz7g1tnXzTuYJVjYfkgxt1v8HnfsO/CT1U582Eb+/KUz1tQ3D2yrVjllbkwaadb5/rroFJW190ndlU4Yd6/tK1ZK25ll19vyNKXAITpSgudgjQXCWwK83DlLEyoryjQivq1yTLAGnuJqoLUFp0slqEJC2abC1zEX3rEYc3zYDD6juk25RjQNvLfJ5G1Q7yhaviiH9hqWBPunbPAIm9K3av9GgX+ilV7F7bK4EtgZw16ITHh5EspWfnfZOKPpV0lNmQKOwlNsN4mCChAtNcfin9oBKMTqxOsz6M0hD/wVL5TgGqfPpG78Me707fplFs0NOgPC3Y7u89oRlgYEM3EhMfNAESDxrgpH89Kn2XWawWQ2Pz2fWBEGeltzAp+FVIfN7eUDDI93Ug178MGXoAOAIZd8xAmKmYpefN7jCpYYsM5jymaWKCqxyxc+H1Cw0591R52C8IIJgr5gwLrcKgCSVLCgpgC3TAfxOUj6yWvSJsq+C8DMp+XkKjFoQs+euLtJCxzgvoTP0LrXoRr8byOx4bdLzZPdMiatwbKy8jppzasiEWg+RTSsZEglWhf0iPUoU6M2TpEwh68BPdwIt7ueYTWK9YrVzbqJV6ejyhZifqj2rpgWkwPDOEEsJMogpG66vdJ0RgrYL/Vbgxcb1dEGnYjaplr39 + PGHOST: >- + AgBkqcSoySTnpo2syKv8alf/5QeGjBjsBEtf2oVZx1rIxVuIAloFPx6wEMC2Wm3gNGMayerd8ODpeXkhdQKK7nWPOwRBwbAxAQfURjXlLsOxj9HL5lOxQNVH6a9KqTz4Ke91QDJ0bAOR63WaJEj9Ouv1RvZLKe7AqUWKFl1MR9k7li+mhc203ESsxMOZcfWQEwimGg200B7dyUWg0DxXKxbgov5voOCSgMkml+8Xd0IgZ0475iFwd5Qmn8kIWmtyv203IQKiGrFG7FfSbURox2jR15kXZqY/j89Mjx8kM0lifh7BiCAooqfdL0YxHc0tedngVY5BfF7MKyJYhGoS3DIeqEhSz0oQgTCslkPES7HRiBi1jhzG8uKuuspgEPBZ0OLoczLQX1/90+/JG/XL7mki4eJhLuyq+xK0u1JYsBb6JamSULqeLB7cujjWx21MHRUJld/w5q+7KGOLGxeSv5Wdx9iqy0HPWBaNV2ZSce+NA/owCK3qt5KllDOb3i5qU0yFCPDWh+uNXoHGzaetSABSUU6yCkTLGGJy+nKQ2B9K4sP0p4RREEivM/BIFs8h0C3eBcH9vkYmFFkXZ4P/vgx2ZaTQrWnh/pYxrQ1c2eb08u7Z2Uv4O8OVAD8U5b9+XvXvbxlf3NiLXFe0pFJb8XSWO33pHuWLLyWVJBK1399O8B3GE8ufsMDSFBSPEstgyDrXaWhxQEN6LAUVJu0rQ7UPAbVl8548bJ0Fy1zFshAdKtu2/NfbcoXDcy7mfXiuR9O37A== + PGPASSWORD: >- + AgCMeh1YSyXoHao6AV3tDsz6xxVVee8iUUFZkEQsUyPa70CH1V5Alj66lOjUFykm3bh3IZDaTIdgHYCE5AwgnUFo7Nnag2f0wjQLcsh/caBkbERJXNMuQqG92iGfhUqQc2K/F5FDMtWt7hzNXS3lbswblgmH/rC3LoTyw9D+oWmOi4xcbyNuBp4/HKb4ybaD29N3xRoC5VDJrgYVuzlGSWUoVkDNHIx1DCthLDGuMbujKKyOVYim0Mv7qAU5VH0S6vquFlD+u/82dVmQ2JkBIEnqOxRBDKF3mMnVL70y7H94svu4DG4AMfQeuQ0I16iFYlJ+fEfy6FAuFhyPma1X4W9xbR3Vj0QLQR3zfL8vVXbLQRVIEdt3H4wNR2TqMPXieaRHZ0GHymgFacRSCzLGZ7ShqsxhkURofZjt+brqdt9fMHFBELCbEf+pIEHMma0vDdcdsX6teyzuCHGSVu9UuU13xXUTqMQRcE4azR1B4zOkwwHeY+nH6gnP5i2mmr3MY+qHpjS4/XgzFBsmNqkci7RiUASVbF7pe1i0U+dXEv+9Ag11WKK0As0lALBzGxDUhXY9hH6jDwNUQArpytTGY2k/Bl3GZMcWiobyJSZM3PD5aBmrjB1Ab9dpx4VlbFYWDBk2MlboBq3FVesrD7BqWi23REEwb2CP0sOKnAkEqpbwGa2uj9rghFaDvUjNkYj3oty8itD1t8JiS2U8WsfL/moaY32FqCuKTiMsdfCdXEXBUS2v/49z80nI + PGSSLMODE: >- + AgA2TamC82xq/wPfoDBSIOB8y0xyxBKrbr9L7W9j4WaOj8xA1Zq/FhjBeaVNuqtDEJyyKA9MO0yZKJn+ZRnRMJ1wi6cK12SM3SDZ3ti1/gMgqsm3KVnJvx+4DG/snjqNali+YMkpCJ7EX6aHD4kTykVN8XnTP5C2J9RJ2aFxe9Kzt/+RgbEMz8WSMZjS86egxmWld4+ZIJyd30ov4L77lLeMdsv6rdHCHnJLmXNRsVZGUNiMDzRu/ZPMEtQmO9q0rwPKaOXHdUadZ4bmWQJojyHfnbsennYUKppkTADK6pK+qATM+/6P9OShd/GUNz5WKx42e2ut+M+jqjFk2WjDVWDwKBjGJ/pe3jgOWvQzgTl9y0r2UAs9N3dR5GLnxIgIY7a0e5KIPOTsQayJVMhuNsK6N4CpmIRFk7v2xEd565u47qTWCcuR5yza+6ywq01IaMrdvt0SyRfzO8kQHbNuGDuoz49soqEZLHYFl26f7PdMsTNadxDhL+FN7tpRCVTzYwTwILL+GsJDpA6RxoX+iUX3b4nQ9HWwdHQ5qtoGNSNjLYd+kCWwC6dRU4xeWOvv/m7gpTi+K4bb8vE578XVdG1LaGvEPCJJulsPzWMEkocJyT0Milk644dedQC85g2k4kjbHOCerrg6+PchSFp0W8+9A3RejYZuE4zH+tFkvfsB7hiq1cgKc+nI0OEXI2Au5pDC6iBlHK0B + PGUSER: >- + AgCUFTm2us5wahERtgfxt0AWVzUqQ9orPWJoSaEYT/kf6AhX+z/2ne1lKlDrH7zj3FNeEewnK2GayYO6weKQKvi0k6YXvTaq7Tz5dCM717eXLO5sn+HShB5l66BBkPOtP/i1wTFauehxG62Mpcd2i++KIBY2Smsqj5F2daJncktkO0lgQdxv4VWMbcUmsMQ3UVQMXxT6QUiO+lBKhx3JK/FjQj+waoiyw5FCqXmRKoLK//9s78tLYq0HjFcO9wP/cZUTdn6X4Vbjcz3FMXii6iBgDF2uFWLdMoVt0jus7vyeWUBXmCA63Rv4polfDKpCknr7JCS3+WzK2JIpBoT1W4gSjCCF9gk86Dg7J+45V+0INEhITRGG9c1cRiC3qrTXTtqKRuTLkSFzQiLQHGDJ8VoUFxMFxRsZhKvGa0asURPsQ1qz7pUbXz8cJFWtbi/7YhQgDJVjMNts9nFjyxHpgwEuKbQ6Y0L4Zj2uZ0hXvuHF6MD21s9Q2tB8ARAi+oA7JRe2c4CWQXY87267HofOm985sjmDccqLd602SE6HY/pkxEkgdcj7VCutgok7h13SZjmH94fBkL5prO8KjElwmjHOfW4D5fdlfQBG26sOVcMg6gkva9wj35hEUyCY75eDGI+6SIxfK5K3aTogWBVKZanmNPGZfHMQ+ZG8Caf1liw2qHjEJLFZshQtD/LtOjJUlf07eSnTRJvjkkOpSSQL7q+TO+wGPkz8s7OFKdnKyqi6hRFaBwo= + template: + metadata: + annotations: + sealedsecrets.bitnami.com/cluster-wide: 'true' + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: preprod-dev2 + app.gitlab.com/env.name: preprod-dev2 + creationTimestamp: null + name: azure-pg-user + labels: + application: v1-2-3-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + type: Opaque +" +`; diff --git a/.k8s/__tests__/__snapshots__/kosko generate --env prod.ts.snap b/.k8s/__tests__/__snapshots__/kosko generate --env prod.ts.snap new file mode 100644 index 00000000..583d260e --- /dev/null +++ b/.k8s/__tests__/__snapshots__/kosko generate --env prod.ts.snap @@ -0,0 +1,586 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`kosko generate --prod 1`] = ` +"--- +metadata: + annotations: + field.cattle.io/creatorId: gitlab + field.cattle.io/projectId: '' + git/branch: master + git/remote: >- + https://gitlab-ci-token:[MASKED]@gitlab.factory.social.gouv.fr/SocialGouv/sample-next-app.git + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: sample-next-app-85-master-dev2 +apiVersion: v1 +kind: Namespace +--- +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: pgweb + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + component: pgweb + name: pgweb + namespace: sample-next-app-85-master-dev2 +spec: + replicas: 1 + selector: + matchLabels: + app: pgweb + template: + metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: pgweb + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + component: pgweb + spec: + containers: + - image: 'sosedoff/pgweb:0.11.7' + livenessProbe: + failureThreshold: 6 + httpGet: + path: / + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 5 + name: pgweb + ports: + - containerPort: 8081 + name: http + readinessProbe: + failureThreshold: 15 + httpGet: + path: / + port: http + initialDelaySeconds: 0 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 500m + memory: 256Mi + requests: + cpu: 100m + memory: 64Mi + startupProbe: + failureThreshold: 12 + httpGet: + path: / + port: http + periodSeconds: 5 + envFrom: + - secretRef: + name: azure-pg-user-c18cfdbb + initContainers: + - env: + - name: WAIT_FOR_RETRIES + value: '24' + envFrom: + - secretRef: + name: azure-pg-user-c18cfdbb + image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/docker/wait-for-postgres:2.0.0 + imagePullPolicy: Always + name: wait-for-postgres + resources: + limits: + cpu: 20m + memory: 32Mi + requests: + cpu: 5m + memory: 16Mi +apiVersion: apps/v1 +kind: Deployment +--- +metadata: + labels: + app: pgweb + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: pgweb + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + namespace: sample-next-app-85-master-dev2 +spec: + ports: + - name: http + port: 80 + targetPort: 8081 + selector: + app: pgweb + type: ClusterIP +apiVersion: v1 +kind: Service +--- +metadata: + annotations: + kubernetes.io/ingress.class: nginx + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: pgweb + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: pgweb + namespace: sample-next-app-85-master-dev2 +spec: + rules: + - host: pgweb-master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr + http: + paths: + - backend: + serviceName: pgweb + servicePort: 80 + path: / + tls: + - hosts: + - pgweb-master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr + secretName: wildcard-crt +apiVersion: extensions/v1beta1 +kind: Ingress +--- +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: app + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: app + namespace: sample-next-app-85-master-dev2 +spec: + replicas: 1 + selector: + matchLabels: + app: app + template: + metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: app + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + spec: + containers: + - image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/sample-next-app/app:c18cfdbb191c5c401f4110e1f15707b21ca995df + livenessProbe: + failureThreshold: 6 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 5 + name: app + ports: + - containerPort: 3030 + name: http + readinessProbe: + failureThreshold: 15 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 0 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 50m + memory: 128Mi + requests: + cpu: 1m + memory: 64Mi + startupProbe: + failureThreshold: 12 + httpGet: + path: /healthz + port: http + periodSeconds: 5 + envFrom: + - secretRef: + name: app-sealed-secret + - configMapRef: + name: app-configmap +apiVersion: apps/v1 +kind: Deployment +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + creationTimestamp: null + name: app-sealed-secret + namespace: sample-next-app-85-master-dev2 + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard +spec: + encryptedData: + SMTP_EMAIL_PASSWORD: >- + AgBALuAy8FMnipiISs30CXaNMYmKWYF+J/0Ey1jUUNLC926nRNpniqDjjUlpA/SaQP0RvDXKdUKg4v3f595WyAsT6gL3Oq3UyK8iwKNUpJTwcF4wWuVDii2hcInUIK+wqkFLH4xG+UkWHBrWaLrnd3rQ0Kg8pcFA5L9XRj6BecHc0fGm+Uwd3Vlk+3CWQyK821eLDL+wjdqnj3ujbxNsfvfAqLZXLQ6CLPkFsNodH8qP1OLSkbWGMOgdRhRxP7HZa508++ZSY77cY/r3Yb/fD4h2FAW8IQS4tn1+5qNCsYeQaiglQJwfePPfjOHZs5M8zLORj5xxZ0XUugUOV2H3nWY3XqyAEV33rru351Nx3Ln5HcSS7IVCyXOSLtlCCtth8q3YFFy8z6RAXoiGyH9M6MMlUZvrMHi1g2LfHGGZmZYJYG93m/ecPL+lKCCtEn1B9SmSc6qoHQSxdvXhfv5wJH80Gys30LGeyR2ImjEPA+5Ibpx02jR+y+73lbQFGT1NR/QiovwDubhtI8a2XiyU7sQs6lysXpcmCXdcNVO3XBIWugGghTXTedOb1pFyBIatgkX2OOW96CLO83jmeYMX5lmXO4hcVJCZawkug6MRGjT8wo/EJNvoekT5Djw4hZ4thDg8WzuFa+fCnMki7h6alEHBOUBgHv4JBBysMpNuh3eMoVw8VvqddTC5z8N6iX2awPYrMEVa5ppOCP2TD6ALZ/NoSfBsAFekeIBWkgfkrbfMYA== + SMTP_EMAIL_USER: >- + AgApYSnX5gRMakn2yx6tv8mq2lAQtIPzv8xAVlnQzs1HeU7vVtE/2/piZ6WEX/+eVJWONiYFbFyOiQHmJdBfPN1jj7oY5BKBrpu9Srj5ci2Wmol566mUtCc/FxEHaTuAhaiqZsEFVDDDjoQxmnS4svmeIrA1dhHwrhKjzX1vCt+P3EC/aRcohCjtmdRuEeVGTsaMDPceGdNsVdN6Mbzq73nfkO2zZA4MnfpH5F1B+awz7hNy12lVeW6d2OpW6fyKYnv8TBRMO80vCeEvv+Vm3VQUaD/yT75ypPQY/4BbZyfrB58Ki+AZzQOz4cJ8h9qmXvs1LmysopfjZxM2ckBG47/UZFONEk44QkQFXTd9aCKRUD0uHRg5Mxe6ZEvU+VVH80R5Kjh8qY7DTfdV3UeWwd0/E9jnYfPBYQXaktqYM5CltgrmvHzrIzP+4tkjUgZGWoPMtndrVCtRdWx4TakP4cmAC9NWLVInpfACaoag5tX9deLAJ1K+f363ZFCIRlxmDIC+xjrn3oSgCRfGaJ6rqy3v2jjDjy7T9eyHpupS+GCNb1YCNc7SRk5YXG4MBO9w1dOOpENOfC+m+Z8mNJDG3uG1Nkn/lNg5/GX6WwB3OviHJo6EjkxZnPPqwXgjKnZSEeCbmiXsWcPJ4+LPMS+gPDYAhcM6THtcTxvVMp3heSsjHed9L5TsKu8pcfAdE8hXBmh71T4RxOXhnvCqSKGi4vygAL5cDc+i20DpyO/LkH8KZQ== + SMTP_URL: >- + AgBEdghMrr+4sREEr2oe9DozWVjZMCZW1pAjO89EVP4JgTDoEPyTrvuHQixWcZwGmcID9TYaQMMftMpltSzmmc1VBbXi/6zeTqofPg+/k+B3EIxtHjKRfzvt2XEgyXQx5+w2/dx3XB/DWmWO/AibnNmIUV/5pY5dXYnaaUNLbQ/R5FSsk2hAZROqtS/+PC2e0+LlU/cQvKO8GqFoxfF3Y51ioDEetCOjz1msML74dXkBnDwECl3fCPaNaz6aJOglEqQ8m1g8M+h1KrFE5OT0lbKROOBHQTM7QdJNzIe6oiBnPZV2sk7kM29u7S5425hZ6MlTVmebJmkjOUQLQVoNGcaKPdL653qqzHFgyPGESIavH1xeseVJJwrzadD/QTOw9NswINrF6qMBsp2MtU5RpZTdFlf7f2voc+JjJOW1hNE/NZY4k0r8f188FGUmHAsTMTBJEvxZS4n6pJfXzU9UpHkwNBOHBisVuvTuZX/8vz/KvlUZ+nPRUMNxqghZr3TYXApc1F2MhZntw9BmXw5VsvGePSAPXPbYbh10JLkyAtCu66f0Hyjl9Ay/nTdTNYar9lwzlbfifmFWyNpB72qvRofy75IvhyBm2tOh/G0ebT9MO/jYuJcGqoUYYaHI7r3VD8Gi7McEi1dzv8DzO3wyjrDQONBbuDU0j0mirOZbxAm2iK3YG8ElXei5br4RHv64V4I0LkYK0QtfcWoGKUlufeONNg== + template: + metadata: + creationTimestamp: null + name: app-sealed-secret + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + type: Opaque +--- +metadata: + name: app-configmap + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-master-dev2 +data: + NODE_ENV: production + GRAPHQL_ENDPOINT: 'http://hasura/v1/graphql' + ACCOUNT_MAIL_SENDER: contact@fabrique.social.gouv.fr + FRONTEND_PORT: '3030' + PRODUCTION: 'true' +apiVersion: v1 +kind: ConfigMap +--- +metadata: + labels: + app: app + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: app + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + namespace: sample-next-app-85-master-dev2 +spec: + ports: + - name: http + port: 80 + targetPort: 3030 + selector: + app: app + type: ClusterIP +apiVersion: v1 +kind: Service +--- +metadata: + annotations: + kubernetes.io/ingress.class: nginx + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: app + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: app + namespace: sample-next-app-85-master-dev2 +spec: + rules: + - host: master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr + http: + paths: + - backend: + serviceName: app + servicePort: 80 + path: / + tls: + - hosts: + - master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr + secretName: wildcard-crt +apiVersion: extensions/v1beta1 +kind: Ingress +--- +metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: hasura + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: hasura + namespace: sample-next-app-85-master-dev2 +spec: + replicas: 1 + selector: + matchLabels: + app: hasura + template: + metadata: + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + app: hasura + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + spec: + containers: + - image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/sample-next-app/hasura:c18cfdbb191c5c401f4110e1f15707b21ca995df + livenessProbe: + failureThreshold: 6 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 30 + periodSeconds: 5 + timeoutSeconds: 5 + name: hasura + ports: + - containerPort: 80 + name: http + readinessProbe: + failureThreshold: 15 + httpGet: + path: /healthz + port: http + initialDelaySeconds: 0 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 500m + memory: 512Mi + requests: + cpu: 100m + memory: 64Mi + startupProbe: + failureThreshold: 12 + httpGet: + path: /healthz + port: http + periodSeconds: 5 + envFrom: + - secretRef: + name: azure-pg-user-c18cfdbb + - secretRef: + name: hasura-sealed-secret + - configMapRef: + name: hasura-configmap + initContainers: + - env: + - name: WAIT_FOR_RETRIES + value: '24' + envFrom: + - secretRef: + name: azure-pg-user-c18cfdbb + image: >- + registry.gitlab.factory.social.gouv.fr/socialgouv/docker/wait-for-postgres:2.0.0 + imagePullPolicy: Always + name: wait-for-postgres + resources: + limits: + cpu: 20m + memory: 32Mi + requests: + cpu: 5m + memory: 16Mi +apiVersion: apps/v1 +kind: Deployment +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + creationTimestamp: null + name: hasura-sealed-secret + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-master-dev2 +spec: + encryptedData: + ACCOUNT_EMAIL_SECRET: >- + AgBc+UqJhU2ZBfuplyiI3pPekRjm36i62WYR1lVpM9PIwK636R78mpfckIeGU09qKAxWGYBqtYtvNP3lTG8OwEUqKLnUxZPZKbtwc78GwzEzaPpnWmM+j78uBDxqHDiW+jKwnD/6XiWxsfyd1ZU/qS0LDEJBnVRoDyUI0NxzFWLxG8ylr6oK3q+oD3338D588TimklZGOvRm/hI95d5uwKsYPz0zYOj28pgHzNMVycreOXi9l562agyg2hdb8AkFD41utLEURxJOomJUl2xZIjv6FX++R9OJQzRsX6WsCAkLZPO7VEi1cvG6QzPf/uchwystfQfW5c+5ofVJer5mLJJjFcO8OfNbsg/JYlndv4F90cjH2dojSHv/qH/ddpObPgkDpVzCljdTvrir5bl3z3KeqLb20ja1hLJlwOue4zHDCQ6Fwza8VN6BjbHZLYhOO5qlYfWezjwt+B6RdFVzD8wu2JbuWsJo5w2HhMl2Nckar1B8CPxzgRXnFwc/QsFTDXOXX+rtxnC4FJfffZ/2frV745c642AhOArDxk8OGDFkrexr5OMv0iJcY15cl6K9dfZWOKfFd5mxfWFhDWUSAoUZJsz4uVxpTCCoSJBe8Nf1aKk7PkZ+bXtV5bpuktySoPh0hG1M1dUg0WsSC2i6zp75AUxVW6c4GG7d9FMsTHIwyD7fEbV3TMRanSRFYNPOmft/oI7Q3oNGOGg26KCtX414FG02EnpmrttHQguY7cnHGG7i7s8mnyGv + HASURA_GRAPHQL_ADMIN_SECRET: >- + AgAQ9npiVSZcI8IA6kHHQ9tMaKYahCPmiYh9PoEmKIvisGCM4hQ2Q+UUoUvA2N3Id/GCxNZh3hqmTjLp+mHPy0e8rr9+/WVB5jrrqWO/oX2R1kXq0dbITF27UOjmTaUkZefPf7diHKpCXKGamkP6YbVuZa+1BBmBBfkIDJsraKO1CS/EO0QZAb0fHJiOkNy30j4pTTlg16JdugEj3kXdXXXZD/F8OyvlLBY1jivC/uFMGppNh1eRivgi4Y+krCDCuLphAa5YVslLMf7bboDD5Tk1b2HOCNYxQ96dxvkqCVtNd2rxXfDsYy9vMbQfYnsBjsIT7VZhk3GaMpVmPTRjp89XQDvj86+PrPtuFlgmfLrNvbvcqJ30y5lkD46c4Bd9zgwN4FeeVuY/oCKgfrN1qdCOT+ZYchkVQuCbKT+qK0gfOkYRt+B5feL5MtaEXX2MyhPS8wCvNLyAEth6NbmYxdXOPBXQrfGNcZYg/qjeB/muAzkd4wEPsR9ExoY5envlJ8Mx8LUQ/7A2tRp1jd+uy8s1hdb94BgOhcCqgzdqRkIVp40GiVHzVkFWQEkMEoX1Mw4iifs0QtAZu8qPyFWYORf9fty8zG/WX0RStdYbTuahCLb+Vqs2A5UEbg8nRdfl16aZJ3RY2fIoF1kYNG7XiZmp+bltOOqvYcOBnAr3Dy/y1PV1NrBMCULxibM57+nRyXrJe6TYLrJWPnp7meLLKppKPN3tgvx21s1/8bpbxC0xgshPZFgXQXgB + HASURA_GRAPHQL_JWT_SECRET: >- + AgAyuiPLqj0UMvhEkyEGF04LOp8al2O59/YGOei4hfkqcEw83rmJnb/o3nz96oLYG4gX/JlMT8grhUmR8wPG+Ah5UDuGK9POP75YYyNDQ05FrMDPCjQtEXNslqNp+oVS91ONUwJ7ARUr47vfQdxRoK03cFCboY0wEF8HMZzRjn5fXccttyT21kJV75Y0MtCif5jNCj+gtX2DIP9dNfvAJKCvOCzNJDALLmhv4tY71ZquGAiXf/+mJVP5ugRjFL0wYoKThAr3vph5cOPUo44swVilESu54gAoRlPNxFgOBXHS5Uu0VWryzTJyQGOElkYCxyBC45YzFZGMB3RWxaZtuForw76bD0RYWTVNsI+N/KmZdbYZO5Cs6HdqE2nptb3QAgpH0JOeWnzZGxTmkSOpEwCUGCJG+7ApPB5obIaVMZG39lWvZc/VTBZkTr7ufvOyIvwtYc9eh+AiNSy02gUXMzIkxK/eyWmKXowJcqXYK8K9iIgkLfMclUdWFQtHCN0h4OEyenRreP9qX8E34eeZ1ZwiDgJGOki8Ys4bphaFjSXZd82KRwuHDTIamAEGCUm7rLW9yOGE77AJpBTdqt2Qz9SUCXWbJewukbvtZwVtAEpEI/O+/KKNinObH0Lmhj8bRLn01rLgt9WsB972vEjboyzkT2gC7/G2Nx8O3IFiiJ9Ki5/hko5A4oorXdkCfuP7UfiKFR/pkXKqCOMrqi7uD7N0/qNtZ2j3satfeInOEldn1M6h7mz2IiRdszxq/RTsdFEO6h3X3lZLELXcDjgkZqCMXaPToAPRS2EKi6Ihs151VepGAerGOeq+DL+NU1aOwenivXe91vqDm9O0Cc3K756VBkUZA7ufFp3RKujk5fWygk0N8w0Zd9qU/tL7NqE/5n8xIdknzBI+qoHCrrOTnyMUpUEPuYbxY2lYkhb/4Afzte2nyM0K50I/4imEYWVsC+vNQ59OeYCoYcJBe19D+dm2rfxvYgy/H7scFjsl9rwCe23aPWQOJBJvcEnmgKOMRkG0cw6gvhBPVZ2w8gvIAfffLsj+zsag1izfgzcaajrfRr/kkxYk6R6Gz5tdjYSUz6P1Xk8LyCyB6st9IE433qlel4bwxjwh1CYz3pGUvAwj+TKsAF4xeiFd/LN3nitE74yGAOerbB/MrQqCcGbD6Anz2DWaFkhRxYKlJQsyy1rsxPzfo2wr8W/zpX7Jf17fHXJ96OG/WV2uZvudw7EjVdvxLhauabodjh3eC1/Kn9yvxJ5GTQLjJ04C/o7QgiIz+vNyxSqfvWf6zAsPJrAoHZXXoPbOaZVG2Sx1eWrhEIi8eV2z1x54SKLM0yy8lRTc2170AhLxqf4PaDTMR4ZTkhaIwPONeAIdHGnk3DVgYa/97WNO3j48ZnXwjKvp8mcKoe2Q9Y3WYuu4XafZg9UdDLbtePJiBlSF42uUbZsS4/oEU8ErRyodcOQPUYEM5SGuxceTvyxi6v7zhgYv3TiwWGgkoxznvFZ9H8m3SN0hCY4TINo9bnBAm2XRzZrhmGRpoKTOvQbkIXKoOzKeoQRgopjUdWW5X4EcKOW76X7B20x+2sPVkqwN/u5KFX3+HY3z1ui1+nIIKlbjUCY17QwxuVDP7yMU6xeBhtwUz0FkFGyHuSbrk+NhpA== + template: + metadata: + creationTimestamp: null + name: hasura-sealed-secret + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + type: Opaque +--- +metadata: + name: hasura-configmap + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-master-dev2 +data: + HASURA_GRAPHQL_ENABLE_CONSOLE: 'false' + HASURA_GRAPHQL_SERVER_PORT: '80' + HASURA_GRAPHQL_ENABLED_LOG_TYPES: 'startup, http-log, webhook-log, websocket-log, query-log' + HASURA_GRAPHQL_NO_OF_RETRIES: '5' + HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anonymous + ACCOUNT_EMAIL_WEBHOOK_URL: 'http://app:3000/api/webhooks/account' +apiVersion: v1 +kind: ConfigMap +--- +metadata: + labels: + app: hasura + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + name: hasura + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + namespace: sample-next-app-85-master-dev2 +spec: + ports: + - name: http + port: 80 + targetPort: 80 + selector: + app: hasura + type: ClusterIP +apiVersion: v1 +kind: Service +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + creationTimestamp: null + name: azure-pg-user + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + namespace: sample-next-app-85-master-dev2 +spec: + encryptedData: + DATABASE_URL: >- + AgChXoL9ubO3gDoiVwOZrKKfXL9QeDWc+doOmKL+rumyq21Tm79aJNtzDigc4Sm/BMPCLuTxCNqHc2ZJdoGuxCXIkVqfx8vXDNnum+W/iQVWCMIs63FaMol1VV0EmFZDCNpL1iSSiZXoX9D6gcV4VwtZer/rJohGTqhyem7y0SND0hTp7MCzUP2B+u71S5rGUyzlmWJfHaf5kSuTb85LxNC7naMPGaI2pspaKW1FWHONWfj/ozfzmt7yhzjBTcZe8MOwqBwn4WhKn4YfVvFWQE2FqE1xQZ3u4cCqP2c0UigTSypVeIcgM5yYcJplbLNSOoVXJHR8uYqKqGxblTTf1bzRMlXlbLQwSfFx17GrDTz3flZxoiMHmGyD4R7CMUJNUjwCFHUVaTz0J/AI8wPiORZwOPhA0ldrPkbE7ZokqB1MLRRnkvZ9qpBCV23rhixuX/wlkwpL3JsakTZQads7H5246DMVEEip4t7BwkjSv65UKMlXKuFMy+Z1kISxWen54PyTIsaXpqid0s3tXW96j++gp2m1JfgDy0IL3c46XP5WJTdD45KxIrra8MEMWEM/68aNqRQa8ihjBL0ZTMUC5Y/x6Smyst4qfXzcEZD3zw6657pf5KzdjSW+3Q3nCkvQdkLBKcfrBKuqSQemqPjQeLZw2CfFLAnPMgh19VH36+WpzCcsRdFOTSTuJGWr0o5Trm9bmaqKlJuS6yuKVg2nU8WRjxjFK4N+5t0rkUSuYSl0pzLzt53vSlV0JfUbocp4wEfvGYmsmGpJk4O0iK6SRHFpGadXd44jZ1MQBgoNOFS33astaJyiue15IsSe/82Z8Nt6/CxWMya/ur2WzYzpVggAg68HE3E8dEAmThOkuvGIB66IppNZ4oda7ZKbd+DfddsqG3FravN8+SjU6A2aNxeh3HIY1YDXxMA2uBaXQdVF + HASURA_GRAPHQL_DATABASE_URL: >- + AgChXoL9ubO3gDoiVwOZrKKfXL9QeDWc+doOmKL+rumyq21Tm79aJNtzDigc4Sm/BMPCLuTxCNqHc2ZJdoGuxCXIkVqfx8vXDNnum+W/iQVWCMIs63FaMol1VV0EmFZDCNpL1iSSiZXoX9D6gcV4VwtZer/rJohGTqhyem7y0SND0hTp7MCzUP2B+u71S5rGUyzlmWJfHaf5kSuTb85LxNC7naMPGaI2pspaKW1FWHONWfj/ozfzmt7yhzjBTcZe8MOwqBwn4WhKn4YfVvFWQE2FqE1xQZ3u4cCqP2c0UigTSypVeIcgM5yYcJplbLNSOoVXJHR8uYqKqGxblTTf1bzRMlXlbLQwSfFx17GrDTz3flZxoiMHmGyD4R7CMUJNUjwCFHUVaTz0J/AI8wPiORZwOPhA0ldrPkbE7ZokqB1MLRRnkvZ9qpBCV23rhixuX/wlkwpL3JsakTZQads7H5246DMVEEip4t7BwkjSv65UKMlXKuFMy+Z1kISxWen54PyTIsaXpqid0s3tXW96j++gp2m1JfgDy0IL3c46XP5WJTdD45KxIrra8MEMWEM/68aNqRQa8ihjBL0ZTMUC5Y/x6Smyst4qfXzcEZD3zw6657pf5KzdjSW+3Q3nCkvQdkLBKcfrBKuqSQemqPjQeLZw2CfFLAnPMgh19VH36+WpzCcsRdFOTSTuJGWr0o5Trm9bmaqKlJuS6yuKVg2nU8WRjxjFK4N+5t0rkUSuYSl0pzLzt53vSlV0JfUbocp4wEfvGYmsmGpJk4O0iK6SRHFpGadXd44jZ1MQBgoNOFS33astaJyiue15IsSe/82Z8Nt6/CxWMya/ur2WzYzpVggAg68HE3E8dEAmThOkuvGIB66IppNZ4oda7ZKbd+DfddsqG3FravN8+SjU6A2aNxeh3HIY1YDXxMA2uBaXQdVF + PGDATABASE: >- + AgCPmg9L23oNElDuc4fMjBr4qSBO+RFTdyWnI9AVei5yW9My5lQKOx+b2Fu8aZHuzzmU5pkmK0tpBpmoJR6QDds1jQtR/XBw3j+o74lgLU8C9PNQypxx/myqIG2ASlnCO8evsvQI2mofKCwfl7eMLwdEl2C5k5Y3AlH+Qjn+z3feu/w3h/bHwNj6n2Wv0W8YI+bPPCO/4UrVP+rb6/dqmhZI+9vFhFHW4ACTtzP/ILh5nEt3qP5TnfK9BuQSrIEyeXG2H8+TQ+pix+zWkr5XbMg0Un/DmCh/fVjRyO0sQwNMOr+P7ePcUZ8zt09/5zn/NPQE8Jz9CRSQmod0kyH6SOgHcN79HLfuV1Ov6i72IQLC1p7NAA90lN0FSUAyYUH5l7tSGOg5QyEPMMto3KjLgBKiOCLMBKyfySqG7C0dMBOizwV9T4WrabMPCeG10f/gYr1+LHzyi95A6NEapBPeGPS4zv/S+fBGP+sKxiFzekdo3Xk7DNrVewkzwyeKqn0IWKq2idDYn5H1R2dHsKacNzV7kvNDM9AzkMvxMFw18etpyQ7coiIbQZieIbp7AywEUmfs98/ld/KCli1ayTK8KIKW64mohufiG3vD5C2mY0w9qpI3JvD3czYyeFNUEE+Swgn/Psqifp/K6twQVB/jF/y8ADF7so4iKzckcR3hzvNZTwc9T3JlBKfUq6bthACfF5huD9jbzExlfgLrt2YZ + PGHOST: >- + AgAHMLNN6/Lire1zToAZvMVgUakKXeD29rSsczSEvF3IHhXZHkoSUkr5shFwnTnpyvK81U6ftv0hhXb052Xg43CQzJIZF3rLhLIYMs8rD0jlBtFxWuqFRe9Eq2ZbBL6JKJJJgmNOSSvV3fOQLwH9Nm9tiELUlVB8AwF7+ZhwF1w5PIJJOaxEBchscheBePwFumxqnZ8RS7uwStOYrkbKzzk3UYckkGRO7zViZhu6sBqR+Q+gEX7MJ1zZgLiOGA/AlrCc8I1YQcHabAgjxH1uzUmE2Yxa+O0G0eZyYDzgTylueLKgN+kIkut6E/1TdBAZdHP9u1LkUW3+Y8Ma9ZK3FR8AXulOk7W5VJZxdzgn0cRn7SgBYS7BMdJTmMcsb7XynW1P0614acVSAINFqKjsUSDTl/AUqqm1thefE3eDk8aYkaeis1MB5ZdvQAXhFZJ2nQyh7geib0LLVDg4huC+rhEvBRvGsw9AfRXmGGfMN1fyVHxL6uCaJWoOraBTEPrXaHwXyp9pDIya/ulWDHSes/wTQBgF75yqf/L1VnDKBJ70WSnVd7Sbq8C5Xuw+n2vf7/Fnu7TYDTCgRepjnWo5Dsl4hD5zcI9nZqk8wEHO/Id9ZK8cwiDSkniuES51LHrx0gFcMaxaTXI/7Xx2+3j6rpsZfoEM3BqV8wFYOB0bc1RwRuMqC3xGPV5YagtOKjLY+8G4mLYvMbKKrqstSOBR6bg0wVSycNn0BascDt6i89Jlkc/lHOu1mwxZaSNPDIYDMSLtEGY= + PGPASSWORD: >- + AgB2f0i3Lv8mgeyS/0XBbzLjaRZ8PfPCvomzEy+cAjAiaJQQPXZ0tzRtit9m8bwOO/HilZKqeuxQnDpOPEIvcJ/7AUpxescN2rReGQnMzNHk6p1ilPj5PIjyrQtVCn1ezB9RIULdYgRteh98uTHIjXO8gFls8zZj7jG1rep7upSfyBDlsU5nq98bH6olj0b2Jz/MBsgyryBB/lSNUut+T1X1tAblurd6CejRMgqtMO2K/wnZspc5Rvd3NIfbtsMgpokTZ2wbcFexMWlIBpbyU6FrHUOWe/he7TPTjW49pOVwTMNqT7bmU4EdhZOtHm6qhPmDYHiD2K91+cPCq6C7ys/FJk3uSo0wdBGWNLb0AQV61LOImnsVRHuM3fs7rVJ+wCd5o3ticYfpyXj6hLYFzFlJv4Etp/Bnqy5KDazLBKmsXWAL9CsVbVuSkiXGHuVGBhVZ71Kd4IRmzHqbBQwZhfKSuk8l7AXAFjf0S97StsyLeF6WeEk9JBLFYv7l24cRmISM/Kjqm9otOwohOIAd0tYGTm3i6sl2Ym6rkEtZy2Qa6SyjFS+ic2VJ53//Mx6XnnAlVltZKB2TL2bFpTt4avZUb8NMhggQhp9a8Mch0kXN47CZgc/ETciI1mzY4WUcJ92OCggIxSIKwOZqAM6xqMHT81kry1roRByqxa0/LktyEUfmuNtQuAbSS14JzOkrNK5LdCitHUR99yC9b+M1AOBI1HReN184fg6/C1TxlFmdSDUlP09wSn42 + PGSSLMODE: >- + AgAINM6BMnjTbcNLUgVFpgiaVsKfYG/4U4eQeopY9MUg3lJo7eWIHDvPJ4aXZorCm7hykM4bge+bkOhtZt16/DWCel28ziw7OvjUhVgaU4ua5Zse560BOauInEFty9IsLYsoIslxdkG4b577FpjTV12f5xw4lGJATqPavZGpLJgCtct2EYxiXgMySpx0bbK6uCSlu9yw9SLO1kjctzZtgNOI2E423ppaPOKFWc73ImgTOem/rtKdEIbY91/PtXR4iW8u7b0IEwrl+sp/lKz0wMqejEU59eqa2iiFu7kzJBWurEFrQKiYsySeXVeeRs0Kdx1+Xq8ti+vmJiDJOEPQhFNWlYMNksIAKMQPCuZf/1V2Yd+tImd9Hs5sJPYEWZqIObCYR36CoK7ipnumVZDBtyzQ8PZp9E4la+EnrBxJ0LOkDkT95ta9At/0XLMGmiyCqk+S1fW5IeSSneMrS6tiPkUjpDq43rOgWnN7fTWzOcu7w/DU5pIh4l6nIOD78Gbvh0wCBqxG6LUhOSPxCjc7BX6RxnxSWJe4Kn5aXFCsJFhNcwpwklgDbGivFnZiamaW0piCwmzY4LPqQXxie9a5lJblThKw1hNQ50hRCeODQW/G69NS9KSnMJg+54jWd6sJ+XbMtOHNvjmqZB2KeG8Px5IwncZt8eH7elN3a8IT74HkVH8SIGEuN8v/e82/BHvrKbVCsnVzqVNM + PGUSER: >- + AgCC+9O3guxzQyUwCqIJRqaDj35mMU/nI2hFc4ICluzJHXxVzzWhBEUokuU4wPltFY2Zumoo0UH7CKlsZj7xi/my4IpgjDU+c8QH36Mw2xj8RSjRzB58wstowRFZ9jvk9wqElr8pfkAJh+eOkMxypTAp8EIPZyzsqS2f4x75xwcmphftMGA4ygCiqLEVneM6fsrdeViOz1PfYS/wbml/vaBpmTnXygrwPdgXs9+4pswqw+SH59ySD5nUzQ1MMzQ9JAo8FT6TurbQJ+xx8jrYO0VlL/k26u2idDPzWHzL+IVZP2fpNEExQkFYYYzQ716ChZ2X09i4CLT8KxnS2Bq9E5KboCAVdhLjOx7sPv9FV5CW4oWuiNadqhQNvleyRFkwabga7jbO0YmlCsoK4jqgUUiNFSmXACQLjyYRKX4BaOL3LxCCMAk9VZUjTvsKRXjjCP62l4aAceSOmbsFwZeG4Q+RWyMIIpEhhI+0TevK29ZY9uUtPnColGFzJ2RG5v+wxMqdTeMk/5635bzU6Do8MrQj9eHGwpJ/2URH0O+e1WLcEe9uv09M2cDf5DfkUK2tZ7CPKl7Uzwxzucsmae4XzvfqnO55GuZZ6d55CnNYHwhjd8ig2RLHKn89XGraV7gZmYp//6qOOcyvxCxbKajvRtYncOVF6SG6MF40a/Qdujd7U5WA2T1IO6LuoPxWY/sdJZsl2sjt+SneqnShKveiL5HvsZgfm6TOwRebImOuLNIb2t3TGaVy + template: + metadata: + creationTimestamp: null + name: azure-pg-user + annotations: + app.gitlab.com/app: socialgouv-sample-next-app + app.gitlab.com/env: master-dev2 + app.gitlab.com/env.name: master-dev2 + labels: + application: master-dev2-sample-next-app + owner: sample-next-app + team: sample-next-app + cert: wildcard + type: Opaque +" +`; diff --git a/.k8s/__tests__/kosko generate --env dev.ts b/.k8s/__tests__/kosko generate --env dev.ts new file mode 100644 index 00000000..4462cd92 --- /dev/null +++ b/.k8s/__tests__/kosko generate --env dev.ts @@ -0,0 +1,8 @@ +// + +import { getEnvManifests } from "@socialgouv/kosko-charts/testing"; + +jest.setTimeout(1000 * 60); +test("kosko generate --dev", async () => { + expect(await getEnvManifests("dev")).toMatchSnapshot(); +}); diff --git a/.k8s/__tests__/kosko generate --env preprod.ts b/.k8s/__tests__/kosko generate --env preprod.ts new file mode 100644 index 00000000..5462304f --- /dev/null +++ b/.k8s/__tests__/kosko generate --env preprod.ts @@ -0,0 +1,8 @@ +// + +import { getEnvManifests } from "@socialgouv/kosko-charts/testing"; + +jest.setTimeout(1000 * 60); +test("kosko generate --preprod", async () => { + expect(await getEnvManifests("preprod")).toMatchSnapshot(); +}); diff --git a/.k8s/__tests__/kosko generate --env prod.ts b/.k8s/__tests__/kosko generate --env prod.ts new file mode 100644 index 00000000..81379ebb --- /dev/null +++ b/.k8s/__tests__/kosko generate --env prod.ts @@ -0,0 +1,8 @@ +// + +import { getEnvManifests } from "@socialgouv/kosko-charts/testing"; + +jest.setTimeout(1000 * 60); +test("kosko generate --prod", async () => { + expect(await getEnvManifests("prod")).toMatchSnapshot(); +}); diff --git a/.k8s/babel.config.js b/.k8s/babel.config.js new file mode 100644 index 00000000..f0bc2870 --- /dev/null +++ b/.k8s/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + plugins: [["@babel/plugin-transform-modules-commonjs"]], +}; diff --git a/.k8s/components/_namespace.ts b/.k8s/components/_namespace.ts index 8de65e4f..44241084 100644 --- a/.k8s/components/_namespace.ts +++ b/.k8s/components/_namespace.ts @@ -1,4 +1,4 @@ -import { createNamespace } from "@socialgouv/kosko-charts/utils/createNamespace"; +import { createNamespace } from "@socialgouv/kosko-charts/components/namespace"; const manifests = createNamespace(); diff --git a/.k8s/components/_pgweb.ts b/.k8s/components/_pgweb.ts index 4a383425..d453c6e5 100644 --- a/.k8s/components/_pgweb.ts +++ b/.k8s/components/_pgweb.ts @@ -1,45 +1,6 @@ import env from "@kosko/env"; -import { ok } from "assert"; -import { Deployment } from "kubernetes-models/apps/v1/Deployment"; +import { create } from "@socialgouv/kosko-charts/components/pgweb"; -import { create } from "@socialgouv/kosko-charts/components/app"; -import { addPostgresUserSecret } from "@socialgouv/kosko-charts/utils/addPostgresUserSecret"; -import { addWaitForPostgres } from "@socialgouv/kosko-charts/utils/addWaitForPostgres"; +const manifests = create("pgweb", { env }); -const manifests = create("pgweb", { - env, - config: { - image: "sosedoff/pgweb:latest", - containerPort: 8081, - subDomainPrefix: "pgweb-", - }, - deployment: { - container: { - livenessProbe: { - httpGet: { - path: "/", - port: "http", - }, - initialDelaySeconds: 5, - timeoutSeconds: 3, - }, - readinessProbe: { - httpGet: { - path: "/", - port: "http", - }, - initialDelaySeconds: 5, - timeoutSeconds: 3, - }, - }, - }, -}); - -// DEV: add secret to access DB -const deployment = manifests.find( - (manifest): manifest is Deployment => manifest.kind === "Deployment" -); -ok(deployment); -addPostgresUserSecret(deployment); -addWaitForPostgres(deployment); export default manifests; diff --git a/.k8s/components/hasura.ts b/.k8s/components/hasura.ts index da281362..b58c2a8d 100644 --- a/.k8s/components/hasura.ts +++ b/.k8s/components/hasura.ts @@ -4,6 +4,9 @@ import { create } from "@socialgouv/kosko-charts/components/hasura"; const manifests = create({ env, + config: { + ingress: true + } }); export default manifests; diff --git a/.k8s/environments/.gitlab-ci.env b/.k8s/environments/.gitlab-ci.env deleted file mode 100644 index 545702c6..00000000 --- a/.k8s/environments/.gitlab-ci.env +++ /dev/null @@ -1,32 +0,0 @@ -CI_COMMIT_BEFORE_SHA=ae724d33b9dfe463812eb3890bba85c259a05e73 -CI_COMMIT_BRANCH=beta-db-12 -CI_COMMIT_DESCRIPTION= -CI_COMMIT_MESSAGE=build(k8s): add dummy drop-db job -CI_COMMIT_REF_NAME=beta-db-12 -CI_COMMIT_REF_PROTECTED=false -CI_COMMIT_REF_SLUG=beta-db-12 -CI_COMMIT_SHA=c58c0974f7023063b1296d3a5a285b46b92771f8 -CI_COMMIT_TAG=xyz42 -CI_COMMIT_SHORT_SHA=c58c0974 -CI_COMMIT_TITLE=build(k8s): add dummy drop-db job -CI_ENVIRONMENT_NAME=beta-db-12-dev2 -CI_ENVIRONMENT_SLUG=beta-db-12-dev2 -CI_ENVIRONMENT_URL=https://beta-db-12-dev2-sample-next-app.dev2.fabrique.social.gouv.fr -CI_PROJECT_DIR=/builds/SocialGouv/sample-next-app -CI_PROJECT_ID=85 -CI_PROJECT_NAME=sample-next-app -CI_PROJECT_NAMESPACE=SocialGouv -CI_PROJECT_PATH=SocialGouv/sample-next-app -CI_PROJECT_PATH_SLUG=socialgouv-sample-next-app -CI_PROJECT_REPOSITORY_LANGUAGES=javascript,shell,plpgsql,dockerfile,tsql -CI_PROJECT_TITLE=sample-next-app -CI_PROJECT_URL=https://gitlab.factory.social.gouv.fr/SocialGouv/sample-next-app -CI_PROJECT_VISIBILITY=public -CI_REGISTRY_IMAGE=registry.gitlab.factory.social.gouv.fr/socialgouv/sample-next-app -CI_REGISTRY_PASSWORD=[MASKED] -CI_REGISTRY_USER=gitlab-ci-token -KUBE_INGRESS_BASE_DOMAIN=dev2.fabrique.social.gouv.fr -KUBE_NAMESPACE=sample-next-app-85-beta-db-12-dev2 -RANCHER_PROJECT_ID=c-f8qps:p-46tj7 -ENABLE_AZURE_POSTGRES=1 -AUTO_DEVOPS_DEV_ENVIRONMENT_NAME=-dev2 diff --git a/.k8s/environments/.gitlab.env b/.k8s/environments/.gitlab.env new file mode 100644 index 00000000..3f46fc82 --- /dev/null +++ b/.k8s/environments/.gitlab.env @@ -0,0 +1,20 @@ +CI_COMMIT_BEFORE_SHA=0000000000000000000000000000000000000000 +CI_COMMIT_DESCRIPTION= +CI_COMMIT_REF_PROTECTED=false +CI_COMMIT_SHA=c18cfdbb191c5c401f4110e1f15707b21ca995df +CI_COMMIT_SHORT_SHA=c18cfdbb +CI_COMMIT_TIMESTAMP=2020-11-25T09:43:54+00:00 +CI_ENVIRONMENT_URL=https://sample-next-app.fabrique.social.gouv.fr +CI_PROJECT_DIR=/builds/SocialGouv/sample-next-app +CI_PROJECT_ID=85 +CI_PROJECT_NAME=sample-next-app +CI_PROJECT_NAMESPACE=SocialGouv +CI_PROJECT_PATH_SLUG=socialgouv-sample-next-app +CI_PROJECT_PATH=SocialGouv/sample-next-app +CI_PROJECT_ROOT_NAMESPACE=SocialGouv +CI_PROJECT_TITLE=sample-next-app +CI_PROJECT_URL=https://gitlab.factory.social.gouv.fr/SocialGouv/sample-next-app +CI_PROJECT_VISIBILITY=public +CI_REGISTRY_IMAGE=registry.gitlab.factory.social.gouv.fr/socialgouv/sample-next-app +CI_REGISTRY_USER=gitlab-ci-token +CI_REPOSITORY_URL=https://gitlab-ci-token:[MASKED]@gitlab.factory.social.gouv.fr/SocialGouv/sample-next-app.git diff --git a/.k8s/environments/dev/.gitlab.env b/.k8s/environments/dev/.gitlab.env new file mode 100644 index 00000000..02b57c0a --- /dev/null +++ b/.k8s/environments/dev/.gitlab.env @@ -0,0 +1,10 @@ +CI_COMMIT_MESSAGE=chore(release): version 1.2.3 +CI_COMMIT_REF_NAME=master +CI_COMMIT_REF_SLUG=master +CI_COMMIT_TITLE=chore(release): version 1.2.3 +CI_ENVIRONMENT_NAME=master-dev2 +CI_ENVIRONMENT_SLUG=master-dev2 +CI_ENVIRONMENT_URL=https://master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr +KUBE_INGRESS_BASE_DOMAIN=dev2.fabrique.social.gouv.fr +KUBE_NAMESPACE=sample-next-app-85-master-dev2 +RANCHER_PROJECT_ID=c-bd7z2:p-7ms8p diff --git a/.k8s/environments/preprod/.gitlab.env b/.k8s/environments/preprod/.gitlab.env new file mode 100644 index 00000000..2766b500 --- /dev/null +++ b/.k8s/environments/preprod/.gitlab.env @@ -0,0 +1,11 @@ +CI_COMMIT_MESSAGE=chore(release): version 1.2.3 +CI_COMMIT_REF_NAME=v1.2.3 +CI_COMMIT_REF_SLUG=v1-2-3 +CI_COMMIT_TAG=v1.2.3 +CI_COMMIT_TITLE=chore(release): version 1.2.3 +CI_ENVIRONMENT_NAME=preprod-dev2 +CI_ENVIRONMENT_SLUG=preprod-dev2 +CI_ENVIRONMENT_URL=https://preprod-sample-next-app.dev2.fabrique.social.gouv.fr +KUBE_INGRESS_BASE_DOMAIN=dev2.fabrique.social.gouv.fr +KUBE_NAMESPACE=sample-next-app-85-preprod-dev2 +RANCHER_PROJECT_ID=c-bd7z2:p-7ms8p diff --git a/.k8s/environments/preprod/app.ts b/.k8s/environments/preprod/app.ts deleted file mode 100644 index 01525eec..00000000 --- a/.k8s/environments/preprod/app.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { GlobalEnvironment } from "@socialgouv/kosko-charts/types"; - -export default { - subdomain: `preprod-${process.env.CI_PROJECT_NAME as string}`, -} as Partial; diff --git a/.k8s/environments/prod/.gitlab.env b/.k8s/environments/prod/.gitlab.env new file mode 100644 index 00000000..8c7796f2 --- /dev/null +++ b/.k8s/environments/prod/.gitlab.env @@ -0,0 +1,9 @@ +CI_COMMIT_MESSAGE=chore(release): version 1.2.3 +CI_COMMIT_REF_NAME=master +CI_COMMIT_REF_SLUG=master +CI_COMMIT_TITLE=chore(release): version 1.2.3 +CI_ENVIRONMENT_NAME=master-dev2 +CI_ENVIRONMENT_SLUG=master-dev2 +CI_ENVIRONMENT_URL=https://master-dev2-sample-next-app.dev2.fabrique.social.gouv.fr +KUBE_INGRESS_BASE_DOMAIN=dev2.fabrique.social.gouv.fr +KUBE_NAMESPACE=sample-next-app-85-master-dev2 diff --git a/.k8s/main.js b/.k8s/main.js deleted file mode 100644 index f1795a8d..00000000 --- a/.k8s/main.js +++ /dev/null @@ -1,34 +0,0 @@ -const fs = require("fs"); -const toml = require("toml"); - -const data = toml.parse( - fs.readFileSync(`${__dirname}/../socialgouv.toml`, "utf-8") -); -console.dir(data); - -("use strict"); - -const env = require("@kosko/env"); -const { generate, print, PrintFormat } = require("@kosko/generate"); -const { join } = require("path"); - -(async () => { - // Set environment - env.env = "dev"; - - // Set CWD (Optional) - env.cwd = __dirname; - - // Generate manifests - const result = await generate({ - path: join(env.cwd, "components"), - components: ["*"], - baseEnvironment: "_base", - }); - - // Print manifests to stdout - print(result, { - format: PrintFormat.YAML, - writer: process.stdout, - }); -})(); diff --git a/.k8s/package.json b/.k8s/package.json index ff919383..79276627 100644 --- a/.k8s/package.json +++ b/.k8s/package.json @@ -8,15 +8,16 @@ "gitlab:dev": "yarn --silent gitlab --env dev", "gitlab:preprod": "yarn --silent gitlab --env preprod", "gitlab:prod": "yarn --silent gitlab --env prod", - "xxx": "DOTENV_CONFIG_PATH=./environments/.gitlab-ci.env npx ts-node --require dotenv/config ./main.js" + "test": "npx jest" }, "dependencies": { "@kosko/env": "^0.5.2", - "@socialgouv/kosko-charts": "^2.7.2", - "kubernetes-models": "^0.8.1", - "toml": "^3.0.0" + "@socialgouv/kosko-charts": "^4.0.0-alpha.7", + "kubernetes-models": "^0.8.1" }, "devDependencies": { + "@babel/core": "^7.12.9", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", "@kubernetes-models/sealed-secrets": "^0.1.4", "@types/node": "^14.11.10", "dotenv": "^8.2.0", diff --git a/.k8s/yarn.lock b/.k8s/yarn.lock index d6846461..c5bec945 100644 --- a/.k8s/yarn.lock +++ b/.k8s/yarn.lock @@ -2,6 +2,196 @@ # yarn lockfile v1 +"@babel/code-frame@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/core@^7.12.9": + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" + integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.9" + "@babel/types" "^7.12.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.5.tgz#a2c50de5c8b6d708ab95be5e6053936c1884a4de" + integrity sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A== + dependencies: + "@babel/types" "^7.12.5" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== + dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-member-expression-to-functions@^7.12.1": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" + integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== + dependencies: + "@babel/types" "^7.12.7" + +"@babel/helper-module-imports@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" + integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== + dependencies: + "@babel/types" "^7.12.5" + +"@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz#7f94ae5e08721a49467346aa04fd22f750033b9c" + integrity sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw== + dependencies: + "@babel/types" "^7.12.7" + +"@babel/helper-plugin-utils@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-replace-supers@^7.12.1": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz#f009a17543bbbbce16b06206ae73b63d3fca68d9" + integrity sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.12.1" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" + +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== + dependencies: + "@babel/types" "^7.11.0" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/helpers@^7.12.5": + version "7.12.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" + integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.5" + "@babel/types" "^7.12.5" + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.7.tgz#fee7b39fe809d0e73e5b25eecaf5780ef3d73056" + integrity sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg== + +"@babel/plugin-transform-modules-commonjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" + integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== + dependencies: + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-simple-access" "^7.12.1" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/template@^7.10.4", "@babel/template@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" + integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" + +"@babel/traverse@^7.12.1", "@babel/traverse@^7.12.5", "@babel/traverse@^7.12.9": + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.9.tgz#fad26c972eabbc11350e0b695978de6cc8e8596f" + integrity sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.12.7" + "@babel/types" "^7.12.7" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.12.1", "@babel/types@^7.12.5", "@babel/types@^7.12.7": + version "7.12.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.7.tgz#6039ff1e242640a29452c9ae572162ec9a8f5d13" + integrity sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + "@iarna/toml@^2.2.3": version "2.2.5" resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" @@ -85,6 +275,15 @@ is-plain-object "^3.0.0" tslib "^1.10.0" +"@kubernetes-models/base@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@kubernetes-models/base/-/base-1.0.0.tgz#cde8ed8eeaa8c95d869f1cbea056d59936a8844c" + integrity sha512-55rdTCwt5hUfsYsSovw1eZ4La7KJcukJAvlTDwaLYdUx36CtPCzBd90rEtHLCvaaqRGx989IExmnmutGZyeAYg== + dependencies: + "@kubernetes-models/validate" "^1.0.0" + is-plain-object "^5.0.0" + tslib "^2.0.3" + "@kubernetes-models/sealed-secrets@^0.1.4": version "0.1.4" resolved "https://registry.yarnpkg.com/@kubernetes-models/sealed-secrets/-/sealed-secrets-0.1.4.tgz#a6bfedd4f916ff85ccb9f2edf9ebcbf53b015091" @@ -95,6 +294,16 @@ kubernetes-models "^0.8.1" tslib "^1.10.0" +"@kubernetes-models/sealed-secrets@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@kubernetes-models/sealed-secrets/-/sealed-secrets-1.0.1.tgz#2d887f4f33483c69bd155e82979d5db185d9832e" + integrity sha512-FMh6DwD78rBU5Y3kDy27vq3nfcw/QPpOE8WwyPy/E/GV8iFZQKtz9z2mZdFgHzG1Uc/0qqkwoDu+eX9+X4lcWA== + dependencies: + "@kubernetes-models/base" "^1.0.0" + "@kubernetes-models/validate" "^1.0.0" + kubernetes-models "^1.0.1" + tslib "^2.0.3" + "@kubernetes-models/validate@^0.1.2": version "0.1.2" resolved "https://registry.yarnpkg.com/@kubernetes-models/validate/-/validate-0.1.2.tgz#49954fcbf8b9076f3b6e6f9eb67c457b65ceef52" @@ -104,6 +313,15 @@ big-integer "^1.6.44" tslib "^1.10.0" +"@kubernetes-models/validate@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@kubernetes-models/validate/-/validate-1.0.0.tgz#26e65342e4cb600042c57d95d79fad80ba97576a" + integrity sha512-goF9ajr66OqeHNienbhewzPMdKZoHTyrippw6hd/rQZs7kDbNeuQuDNSC3thoceczYSlhAa/q8Zyfa8X03A6LQ== + dependencies: + ajv "^6.12.6" + big-integer "^1.6.48" + tslib "^2.0.3" + "@nodelib/fs.scandir@2.1.3": version "2.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" @@ -125,20 +343,20 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@sindresorhus/is@^3.1.2": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-3.1.2.tgz#548650de521b344e3781fbdb0ece4aa6f729afb8" - integrity sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ== +"@sindresorhus/is@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" + integrity sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ== -"@socialgouv/kosko-charts@^2.7.2": - version "2.7.2" - resolved "https://registry.yarnpkg.com/@socialgouv/kosko-charts/-/kosko-charts-2.7.2.tgz#fece534febc245b87a321e46b2ac9b9159ae5f16" - integrity sha512-M10OkfRFKkrl4v0qzmeNKfsj/W5J//y5PtTFyNbAk2MpCDgDH3IRWmM39rZ1M5ckkPVXGbnR8Jlg1PjIDjeE+Q== +"@socialgouv/kosko-charts@^4.0.0-alpha.7": + version "4.0.0-alpha.7" + resolved "https://registry.yarnpkg.com/@socialgouv/kosko-charts/-/kosko-charts-4.0.0-alpha.7.tgz#3332feb7e6d3564148ac8f084d50e328d2f2dd7a" + integrity sha512-tsfm0zxg0hoq92bMrey4Px2ZweE0i1Et9jqm4WXfGAeQre7I/lq5eAmUJJkOEhmxaxkVpwa2br4qwgPQxyxytA== dependencies: - "@kubernetes-models/sealed-secrets" "^0.1.4" - "@sindresorhus/is" "^3.1.2" - fp-ts "^2.8.3" - io-ts "2.2.7" + "@kosko/env" "^0.5.2" + "@kubernetes-models/sealed-secrets" "^1.0.1" + "@sindresorhus/is" "^4.0.0" + kubernetes-models "^1.0.1" "@types/color-name@^1.1.1": version "1.1.1" @@ -160,6 +378,16 @@ ajv@^6.10.2: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.12.6: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" @@ -192,7 +420,14 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -big-integer@^1.6.44: +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +big-integer@^1.6.44, big-integer@^1.6.48: version "1.6.48" resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.48.tgz#8fd88bd1632cba4a1c8c3e3d7159f08bb95b4b9e" integrity sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w== @@ -209,12 +444,20 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + camelcase@^5.0.0, camelcase@^5.2.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -chalk@^2.3.2: +chalk@^2.0.0, chalk@^2.3.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -269,6 +512,20 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +debug@^4.1.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" @@ -291,6 +548,13 @@ deepmerge@^4.0.0: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -418,16 +682,30 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -fp-ts@^2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.8.3.tgz#c09652bbf21e64d65a9f93587ad549ab0e03abe7" - integrity sha512-oGD3BTSzFCPs9alaI/2gh0SCNKyhPXkpeIBvkXNvnoczHfDAUd2HHtotCdLO0hOTTTTx8VKA0mhhR7LUNo+cKg== +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-intrinsic@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + get-stdin@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" @@ -440,6 +718,11 @@ glob-parent@^5.1.0: dependencies: is-glob "^4.0.1" +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + graceful-fs@^4.1.2: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" @@ -455,6 +738,18 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + import-local@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -463,16 +758,18 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" -io-ts@2.2.7: - version "2.2.7" - resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-2.2.7.tgz#5c05477580bff4c0154b474316c8916253e87c44" - integrity sha512-kCusyu/Fa0oax5ue2Id/ZqVLEk5JOWyrXHcLbD4kHoVM50MhDEWUtcHlN7RrD94I8OrWILcVltM6OllnZiHJmg== - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -500,6 +797,16 @@ is-plain-object@^3.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b" integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + js-yaml@^3.12.2, js-yaml@^3.13.1: version "3.14.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" @@ -508,6 +815,11 @@ js-yaml@^3.12.2, js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -518,6 +830,13 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + jsonpath@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.0.2.tgz#e6aae681d03e9a77b4651d5d96eac5fc63b1fd13" @@ -544,6 +863,15 @@ kubernetes-models@^0.8.1: "@kubernetes-models/validate" "^0.1.2" tslib "^1.10.0" +kubernetes-models@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/kubernetes-models/-/kubernetes-models-1.0.1.tgz#f4fa48968db34f1d33f1e8f7ecbcd1098a4f1ebd" + integrity sha512-aWhuzVT4xwREq6NcQA6hGxL7R1TESc3p6nyKc7LsB3fjKiqdZLTowoPKRrcPIO8jWD3R0Dp1sB/8nQHnakKpoQ== + dependencies: + "@kubernetes-models/base" "^1.0.0" + "@kubernetes-models/validate" "^1.0.0" + tslib "^2.0.3" + levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -577,6 +905,11 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash@^4.17.19: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -602,11 +935,31 @@ micromatch@^4.0.2: braces "^3.0.1" picomatch "^2.0.5" -ms@^2.1.1: +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -744,6 +1097,14 @@ resolve@^1.17.0: dependencies: path-parse "^1.0.6" +resolve@^1.3.2: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + reusify@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -754,6 +1115,16 @@ run-parallel@^1.1.9: resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +semver@^5.4.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + semver@^6.0.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -781,6 +1152,11 @@ source-map-support@^0.5.17: buffer-from "^1.0.0" source-map "^0.6.0" +source-map@^0.5.0: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + source-map@^0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -833,6 +1209,11 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -840,11 +1221,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - ts-node@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.0.0.tgz#e7699d2a110cc8c0d3b831715e417688683460b3" @@ -861,6 +1237,11 @@ tslib@^1.10.0, tslib@^1.11.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== +tslib@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" + integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"