티스토리 뷰
BuildConfig는 CI/CD Pipeline 없이 현재 k8s cluster에 컨테이너 어플리케이션을 배포할 수 있는 쉬운 방법입니다.
CI/CD에 익숙하지 않은 개발자를 위해 언어에 맞는 Build와 Deploy를 거의 자동으로 해줍니다.
아래와 같은 순서로 작업하십시오.
사전준비
1) 작업터미널에서 OCP cluster연결하기
https://happycloud-lee.tistory.com/110
2) visual studio code설치 및 code명령어 설치
https://happycloud-lee.tistory.com/111
1. Local IDE 또는 Web IDE(CodeReady-A.K.A Eclipse Che) 에서 개발하기
여기서는 sample로 https://gitlab.com/ocean4/mvp-jenkins-springboot-sample.git 에 있는 java springboot2 샘플을 이용하겠습니다.
터미널에서 git clone합니다.
$ git clone https://gitlab.com/ocean4/mvp-jenkins-springboot-sample.git
$ cd mvp-jenkins-springboot-sample
$ code .
vscode가 실행됩니다. main class를 수정합니다.
소스를 수정하고 git commit합니다.
또는 terminal에서 push
$ git add . && git commit -m "change main class" && git push
2. BuildConfig 작성
1) OCP web console을 로그인합니다.
2) 좌측 상단에서 'Developer'로 변경 -> +Add클릭 -> 우측에서 배포할 Project선택 -> 'From Git' 클릭
3) Git주소를 입력
4) 새로운 Application을 생성합니다. Application Name, 리소스 Name은 적절하게 변경하십시오.
기존에 이미 Application이 있으면 선택하십시오.
* Pipeline을 체크하면 Tekton pipeline YAML을 자동으로 만들어줍니다.
기본으로 만들어지는 Pipeline은 pipeline YAML을 조금 수정해야 합니다.
고칠 부분은 'MAVEN_MIRROR_URL'과, 'ARGS'입니다. ARGS에서는 ImageStream리소스를 쓰기 위해 --docker-image라는 옵션을 제거해야 합니다.
아래 예제를 참조하세요.
https://happycloud-lee.tistory.com/112
5) DeploymentConfig를 선택합니다. Create route를 체크하여 외부에서 접근할 수 있는 route주소를 자동으로 생성하도록 합니다.
5) 왼쪽 메뉴에서 'Topology'를 선택하면 DeploymentConfig를 볼 수 있습니다.
6) 또는 Builds메뉴에서도 확인할 수 있습니다.
7) Build리소스의 Log를 볼 수도 있습니다.
8) 자동 생성된 Route를 통해 웹브라우저로 접근합니다.
Networking / Routes > 우측에서 Project선택
라우터 주소를 클릭하면 웹브라우저에서 서비스를 연결합니다.
3. git과 webhook으로 연결
git에 소스를 push하면 자동으로 BuildConfig가 동작하여 배포가 되도록 할 수 있습니다.
gitlab, github, bitbucket을 지원합니다.
1) webhook URL을 구합니다.
또는 아래와 같이 CLI를 통해 구할 수도 있습니다.
$ oc describe bc study-springboot-sample
여기서 secret부분은 아래와 같이 구하여 replace합니다.
$ oc get bc study-springboot-sample -o yaml
$ oc get secret <secret name> 하여 얻은 WebHookSecretKey를 base64 decoding합니다.
최종적으로 아래 예와 같은 webhook url을 구할 수 있습니다.
https://api.hcp.darumtech.net:6443/apis/build.openshift.io/v1/namespaces/kubepia/buildconfigs/study-springboot-sample/webhooks/b5d1c240f4597174/gitlab
2) git에 webhook을 생성합니다.
- github :
Payload URL에 webhook url을 붙여넣습니다. Secret은 비워두고, SSL은 disable합니다.(정식 ssl key로 cluster를 구성한 경우는 enable)
- gitlab
URL에 webhook URL을 붙여넣기합니다. 우측에서 맨 아래로 내려 SSL verification에서 disable합니다.
4. 테스트
git에 소스를 push하였을 때 BuildConfig가 수행되어 잘 배포 되는지 확인합니다.
'상용제품 > OCP' 카테고리의 다른 글
tekton pipeline과 appsody pipeline에 대한 이해 (0) | 2020.04.03 |
---|---|
OCP local image registry에 push 하기 (0) | 2020.04.02 |
custom appsody stack (0) | 2020.03.30 |
Tekton pipeline on OCP sample (0) | 2020.03.30 |
작업 터미널에서 OCP cluster연결하기 (0) | 2020.03.29 |
- Total
- Today
- Yesterday
- 스핀프로젝트
- agile
- 마이크로서비스
- API Composition
- AXON
- Event Sourcing
- 육각형인간
- 도파밍
- 돌봄경제
- 호모프롬프트
- SAGA
- 마이크로서비스 패턴
- 리퀴드폴리탄
- 분초사회
- 애자일
- spotify
- micro service
- 스포티파이
- CQRS
- 디토소비
- 버라이어티가격
- 요즘남편 없던아빠
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |