묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
cosign tlog 관련 409에러
1. 무엇을 하고 싶으신가요?cosign sign을 통한 이미지 스캔을 하고 싶은데 단순히 이미지 재빌드하고 푸시하면 해결될 것이라고 생각하는데 그러지 않고 해결할 수 있는 방법을 찾고 싶습니다. 2. 언제, 어떤 오류가 발생하시나요? cosign에서 맨처음에 태그 기반으로 사이닝을 진행(최초 --tlog-upload=false 옵션 없이 이때 따로 진행할거냐는 경고 없이 바로 사이닝 진행 , 이후 --tlog-upload=false 옵션과 함께 진행하였지만 이미 사인되어있다는 메시지 그리고 ECR을 확인해보니 레포지토리에 서명 결과가 푸시된 것을 확인) , 이후 서명 결과를 ECR에서 삭제하고 다이제스트 기반으로 sign 명령을 내려도 계속 409 에러가 발생합니다. 3. 어떤 시도를 해보셨나요? 4. 작성한 코드를 공유해주세요.cosign sign --tlog-upload=false \ --key awskms:///REDACTED-KMS-KEY-ID \ <AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>@$( docker buildx imagetools inspect \ <AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>:latest \ --format "{{json .Manifest}}" | jq -r ".digest" ) Error: signing [<AWS_ACCOUNT_ID>.dkr.ecr.<REGION>.amazonaws.com/<REPO>@sha256:<DIGEST>]: signing digest: signing bundle: [POST /api/v1/log/entries][409] createLogEntryConflict {"code":409,"message":"an equivalent entry already exists in the transparency log with UUID <REDACTED>"}
-
미해결Master Git & GitHub: Complete Version Control & Collaboration Bootcamp for Developers
강의가 잘못되었어요..
이강의 git강의가 아니라 c기초강의네요..수정바랍니다.
-
미해결Master Git & GitHub: Complete Version Control & Collaboration Bootcamp for Developers
강의 제목과 실제 강의 내용이 왜 다른거죠?
이거 깃 강의맞아요?
-
미해결[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
gitleaks 시크릿 스캔의 기준에 대한 질문입니다.
1. 무엇을 하고 싶으신가요? gitleaks가 secret을 판별하는 기준에 대해서, 또 지금 현 상황에 대한 이유가 궁금합니다. 2. 언제, 어떤 오류가 발생하시나요?from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "AROAWU22AXDEPO3JX44FD" @app.route("/rextest") def rextest(): return "REXTEST_PATH" if __name__ == "__main__": app.run( host="0.0.0.0", port=8080, debug=True, ) app.py 코드를 위처럼 작성해서 MR을 날릴 경우, 파이프라인에서 gitleaks에 시크릿 값(AWS 예제)가 스캔되지 않습니다. 때문에 build job까지 문제 없이 실행이 됩니다. 3. 어떤 시도를 해보셨나요?로컬 환경에서 강사님 코드를 pull 하고 tools 디렉토리의 gitleaks 디렉토리에서 gitleaks detect -v --no-git 명령을 수행해도 디스코드 예제와 깃랩 예제 2 종류만 스캔될 뿐 AWS 예제는 스캔되지 않습니다. 그래서 app.py 파일에 디스코드 예제를 넣어서 파이프라인을 실행할 경우, 정상적으로 gitleaks에서 시크릿이 스캔되어 job이 실패합니다. 이러한 경우, 코드 문제가 아니라 gitleaks에 대한 문제라고 생각이 드는데, 강의 영상에서는 AWS 예제가 스캔되어 job이 실패되고 저는 정상적으로 실행되는 이유가 궁금합니다. 4. 작성한 코드를 공유해주세요.stages: - gitleaks - build - deploy default: image: name: bentolor/docker-dind-awscli id_tokens: GITLAB_OIDC_TOKEN: aud: https://gitlab.com variables: AWS_DEFAULT_REGION: ap-northeast-2 IMAGE: ${CI_PROJECT_NAME}:latest REMOTE_LATEST_IMAGE: ${AWS_ECR_REPO_URL}:latest REMOTE_REGULAR_IMAGE: ${AWS_ECR_REPO_URL}:${CI_COMMIT_SHORT_SHA} .get_aws_role: &get_aws_role - > export $(printf "AWS_ACCESS_KEY_ID=%s AWS_SECRET_ACCESS_KEY=%s AWS_SESSION_TOKEN=%s" $(aws sts assume-role-with-web-identity --role-arn ${AWS_ROLE_ARN} --role-session-name "GitLabRunner-${CI_PROJECT_ID}-${CI_PIPELINE_ID}" --web-identity-token ${GITLAB_OIDC_TOKEN} --duration-seconds 3600 --query 'Credentials.[AccessKeyId,SecretAccessKey,SessionToken]' --output text)) .get_ecr_token: &get_ecr_token - *get_aws_role - aws ecr get-login-password --region ap-northeast-1 | docker login --username AWS --password-stdin ${AWS_ECR_REPO_URL} gitleaks: stage: gitleaks image: name: zricethezav/gitleaks:latest entrypoint: [""] script: - gitleaks detect -v --no-git --redact --report-format json rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: paths: - app.py - Dockerfile - requirements.txt build-container-image: stage: build services: - name: docker:dind before_script: - *get_ecr_token script: - docker build -t ${IMAGE} . - docker tag ${IMAGE} ${REMOTE_LATEST_IMAGE} - docker push ${REMOTE_LATEST_IMAGE} - docker tag ${IMAGE} ${REMOTE_REGULAR_IMAGE} - docker push ${REMOTE_REGULAR_IMAGE} rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: paths: - app.py - Dockerfile - requirements.txt deploy: stage: deploy image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest before_script: *get_aws_role variables: AWS_DEFAULT_REGION: ap-northeast-1 script: - | export SERVICE_NAME="${CI_PROJECT_NAME}-service" export AR_SERVICE_NAME=$(aws apprunner list-services --query "ServiceSummaryList[?ServiceName=='${SERVICE_NAME}'].ServiceName | [0]" --output text) # AppRunner에 해당 레포의 매핑되는 서비스가 없는 경우 if [ ${AR_SERVICE_NAME} != ${SERVICE_NAME} ]; then export AR_SERVICE_ARN=$(aws apprunner create-service --service-name "${SERVICE_NAME}" --source-configuration "{\"AuthenticationConfiguration\": {\"AccessRoleArn\": \"${AWS_APP_RUNNER_SERVICE_ROLE_ARN}\"}, \"ImageRepository\": {\"ImageIdentifier\": \"${REMOTE_LATEST_IMAGE}\", \"ImageRepositoryType\": \"ECR\"}}" --instance-configuration 'Cpu="0.25 vCPU",Memory="0.5 GB"' --output text --query "Service.ServiceArn") echo "[+] Creating ${AR_SERVICE_ARN}" # AppRunner 서비스가 존재하는 경우 else export AR_SERVICE_ARN=$(aws apprunner list-services --query "ServiceSummaryList[?ServiceName=='${SERVICE_NAME}'].ServiceArn | [0]" --output text) aws apprunner start-deployment --service-arn ${AR_SERVICE_ARN} echo "[+] Deploying ${AR_SERVICE_ARN}" fi export AR_SERVICE_STATUS=$(aws apprunner describe-service --service-arn ${AR_SERVICE_ARN} --output text --query "Service.Status") while [ ${AR_SERVICE_STATUS} != "RUNNING" ]; do echo "[*] Waiting..." sleep 10 export AR_SERVICE_STATUS=$(aws apprunner describe-service --service-arn ${AR_SERVICE_ARN} --output text --query "Service.Status") if [ ${AR_SERVICE_STATUS} = "CREATE_FAILED" ]; then echo "[-] ${AR_SERVICE_ARN} ${AR_SERVICE_STATUS}" exit 1 fi done echo "[+] ${AR_SERVICE_ARN} deployed!" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH changes: paths: - app.py - Dockerfile - requirements.txt
-
미해결99% J형 엔지니어와 함께하는 AWS EKS와 GitLab CI/CD 기초 완벽 정복
강의 노션 링크는 어디있는걸까요?
강의 노션 링크는 어디있는걸까요? 대시보드에 안보여서요
-
해결됨[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
gitlab-ci.yml과 CI/CD 파이프라인 까지 수강중입니다.
1. 무엇을 하고 싶으신가요?현재 ocp 로 구축된 서버가 있는데 , 이 서버에 gitlab을 컨테이너로 올려서 구축후에 테스트해보고 싶습니다. 2. 언제, 어떤 오류가 발생하시나요? 3. 어떤 시도를 해보셨나요? 4. 작성한 코드를 공유해주세요.
-
미해결실전 활용을 위한 git/github(feat.각종 충돌상황 해결하기)
궁금한 점
만약에 협업을 진행하는 과정에서 제가 develop브랜치에서 feat1브랜치를 따서 작업을 한후 push한다음 pr을 만들었지만, 아직 merge되지 않은 상태에서 feat1 브랜치보다 늦게 다른 팀원이 feat2브랜치를 따서 작업을 해서 push한 후 pr에서 develop브랜치에 merge까지 된 상태인 경우. feat1브랜치 사용자는 git pull origin develop 해서 최신사항을 내려받은 후 남은 작업을 수행해야하는 것인지 궁금합니다. 또한 git pull origin develop한다고 가정했을 때, 커밋이력이 1개만 추가되는 것인지 develop 브랜치의 최신 커밋이력들을 전부 가져오는 것인지 궁금합니다.
-
미해결실전 활용을 위한 git/github(feat.각종 충돌상황 해결하기)
깃허브 main 브랜치에서 dev 브랜치 분기
안녕하세요 강사님 main 브랜치를 최상위 브랜치로 놓고 거기서 하위 브랜치인 dev 브랜치가 나오고 dev 브랜치에서 이걸 상위 브랜치로 갖는 다른 브랜치를 만드는 방법이 있나요? 로컬에서 여기서 설정 하는 거 말고 혹시 다른 방법이 있나요? 여기서 만들고 계속 동기화해서 올리고 있습니다.
-
해결됨실전 활용을 위한 git/github(feat.각종 충돌상황 해결하기)
깃허브에 new_git_github.git 생성한후 터미널에서 push할때 에러가 안생겨요.
선생님이 보여주신것처럼 클론한 user 위치의 git_github 파일의 .git 파일을 제거하고. new_git_github 레포지토리 주소를 설정해준다음 push를 했는데, 에러가 발생하지않았습니다. 2번정도 반복해서 다시했는데 에러가 발생하지않고 push가 잘됩니다.혹시 어떤이유로 그런건지 알수있을까요 git init으로 .git 파일을 생성했을 떄 master가 아니라 Main브랜치가 생겨서 push가 잘된경우인걸까요?
-
미해결실전 활용을 위한 git/github(feat.각종 충돌상황 해결하기)
안녕하세요. 맥에서 키체인등록 후 push할때 문제가있습니다.
Pat 생성한 후에vscode에서 왼쪽하단 계정 로그아웃하고, 껏다켜서 push를 했습니다.키체인 주소 : git:https://github.com이름 : 닉네임암호: 발급받은 암호 등록된 키체인에서 pat를 읽어서 push권한이 생기는것이라면 의도대로 push가 되어야하는데 되지않아서 문의드려요!push를 했을 때 로그인(oauth)요청이 들어옵니다! 어떤부분을 확인해보면 좋을까요 선생님 부탁드려요
-
해결됨실전 활용을 위한 git/github(feat.각종 충돌상황 해결하기)
선생님 안녕하세요. 해당 강의 질문이 아니라 다른 강의에서 질문 드립니다.
우선 좋은 강의 만들어주셔서 정말 감사드립니다.이번에 새로 출시된 강의 "eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)" 이 강의 질문 할 곳이 없어서 여기다가 질문을 드립니다. 양해 부탁드립니다. 제가 쿠버네티스 지식이 없다보니 질문 드리는 건데요. 해당 강의 경우 무중단 배포로 진행 되는 강의 인지 궁금 합니다. 아무래도 실전에서는 무중단 배포로 진행 해야 하는 경우 많아서 이렇게 질문 하네요. 감사합니다.
-
미해결실전 활용을 위한 git/github(feat.각종 충돌상황 해결하기)
Main Branch 자동 생성 안됨
git push origin main명령어 실행 시, src refspec main does not match any 오류 발생하여 해결 방법 문의 드립니다. Config 로 유저네임과 이메일 설정해도 동일합니다.git branch 명령어 실행해 보면 브런치가 아예 없습니다. 선생님은 자동 생성돼서 최초 커밋을 main에 하셨는데 저는 왜 자동생성이 안돼서 브런치 생성을 따로 해야되나요?
-
미해결실전 활용을 위한 git/github(feat.각종 충돌상황 해결하기)
질문 있습니다
안녕하세요. 수업 잘 듣고 있습니다! 한가지 질문을 하려고 하는데요이미 올라간 소스코드가 있는 github 레파지토리 자체를 삭제한다면 아무도 그 소스코드에는 접근을 못하는 건가요?
-
해결됨실전 활용을 위한 git/github(feat.각종 충돌상황 해결하기)
안녕하세요 강사님 질문 있습니다.
브랜치 상황이 원격에 dev, feat/member 가 있고 로컬에도 dev, feat/member가 있다고 하겠습니다.이때 제가 로컬 feat/member 브랜치에서 작업 중인데 원격 dev 브랜치에 있는 작업 내용을 제가 작업 중인 로컬 feat/member 브랜치로 가져오려면 어떻게 해야 하는지 궁금합니다.
-
해결됨실전 활용을 위한 git/github(feat.각종 충돌상황 해결하기)
소스트리를 따로 쓰는 장점이 뭔가요?
vs code에서 깃 커맨드를 쓰거나 소스 컨트롤 기능에서 내역을 확인할 수 있는데 깃 GUI프로그램으로 소스트리를 따로 쓰시는 이유가 뭔가요? 그리고 깃헙 데스크탑 GUI프로그램이 있는데 깃헙 연동으로는 이게 더 편리할 거 같은데 소스트리가 더 우수한 이유가 있을까요?
-
해결됨실전 활용을 위한 git/github(feat.각종 충돌상황 해결하기)
rebase 시, conflict 발생하는 경우에 대해서
rebase 시, 충돌이 발생했을때 관련해서 질문이 있습니다. master 의 commit이 만약 이렇게 되어있다면, (master) commitID_4-2 # test1.txt 수정 commitID_4-1 # test1.txt 수정 commitID_3 commitID_2 commitID_1그리고 feature/rebase의 브랜치의 commit이 이렇게 되어있다면,(feature/rebase) commitID_4-4 # test1.txt 수정 commitID_4-3 # test1.txt 수정 commitID_3 commitID_2 commitID_1여기서 feature/rebase 브랜치에서 master를 rebase를 하려고 한다면, 4-1, 4-2도 test1.txt를 수정했고, 4-3, 4-4도 test1.txt를 수정해서 conflict이 발생한다면, 그래서, rebase를 만약 해본다면git checkout feature/rebase git rebase master여기서 conflict이 발생하고, 그걸 해결하게 된다면# conflict 발생 후, 수정 git add test1.txt git commit -m "conflict1" git rebase --continue git add test1.txt git commit -m "conflict2" git rebase --continue >> resolved conflict ... 이렇게 모든 conflict를 수정한 다음에 여기서 어떻게 처리할지 질문입니다. 여기서 제가 git push origin feature/rebase 를 하게된다면, 원격저장소와 로컬저장소의 commit이력이 달라서 다시 git pull origin --rebase feature/rebase 후, 다시 conflict를 수정하고 새로운 commit을 만들어서, push를 하는게 맞는건지여기서 어짜피 모든 conflict를 해결했으니 git push origin feature/rebase -f 로 강제로 밀어 넣던지아니면 다른 방법으로 push를 하는건지 보통 rebase시, conflict이 발생 후, conflict를 해결하더라도 push 시, 로컬/원격 저장소간의 commit이력이 달라질텐데 이것을 해결하기 위해 어떤방법을 사용하는지 궁금합니다.
-
해결됨[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
first before
1개념이해를 도와주세요 before after를 전역으로 사용하면 first 잡에서 호출하지 않아도 실행이 되는 건가요? 그렇다면 모든잡에서 항상 실행되는 건가요? 특정 잡에서는 전역값이 실행 안될 수 있게 설정할 수 있나요?
-
미해결99% J형 엔지니어와 함께하는 AWS EKS와 GitLab CI/CD 기초 완벽 정복
GitLab Pipeline 동작 시 스테이지 누락
가이드주신 대로 GitLab 세팅 후 nestjs-boilerplate development 브랜치로 commit & push했으나위 사진과 같이 test 스테이지까지만 진행되고 development를 포함한 이후 스테이지들이 진행되지 않습니다...놓친 부분이 무엇일까요??
-
해결됨[DevOps] 빠르고 안전한 어플리케이션 배포 파이프라인(CI/CD) 만들기
Private Subnet과 Gitlab
안녕하세요. 이번에 public subnet 에 있는 bastion host를 통해서 private subnet에 있는 web server라는 ec2에 cli 명령어로 gitlab ee 버젼을 설치해서 도메인(a.test.com)으로 설정하였습니다. 그런데 sudo vi /etc/gitlab/gitlab.rb 파일에 bastion host의 public ip를 넣어야 도메인으로 gitlab server의 사이트로 접속이 되던데.. 이러면 public ip가 그대로 노출될 수도 있어서 도메인으로 바꾸면 사이트의 접속이 막히고 있습니다. 도메인으로 설정을 바꾸면 어떻게 해야하나 질문을 드립니다. CI/CD 과정은 리포지토리는 Gitlab, 빌드과정은 codebuild를 사용하려고 합니다. codebuild와 연결을 할때도 액세스 토큰이 필요해서 이부분은 어떻게 설정해야 하나요?
-
미해결99% J형 엔지니어와 함께하는 AWS EKS와 GitLab CI/CD 기초 완벽 정복
eksctl create iamserviceaccount 문의
Load Banacer Controller 설정 과정 중eksctl create iamserviceaccount \ --region ${region} \ --name aws-load-balancer-controller \ --namespace kube-system \ --cluster ${clusterName} \ --attach-policy-arn ${policyArn} \ --override-existing-serviceaccounts \ --approve을 실행하면1 existing iamserviceaccount(s) (kube-system/aws-load-balancer-controller) will be excluded 1 iamserviceaccount (kube-system/aws-load-balancer-controller) was excluded (based on the include/exclude rules)metadata of serviceaccounts that exist in Kubernetes will be updated, as --override-existing-serviceaccounts was setno tasks 위와 같은 로그가 출력되고 k get sa -n kube-system 을 실행하면 aws-load-balancer-controller가 나타나지 않습니다. NAME SECRETS AGEattachdetach-controller 0 111maws-cloud-provider 0 111maws-node 0 108m 어떤 원인인지 알수 있을까요?