Ponieważ moje obecne środowisko dev
jest zablokowane jeszcze kilka dni (database credential nie może być utworzony przez stack, bo już istnieje "pending deletion"),
klonuję nowe środowisko ndev
. Jednocześnie ponieważ gałęzie w git-cie są tanie, wolę mieć nową gałąź ndevelopment
przechowującą pliki dla tego środowiska
zamiast trzymać je razem z obecnym środowiskiem.
W repozytorium z infrastrukturą odpalam
git checkout development
git checkout -b ndevelopment
git push -u origin ndevelopment
Skrypt klonujący z obecnymi parametrami utworzy mi środowisko o nazwie ndev
git checkout -b feature/ndev-env-clone
bash memes-generator/cicd/scripts/clone-environment.sh
find . -type f -name "*-dev.json" -exec rm -f {} \;
git add .
git commit -m "Env: environment clone dev -> ndev"
git push origin feature/ndev-env-clone
W efekcie dostaję czystą gałąź tylko z parametrami dla środowiska ndev
Tworzę Pull Request z powyższej feature-branch na przygotowaną gałąź z nowym środowiskiem. (Ponieważ CLI jest bliższe mojemu ❤️)
aws codecommit create-pull-request \
--title "NDev - environment" \
--targets repositoryName=memes-generator-shared-cicd-infra,sourceReference=feature/ndev-env-clone,destinationReference=ndevelopment \
--region eu-west-1
W parametrach szablonu create-pipeline
zmieniam nazwę gałęzi (ndevelopment
) oraz target stage (ndev
).
index 0789a4a..abfcc32 100644
--- a/memes-generator/cicd/parameters/create-resources-pipeline-target-dev-shared-dev.json
+++ b/memes-generator/cicd/parameters/create-resources-pipeline-target-dev-shared-dev.json
@@ -17,7 +17,7 @@
},
{
"ParameterKey": "BranchName",
- "ParameterValue": "development"
+ "ParameterValue": "ndevelopment"
},
{
"ParameterKey": "CodePipelineRoleName",
{
"ParameterKey": "ReviewChangeSets",
@@ -57,7 +57,7 @@
},
{
"ParameterKey": "TargetStage",
- "ParameterValue": "dev"
+ "ParameterValue": "ndev"
},
Wdrażam szablon pipeline. Po wdrożeniu szblon zostaje uruchomiony i buduje środowisko 👍
ALB_URL=$(aws ssm get-parameter --region eu-west-1 \
--name /memes-generator/ndev/network/alb/url \
--query 'Parameter.Value' --output text)
http ${ALB_URL}/actuator/health
HTTP/1.1 200
Connection: keep-alive
Content-Type: application/vnd.spring-boot.actuator.v3+json
Date: Sun, 01 Aug 2021 11:54:28 GMT
Transfer-Encoding: chunked
{
"status": "UP"
}
Zgodnie z wymaganiami przygotowuję nową gałąź feature/monitoring
wywodzącą się z ndevelopment
. Przygotowuję parametry dla środowiska ndev
dla nowych zasobów.
Czas na pierwszy commit.
- Role do pracy na kontach ↪️
memes-generator/operations/commands/deploy-roles.sh
- Grupy ↪️
memes-generator/operations/commands/deploy-groups.sh
Zmiany w plikach parametrów - commit - Roles & Group
Wdrożenie stack-a i commit do gałęzi.
Wdrożenie stack-a i commit do gałęzi.
Wdrożenie stack-a i commit do gałęzi.
Ponieważ zmiany do monitoringu obejmują nie tylko nowe zasoby ale modyfikacje już istniejących plan wdrożenia jest następujący.
- Dodaję resztę szablonów zasobów. Są to alerts i dashboard ale również zmiany w database,
- Modyfikuję pipeline dodając nowy stage
Monitoring
wdrażający ww. alerts & dashboard, - Tworzę i scalam PR do gałęzi
ndevelopment
, która zawiera obecnie stworzone środowisko - Wdrażam nową wersję pipeline
- Uruchamiam pipeline ponownie
Commit-y tworzone zgodnie z zaleceniem