전체 글 (20) 썸네일형 리스트형 [Jenkins] Jenkins에서 generic webhook trigger plugin으로 webhook 이용하기 이 글은 젠킨스에서 github으로 부터 전달되는 payload를 받아서 사용하고 싶은데 괜찮은 플러그인이 없을까 해서 찾아보다가 알게된 방법을 적고 있다. 시작하기 전에 젠킨스가 외부(즉 깃헙)에서 접근이 되어야 하기 때문에 외부 도메인이 필요한데, 나는 집에서 젠킨스를 도커로 띄우고 있어 외부 도메인이 없었다. 나같이 테스트 환경에서 테스트하고 싶은 사람들은 "ngrok"을 통해서 외부 도메인을 연결해주면 된다. Ngrok 설치 및 실행 (젠킨스 외부 도메인 오픈) 1. mac인 경우 brew로 설치 brew install --cask ngrok 2. 8080포트를 ngrok 도메인에 연결 나는 현재 젠킨스를 8080으로 포트포워딩 해서 사용중이라 8080포트로 연결했다. ngrok http 8080.. [vault] vault에 gcp service account 추가 및 스프레드 시트 수정하기 vault에서 gcp secret engine 사용해보기! 오늘 포스팅의 목적은 vault에 gcp service account를 연결하여 미리 생성해둔 service account key를 이용하는 것이 아니라 short-terml lived를 가진 key를 vault에서 생성하는것이다. 그리고 그렇게 생성된 키를 가지고 spread sheet API를 이용할 것이다. vault에서 gcp secret engine을 사용하기 위해서는 다음과 같은 세가지 방법이 있다. 1️⃣ Rolesets : vault에서 service account를 생성 2️⃣ Static accounts : vault외부 즉, gcp에서 생성한 service account를 연결. token 또는 key를 생성할 수 있다. (키.. [ArgoCD] argocd v.2.8이상 사이드카로 Vault Plugin 적용하기 개요 argo CD Vault Plugin은 민감한 secret들을 custom resource 또는 operator에 의존하지 않고 볼트에 저장하여 사용하는 방법이다. k8s의 secret뿐만 아니라 configmap, deployment또는 다른 쿠버네티스 리소스에서 사용할 수 있다. 사용법은 배포할 쿠버네티스 매니페스트 파일에 이런식으로 vault secret path와 key값을 넣어서 사용한다. 사용법보다는 설치방법이 조금 복잡하다. ArgoCD는 아래 두가지 방법의 설치를 제안한다. 1. argocd-cm configmap을 이용한 설치방법 2. 사이드카 컨테이너에서 설치를 진행하는 방법 나는 v.2.4.0이후에 설치하는 사이드카를 이용한 방식으로 설치를 진행했다. 그리고 글을 작성하는 시점 .. [Vault] minikube에 vault 설치하기(with HA, TLS) Vault란? secret들을 저장하고 관리해 주는 도구이다. 오픈소스로 사용할 수도 있고 enterprise로 사용할 수도 있다. 근데 오픈소스로도 충분히 많은 기능을 가지고 있다. secret이란 EC2나 다른 서버에 접근할 수 있는 SSH, IAM role 또는 user의 access key, 그 외 key/value값의 secret 등을 말한다. Go로 작성되었고, 다양한 운영체제를 지원한다. 클라이언트와 서버모두 동일한 바이너리 파일을 사용한다. 설치 문서에서 설치(Install)로 나와있는 내용들을 보면 dev mode를 말한다. dev와 production 모드는 다음과 같은 차이점이 있다. ✔️ dev는 SSL없이 localhost에서 띄운다. (production에서 ssl을 지원하지만 .. [Kubernetes] 쿠버네티스 리소스 자동 삭제 "kube-janitor" 사용하기 샌드박스 클러스터와 같이 테스트를 위해 리소스를 자유롭게 생성해 볼 수 있는 쿠버네티스 클러스터가 존재한다면 마구 생성되는 리소스들을 정리해야 하는 요구사항이 생긴다. 사용하지도 않는 리소스들이 노드 자원을 점유하고 있다면 쓸데없이 비용만 나갈것이다. 크론잡을 이용하여 주기별로 리소스들을 지우도록 간단히 만들어볼 수도 있겠지만 특정 네임스페이스만, 특정 리소스만 과 같은 요구사항이 생긴다면 그때마다 요구사항에 맞게 스크립트 명령어를 변경하곤 해야할 것이다. 그래서 찾아본것이 kube-janitor 인데, 세가지 방식으로 리소스들을 정리할 수 있다. 적용 방법 ☀️ 클러스터에 kube-janitor 배포 후 1. 삭제하고 싶은 리소스의 annotation에 janitor/ttl: 7d 를 붙인다. 생성기준.. [Jenkins] Jenkins에서 sonarQube 추가하기 Jenkins란 소스코드를 지속적으로 통합하여 빌드하고 배포까지 가능하게 하는 도구이다. 오픈소스로 많은 회사에서 CI/CD tool로써 사용하고 있고, CD까지 가능하지만 쿠버네티스를 사용하는 곳에서는 CD도구인 Argocd CD와 결합하여 사용하기도 한다. SonarQube란 소스코드의 품질을 높이기 위해서 버그, 코드스멜, 취약점 분석등을 수행할 수 있는 정적 분석 도구이다. 이또한 오픈소스이고 돈주고 사용할 수도 있다. 그러면 젠킨스랑 소나큐브랑 뭔 상관이야? 라고 한다면 젠킨스는 코드를 지속적으로 통합하여 빌드 및 배포를 해주는 도구라고 했는데, 빌드에서 성공했고, 테스트 코드가 통과했다고 해서 배포해도 되는 코드일까? 혹시 보안적으로 취약한 코드는 아닐까? 그래서 젠킨스에서 빌드한 코드를 소나.. Docker in Docker 와 Docker out of Docker의 차이 젠킨스를 실습하는 중에 Docker Out of Docker이라는 단어를 알게되었고, 막연하게 알고 있었던 "Docker-in-Docker"와 어떤 차이가 있는지 궁금해 찾아보게 되었다. 일단 어떤 상황이었는지에 대해 먼저 말해보자면, 젠킨스를 도커 컨테이너로 실행한 후에 도커와 SSH 서버가 설치된 도커 컨테이너 이미지를 실행하였다. 로컬에서 docker ps 했을때 보여지는 컨테이너는 두개. 젠킨스(이하 젠킨스 컨테이너) 와 도커와 SSH가 설치된 컨테이너(이하 도커 컨테이너)이다. 젠킨스에서 빌드한 .war 파일을 도커 컨테이너로 복사한 후에 도커 컨테이너 안에서 해당 패키지 파일을 복사하여 톰캣 컨테이너를 실행한다. 따라서 정리해보면 아래와 같은 구조가 된다. 여기서 Docker in Docker.. M1에 Apache Tomcat 설치하기 이번에 젠킨스를 공부하면서 실습을 따라하는 중에 톰캣을 설치해야 했는데, 나는 현재 컴퓨터에 톰캣은 물론이고 자바도 설치한적이 없어 이번에 처음 설치해보았다. M1칩에서 톰캣을 처음 설치하려는 분들께 또는 미래의 내가 새로운 맥북을 샀을때 도움이 되고자 글을 쓴다. 나의 컴퓨터는 Apple Silicon Chip(M1)을 사용중이다. Tomcat WebApplication Server 설치하기 tomcat.apache.org 에서 톰캣을 설치해준다. 신규 버전이 있지만 tomcat9를 설치하였는데, tomcat10부터 JavaEE가 JakartaEE로 변경되면서 기존의 것들을 호환하지 않는다고 한다. tomcat10부터는 JavaEE로 패키징한 war파일을 사용하지 못한다고 하니 이부분 참고하여 알맞은 .. 이전 1 2 3 다음