From c540da0ec983cf512eb068ea2831f3cb38e7f849 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 15:13:40 +0900 Subject: [PATCH 01/19] =?UTF-8?q?feat(k8s/):=20release/dev=20=EB=B6=84?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k8s/{ => release}/deployment.yaml | 0 k8s/{ => release}/ingress.yaml | 0 k8s/{ => release}/service.yaml | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename k8s/{ => release}/deployment.yaml (100%) rename k8s/{ => release}/ingress.yaml (100%) rename k8s/{ => release}/service.yaml (100%) diff --git a/k8s/deployment.yaml b/k8s/release/deployment.yaml similarity index 100% rename from k8s/deployment.yaml rename to k8s/release/deployment.yaml diff --git a/k8s/ingress.yaml b/k8s/release/ingress.yaml similarity index 100% rename from k8s/ingress.yaml rename to k8s/release/ingress.yaml diff --git a/k8s/service.yaml b/k8s/release/service.yaml similarity index 100% rename from k8s/service.yaml rename to k8s/release/service.yaml From 9ea10534b4ea795993cfc8f9135317e64ad88706 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 15:13:51 +0900 Subject: [PATCH 02/19] =?UTF-8?q?feat(build-push.yml):=20argoCD=20GitOps?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EB=B6=84=EB=A6=AC=20=EC=9E=91?= =?UTF-8?q?=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/build-push.yml | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/build-push.yml diff --git a/.github/build-push.yml b/.github/build-push.yml new file mode 100644 index 0000000..0831273 --- /dev/null +++ b/.github/build-push.yml @@ -0,0 +1,48 @@ +name: Build and Deploy to Docker Hub + +on: + push: + branches: [ "deploy" ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: '17' + distribution: 'temurin' + + - name: Build with Gradle + run: ./gradlew build --daemon --parallel + + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + + - name: Build and Push Docker Image + run: | + docker buildx create --use + docker buildx build --platform linux/arm64,linux/amd64 -t yeseulhong/grass-diary:${{ github.sha }} --push . + + - name: Update Kubernetes Manifests # refs/heads/deploy -> refs/heads/release 추후 변경 + run: | + if [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then + sed -i 's/your-image-tag/${{ github.sha }}/g' k8s/dev/deployment.yaml + elif [[ "${{ github.ref }}" == "refs/heads/deploy" ]]; then + sed -i 's/your-image-tag/${{ github.sha }}/g' k8s/release/deployment.yaml + fi + + - name: Commit and Push Updated Manifests + run: | + git config --global user.email "hn06038@gmail.com" + git config --global user.name "jjaegii" + git add . + git commit -m "Update deployment with image tag ${{ github.sha }} for ${{ github.ref }}" + git push origin ${{ github.ref }} From 8b5bec599a80cec7696048b07fcbe0ac5a7ab9b8 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 15:14:38 +0900 Subject: [PATCH 03/19] =?UTF-8?q?feat(build-push.yml):=20argoCD=20GitOps?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EB=B6=84=EB=A6=AC=20=EC=9E=91?= =?UTF-8?q?=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-push-deploy.yml | 98 ------------------------- .github/{ => workflows}/build-push.yml | 0 2 files changed, 98 deletions(-) delete mode 100644 .github/workflows/build-push-deploy.yml rename .github/{ => workflows}/build-push.yml (100%) diff --git a/.github/workflows/build-push-deploy.yml b/.github/workflows/build-push-deploy.yml deleted file mode 100644 index 723658f..0000000 --- a/.github/workflows/build-push-deploy.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: Build Gradle And Deploy to K8S - -on: - push: - branches: [ "release" ] - -jobs: - jar-build: - runs-on: ubuntu-latest - permissions: - contents: read - - steps: - - uses: actions/checkout@v4 - - name: Set up JDK 17 - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - name: Setup Gradle - uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 - - name: Build with Gradle Wrapper - run: ./gradlew build --daemon --parallel - - name: Upload Jar - uses: actions/upload-artifact@v3 - with: - name: grassdiary-jar - path: build/libs/grassdiary-0.0.1-SNAPSHOT.jar - - docker-build: - needs: jar-build - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - name: Download Jar - uses: actions/download-artifact@v3 - with: - name: grassdiary-jar - path: build/libs - - name: Login to Docker Hub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - - name: Docker build and push - run: | - docker buildx create --use - docker buildx build --platform linux/arm64,linux/amd64 -t yeseulhong/grass-diary:${{ github.sha }} --push . - echo "::set-output name=image_tag::${{ github.sha }}" - - update-secrets: - needs: docker-build - runs-on: ubuntu-latest - steps: - - name: Setup SSH key - run: | - echo "${{ secrets.K8S_PRIVATE_KEY }}" > private_key.pem - chmod 600 private_key.pem - - - name: Update Kubernetes Secrets - run: | - ssh -i private_key.pem -o StrictHostKeyChecking=no ${{ secrets.K8S_USER }}@${{ secrets.K8S_HOST }} " - kubectl create secret generic google-secrets --from-literal=GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }} --from-literal=GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }} --dry-run=client -o yaml | kubectl apply -f - - kubectl create secret generic jwt-secrets --from-literal=JWT_ACCESS_SECRET_KEY=${{ secrets.JWT_ACCESS_SECRET_KEY }} --from-literal=JWT_REFRESH_SECRET_KEY=${{ secrets.JWT_REFRESH_SECRET_KEY }} --dry-run=client -o yaml | kubectl apply -f - - kubectl create secret generic db-secrets --from-literal=DB_SERVER_URL=${{ secrets.DB_SERVER_URL }} --from-literal=DB_USER_ID=${{ secrets.DB_USER_ID }} --from-literal=DB_USER_PW=${{ secrets.DB_USER_PW }} --dry-run=client -o yaml | kubectl apply -f - - kubectl create secret generic s3-secrets --from-literal=S3_ACCESS_PUBLIC_KEY=${{ secrets.S3_ACCESS_PUBLIC_KEY }} --from-literal=S3_ACCESS_SECRET_KEY=${{ secrets.S3_ACCESS_SECRET_KEY }} --from-literal=S3_BUCKET_NAME=${{ secrets.S3_BUCKET_NAME }} --dry-run=client -o yaml | kubectl apply -f - - " - - deployK8S: - needs: update-secrets - runs-on: ubuntu-latest - env: - K8S_USER: ${{ secrets.K8S_USER }} - K8S_PRIVATE_KEY: ${{ secrets.K8S_PRIVATE_KEY }} - K8S_HOST: ${{ secrets.K8S_HOST }} - - steps: - - uses: actions/checkout@v2 - - name: Setup SSH key - run: | - echo "${K8S_PRIVATE_KEY}" > private_key.pem - chmod 600 private_key.pem - - - name: Copy Kubernetes Manifests - run: | - sed -i 's/\${IMAGE_TAG}/'"${{ github.sha }}"'/g' k8s/deployment.yaml - scp -i private_key.pem -o StrictHostKeyChecking=no k8s/deployment.yaml k8s/service.yaml k8s/ingress.yaml ${K8S_USER}@${K8S_HOST}:~/ - - - name: Deploy to K8s - run: | - ssh -i private_key.pem -o StrictHostKeyChecking=no ${K8S_USER}@${K8S_HOST} " - kubectl apply -f ~/deployment.yaml - kubectl apply -f ~/service.yaml - kubectl apply -f ~/ingress.yaml - " diff --git a/.github/build-push.yml b/.github/workflows/build-push.yml similarity index 100% rename from .github/build-push.yml rename to .github/workflows/build-push.yml From 4f50dfdf8734476d08822330474dafa68c5630e9 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 15:21:04 +0900 Subject: [PATCH 04/19] =?UTF-8?q?fix(build-push.yml):=20sed=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index 0831273..5c1675a 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -34,9 +34,9 @@ jobs: - name: Update Kubernetes Manifests # refs/heads/deploy -> refs/heads/release 추후 변경 run: | if [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then - sed -i 's/your-image-tag/${{ github.sha }}/g' k8s/dev/deployment.yaml + sed -i 's/\${IMAGE_TAG}/'"${{ github.sha }}"'/g' k8s/dev/deployment.yaml elif [[ "${{ github.ref }}" == "refs/heads/deploy" ]]; then - sed -i 's/your-image-tag/${{ github.sha }}/g' k8s/release/deployment.yaml + sed -i 's/\${IMAGE_TAG}/'"${{ github.sha }}"'/g' k8s/release/deployment.yaml fi - name: Commit and Push Updated Manifests From 759967aaf60d9122cc65d9791bc1535905d8f881 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 15:25:55 +0900 Subject: [PATCH 05/19] =?UTF-8?q?fix(build-push.yml):=20push=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-push.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index 5c1675a..f4f3317 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -40,9 +40,11 @@ jobs: fi - name: Commit and Push Updated Manifests + env: + GH_PAT: ${{ secrets.DEPLOY_BOT_TOKEN }} run: | git config --global user.email "hn06038@gmail.com" git config --global user.name "jjaegii" git add . git commit -m "Update deployment with image tag ${{ github.sha }} for ${{ github.ref }}" - git push origin ${{ github.ref }} + git push https://$DEPLOY_BOT_TOKEN@github.com/CHZZK-Study/Grass-Diary-Server.git ${{ github.ref }} From b17c3d259620365d1364de3dba23918ea8798f28 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 15:29:42 +0900 Subject: [PATCH 06/19] =?UTF-8?q?fix(build-push.yml):=20push=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index f4f3317..de67649 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -41,10 +41,10 @@ jobs: - name: Commit and Push Updated Manifests env: - GH_PAT: ${{ secrets.DEPLOY_BOT_TOKEN }} + GH_PAT: ${{ secrets.GH_PAT }} run: | git config --global user.email "hn06038@gmail.com" git config --global user.name "jjaegii" git add . git commit -m "Update deployment with image tag ${{ github.sha }} for ${{ github.ref }}" - git push https://$DEPLOY_BOT_TOKEN@github.com/CHZZK-Study/Grass-Diary-Server.git ${{ github.ref }} + git push https://$GH_PAT@github.com/CHZZK-Study/Grass-Diary-Server.git ${{ github.ref }} \ No newline at end of file From d31e132d1c70b700add7e07b114d334b02268d7c Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 15:33:45 +0900 Subject: [PATCH 07/19] =?UTF-8?q?fix(build-push.yml):=20push=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-push.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index de67649..abd7346 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -41,10 +41,10 @@ jobs: - name: Commit and Push Updated Manifests env: - GH_PAT: ${{ secrets.GH_PAT }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - git config --global user.email "hn06038@gmail.com" - git config --global user.name "jjaegii" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git config --global user.name "github-actions[bot]" git add . git commit -m "Update deployment with image tag ${{ github.sha }} for ${{ github.ref }}" - git push https://$GH_PAT@github.com/CHZZK-Study/Grass-Diary-Server.git ${{ github.ref }} \ No newline at end of file + git push \ No newline at end of file From 557a10d9b57aea276612bd95f1891e2960c1c3f2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 13 Sep 2024 06:39:41 +0000 Subject: [PATCH 08/19] Update deployment with image tag d31e132d1c70b700add7e07b114d334b02268d7c for refs/heads/deploy --- k8s/release/deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/release/deployment.yaml b/k8s/release/deployment.yaml index 41434c5..4d7074c 100644 --- a/k8s/release/deployment.yaml +++ b/k8s/release/deployment.yaml @@ -14,7 +14,7 @@ spec: spec: containers: - name: spring-boot-app - image: yeseulhong/grass-diary:${IMAGE_TAG} + image: yeseulhong/grass-diary:d31e132d1c70b700add7e07b114d334b02268d7c ports: - containerPort: 8080 env: From 53f48e550f645dbc4dfa1173ba0e1ab500e7b546 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 15:48:45 +0900 Subject: [PATCH 09/19] =?UTF-8?q?fix(k8s/deployment.yaml):=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20=ED=83=9C=EA=B7=B8=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k8s/release/deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/release/deployment.yaml b/k8s/release/deployment.yaml index 41434c5..7b377db 100644 --- a/k8s/release/deployment.yaml +++ b/k8s/release/deployment.yaml @@ -14,7 +14,7 @@ spec: spec: containers: - name: spring-boot-app - image: yeseulhong/grass-diary:${IMAGE_TAG} + image: yeseulhong/grass-diary-release:latest ports: - containerPort: 8080 env: From 89dc9880988aecd74cee3fbeee5ed7b316043c05 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 15:50:14 +0900 Subject: [PATCH 10/19] =?UTF-8?q?delete(build-push.yml):=20github=20manife?= =?UTF-8?q?st=EC=97=90=20push=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-push.yml | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index abd7346..e7fd07f 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -26,25 +26,15 @@ jobs: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_PASSWORD }} - - name: Build and Push Docker Image - run: | - docker buildx create --use - docker buildx build --platform linux/arm64,linux/amd64 -t yeseulhong/grass-diary:${{ github.sha }} --push . - - - name: Update Kubernetes Manifests # refs/heads/deploy -> refs/heads/release 추후 변경 + - name: Set Docker repository run: | - if [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then - sed -i 's/\${IMAGE_TAG}/'"${{ github.sha }}"'/g' k8s/dev/deployment.yaml - elif [[ "${{ github.ref }}" == "refs/heads/deploy" ]]; then - sed -i 's/\${IMAGE_TAG}/'"${{ github.sha }}"'/g' k8s/release/deployment.yaml + if [[ "${{ github.ref }}" == "refs/heads/deploy" ]]; then + echo "DOCKER_REPO=yeseulhong/grass-diary-release" >> $GITHUB_ENV + elif [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then + echo "DOCKER_REPO=yeseulhong/grass-diary-dev" >> $GITHUB_ENV fi - - name: Commit and Push Updated Manifests - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Build and Push Docker Image run: | - git config --global user.email "github-actions[bot]@users.noreply.github.com" - git config --global user.name "github-actions[bot]" - git add . - git commit -m "Update deployment with image tag ${{ github.sha }} for ${{ github.ref }}" - git push \ No newline at end of file + docker buildx create --use + docker buildx build --platform linux/arm64,linux/amd64 -t ${{ env.DOCKER_REPO }}:latest --push . From 9f00d5dce8937e01a3ad3ca134a9cf6f22969157 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 16:03:28 +0900 Subject: [PATCH 11/19] =?UTF-8?q?feat(k8s/):=20release=20=EB=84=A4?= =?UTF-8?q?=EC=9E=84=EC=8A=A4=ED=8E=98=EC=9D=B4=EC=8A=A4=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k8s/release/deployment.yaml | 1 + k8s/release/ingress.yaml | 1 + k8s/release/service.yaml | 1 + 3 files changed, 3 insertions(+) diff --git a/k8s/release/deployment.yaml b/k8s/release/deployment.yaml index 7b377db..5f478a6 100644 --- a/k8s/release/deployment.yaml +++ b/k8s/release/deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: spring-boot-app + namespace: grass-diary-release spec: replicas: 1 selector: diff --git a/k8s/release/ingress.yaml b/k8s/release/ingress.yaml index 9f03df4..eaa75d2 100644 --- a/k8s/release/ingress.yaml +++ b/k8s/release/ingress.yaml @@ -2,6 +2,7 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: spring-boot-app-ingress + namespace: grass-diary-release annotations: nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/ssl-redirect: "true" diff --git a/k8s/release/service.yaml b/k8s/release/service.yaml index d3677e0..bcc0ea8 100644 --- a/k8s/release/service.yaml +++ b/k8s/release/service.yaml @@ -2,6 +2,7 @@ apiVersion: v1 kind: Service metadata: name: spring-boot-app-svc + namespace: grass-diary-release spec: selector: app: spring-boot-app From 1d05c73d3fe6e690a1ccb9cdc2cfcf61644c5627 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 20:11:32 +0900 Subject: [PATCH 12/19] =?UTF-8?q?feat(k8s/release):=20namespace=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k8s/release/deployment.yaml | 2 +- k8s/release/ingress.yaml | 2 +- k8s/release/service.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/k8s/release/deployment.yaml b/k8s/release/deployment.yaml index 5f478a6..0bdd3b6 100644 --- a/k8s/release/deployment.yaml +++ b/k8s/release/deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: spring-boot-app - namespace: grass-diary-release + namespace: grass-diary-backend-release spec: replicas: 1 selector: diff --git a/k8s/release/ingress.yaml b/k8s/release/ingress.yaml index eaa75d2..e0c0c95 100644 --- a/k8s/release/ingress.yaml +++ b/k8s/release/ingress.yaml @@ -2,7 +2,7 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: spring-boot-app-ingress - namespace: grass-diary-release + namespace: grass-diary-backend-release annotations: nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/ssl-redirect: "true" diff --git a/k8s/release/service.yaml b/k8s/release/service.yaml index bcc0ea8..4a5f8bc 100644 --- a/k8s/release/service.yaml +++ b/k8s/release/service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: name: spring-boot-app-svc - namespace: grass-diary-release + namespace: grass-diary-backend-release spec: selector: app: spring-boot-app From 6042d53bda7b4a91abb8c69ad61b14132e4acdfb Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 21:04:12 +0900 Subject: [PATCH 13/19] =?UTF-8?q?feat(k8s/release):=20replicaset=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k8s/release/deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/release/deployment.yaml b/k8s/release/deployment.yaml index 0bdd3b6..eca4b82 100644 --- a/k8s/release/deployment.yaml +++ b/k8s/release/deployment.yaml @@ -4,7 +4,7 @@ metadata: name: spring-boot-app namespace: grass-diary-backend-release spec: - replicas: 1 + replicas: 2 selector: matchLabels: app: spring-boot-app From 6a80bd99f6bd355af59d2fcd955e3606724b5c7e Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 22:14:12 +0900 Subject: [PATCH 14/19] =?UTF-8?q?feat(k8s/release):=20ingress=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k8s/release/ingress.yaml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/k8s/release/ingress.yaml b/k8s/release/ingress.yaml index e0c0c95..c3b4a27 100644 --- a/k8s/release/ingress.yaml +++ b/k8s/release/ingress.yaml @@ -1,19 +1,18 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - name: spring-boot-app-ingress + name: release-ingress namespace: grass-diary-backend-release annotations: - nginx.ingress.kubernetes.io/rewrite-target: / - nginx.ingress.kubernetes.io/ssl-redirect: "true" + kubernetes.io/ingress.class: nginx + cert-manager.io/cluster-issuer: "letsencrypt-prod" spec: - ingressClassName: nginx tls: - hosts: - - chzzk-diary-server.shop - secretName: chzzk-diary-server-tls + - release.chzzk-diary-server.shop + secretName: release-tls-secret rules: - - host: chzzk-diary-server.shop + - host: release.chzzk-diary-server.shop http: paths: - path: / From 0a6c4b8396a8cd143243ce7b36b1e6181b419826 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 22:28:48 +0900 Subject: [PATCH 15/19] =?UTF-8?q?feat(k8s/release):=20ingress=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k8s/release/ingress.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/k8s/release/ingress.yaml b/k8s/release/ingress.yaml index c3b4a27..f4ed429 100644 --- a/k8s/release/ingress.yaml +++ b/k8s/release/ingress.yaml @@ -5,7 +5,6 @@ metadata: namespace: grass-diary-backend-release annotations: kubernetes.io/ingress.class: nginx - cert-manager.io/cluster-issuer: "letsencrypt-prod" spec: tls: - hosts: @@ -20,5 +19,5 @@ spec: backend: service: name: spring-boot-app-svc - port: + port: number: 80 From f4e7f0ca8d6c64ccab3885f74c6c3afbf9bb5f72 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 23:10:41 +0900 Subject: [PATCH 16/19] =?UTF-8?q?feat(build-push.yml):=20argoCD=20GitOps?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EB=B6=84=EB=A6=AC=20=EC=9E=91?= =?UTF-8?q?=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-push.yml | 6 +-- k8s/dev/deployment.yaml | 72 ++++++++++++++++++++++++++++++++ k8s/dev/ingress.yaml | 23 ++++++++++ k8s/dev/service.yaml | 13 ++++++ 4 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 k8s/dev/deployment.yaml create mode 100644 k8s/dev/ingress.yaml create mode 100644 k8s/dev/service.yaml diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index e7fd07f..9ed8475 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -2,7 +2,7 @@ name: Build and Deploy to Docker Hub on: push: - branches: [ "deploy" ] + branches: [ "release", "dev", "deploy" ] jobs: build: @@ -28,9 +28,9 @@ jobs: - name: Set Docker repository run: | - if [[ "${{ github.ref }}" == "refs/heads/deploy" ]]; then + if [[ "${{ github.ref }}" == "refs/heads/release" ]]; then echo "DOCKER_REPO=yeseulhong/grass-diary-release" >> $GITHUB_ENV - elif [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then + elif [[ "${{ github.ref }}" == "refs/heads/deploy" ]]; then echo "DOCKER_REPO=yeseulhong/grass-diary-dev" >> $GITHUB_ENV fi diff --git a/k8s/dev/deployment.yaml b/k8s/dev/deployment.yaml new file mode 100644 index 0000000..eca4b82 --- /dev/null +++ b/k8s/dev/deployment.yaml @@ -0,0 +1,72 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: spring-boot-app + namespace: grass-diary-backend-release +spec: + replicas: 2 + selector: + matchLabels: + app: spring-boot-app + template: + metadata: + labels: + app: spring-boot-app + spec: + containers: + - name: spring-boot-app + image: yeseulhong/grass-diary-release:latest + ports: + - containerPort: 8080 + env: + - name: GOOGLE_CLIENT_ID + valueFrom: + secretKeyRef: + name: google-secrets + key: GOOGLE_CLIENT_ID + - name: GOOGLE_CLIENT_SECRET + valueFrom: + secretKeyRef: + name: google-secrets + key: GOOGLE_CLIENT_SECRET + - name: JWT_ACCESS_SECRET_KEY + valueFrom: + secretKeyRef: + name: jwt-secrets + key: JWT_ACCESS_SECRET_KEY + - name: JWT_REFRESH_SECRET_KEY + valueFrom: + secretKeyRef: + name: jwt-secrets + key: JWT_REFRESH_SECRET_KEY + - name: DB_SERVER_URL + valueFrom: + secretKeyRef: + name: db-secrets + key: DB_SERVER_URL + - name: DB_USER_ID + valueFrom: + secretKeyRef: + name: db-secrets + key: DB_USER_ID + - name: DB_USER_PW + valueFrom: + secretKeyRef: + name: db-secrets + key: DB_USER_PW + - name: S3_ACCESS_PUBLIC_KEY + valueFrom: + secretKeyRef: + name: s3-secrets + key: S3_ACCESS_PUBLIC_KEY + - name: S3_ACCESS_SECRET_KEY + valueFrom: + secretKeyRef: + name: s3-secrets + key: S3_ACCESS_SECRET_KEY + - name: S3_BUCKET_NAME + valueFrom: + secretKeyRef: + name: s3-secrets + key: S3_BUCKET_NAME + diff --git a/k8s/dev/ingress.yaml b/k8s/dev/ingress.yaml new file mode 100644 index 0000000..f4ed429 --- /dev/null +++ b/k8s/dev/ingress.yaml @@ -0,0 +1,23 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: release-ingress + namespace: grass-diary-backend-release + annotations: + kubernetes.io/ingress.class: nginx +spec: + tls: + - hosts: + - release.chzzk-diary-server.shop + secretName: release-tls-secret + rules: + - host: release.chzzk-diary-server.shop + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: spring-boot-app-svc + port: + number: 80 diff --git a/k8s/dev/service.yaml b/k8s/dev/service.yaml new file mode 100644 index 0000000..70e2054 --- /dev/null +++ b/k8s/dev/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: spring-boot-app-svc + namespace: grass-diary-backend-dev +spec: + selector: + app: spring-boot-app + ports: + - protocol: TCP + port: 80 + targetPort: 8080 + From b81b75737129f142117096c84ef7236f93c977b3 Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 23:16:32 +0900 Subject: [PATCH 17/19] =?UTF-8?q?feat(k8s/dev):=20dev=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- k8s/dev/deployment.yaml | 2 +- k8s/dev/ingress.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/k8s/dev/deployment.yaml b/k8s/dev/deployment.yaml index eca4b82..f5aceea 100644 --- a/k8s/dev/deployment.yaml +++ b/k8s/dev/deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: spring-boot-app - namespace: grass-diary-backend-release + namespace: grass-diary-backend-dev spec: replicas: 2 selector: diff --git a/k8s/dev/ingress.yaml b/k8s/dev/ingress.yaml index f4ed429..e873dca 100644 --- a/k8s/dev/ingress.yaml +++ b/k8s/dev/ingress.yaml @@ -1,17 +1,17 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - name: release-ingress - namespace: grass-diary-backend-release + name: dev-ingress + namespace: grass-diary-backend-dev annotations: kubernetes.io/ingress.class: nginx spec: tls: - hosts: - - release.chzzk-diary-server.shop - secretName: release-tls-secret + - dev.chzzk-diary-server.shop + secretName: dev-tls-secret rules: - - host: release.chzzk-diary-server.shop + - host: dev.chzzk-diary-server.shop http: paths: - path: / From 80384ab9a8074b6c872f0d7a20477726db7031ae Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 23:42:13 +0900 Subject: [PATCH 18/19] =?UTF-8?q?fix(src/main/resources/application.proper?= =?UTF-8?q?ties):=20redirect-uri=20=EA=B2=BD=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 73f1503..454a31e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -13,7 +13,7 @@ spring.jpa.properties.hibernate.show_sql=true spring.jpa.show-sql=true oauth2.client.registration.google.client-id=${GOOGLE_CLIENT_ID} oauth2.client.registration.google.client-secret=${GOOGLE_CLIENT_SECRET} -oauth2.client.registration.google.redirect-uri=http://localhost:8080/api/auth/code/google +oauth2.client.registration.google.redirect-uri=https://release.chzzk-diary-server.shop/api/auth/code/google oauth2.client.registration.google.authorization-grant-type=code oauth2.client.registration.google.scope=profile email oauth2.client.provider.google.authorization-uri=https://accounts.google.com/o/oauth2/v2/auth From 1eeaddd6f7d74eae28cb8e43f5c49069a61d021b Mon Sep 17 00:00:00 2001 From: jjaegii Date: Fri, 13 Sep 2024 23:49:56 +0900 Subject: [PATCH 19/19] =?UTF-8?q?feat(build-push.yml):=20argoCD=20GitOps?= =?UTF-8?q?=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EB=B6=84=EB=A6=AC=20=EC=9E=91?= =?UTF-8?q?=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build-push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index 9ed8475..a19208d 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -2,7 +2,7 @@ name: Build and Deploy to Docker Hub on: push: - branches: [ "release", "dev", "deploy" ] + branches: [ "release", "dev" ] jobs: build: @@ -30,7 +30,7 @@ jobs: run: | if [[ "${{ github.ref }}" == "refs/heads/release" ]]; then echo "DOCKER_REPO=yeseulhong/grass-diary-release" >> $GITHUB_ENV - elif [[ "${{ github.ref }}" == "refs/heads/deploy" ]]; then + elif [[ "${{ github.ref }}" == "refs/heads/dev" ]]; then echo "DOCKER_REPO=yeseulhong/grass-diary-dev" >> $GITHUB_ENV fi