-
github actions, kustomize와 argocd를 EKS에서 kafka랑 사용하기 2부AWS 2023. 3. 30. 16:45
1부 링크
사용한 깃허브 링크
https://github.com/TaeWoonJeong/spring-feign-kafka-multimodule
스프링 프로젝트를 만들었다고 하자.
최상위 폴더에가서 .github/workflow 폴더를 만들고 안에 yml 을 만들어주자.
이런식으로 하면 된다.
name: Build on: workflow_dispatch: push: branches: [ develop ] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v2 - name: Set up JDK 17 uses: actions/setup-java@v1 #checkout 버전 바꾸기 with: java-version: 17 - name: Cache Gradle packages uses: actions/cache@v2 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- - name: Grant execute permission for gradlew run: chmod +x gradlew shell: bash - name: Build with Gradle run: ./gradlew build shell: bash - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v1 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_REGION }} - name: Login to Amazon ECR id: login-ecr uses: aws-actions/amazon-ecr-login@v1 - name: Get image tag(verion) id: image run: | VERSION=$(echo ${{ github.sha }} | cut -c1-8) echo VERSION=$VERSION echo "::set-output name=version::$VERSION" - name: Build, tag, and push image to Amazon ECR id: image-info env: ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} ECR_REPOSITORY: ${{ secrets.AWS_REPOSITORY }} IMAGE_TAG: ${{ steps.image.outputs.version }} run: | echo "::set-output name=ecr_repository::$ECR_REPOSITORY" echo "::set-output name=image_tag::$IMAGE_TAG" docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
중요한것은 aws configure 부분인데, aws iam 에 가서 사용자를 만들어준다.
정책은 아래 꺼를 주면된다.
AmazonEC2ContainerRegistryFullAccess
정책을 줬다면, iam 에 가서 만든 사용자를 클릭하고 보안자격 증명탭에 가면 액세스키 만들기가 있다. 그거로 만들면 된다.
그러면 이미지 빌드하고, ecr에 올리게 된다.
이러면 ECR에 푸시가 된다.
나는 스프링 + mysql 을 사용할꺼기 때문에 mysql pod를 먼저 만들어준 node에 올려주겠다.
https://postlude.github.io/2021/08/10/k8s-mysql/
이 블로그를 참고했다.
일단 mysql deployment를 위해 네임스페이스를 하나 만들어주고, 해당 네임스페이스로 옮겨준다.
kubectl create ns mysql kubectl config set-context --current --namespace=mysql
https://jenakim47.tistory.com/70
https://blog.wonizz.tk/2019/11/28/kubernetes-aws-eks-volume/
https://repost.aws/ko/knowledge-center/eks-persistent-storage
'AWS' 카테고리의 다른 글
github actions, kustomize와 argocd를 EKS에서 kafka랑 사용하기 3부 (0) 2023.04.03 ec2에서 jenkins 빌드서버 만들어보기 2편 (0) 2023.03.31 ec2에서 jenkins 빌드서버 만들어보기 1편 (0) 2023.03.31 github actions, kustomize와 argocd를 EKS에서 kafka랑 사용하기 1부 (0) 2023.03.30 github actions -> ecr -> ecs with ec2 multi module (0) 2022.10.28