klip-sdk
Version:
JavaScript SDK to interact with klip App2App requests
84 lines (80 loc) • 3.41 kB
Markdown
# Blossomops 개요
> Prod Approve을 하기 위해 슬랙 메시지 전송이 필요하며 모듈화에 대한 사용 방법이다.
* FE, BE 사용방법이 구분되어 있으며 아래 예시를 참고하여 각 레포에서 Step을 추가하면 된다.
# Blossomops 사용방법
* Parameters
+ TYPE: 기본값이 BE이며, FE 레포에서 사용할때만 FE를 추가한다.
+ ENVIROMENT: prod 필수 고정 값이며, 기본값으로 prod로 잡혀있다.
+ VERSION: 버전 정보를 표기하기 위함이다.
* CI 조건을 PR 로 변경한 다음에 head_ref를 사용하면 된다.
+ CHANNEL_ID: 기본값으로는 #prod_approve 채널 ID가 들어가있으며, 테스트 시에만 "C05JC0T17U3" 을 추가한다.
+ SERVICE
* FE에서는 REPOSITORY 명칭을 사용하며, 이를 위해 set-outputs step에서 뽑아내도록 한다.
* BE에서는 Argocd Application 이름을 기재한다.
+ CATEGORY: Approve를 하는 분류 기준이 된다.
* FE는 각 레포의 분류 기준에 따라서 kas, klip, klipdrops, klippass, baas, devops 중에서 값을 추가한다.
* BE는 git diff에서 파일 변경분의 charts/apps/ 값을 사용하도록 한다.
+ REPOSITORY: FE일떄만 사용하며, REPO의 Pending Deployment를 찾기 위해 사용한다.
+ ENVIRONMENT_ID: 각 REPOSITORY별로 Approve의 ID를 추가한다.
* 이떄 반드시 gx-bot이 해당 REPOSITORY의 오너로 추가되어야 한다.
+ WORKFLOW_ID, SLACK_APPROVE_TOKEN: 변경할 필요 없다.
> FE 레포에서 사용하는 경우
* FE의 경우에는 Pending Deployment에 대한 Approve가 필요하므로 CI에서 반드시 아래 권한을 추가해야한다.
```yaml
permissions:
id-token: write
contents: write
pull-requests: write
checks: write
actions: write
deployments: write
```
```yaml
...
blossomops-check:
runs-on: ubuntu-22.04
needs: [deploy-staging]
steps:
- name: fetch actions repo
uses: actions/checkout@v4
with:
repository: "ground-x/gx-gh-actions"
path: ./actions
ssh-key: "${{ secrets.GX_PRIVATE_SSH_KEY }}"
ref: "v2.1.0"
- name: set outputs
id: set-outputs
run: |
GIT_REPO=${{ github.repository }}
SERVICE=$(echo $GIT_REPO | awk -F "/" '{print $2}')
echo "SERVICE=$(echo $SERVICE)" >> $GITHUB_OUTPUT
- name: blossomops FE check
uses: ./actions/devops/blossom_deploy
with:
TYPE: "FE"
ENVIROMENT: "prod"
CATEGORY: "devops"
VERSION: "v1.0.0"
CHANNEL_ID: "C05JC0T17U3"
SERVICE: ${{ steps.set-outputs.outputs.SERVICE }}
REPOSITORY: ${{ github.repository }}
ENVIRONMENT_ID: "2476771098"
WORKFLOW_ID: ${{ github.run_id }}
SLACK_APPROVE_TOKEN: ${{ secrets.SLACK_APPROVE_TOKEN }}
```
> BE 레포에서 사용하는 경우(BE의 경우 helm-charts 레포에서만 설정 하면 됨)
```yaml
...
- name: blossomops check
uses: ./actions/devops/blossom_deploy
with:
TYPE: "BE"
ENVIROMENT: "dev"
CATEGORY: "devops"
VERSION: "v1.0.0"
CHANNEL_ID: "C05JC0T17U3"
REPOSITORY: ${{ github.repository }}
PR_NUMBER: ${{ github.event.pull_request.number }}
SERVICE: "blossomops"
SLACK_APPROVE_TOKEN: ${{ secrets.SLACK_APPROVE_TOKEN }}
```