Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add kubeconfig for linting workflow template #84

Merged
merged 1 commit into from
May 20, 2022
Merged

Conversation

Jaesang
Copy link
Contributor

@Jaesang Jaesang commented May 18, 2022

(openinfradev/decapod-flow#92 와 동일)

HISTORY

  1. argo template lint 명령으로 워크플로우템플릿 검증 시 local에 있는 워크플로우템플릿 파일에 경우에도 쿠버네티스 컨피그를 요구함(아래 3과 같은 이유로 추측)
  2. 액션 인스턴스에서 접근할 수 있는 쿠버네티스 클러스터가 마땅치 않아 fake kubeconfig를 사용함
  3. 워크플로우템플릿이 내부에서 다른 워크플로우템플릿을 호출하는 경우 이 워크플로우템플릿을 쿠버네티스 클러스터에서 찾는데
  4. 이 때마다 fake kubeconfig에 있는 서버로 접근하려 하고 connection refused에러 발생 (https://github.com/openinfradev/decapod-flow/runs/5766950526?check_suite_focus=true)

FIX

  • CI용 클러스터가 구축됨에 따라(https://github.com/openinfradev/tks-issues/issues/88 ) fake kubeconfig를 CI용 클러스터의 kubeconfig로 교체
  • kubeconfig에 명시된 user test는 존재하지 않는 유저로 쿠버네티스에서 'system:anonymous'권한으로 실행됨
  • argo template lint에서 필요한 get workflowtemplate만 수행할 수 있도록 cicd 클러스터에 롤바인딩 적용하여 다른 보안 위협 제거

- This kubeconfig is used to find a workflow template in the Kubernetes
  cluster when it is called by another workflow template.
- user 'system:anonymous' only can get resource "workflowtemplates" in
  API group "argoproj.io" in the namespace "argo"  for lint
@Jaesang Jaesang force-pushed the add-cicd-config branch from 8e15aec to b64f578 Compare May 19, 2022 14:40
@ktkfree
Copy link
Contributor

ktkfree commented May 20, 2022

argo template lint에서 필요한 get workflowtemplate만 수행할 수 있도록 cicd 클러스터에 롤바인딩 적용하여 다른 보안 위협 제거

lint 뿐만 아니라 추후는 tks-flow 수정시 ci/cd cluster에 deploy 도 되어야 할 것 같은데, submit workflowtemplate 도 되도록 하면 좋겠습니다.

@Jaesang
Copy link
Contributor Author

Jaesang commented May 20, 2022

argo template lint에서 필요한 get workflowtemplate만 수행할 수 있도록 cicd 클러스터에 롤바인딩 적용하여 다른 보안 위협 제거

lint 뿐만 아니라 추후는 tks-flow 수정시 ci/cd cluster에 deploy 도 되어야 할 것 같은데, submit workflowtemplate 도 되도록 하면 좋겠습니다.

요건 새 이슈로 파는게 좋을 거 같습니다, lint에 대한 PR이라서요

@ktkfree
Copy link
Contributor

ktkfree commented May 20, 2022

현재 발생하는 lint error 는 예상된 에러인가요?

@Jaesang
Copy link
Contributor Author

Jaesang commented May 20, 2022

현재 발생하는 lint error 는 예상된 에러인가요?

네, PR시 변경된 파일에 대해 lint 체크를 하는데, 이 PR의 경우 워크플로우템플릿이 아니라 에러가 발생합니다.

워크플로우템플릿에 대한 PR에는 정상 수행될 거에요.

@ktkfree ktkfree merged commit 4bcbe92 into main May 20, 2022
@ktkfree ktkfree deleted the add-cicd-config branch May 20, 2022 01:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants