From 90e0d7a938af03d5f4ad35ffb7154190d39241a3 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Tue, 4 Apr 2023 12:49:17 +0200 Subject: [PATCH 01/21] Init Le Front --- .circleci/config.yml | 69 +++++++++++++++++++++ .ssh/id_rsa.pub | 1 + Dockerfiles/Dockerfile.front => Dockerfile | 2 +- devops/.helmignore | 23 +++++++ devops/Chart.yaml | 25 ++++++++ devops/templates/docker-pull-secret.yaml | 19 ++++++ devops/templates/lecoffre-front.yaml | 71 ++++++++++++++++++++++ devops/templates/service-account.yaml | 14 +++++ devops/values.yaml | 44 ++++++++++++++ 9 files changed, 267 insertions(+), 1 deletion(-) create mode 100644 .circleci/config.yml create mode 100644 .ssh/id_rsa.pub rename Dockerfiles/Dockerfile.front => Dockerfile (96%) create mode 100644 devops/.helmignore create mode 100644 devops/Chart.yaml create mode 100644 devops/templates/docker-pull-secret.yaml create mode 100644 devops/templates/lecoffre-front.yaml create mode 100644 devops/templates/service-account.yaml create mode 100644 devops/values.yaml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..42decd6c --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,69 @@ +version: 2.1 + +orbs: + kubernetes: circleci/kubernetes@1.0.0 + helm: circleci/helm@2.0.1 + +jobs: + + build-push-docker-image: + docker: + - image: cimg/base:stable + environment: + TAG: << pipeline.git.tag >> + steps: + - checkout + - add_ssh_keys: + fingerprints: + - "4c:8e:00:16:94:44:d9:ad:e9:e9:2c:8b:02:d4:8d:7a" + - run: cp $HOME/.ssh/id_rsa_4c8e00169444d9ade9e92c8b02d48d7a id_rsa + - setup_remote_docker: + version: 20.10.12 + docker_layer_caching: true + - run: docker login rg.fr-par.scw.cloud/lecoffre -u nologin -p $SCW_SECRET_KEY + - run: docker build --tag rg.fr-par.scw.cloud/lecoffre/front:$TAG . + - run: docker push rg.fr-par.scw.cloud/lecoffre/front:$TAG + + + deploy-docker-image: + docker: + - image: cimg/base:stable + environment: + TAG: << pipeline.git.tag >> + steps: + - checkout + - kubernetes/install-kubeconfig: + kubeconfig: KUBECONFIG_DATA + - helm/install-helm-client + - run: + name: Deploy + command: > + helm upgrade + lecoffre-front devops/ -i -f devops/values.yaml + -n lecoffre + --create-namespace + --set lecoffreFront.image.repository='rg.fr-par.scw.cloud/lecoffre/front' + --set lecoffreFront.image.tag=$TAG + + +workflows: + version: 2 + build-and-register: + jobs: + - build-push-docker-image: + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - deploy-docker-image: + requires: + - build-push-docker-image + context: + - staging + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + diff --git a/.ssh/id_rsa.pub b/.ssh/id_rsa.pub new file mode 100644 index 00000000..e1327d66 --- /dev/null +++ b/.ssh/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDOfOFPvQNw5XguFuX1YNvED8ulP+tIA/5xw7LHcA0gRj3hwILCAEAjuDs+d13zCsnEb0yd+laT3PU9iRIKa28Tynu+sTjGDyfx8MX/HjJtbEzyd6jLn87uTvw/6lzg2y5ZDEa6PEqrPIv0KEhuq6HuU8qAA0nBpsTIAUTK3XR8qm3I6J9Rs1JyBjvIP5UeICApvoLmgHuz6mKdvoQ8qKDWamsL4pSc4Hr7HlQ8ITNhnyS8XMgQInU/I2TzT/I4Dxx5IeFUQ5KOfJJNgK1d+PByLSWUrn+eRXki8m1hjMiwGIehVAriFW1C309SEHxLHjQKUPXHSv4kH7zqjO+p3kY5gwp/lvsBRSnihj8s1lADsJlMqjnSLeIQ+sY2CNkmXXI8ABkzhuJKTGTl+8pzGGhIHzeU7e7lpSn3gLn4p217kIppHNAr6dZH9UaYbgnwVonwr5cLbatRPFyI1NfXKDyZtSYlGQxLQUt9KDrNvVTZzaTt3YwM/YCsRIADAagKosM= gisele-smartchain@MacBook-Pro-6.local diff --git a/Dockerfiles/Dockerfile.front b/Dockerfile similarity index 96% rename from Dockerfiles/Dockerfile.front rename to Dockerfile index 11d63f6c..a6faefe7 100644 --- a/Dockerfiles/Dockerfile.front +++ b/Dockerfile @@ -7,7 +7,7 @@ COPY package.json ./ RUN apk update && apk add openssh-client git -COPY id_rsa /root/.ssh/id_rsa +COPY .ssh/id_rsa /root/.ssh/id_rsa RUN chmod 600 ~/.ssh/id_rsa RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa RUN ssh-keyscan github.com smart-chain-fr/leCoffre-resources.git >> /root/.ssh/known_hosts diff --git a/devops/.helmignore b/devops/.helmignore new file mode 100644 index 00000000..691fa13d --- /dev/null +++ b/devops/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ \ No newline at end of file diff --git a/devops/Chart.yaml b/devops/Chart.yaml new file mode 100644 index 00000000..dbbef2c1 --- /dev/null +++ b/devops/Chart.yaml @@ -0,0 +1,25 @@ +apiVersion: v2 +name: leCoffre-front +description: A Helm chart for Kubernetes + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.0.1 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: 0.0.1 + diff --git a/devops/templates/docker-pull-secret.yaml b/devops/templates/docker-pull-secret.yaml new file mode 100644 index 00000000..9eb72f38 --- /dev/null +++ b/devops/templates/docker-pull-secret.yaml @@ -0,0 +1,19 @@ +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: docker-pull-secret +spec: + refreshInterval: 1h + secretStoreRef: + name: dockerpullsecret-vault-cluster-secret-store + kind: ClusterSecretStore + target: + template: + type: kubernetes.io/dockerconfigjson + name: docker-pull-secret + creationPolicy: Owner + data: + - secretKey: .dockerconfigjson + remoteRef: + key: {{ .Values.dockerPullSecret }} + property: .dockerconfigjson \ No newline at end of file diff --git a/devops/templates/lecoffre-front.yaml b/devops/templates/lecoffre-front.yaml new file mode 100644 index 00000000..5f375de6 --- /dev/null +++ b/devops/templates/lecoffre-front.yaml @@ -0,0 +1,71 @@ +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: lecoffre-front + namespace: {{ .Values.namespace }} +{{if .Values.lecoffreFront.ingress.annotations}} + annotations: +{{toYaml .Values.lecoffreFront.ingress.annotations | indent 4 }} +{{end}} +spec: + tls: + - hosts: {{ .Values.lecoffreFront.ingress.tls.hosts }} + secretName: {{ .Values.lecoffreFront.ingress.tls.secretName }} + rules: + - host: {{ .Values.lecoffreFront.ingress.host }} + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: lecoffre-front-svc + port: + number: 80 +--- +apiVersion: v1 +kind: Service +metadata: + name: lecoffre-front-svc + namespace: {{ .Values.namespace }} + labels: +spec: + ports: + - port: 80 + name: http + targetPort: 3000 + selector: + app: lecoffre-front +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: lecoffre-front + namespace: {{ .Values.namespace }} + labels: + app: lecoffre-front +spec: + replicas: 1 + selector: + matchLabels: + app: lecoffre-front + template: + metadata: + annotations: +{{toYaml .Values.lecoffreFront.vault.annotations | indent 8 }} + labels: + app: lecoffre-front + spec: + serviceAccountName: {{ .Values.lecoffreFront.serviceAccountName }} + imagePullSecrets: + - name: docker-pull-secret + containers: + - name: lecoffre-front + image: "{{ .Values.lecoffreFront.image.repository }}:v{{ .Chart.AppVersion }}" +{{if .Values.lecoffreFront.resources}} + resources: +{{toYaml .Values.lecoffreFront.resources | indent 10}} +{{end}} + imagePullPolicy: {{ .Values.lecoffreFront.image.pullPolicy }} + command: [{{ .Values.lecoffreFront.command }}] \ No newline at end of file diff --git a/devops/templates/service-account.yaml b/devops/templates/service-account.yaml new file mode 100644 index 00000000..161dde69 --- /dev/null +++ b/devops/templates/service-account.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Values.lecoffreFront.serviceAccountName }} + +--- + +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Values.lecoffreFront.serviceAccountName }}-token + annotations: + kubernetes.io/service-account.name: {{ .Values.lecoffreFront.serviceAccountName }} +type: kubernetes.io/service-account-token \ No newline at end of file diff --git a/devops/values.yaml b/devops/values.yaml new file mode 100644 index 00000000..6aaf3082 --- /dev/null +++ b/devops/values.yaml @@ -0,0 +1,44 @@ +dockerPullSecret: secret/data/lecoffrefront-stg/config/dockerpullsecret + +namespace: lecoffre + +lecoffrefront: + serviceAccountName: lecoffre-front-sa + command: "'sh', '-c', '. /vault/secrets/envs && npm run start'" + vault: + role : custom_lecoffre-front_injector_rol + server: https://vault-stg.smart-chain.fr + annotations: + vault.hashicorp.com/agent-pre-populate-only: "true" + vault.hashicorp.com/agent-inject: "true" + vault.hashicorp.com/agent-inject-secret-envs: secret/data/lecoffre-front-stg/config/envs + vault.hashicorp.com/role: custom_lecoffre-front_injector_rol + vault.hashicorp.com/agent-inject-template-envs: | + {{ with secret "secret/data/lecoffre-front-stg/config/envs" }} + {{ range $k, $v := .Data.data }} + export {{ $k }}="{{ $v }}" + {{ end }} + {{ end }} + imagePullSecrets: + - name: docker-pull-secret + image: + pullPolicy: Always + repository: "rg.fr-par.scw.cloud/lecoffre/front" + resources: + requests: + cpu: 200m + memory: 1Gi + limits: + memory: 2Gi + ingress: + host: app.stg.lecoffre.smart-chain.fr + tls: + hosts: + - app.stg.lecoffre.smart-chain.fr + secretName: app-tls + annotations: + kubernetes.io/ingress.class: nginx + cert-manager.io/cluster-issuer: letsencrypt-prod + nginx.ingress.kubernetes.io/from-to-www-redirect: "true" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + From b5d2577e3e0a514e54c4d973a114208130a525a1 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 10:25:56 +0200 Subject: [PATCH 02/21] Init Le Front --- .ssh/id_rsa.pub | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ssh/id_rsa.pub b/.ssh/id_rsa.pub index e1327d66..6df60085 100644 --- a/.ssh/id_rsa.pub +++ b/.ssh/id_rsa.pub @@ -1 +1 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDOfOFPvQNw5XguFuX1YNvED8ulP+tIA/5xw7LHcA0gRj3hwILCAEAjuDs+d13zCsnEb0yd+laT3PU9iRIKa28Tynu+sTjGDyfx8MX/HjJtbEzyd6jLn87uTvw/6lzg2y5ZDEa6PEqrPIv0KEhuq6HuU8qAA0nBpsTIAUTK3XR8qm3I6J9Rs1JyBjvIP5UeICApvoLmgHuz6mKdvoQ8qKDWamsL4pSc4Hr7HlQ8ITNhnyS8XMgQInU/I2TzT/I4Dxx5IeFUQ5KOfJJNgK1d+PByLSWUrn+eRXki8m1hjMiwGIehVAriFW1C309SEHxLHjQKUPXHSv4kH7zqjO+p3kY5gwp/lvsBRSnihj8s1lADsJlMqjnSLeIQ+sY2CNkmXXI8ABkzhuJKTGTl+8pzGGhIHzeU7e7lpSn3gLn4p217kIppHNAr6dZH9UaYbgnwVonwr5cLbatRPFyI1NfXKDyZtSYlGQxLQUt9KDrNvVTZzaTt3YwM/YCsRIADAagKosM= gisele-smartchain@MacBook-Pro-6.local +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDms7EPgOFYP+yoYyd166tZZA8jt19UYCA7WBm0hXQWLa1OrZTAMhFTIGXJUpS0x0JtzQbYcVn17+5viEeUbRLTgiMTypRa0vU+X7ZGsZj33ETbthVUVcjtBMqh0SBVKgBSlf79UbXyBJ9jg8eJCgUU8GOnzrwn8jTEugf4pE0YCB2nqUzQWRCBck2/JhKUDLMgQKFMVjEb1RQ6wIXI2TagaipVNuxHioxkGt6+RouiELba5szgthfgYOxyPis2KOUb+sGzgkXVr0la3O7nwlDYaTExLQLKIhhZU5QkUjlf5vnFLiNrKF1aTQn5OTh4gHjsYe1EftQLPH1i5PCURJO5l85zsLCiFsN8fAPNA3j4eShJooKJVNlf6Oxa5lNw+aRPeIPvoyslibwRufEJIVA3NazVhoSax8n2LJSlGBkSlQHTcE0WhSapabVddNc0M3If6Qdvyf3UODmlX0OQVes9adixmyJRySl20oq5V1uY7KbaBA6k+CrzmlePrtJY0VM= gisele-smartchain@MacBook-Pro-6.local From b48b99a589b3692360ab4dd88b2aff70af78c4ed Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 10:41:10 +0200 Subject: [PATCH 03/21] Init Le Front --- package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package.json b/package.json index 3ce29d6c..181ad805 100644 --- a/package.json +++ b/package.json @@ -31,3 +31,5 @@ "typescript": "4.9.5" } } + + From 517712856fede44318982b8289c7be3ad3f88ff2 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 10:50:47 +0200 Subject: [PATCH 04/21] Init Le Front --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a6faefe7..e815e6a0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ COPY package.json ./ RUN apk update && apk add openssh-client git COPY .ssh/id_rsa /root/.ssh/id_rsa -RUN chmod 600 ~/.ssh/id_rsa +RUN chmod 600 /root/.ssh/id_rsa RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa RUN ssh-keyscan github.com smart-chain-fr/leCoffre-resources.git >> /root/.ssh/known_hosts From d96946c63483d40a22c4f9671bdbe086fadad6db Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 10:57:19 +0200 Subject: [PATCH 05/21] Fix Dockerfile --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index e815e6a0..11d63f6c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,8 @@ COPY package.json ./ RUN apk update && apk add openssh-client git -COPY .ssh/id_rsa /root/.ssh/id_rsa -RUN chmod 600 /root/.ssh/id_rsa +COPY id_rsa /root/.ssh/id_rsa +RUN chmod 600 ~/.ssh/id_rsa RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa RUN ssh-keyscan github.com smart-chain-fr/leCoffre-resources.git >> /root/.ssh/known_hosts From 5d35b127278926a009651c27a8522dc256465249 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 11:20:46 +0200 Subject: [PATCH 06/21] Fix Fingerprint --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 42decd6c..c69bba6d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,8 +15,8 @@ jobs: - checkout - add_ssh_keys: fingerprints: - - "4c:8e:00:16:94:44:d9:ad:e9:e9:2c:8b:02:d4:8d:7a" - - run: cp $HOME/.ssh/id_rsa_4c8e00169444d9ade9e92c8b02d48d7a id_rsa + - "d9:a4:d0:b8:e0:30:1b:a1:0e:83:46:07:ad:f0:b2:ee" + - run: cp $HOME/.ssh/id_rsa_d9a4d0b8e0301ba10e834607adf0b2ee id_rsa - setup_remote_docker: version: 20.10.12 docker_layer_caching: true From 2c44dabb6f91158959d936ea8f1a40b0bb359440 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 11:22:23 +0200 Subject: [PATCH 07/21] Fix dck --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 11d63f6c..a6faefe7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ COPY package.json ./ RUN apk update && apk add openssh-client git -COPY id_rsa /root/.ssh/id_rsa +COPY .ssh/id_rsa /root/.ssh/id_rsa RUN chmod 600 ~/.ssh/id_rsa RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa RUN ssh-keyscan github.com smart-chain-fr/leCoffre-resources.git >> /root/.ssh/known_hosts From 00e45dcfe1bebe27f2481d9fdc0c189eba690c8a Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 11:24:29 +0200 Subject: [PATCH 08/21] Fix dck --- Dockerfile | 2 +- .ssh/id_rsa.pub => id_rsa.pub | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename .ssh/id_rsa.pub => id_rsa.pub (100%) diff --git a/Dockerfile b/Dockerfile index a6faefe7..11d63f6c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ COPY package.json ./ RUN apk update && apk add openssh-client git -COPY .ssh/id_rsa /root/.ssh/id_rsa +COPY id_rsa /root/.ssh/id_rsa RUN chmod 600 ~/.ssh/id_rsa RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa RUN ssh-keyscan github.com smart-chain-fr/leCoffre-resources.git >> /root/.ssh/known_hosts diff --git a/.ssh/id_rsa.pub b/id_rsa.pub similarity index 100% rename from .ssh/id_rsa.pub rename to id_rsa.pub From 14d6b62715c20f87b6c163cf531bcd923e028b15 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 11:27:09 +0200 Subject: [PATCH 09/21] Fix dck --- id_rsa.pub => .ssh/id_rsa.pub | 0 Dockerfile | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename id_rsa.pub => .ssh/id_rsa.pub (100%) diff --git a/id_rsa.pub b/.ssh/id_rsa.pub similarity index 100% rename from id_rsa.pub rename to .ssh/id_rsa.pub diff --git a/Dockerfile b/Dockerfile index 11d63f6c..a6faefe7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ COPY package.json ./ RUN apk update && apk add openssh-client git -COPY id_rsa /root/.ssh/id_rsa +COPY .ssh/id_rsa /root/.ssh/id_rsa RUN chmod 600 ~/.ssh/id_rsa RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa RUN ssh-keyscan github.com smart-chain-fr/leCoffre-resources.git >> /root/.ssh/known_hosts From 5e8b59a8482eb96fe4502dcaaf77ce34406729e7 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 11:29:44 +0200 Subject: [PATCH 10/21] Fix dck --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index a6faefe7..6e7f8dab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,7 @@ COPY package.json ./ RUN apk update && apk add openssh-client git +RUN LS .ssh COPY .ssh/id_rsa /root/.ssh/id_rsa RUN chmod 600 ~/.ssh/id_rsa RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa From f2bd0fde3c16846367931949c91e86b18e7a4186 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 11:30:31 +0200 Subject: [PATCH 11/21] Fix dck --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6e7f8dab..a38e3df7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ COPY package.json ./ RUN apk update && apk add openssh-client git -RUN LS .ssh +RUN ls .ssh COPY .ssh/id_rsa /root/.ssh/id_rsa RUN chmod 600 ~/.ssh/id_rsa RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa From ecc4811cc8ba6599194669d15bc059e3716a96f6 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 11:40:10 +0200 Subject: [PATCH 12/21] Fix dck --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a38e3df7..226c230e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ COPY package.json ./ RUN apk update && apk add openssh-client git -RUN ls .ssh +RUN ls -la COPY .ssh/id_rsa /root/.ssh/id_rsa RUN chmod 600 ~/.ssh/id_rsa RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa From 3cef3b5e49f5eee113db1ead624b59a3bcdc6ddc Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 11:41:26 +0200 Subject: [PATCH 13/21] Fix dck --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 226c230e..18978733 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Install dependencies only when needed FROM node:19-alpine AS deps -WORKDIR leCoffre-front +WORKDIR leCoffre COPY package.json ./ From 698ff4061fa7382e8e007b648ec32835bd9cc861 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 12:00:49 +0200 Subject: [PATCH 14/21] Fix dck --- .circleci/config.yml | 4 ++-- .ssh/id_rsa.pub | 1 - Dockerfile | 5 ++--- 3 files changed, 4 insertions(+), 6 deletions(-) delete mode 100644 .ssh/id_rsa.pub diff --git a/.circleci/config.yml b/.circleci/config.yml index c69bba6d..8cbb2304 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,8 +15,8 @@ jobs: - checkout - add_ssh_keys: fingerprints: - - "d9:a4:d0:b8:e0:30:1b:a1:0e:83:46:07:ad:f0:b2:ee" - - run: cp $HOME/.ssh/id_rsa_d9a4d0b8e0301ba10e834607adf0b2ee id_rsa + - "39:25:57:64:62:43:1f:98:b1:5e:75:53:87:d8:e7:71" + - run: cp $HOME/.ssh/id_rsa_3925576462431f98b15e755387d8e771 id_rsa - setup_remote_docker: version: 20.10.12 docker_layer_caching: true diff --git a/.ssh/id_rsa.pub b/.ssh/id_rsa.pub deleted file mode 100644 index 6df60085..00000000 --- a/.ssh/id_rsa.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDms7EPgOFYP+yoYyd166tZZA8jt19UYCA7WBm0hXQWLa1OrZTAMhFTIGXJUpS0x0JtzQbYcVn17+5viEeUbRLTgiMTypRa0vU+X7ZGsZj33ETbthVUVcjtBMqh0SBVKgBSlf79UbXyBJ9jg8eJCgUU8GOnzrwn8jTEugf4pE0YCB2nqUzQWRCBck2/JhKUDLMgQKFMVjEb1RQ6wIXI2TagaipVNuxHioxkGt6+RouiELba5szgthfgYOxyPis2KOUb+sGzgkXVr0la3O7nwlDYaTExLQLKIhhZU5QkUjlf5vnFLiNrKF1aTQn5OTh4gHjsYe1EftQLPH1i5PCURJO5l85zsLCiFsN8fAPNA3j4eShJooKJVNlf6Oxa5lNw+aRPeIPvoyslibwRufEJIVA3NazVhoSax8n2LJSlGBkSlQHTcE0WhSapabVddNc0M3If6Qdvyf3UODmlX0OQVes9adixmyJRySl20oq5V1uY7KbaBA6k+CrzmlePrtJY0VM= gisele-smartchain@MacBook-Pro-6.local diff --git a/Dockerfile b/Dockerfile index 18978733..11d63f6c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,13 @@ # Install dependencies only when needed FROM node:19-alpine AS deps -WORKDIR leCoffre +WORKDIR leCoffre-front COPY package.json ./ RUN apk update && apk add openssh-client git -RUN ls -la -COPY .ssh/id_rsa /root/.ssh/id_rsa +COPY id_rsa /root/.ssh/id_rsa RUN chmod 600 ~/.ssh/id_rsa RUN eval "$(ssh-agent -s)" && ssh-add /root/.ssh/id_rsa RUN ssh-keyscan github.com smart-chain-fr/leCoffre-resources.git >> /root/.ssh/known_hosts From 41a64f5e98d555b1d826d836fc8b87fd5d8aaaf9 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 13:48:39 +0200 Subject: [PATCH 15/21] Fix Icons --- devops/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devops/Chart.yaml b/devops/Chart.yaml index dbbef2c1..e9a6b889 100644 --- a/devops/Chart.yaml +++ b/devops/Chart.yaml @@ -21,5 +21,5 @@ version: 0.0.1 # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: 0.0.1 +appVersion: 0.1.9 From 246e5c43f68598822c06d732c4923402d579093a Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 13:53:42 +0200 Subject: [PATCH 16/21] Fix Chart values --- devops/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devops/values.yaml b/devops/values.yaml index 6aaf3082..2f1ba7f1 100644 --- a/devops/values.yaml +++ b/devops/values.yaml @@ -2,7 +2,7 @@ dockerPullSecret: secret/data/lecoffrefront-stg/config/dockerpullsecret namespace: lecoffre -lecoffrefront: +lecoffreFront: serviceAccountName: lecoffre-front-sa command: "'sh', '-c', '. /vault/secrets/envs && npm run start'" vault: From 62dc8bd63d60228c44e89217fa90da81f17b962d Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 14:09:55 +0200 Subject: [PATCH 17/21] Fix Svc Account --- devops/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devops/values.yaml b/devops/values.yaml index 2f1ba7f1..c7a9480c 100644 --- a/devops/values.yaml +++ b/devops/values.yaml @@ -1,4 +1,4 @@ -dockerPullSecret: secret/data/lecoffrefront-stg/config/dockerpullsecret +dockerPullSecret: secret/data/lecoffre-front-stg/config/dockerpullsecret namespace: lecoffre @@ -6,7 +6,7 @@ lecoffreFront: serviceAccountName: lecoffre-front-sa command: "'sh', '-c', '. /vault/secrets/envs && npm run start'" vault: - role : custom_lecoffre-front_injector_rol + role : custom_lecoffre-front_injector_rol server: https://vault-stg.smart-chain.fr annotations: vault.hashicorp.com/agent-pre-populate-only: "true" From e5966ad6d2ad4e81bdbe74726f52e441efef7976 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 14:19:10 +0200 Subject: [PATCH 18/21] Fix Svc Account --- devops/templates/docker-pull-secret.yaml | 1 + temp.yaml | 126 +++++++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 temp.yaml diff --git a/devops/templates/docker-pull-secret.yaml b/devops/templates/docker-pull-secret.yaml index 9eb72f38..e4d8fc4a 100644 --- a/devops/templates/docker-pull-secret.yaml +++ b/devops/templates/docker-pull-secret.yaml @@ -2,6 +2,7 @@ apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: name: docker-pull-secret + namespace: lecoffre spec: refreshInterval: 1h secretStoreRef: diff --git a/temp.yaml b/temp.yaml new file mode 100644 index 00000000..6db74af0 --- /dev/null +++ b/temp.yaml @@ -0,0 +1,126 @@ +--- +# Source: leCoffre-front/templates/service-account.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: lecoffre-front-sa +--- +# Source: leCoffre-front/templates/service-account.yaml +apiVersion: v1 +kind: Secret +metadata: + name: lecoffre-front-sa-token + annotations: + kubernetes.io/service-account.name: lecoffre-front-sa +type: kubernetes.io/service-account-token +--- +# Source: leCoffre-front/templates/lecoffre-front.yaml +apiVersion: v1 +kind: Service +metadata: + name: lecoffre-front-svc + namespace: lecoffre + labels: +spec: + ports: + - port: 80 + name: http + targetPort: 3000 + selector: + app: lecoffre-front +--- +# Source: leCoffre-front/templates/lecoffre-front.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: lecoffre-front + namespace: lecoffre + labels: + app: lecoffre-front +spec: + replicas: 1 + selector: + matchLabels: + app: lecoffre-front + template: + metadata: + annotations: + vault.hashicorp.com/agent-inject: "true" + vault.hashicorp.com/agent-inject-secret-envs: secret/data/lecoffre-front-stg/config/envs + vault.hashicorp.com/agent-inject-template-envs: | + {{ with secret "secret/data/lecoffre-front-stg/config/envs" }} + {{ range $k, $v := .Data.data }} + export {{ $k }}="{{ $v }}" + {{ end }} + {{ end }} + vault.hashicorp.com/agent-pre-populate-only: "true" + vault.hashicorp.com/role: custom_lecoffre-front_injector_rol + labels: + app: lecoffre-front + spec: + serviceAccountName: lecoffre-front-sa + imagePullSecrets: + - name: docker-pull-secret + containers: + - name: lecoffre-front + image: "rg.fr-par.scw.cloud/lecoffre/front:v0.1.9" + + resources: + limits: + memory: 2Gi + requests: + cpu: 200m + memory: 1Gi + + imagePullPolicy: Always + command: ['sh', '-c', '. /vault/secrets/envs && npm run start'] +--- +# Source: leCoffre-front/templates/lecoffre-front.yaml +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: lecoffre-front + namespace: lecoffre + + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + nginx.ingress.kubernetes.io/from-to-www-redirect: "true" + +spec: + tls: + - hosts: [app.stg.lecoffre.smart-chain.fr] + secretName: app-tls + rules: + - host: app.stg.lecoffre.smart-chain.fr + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: lecoffre-front-svc + port: + number: 80 +--- +# Source: leCoffre-front/templates/docker-pull-secret.yaml +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: docker-pull-secret +spec: + refreshInterval: 1h + secretStoreRef: + name: dockerpullsecret-vault-cluster-secret-store + kind: ClusterSecretStore + target: + template: + type: kubernetes.io/dockerconfigjson + name: docker-pull-secret + creationPolicy: Owner + data: + - secretKey: .dockerconfigjson + remoteRef: + key: secret/data/lecoffre-front-stg/config/dockerpullsecret + property: .dockerconfigjson From 7386b1aaebb90aa5c3448c39e3cc96769febed5b Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 5 Apr 2023 14:21:33 +0200 Subject: [PATCH 19/21] Remove DCK --- devops/templates/docker-pull-secret.yaml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 devops/templates/docker-pull-secret.yaml diff --git a/devops/templates/docker-pull-secret.yaml b/devops/templates/docker-pull-secret.yaml deleted file mode 100644 index e4d8fc4a..00000000 --- a/devops/templates/docker-pull-secret.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: docker-pull-secret - namespace: lecoffre -spec: - refreshInterval: 1h - secretStoreRef: - name: dockerpullsecret-vault-cluster-secret-store - kind: ClusterSecretStore - target: - template: - type: kubernetes.io/dockerconfigjson - name: docker-pull-secret - creationPolicy: Owner - data: - - secretKey: .dockerconfigjson - remoteRef: - key: {{ .Values.dockerPullSecret }} - property: .dockerconfigjson \ No newline at end of file From d4588db20237a6f953b33482328217898a88364b Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 12 Apr 2023 10:41:57 +0200 Subject: [PATCH 20/21] Deploy Ppd --- .circleci/config.yml | 45 +++++++++++++++++++++++-- devops/ppd.values.yaml | 44 ++++++++++++++++++++++++ devops/{values.yaml => stg.values.yaml} | 0 3 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 devops/ppd.values.yaml rename devops/{values.yaml => stg.values.yaml} (100%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8cbb2304..15d485aa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -26,6 +26,10 @@ jobs: deploy-docker-image: + parameters: + env: + type: string + default: "" docker: - image: cimg/base:stable environment: @@ -39,7 +43,7 @@ jobs: name: Deploy command: > helm upgrade - lecoffre-front devops/ -i -f devops/values.yaml + lecoffre-front devops/ -i -f devops/<>.values.yaml -n lecoffre --create-namespace --set lecoffreFront.image.repository='rg.fr-par.scw.cloud/lecoffre/front' @@ -48,7 +52,7 @@ jobs: workflows: version: 2 - build-and-register: + build-and-deploy-stg: jobs: - build-push-docker-image: filters: @@ -67,3 +71,40 @@ workflows: branches: ignore: /.*/ + build-and-deploy-ppd: + jobs: + - build-push-docker-image: + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + - deploy-docker-image: + requires: + - build-push-docker-image + context: + - production + filters: + tags: + only: /^v.*/ + branches: + ignore: /.*/ + + # build-and-deploy-prod: + # jobs: + # - build-push-docker-image: + # filters: + # tags: + # only: /^v.*/ + # branches: + # ignore: /.*/ + # - deploy-docker-image: + # requires: + # - build-push-docker-image + # context: + # - production + # filters: + # tags: + # only: /^v.*/ + # branches: + # ignore: /.*/ diff --git a/devops/ppd.values.yaml b/devops/ppd.values.yaml new file mode 100644 index 00000000..f29bc50c --- /dev/null +++ b/devops/ppd.values.yaml @@ -0,0 +1,44 @@ +dockerPullSecret: secret/data/lecoffre-front-ppd/config/dockerpullsecret + +namespace: lecoffre + +lecoffreFront: + serviceAccountName: lecoffre-front-sa + command: "'sh', '-c', '. /vault/secrets/envs && npm run start'" + vault: + role : custom_lecoffre-front_injector_rol + server: https://vault-ppd.smart-chain.fr + annotations: + vault.hashicorp.com/agent-pre-populate-only: "true" + vault.hashicorp.com/agent-inject: "true" + vault.hashicorp.com/agent-inject-secret-envs: secret/data/lecoffre-front-ppd/config/envs + vault.hashicorp.com/role: custom_lecoffre-front_injector_rol + vault.hashicorp.com/agent-inject-template-envs: | + {{ with secret "secret/data/lecoffre-front-ppd/config/envs" }} + {{ range $k, $v := .Data.data }} + export {{ $k }}="{{ $v }}" + {{ end }} + {{ end }} + imagePullSecrets: + - name: docker-pull-secret + image: + pullPolicy: Always + repository: "rg.fr-par.scw.cloud/lecoffre/front" + resources: + requests: + cpu: 200m + memory: 1Gi + limits: + memory: 2Gi + ingress: + host: app.ppd.lecoffre.smart-chain.fr + tls: + hosts: + - app.ppd.lecoffre.smart-chain.fr + secretName: app-tls + annotations: + kubernetes.io/ingress.class: nginx + cert-manager.io/cluster-issuer: letsencrypt-prod + nginx.ingress.kubernetes.io/from-to-www-redirect: "true" + nginx.ingress.kubernetes.io/force-ssl-redirect: "true" + diff --git a/devops/values.yaml b/devops/stg.values.yaml similarity index 100% rename from devops/values.yaml rename to devops/stg.values.yaml From 3e88556c67560218abc1d407430e71298e79d502 Mon Sep 17 00:00:00 2001 From: gisele-igore Date: Wed, 12 Apr 2023 10:55:32 +0200 Subject: [PATCH 21/21] Fix config --- .circleci/config.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 15d485aa..19a0d047 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -61,6 +61,7 @@ workflows: branches: ignore: /.*/ - deploy-docker-image: + env: stg requires: - build-push-docker-image context: @@ -80,6 +81,7 @@ workflows: branches: ignore: /.*/ - deploy-docker-image: + env: ppd requires: - build-push-docker-image context: