도구 탐지

도구 탐지 (Tool Detection)

애플리케이션을 빌드하는 데 사용되는 도구가 어떻게 결정되는지 설명해요. 명시적 구성이 없으면 파일 존재 여부로 자동 감지합니다.

출처: 문서

본문

애플리케이션을 빌드하는 데 사용되는 도구는 다음과 같이 감지됩니다:

특정 도구가 명시적으로 구성되면 그 도구가 애플리케이션의 매니페스트를 생성하도록 선택됩니다.

도구는 Application 커스텀 리소스에서 다음과 같이 명시적으로 지정할 수 있습니다:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  ...
spec:
  ...
  source:
    ...

    # Tool -> plain directory
    directory:
      recurse: true
...

웹 사용자 인터페이스의 애플리케이션 생성 마법사에서도 도구를 선택할 수 있습니다. 기본값은 'Directory'입니다. 다른 것을 선택하려면 도구 이름 아래의 드롭다운 버튼을 누르세요.

명시적이지 않으면 도구는 다음과 같이 암시적으로 감지됩니다:

  • Chart.yaml와 일치하는 파일이 있으면 Helm.
  • kustomization.yaml, kustomization.yml 또는 Kustomization이 있으면 Kustomize.

그 외에는 일반 디렉터리(directory) 애플리케이션으로 간주됩니다.

내장 도구 비활성화 (Disable built-in tools)

내장 구성 관리 도구는 argocd-cm ConfigMap에서 다음 키 중 하나를 false로 설정해 선택적으로 비활성화할 수 있습니다: kustomize.enable, helm.enable 또는 jsonnet.enable. 도구가 비활성화되면 Argo CD는 애플리케이션 대상 디렉터리에 일반 Kubernetes YAML 매니페스트가 있다고 가정합니다.

사용하지 않는 구성 관리 도구를 비활성화하는 것은 유용한 보안 강화가 될 수 있습니다. 취약점은 때때로 특정 구성 관리 도구에 국한됩니다. 취약점이 없더라도 공격자가 특정 도구를 사용해 Argo CD 인스턴스의 잘못된 구성을 악용할 수 있습니다. 사용하지 않는 구성 관리 도구를 비활성화하면 악의적인 행위자에게 제공되는 도구가 제한됩니다.

더 알아보기 (Learn more)