diff --git a/.github/workflows/release-cd.yml b/.github/workflows/release-cd.yml index 3965710f..3215c39f 100644 --- a/.github/workflows/release-cd.yml +++ b/.github/workflows/release-cd.yml @@ -52,21 +52,32 @@ jobs: docker build -t ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} -t ${{ secrets.DOCKER_REPO }}:latest . docker push ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} docker push ${{ secrets.DOCKER_REPO }}:latest - + - name: Update Kubernetes Deployment + run: | + envsubst < ./taskflow.yaml + env: + IMAGE_TAG: ${{ env.IMAGE_TAG }} # deploy + - name: Transport taskflow.yaml to kubectl server + uses: appleboy/scp-action@master + with: + host: ${{ secrets.KUBE_HOST }} + username: ${{ secrets.KUBE_HOST_USERNAME }} + key: ${{ secrets.KUBE_HOST_KEY }} + port: ${{ secrets.KUBE_HOST_PORT }} + overwrite: true + source: ./taskflow.yaml + target: ~/taskflow-back.yaml + - name: Deploy uses: appleboy/ssh-action@master id: deploy with: - host: ${{ secrets.DEV_HOST }} - username: ${{ secrets.DEV_HOST_USERNAME }} - key: ${{ secrets.DEV_HOST_KEY }} - port: ${{ secrets.DEV_HOST_PORT }} + host: ${{ secrets.KUBE_HOST }} + username: ${{ secrets.KUBE_HOST_USERNAME }} + key: ${{ secrets.KUBE_HOST_KEY }} + port: ${{ secrets.KUBE_HOST_PORT }} script: | - docker rm -f taskflow - docker image rm ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} -f - docker run --name taskflow -d -p 9090:9090 \ - --env-file /home/ubuntu/.env \ - ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} \ - --restart on-failure + kubectl apply --filename taskflow-back.yaml + diff --git a/src/main/resources/mysql.yml b/src/main/resources/mysql.yml index f4679a83..a43c9cbc 100644 --- a/src/main/resources/mysql.yml +++ b/src/main/resources/mysql.yml @@ -5,7 +5,7 @@ spring: properties: hibernate: default_batch_fetch_size: 100 - format_sql: true +# format_sql: true show_sql: true datasource: diff --git a/taskflow.yaml b/taskflow.yaml new file mode 100644 index 00000000..8172ce6f --- /dev/null +++ b/taskflow.yaml @@ -0,0 +1,55 @@ +apiVersion: v1 +kind: Service +metadata: + name: taskflow-back + annotations: + service.beta.kubernetes.io/openstack-internal-load-balancer: 'false' +spec: + selector: + app: taskflow-back + ports: + - protocol: TCP + port: 9090 + targetPort: 9090 + type: LoadBalancer +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: taskflow-back + labels: + app: taskflow-back +spec: + replicas: 1 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + selector: + matchLabels: + app: taskflow-back + template: + metadata: + labels: + app: taskflow-back + spec: + containers: + - name: taskflow + image: clap.kr-central-2.kcr.dev/taskflow/taskflow-server:${IMAGE_TAG} + imagePullPolicy: Always + command: [ "java", "-jar", "app.jar" ] + args: [ "--spring.profiles.active=dev" ] + env: + - name: TZ + value: "Asia/Seoul" + envFrom: + - secretRef: + name: taskflow-back + ports: + - containerPort: 9090 + restartPolicy: Always + nodeSelector: + label: "back" + imagePullSecrets: + - name: kc-cr-secret \ No newline at end of file