From 8034758fa8f9446f26e5187e5743755a81007147 Mon Sep 17 00:00:00 2001 From: Mangiang Date: Fri, 29 Oct 2021 00:08:53 -0400 Subject: [PATCH] docs: Synchronize kubernetes and docker pipelines + update documentation --- .drone-docker.yml | 49 ++++++++++++------------ .drone-kubernetes.yml | 10 ----- items/README.md | 3 -- items/docs/Walkthrough.md | 77 +++++++++++++++++++------------------- items/docs/workflow.png | Bin 65426 -> 0 bytes 5 files changed, 61 insertions(+), 78 deletions(-) delete mode 100644 items/docs/workflow.png diff --git a/.drone-docker.yml b/.drone-docker.yml index 657e927..001f83a 100644 --- a/.drone-docker.yml +++ b/.drone-docker.yml @@ -1,5 +1,5 @@ kind: pipeline -type: docker +type: kubernetes name: default concurrency: @@ -11,15 +11,12 @@ environment: trigger: event: - push - - promote + branch: + - master + - main + - development steps: -- name: fetch and update submodules to the latest commit - image: alpine/git - commands: - - git submodule init - - git submodule update --recursive --remote - - name: replace hosts and user variables image: ubuntu:impish environment: @@ -30,9 +27,10 @@ steps: DEPLOYMENT_USER: from_secret: deploy_username commands: - - sed -i 's/{{ SPT_ITEMS_HOSTNAME }}/'"$SPT_ITEMS_HOSTNAME"'/g' ./frontend/.env - - sed -i 's/{{ DEPLOY_HOSTNAME }}/'"$DEPLOY_HOSTNAME"'/g' ./.ansible/inventory - - sed -i 's/{{ DEPLOYMENT_USER }}/'"$DEPLOYMENT_USER"'/g' ./.ansible/inventory + - sed -i 's/{{ SPT_ITEMS_HOSTNAME }}/'"$SPT_ITEMS_HOSTNAME"'/g' ./items/frontend/.env.example + - mv ./items/frontend/.env.example ./items/frontend/.env + - sed -i 's/{{ DEPLOY_HOSTNAME }}/'"$DEPLOY_HOSTNAME"'/g' ./.ansible-items/inventory + - sed -i 's/{{ DEPLOYMENT_USER }}/'"$DEPLOYMENT_USER"'/g' ./.ansible-items/inventory - name: build frontend image: node:lts-alpine3.14 @@ -40,25 +38,25 @@ steps: - node -v - npm -v - yarn --version - - yarn --cwd ./frontend install - - yarn --cwd ./frontend build --pure-lockfile - - rm -rf ./api/public/static/* - - mv ./frontend/build/* ./api/public - - rm ./api/public/index.html + - yarn --cwd ./items/frontend install + - yarn --cwd ./items/frontend build --pure-lockfile + - rm -rf ./items/api/public/static/* + - mv ./items/frontend/build/* ./items/api/public + - rm ./items/api/public/index.html - name: check ansible syntax image: plugins/ansible:3 settings: - playbook: ./.ansible/playbook.yml - inventory: ./.ansible/inventory - galaxy: ./.ansible/requirements.yml + playbook: ./.ansible-items/playbook.yml + inventory: ./.ansible-items/inventory + galaxy: ./.ansible-items/requirements.yml syntax_check: true - name: apply ansible playbook image: plugins/ansible:3 settings: - playbook: ./.ansible/playbook.yml - inventory: ./.ansible/inventory - galaxy: ./.ansible/requirements.yml + playbook: ./.ansible-items/playbook.yml + inventory: ./.ansible-items/inventory + galaxy: ./.ansible-items/requirements.yml private_key: from_secret: deploy_ssh_key environment: @@ -69,7 +67,6 @@ steps: DEPLOYMENT_USER: from_secret: deploy_username when: - event: - - promote - target: - - production \ No newline at end of file + branch: + - master + - main \ No newline at end of file diff --git a/.drone-kubernetes.yml b/.drone-kubernetes.yml index 45ab387..001f83a 100644 --- a/.drone-kubernetes.yml +++ b/.drone-kubernetes.yml @@ -31,11 +31,6 @@ steps: - mv ./items/frontend/.env.example ./items/frontend/.env - sed -i 's/{{ DEPLOY_HOSTNAME }}/'"$DEPLOY_HOSTNAME"'/g' ./.ansible-items/inventory - sed -i 's/{{ DEPLOYMENT_USER }}/'"$DEPLOYMENT_USER"'/g' ./.ansible-items/inventory - when: - branch: - - master - - main - - development - name: build frontend image: node:lts-alpine3.14 @@ -48,11 +43,6 @@ steps: - rm -rf ./items/api/public/static/* - mv ./items/frontend/build/* ./items/api/public - rm ./items/api/public/index.html - when: - branch: - - master - - main - - development - name: check ansible syntax image: plugins/ansible:3 diff --git a/items/README.md b/items/README.md index 229da25..d494390 100644 --- a/items/README.md +++ b/items/README.md @@ -26,9 +26,6 @@ ## The pipeline walkthrough see [Walkthrough.md](./docs/Walkthrough.md) -## The pipeline details -![workflow](./docs/workflow.png) - ## Some enhancement ideas - Store the build so that it is not rebuilt on any `promote` event - Use a volume or a cache for Yarn install \ No newline at end of file diff --git a/items/docs/Walkthrough.md b/items/docs/Walkthrough.md index 7df00d8..ce56bac 100644 --- a/items/docs/Walkthrough.md +++ b/items/docs/Walkthrough.md @@ -58,22 +58,13 @@ Here are the environment variables. They are automatically injected in every ste trigger: event: - push - - promote + branch: + - master + - main + - development ``` -The pipeline is run on every push and every promote. Since the repository is *kind of* a [trunk](https://trunkbaseddevelopment.com), I dont think we need branches policies. Most steps are executed on any push since we want to check that everything builds and is still valid (tests are not added yet). Only the deployment is protected behing the promotion to production. - +The pipeline is run on every push only on branches `master`, `main` and `development`. We want to check that every development on `development` branch is correct and deploy automatically when merged in `master`/`main`. ## Steps -### Fetch and update submodules -```yml -- name: fetch and update submodules to the latest commit - image: alpine/git - commands: - - git submodule init - - git submodule update --recursive --remote -``` -Executed on every push. \ -Fetching and updating [submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) to the latest commit. - ### Replace hosts and user variables ```yml - name: replace hosts and user variables @@ -86,9 +77,10 @@ Fetching and updating [submodules](https://git-scm.com/book/en/v2/Git-Tools-Subm DEPLOYMENT_USER: from_secret: deploy_username commands: - - sed -i 's/{{ SPT_ITEMS_HOSTNAME }}/'"$SPT_ITEMS_HOSTNAME"'/g' ./frontend/.env - - sed -i 's/{{ DEPLOY_HOSTNAME }}/'"$DEPLOY_HOSTNAME"'/g' ./.ansible/inventory - - sed -i 's/{{ DEPLOYMENT_USER }}/'"$DEPLOYMENT_USER"'/g' ./.ansible/inventory + - sed -i 's/{{ SPT_ITEMS_HOSTNAME }}/'"$SPT_ITEMS_HOSTNAME"'/g' ./items/frontend/.env.example + - mv ./items/frontend/.env.example ./items/frontend/.env + - sed -i 's/{{ DEPLOY_HOSTNAME }}/'"$DEPLOY_HOSTNAME"'/g' ./.ansible-items/inventory + - sed -i 's/{{ DEPLOYMENT_USER }}/'"$DEPLOYMENT_USER"'/g' ./.ansible-items/inventory ``` Executed on every push. \ The following environment variables are injected using Drone secrets: @@ -107,11 +99,11 @@ The changes are never pushed and are discarded when the container/pod is termina - node -v - npm -v - yarn --version - - yarn --cwd ./frontend install - - yarn --cwd ./frontend build --pure-lockfile - - rm -rf ./api/public/static/* - - mv ./frontend/build/* ./api/public - - rm ./api/public/index.html + - yarn --cwd ./items/frontend install + - yarn --cwd ./items/frontend build --pure-lockfile + - rm -rf ./items/api/public/static/* + - mv ./items/frontend/build/* ./items/api/public + - rm ./items/api/public/index.html ``` Executed on every push. \ Since the PHP backend serves the ReactJS frontend, the former is built and moved in the latter. @@ -125,9 +117,9 @@ Notes: - name: check ansible syntax image: plugins/ansible:3 settings: - playbook: ./.ansible/playbook.yml - inventory: ./.ansible/inventory - galaxy: ./.ansible/requirements.yml + playbook: ./.ansible-items/playbook.yml + inventory: ./.ansible-items/inventory + galaxy: ./.ansible-items/requirements.yml syntax_check: true ``` Executed on every push. \ @@ -138,9 +130,9 @@ Check the Ansible syntax in [playbook.yml](../.ansible/playbook.yml), [inventory - name: apply ansible playbook image: plugins/ansible:3 settings: - playbook: ./.ansible/playbook.yml - inventory: ./.ansible/inventory - galaxy: ./.ansible/requirements.yml + playbook: ./.ansible-items/playbook.yml + inventory: ./.ansible-items/inventory + galaxy: ./.ansible-items/requirements.yml private_key: from_secret: deploy_ssh_key environment: @@ -151,10 +143,9 @@ Check the Ansible syntax in [playbook.yml](../.ansible/playbook.yml), [inventory DEPLOYMENT_USER: from_secret: deploy_username when: - event: - - promote - target: - - production + branch: + - master + - main ``` Executed only on promotion to production. \ This step actually deploys to the server. \ @@ -168,9 +159,6 @@ The following environment variables are injected using Drone secrets: #### Playbook definition ```yml hosts: host -become_user: root -become: true -become_method: sudo ``` Uses the host defined in [inventory](../.ansible/inventory). Remember, the step [Replace hosts and user variables](#replace-hosts-and-user-variables) already replaced the variables at this point. The playbook will be executed as `root` user using `sudo`. @@ -188,7 +176,7 @@ Since the copy does not override the folder, this step takes care of it. \ ```yml - name: Copy the project copy: - src: ../api/ + src: ../items/api/ dest: "{{ lookup('env', 'SPT_ITEMS_PATH') }}" ``` Copies the whole project (frontend and backend) from the [api](../api) folder into the server. @@ -245,9 +233,9 @@ Uses [Jinja2](https://jinja2docs.readthedocs.io/en/stable/) to resolve the [temp - name: Reset files permissions file: path: "{{ lookup('env', 'SPT_ITEMS_PATH') }}" - owner: www-data + owner: "{{ lookup('env', 'DEPLOYMENT_USER') }}" group: www-data - mode: 0744 + mode: 0774 recurse: yes ``` Permissions 0644: @@ -255,4 +243,15 @@ Permissions 0644: * group: read * other: read `www-data` is hardcoded here but it should be the standard user for Apache and Nginx. \ -`SPT_ITEMS_PATH` is injected thanks to the pipeline level environment variables (see [Environment variables](#environment-variables)). \ No newline at end of file +`SPT_ITEMS_PATH` is injected thanks to the pipeline level environment variables (see [Environment variables](#environment-variables)). + +#### Initialize database +```yml +- name: Initialize database + uri: + url: "https://{{ lookup('env', 'SPT_ITEMS_HOSTNAME') }}/api/refresh" + method: GET + status_code: [200, 204] + timeout: 60 +``` +The call to `/api/refresh` fetches the data from AKI Server repository, `development` branch. \ No newline at end of file diff --git a/items/docs/workflow.png b/items/docs/workflow.png deleted file mode 100644 index 9600c549edd37c8afbdded55962a98d59472de88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65426 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 z 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