nomos 명령어 사용

nomos 명령어(Windows에서는 nomos.exe)는 워크스테이션 또는 노트북과 같이 로컬로 설치할 수 있는 선택적인 명령줄 도구입니다. nomos 명령어를 사용하면 저장소에 커밋하기 전 구성 구문을 확인하고, 구성 동기화, 클러스터, 저장소를 사용하여 문제를 디버깅할 수 있습니다.

기본 요건

nomos 명령어를 사용하여 클러스터와 상호작용하기 위해서는 먼저 대상 클러스터에 Operator가 설치된 상태여야 하고, kubeconfig 항목을 생성하여 대상 클러스터에 인증하도록 kubectl 명령어를 구성해야 합니다.

nomos 명령어 설치

nomos 명령어는 Go 코드에서 컴파일된 바이너리입니다. 선택사항이며 구성 동기화를 설치할 때 포함되지 않습니다. Cloud SDK를 설치하여 nomos 명령어를 설치할 수 있습니다. Cloud Shell을 사용하는 경우 Cloud SDK가 사전 설치됩니다.

Cloud SDK가 없으면 gcloud components install nomos를 사용하여 nomos 명령줄 도구를 설치하는 것이 좋습니다. gcloud 명령줄 도구로 nomos를 설치하면 gcloud components update를 사용하여 nomos를 최신 버전으로 업데이트할 수 있습니다.

nomos 명령줄 도구를 설치하는 다른 방법에 대한 자세한 내용은 Anthos Config Management 다운로드를 참조하세요.

기본 사용법

기본 명령어 구문을 보려면 --help 인수를 사용합니다.

nomos --help

nomos 명령어는 저장소의 로컬 클론에서 읽습니다. --path 플래그를 사용하여 저장소의 최상위 수준 위치를 지정합니다. 기본적으로 --path. 또는 현재 디렉터리로 설정됩니다. 예를 들면 다음과 같습니다.

nomos --path=path/to/your/repo vet

설치 상태 확인

nomos status 명령어를 사용하여 등록된 모든 클러스터에서 Config Sync 상태를 모니터링할 수 있습니다. 각 클러스터에 대해 nomos status는 클러스터에 마지막으로 적용된 Git 커밋의 해시를 보고하고 최근 변경사항을 적용하려고 시도하는 동안 발생한 모든 오류를 보고합니다.

nomos 버전 1.8.0부터 nomos status를 사용하여 구성 동기화가 관리하는 리소스가 준비되었는지 확인할 수도 있습니다. nomos status은 출력의 Managed resources 섹션에 있는 STATUS 열에서 Git 저장소의 각 개별 리소스에 대한 상태를 보고합니다.

다음 예시는 nomos status 명령어가 보고할 수 있는 몇 가지 조건을 보여줍니다.

nomos status

출력 예시:

MANAGED_CLUSTER_1
  --------------------
  <root>   git@github.com:foo-corp/acme@main
  SYNCED   f52a11e4
  Managed resources:
   NAMESPACE   NAME                                                                   STATUS
               k8snoexternalservices.constraints.gatekeeper.sh/no-internet-services   Current
               namespace/hello                                                        Current

MANAGED_CLUSTER_2
  --------------------
  <root>   git@github.com:foo-corp/acme@main
  PENDING  9edf8444

MANAGED_CLUSTER_3
  --------------------
  <root>   git@github.com:foo-corp/acme@main
  ERROR    f52a11e4
  Error:   KNV1021: No CustomResourceDefinition is defined for the resource in the cluster.

MANGED_CLUSTER_4
  --------------------
  NOT INSTALLED

MANAGED_CLUSTER_5
  --------------------
  <root>   git@github.com:foo-corp/acme/admin@main
  SYNCED   f52a11e4
  Managed resources:
   NAMESPACE   NAME                                                                   STATUS
                namespace/gamestore                                                   Current
                namespace/monitoring                                                  Current
   gamestore    reposync.configsync.gke.io/repo-sync                                  Current
   gamestore    rolebinding.rbac.authorization.k8s.io/gamestore-admin                 Current
   gamestore    rolebinding.rbac.authorization.k8s.io/gamestore-webstore-admin        Current
   monitoring   deployment.apps/prometheus-operator                                   Current
   monitoring   prometheus.monitoring.coreos.com/acm                                  Current
   monitoring   service/prometheus-acm                                                Current
   monitoring   service/prometheus-operator                                           Current
   monitoring   serviceaccount/prometheus-acm                                         Current
   monitoring   serviceaccount/prometheus-operator                                    Current
   monitoring   servicemonitor.monitoring.coreos.com/acm-service                      Current
  --------------------
  bookstore  git@github.com:foo-corp/acme/bookstore@v1
  SYNCED     34d1a8c8
  Managed resources:
   NAMESPACE   NAME                                 STATUS
   gamestore   configmap/store-inventory            Current
   gamestore   webstore.marketplace.com/gameplace   Current

이 출력에서 각 항목의 의미는 다음과 같습니다.

  • MANAGED_CLUSTER_1은 저장소에 대한 가장 최근 변경사항을 동기화했으며 모든 관리형 리소스의 상태가 Current입니다. Current 상태는 리소스 상태가 원하는 상태와 일치함을 의미합니다.
  • MANAGED_CLUSTER_2가 아직 동기화하는 중입니다.
  • MANAGED_CLUSTER_3에 오류가 발생하여 변경사항이 적용되지 않았습니다. 이 예시에서 MANAGED_CLUSTER_3에는 다른 클러스터가 설치한 CRD가 누락되어 있으므로 KNV1021 오류가 있습니다.
  • MANAGED_CLUSTER_4에 구성 동기화가 설치되지 않았습니다.
  • MANAGED_CLUSTER_5두 Git 저장소에서 동기화됩니다. <root> 저장소는 클러스터 관리자에 속하고 bookstore 저장소는 애플리케이션 개발팀에 속할 수 있습니다.

관리형 리소스 상태

관리형 리소스의 상태는 다음 값 중 하나일 수 있습니다.

  • InProgress: 리소스의 실제 상태가 리소스 매니페스트에 지정된 상태에 아직 도달하지 않았습니다. 이 상태는 리소스 조정이 아직 완료되지 않았음을 의미합니다. ConfigMaps와 같은 일부 리소스는 즉시 Current 상태지만 새로 생성된 리소스는 일반적으로 이 상태로 시작합니다.

  • Failed: 원하는 상태로 실제 상태를 조정하는 과정 중 오류가 발생했거나 충분히 진행되지 않았습니다.

  • Current: 리소스의 실제 상태가 원하는 상태와 일치합니다. 조정 프로세스는 원하는 상태 또는 실제 상태가 변경될 때까지 완료된 것으로 고려됩니다.

  • Terminating: 리소스를 삭제하는 중입니다.

  • NotFound: 리소스가 클러스터에 리소스에 존재하지 않습니다.

  • Unknown: 구성 동기화가 리소스 상태를 확인할 수 없습니다.

리소스 수준 상태를 표시하지 않으려면 nomos status 명령어에 --resources=false를 추가합니다.

마지막으로 동기화된 커밋 정보

nomos status는 해당 출력에서 status.sync.commit 아래의 클러스터에 적용된 최근 Git 커밋 해시를 표시합니다. 이 값을 가져오려면 RootSync 또는 RepoSync 객체를 쿼리하고 status.sync 필드를 확인합니다.

예를 들어 RootSync 객체를 쿼리하려면 다음 명령어를 실행합니다.

kubectl get rootsyncs.configsync.gke.io -n config-management-system root-sync -o yaml

출력 예시:

apiVersion: configsync.gke.io/v1beta1
kind: RootSync
status:
  sync:
    commit: f1739af550912034139aca51e382dc50c4036ae0
    lastUpdate: "2021-04-20T00:25:01Z"

RepoSync 객체를 쿼리하려면 다음 명령어를 실행합니다.

kubectl get reposync.configsync.gke.io -n NAMESPACE repo-sync -o yaml

NAMESPACE를 네임스페이스 저장소를 만든 네임스페이스로 바꿉니다.

출력 예시:

apiVersion: configsync.gke.io/v1beta1
kind: RepoSync
status:
  sync:
    commit: ed95b50dd918cf65d8908f7561cb8d8d1f179c2f
    lastUpdate: "2021-04-20T00:25:20Z"

이 커밋은 클러스터에 대한 최근 커밋입니다. 하지만 각 커밋에 의해 클러스터의 모든 리소스가 영향을 받는 것은 아닙니다. 특정 리소스의 최신 커밋을 보려면 특정 리소스를 쿼리하고 metadata.annotations.configmanagement.gke.io/token을 확인합니다. 예를 들면 다음과 같습니다.

kubectl get clusterroles CLUSTER_ROLE_NAME -o yaml

CLUSTER_ROLE_NAME을 쿼리하려는 클러스터 역할의 이름으로 바꿉니다.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    configmanagement.gke.io/token: ed95b50dd918cf65d8908f7561cb8d8d1f179c2f

nomos 상태 플래그

nomos status을 맞춤설정하려면 다음 플래그를 추가합니다.

플래그 설명
--contexts 멀티 클러스터 명령어에 사용할 컨텍스트의 쉼표로 구분된 목록을 허용합니다. 기본값은 모든 컨텍스트입니다. 컨텍스트가 없으면 ""를 사용합니다.
-h 또는 --help nomos status 명령어의 도움말입니다.
--namespace 문자열을 허용합니다. 명령어를 특정 네임스페이스 저장소로 제한하려면 namespace 플래그를 사용합니다. 모든 저장소를 가져오려면 설정하지 않은 상태로 둡니다. 이 플래그는 여러 저장소에서 동기화를 사용 설정한 경우에만 사용할 수 있습니다.
--poll poll 플래그를 사용하여 nomos status를 연속으로 실행하고 정기적으로 상태 테이블을 다시 출력하도록 합니다. 예를 들면 3s와 같습니다. nomos status를 한 번 실행하려면 이 플래그를 설정하지 않은 상태로 둡니다.
--resources true 또는 false를 허용합니다. true면 여러 저장소에서 동기화할 때 nomos status가 루트 또는 네임스페이스 저장소의 리소스 수준 상태를 표시합니다. 기본값은 true입니다.
--timeout 각 클러스터에 연결할 때의 제한 시간입니다. 기본값은 3s입니다.

저장소에서 오류 검사

저장소에 구성을 커밋하려면 먼저 nomos vet 명령어를 사용하여 저장소에 있는 구성의 구문 및 유효성을 검사합니다.

nomos vet

구문 오류가 발견되면 nomos vet 명령어가 0이 아닌 상태로 종료되고 오류 메시지를 STDERR에 로깅합니다.

nomos vet 플래그

nomos vet을 맞춤설정하려면 다음 플래그를 추가합니다.

플래그 설명
--clusters 멀티 클러스터 명령어에 사용할 쉼표로 구분된 클러스터 이름 목록을 허용합니다. 기본값은 모든 클러스터입니다. 클러스터가 없는 경우 ""을 사용합니다.
-h 또는 --help nomos vet 명령어의 도움말입니다.
--namespace 문자열을 허용합니다. 설정된 경우 저장소를 이름이 제공된 네임스페이스 저장소로 검증합니다. --source-format=unstructured를 자동으로 설정합니다.
--no-api-server-check 부울을 허용합니다. true인 경우 검색을 위해 API 서버와 통신하지 않습니다. 이 플래그에 대한 자세한 내용은 서버 측 유효성 검사 섹션을 참조하세요.
--path 문자열을 허용합니다. 구성 동기화 저장소의 루트 디렉터리 경로입니다. 기본값은 '.'입니다.
--source-format hierarchy 또는 unstructured를 허용합니다. hierarchy이거나 설정되지 않은 경우 저장소를 계층적 저장소로 검증합니다. unstructured이면 저장소를 구조화되지 않은 저장소로 검증합니다. 구조화되지 않은 저장소를 사용하는 경우 이 플래그가 필요합니다.
--keep-output 부울을 허용합니다. true면 렌더링된 출력이 --output 플래그로 지정할 수 있는 위치에 저장됩니다. 이 플래그는 버전 1.9.0 이상에서 사용할 수 있습니다.
--output 문자열을 허용합니다. 렌더링된 출력의 경로입니다. 기본적으로 compiled 디렉터리로 지정됩니다. --keep-output false로 설정되었으면 이 플래그가 무시됩니다. 이 플래그는 버전 1.9.0 이상에서 사용할 수 있습니다.
--format yaml 또는 json를 허용합니다. 출력의 형식입니다. 기본값은 yaml입니다. 이 플래그는 버전 1.9.0 이상에서 사용할 수 있습니다.

서버 측 유효성 검사

nomos vet에서 유형이 네임스페이스인지 여부를 판별할 수 없는 경우 nomos는 API 서버에 연결합니다. nomos는 기본적으로 핵심 Kubernetes 유형 및 Config Sync CRD를 이해하므로 해당하는 선언된 CRD가 없는 CR이 있는 경우에만 API 서버에 연결을 시도합니다. 이 경우 API 서버에 CRD가 적용되지 않으면 nomos vet오류를 반환합니다. 이 점검을 사용 불가능하게 하고 누락된 CRD로 인한 오류를 억제하려면 --no-api-server-check 플래그를 전달하세요.

API 서버 메타데이터 캐싱

API 서버 검사를 숨기는 대신 nomos vet에 대해 API 서버의 데이터를 캐시할 수 있습니다. api-resources를 캐시하려면 다음 단계를 완료하세요.

  1. 저장소에 필요한 모든 CRD가 있는 클러스터에 연결합니다. 클러스터에서 구성 동기화를 사용 설정하지 않아도 됩니다.
  2. 저장소의 policyDir로 이동합니다. 이는 ConfigManagement 또는 RootSync 리소스에 지정된 디렉터리와 동일합니다.
  3. 다음 명령어를 실행합니다. kubectl api-resources > api-resources.txt 이 명령어는 kubectl api-resources의 정확한 출력을 포함하는 api-resources.txt라는 파일을 만듭니다.

이제부터 저장소 내 nomos vet를 실행하면 해당 유형 정의를 인식합니다. api-resources.txt 파일이 삭제되거나 이름이 변경된 경우 nomos vet는 파일을 찾을 수 없습니다. nomos vet--no-api-server-check가 전달되지 않는 한 api-resources.txt에 선언되지 않은 유형의 매니페스트를 찾을 경우 클러스터에 연결을 시도합니다.

api-resources.txt 파일은 nomos CLI 작동 방식에만 영향을 줍니다. 구성 동기화의 동작은 어떤 방식으로도 수정되지 않습니다.

유효성 검사 중인 저장소에 없는 유형의 경우 api-resources.txt 파일에 추가 항목이 있어도 괜찮습니다. nomos vet는 정의를 가져오지만 결합은 수행하지 않습니다.

api-resources.txt 업데이트

원하는 모든 CRD가 클러스터에 있는지 확인한 후 다음 명령어를 실행합니다.

kubectl api-resources > api-resources.txt

커밋할 때 구문 오류 자동 검사

JSON 또는 YAML 오류로 파일을 커밋하면 Config Sync가 변경사항을 적용하지 않습니다. 그러나 클라이언트 측 또는 서버 측 후크를 사용하면 저장소에 이러한 유형의 오류가 발생하지 않도록 방지할 수 있습니다.

Git 커밋 전 후크에서 nomos vet 사용

저장소의 로컬 Git 클론에 변경사항을 커밋할 때 구문 오류를 검사하도록 nomos vet를 실행하는 커밋 전 후크를 구성할 수 있습니다. 커밋 전 후크가 0이 아닌 상태로 종료되면 git commit 작업이 실패합니다.

nomos vet 명령어를 커밋 전 후크로 실행하려면 저장소에서 .git/hooks/pre-commit 파일을 수정합니다(.git. 문자로 시작됨). 이 파일을 수동으로 만들어야 할 수도 있습니다. 스크립트에서 새 줄에 nomos vet 명령어를 추가합니다. --path 인수는 선택사항입니다.

nomos vet --path=/path/to/repo

pre-commit 파일이 실행 가능한지 확인합니다.

chmod +x .git/hooks/pre-commit

이제 저장소 클론에서 git commit 명령어를 실행하면 nomos vet가 자동으로 실행됩니다.

저장소의 .git/ 디렉터리 콘텐츠는 저장소 자체에서 추적되지 않으며, 동일한 위치에 있는 저장소에 커밋될 수 없습니다. 저장소에 Git 후크용 디렉터리를 만들 수 있으며, 이 저장소를 사용하는 사용자는 후크를 자신의 로컬 복제본의 적절한 위치에 복사할 수 있습니다.

서버 측 후크에서 nomos vet 사용

Git은 git push 작업 중에 클라이언트가 아닌 서버에서 검사를 실행하는 메커니즘을 제공합니다. 검사가 실패하면 git push도 실패합니다. 이러한 서버 측 후크는 클라이언트에서 우회될 수 없습니다. 서버 측 후크를 구성하는 방법은 Git 서버가 호스팅된 방식에 따라 다릅니다. 자세한 내용은 다음 링크 중 하나를 참조하거나 Git 호스팅 서비스 관련 문서를 확인하세요.

저장소의 모든 구성 보기

nomos hydrate 명령어를 사용하여 등록된 각 클러스터에 있는 저장소의 조합된 콘텐츠를 볼 수 있습니다.

옵션 없이 nomos hydrate를 실행하면 현재 작업 디렉터리에 compiled/ 디렉터리가 생성됩니다. 이 디렉터리 내에서 등록된 각 클러스터에 대해 하위 디렉터리가 생성되고, Operator가 클러스터에 적용하는 완전히 해결된 구성이 포함됩니다.

이 명령어는 compiled/ 디렉터리의 콘텐츠를 사용하여 계층적 저장소를 하나 이상의 구조화되지 않은 저장소로 변환하는 데도 사용할 수 있습니다.

nomos hydrate 플래그

nomos hydrate를 맞춤설정하려면 다음 플래그를 추가합니다.

플래그 설명
--clusters 쉼표로 구분된 클러스터 이름 목록을 허용합니다. 이 플래그를 사용하여 출력을 단일 클러스터 또는 클러스터 목록으로 제한합니다. 기본값은 모든 클러스터입니다. 클러스터가 없는 경우 ""을 사용합니다.
--flat 사용 설정하면 모든 출력을 단일 파일로 출력합니다. nomos view의 동작을 에뮬레이션하려면 이 플래그를 사용합니다.
-h 또는 --help nomos hydrate 명령어의 도움말입니다.
--format yaml 또는 json을 허용합니다. 출력의 형식입니다. 기본값은 yaml입니다. 이 플래그는 버전 1.9.0 이상에서 사용할 수 있습니다.
--no-api-server-check 부울을 허용합니다. true인 경우 검색을 위해 API 서버와 통신하지 않습니다. 이 플래그에 대한 자세한 내용은 서버 측 유효성 검사 섹션을 참조하세요.
--output 문자열을 허용합니다. 하이드레이션 구성을 작성할 위치입니다. 기본값은 compiled 디렉터리입니다. --flat이 사용 설정되어 있지 않으면 각 리소스 매니페스트를 별도의 파일로 작성합니다. --flat이 사용 설정된 경우 모든 리소스 매니페스트를 포함하는 단일 파일을 작성합니다.
--path 문자열을 허용합니다. 구성 동기화 저장소의 루트 디렉터리 경로입니다. 기본값은 '.'입니다.
--source-format hierarchy 또는 unstructured를 허용합니다. hierarchy이거나 설정되지 않은 경우 저장소를 계층적 저장소로 검증합니다. unstructured이면 저장소를 구조화되지 않은 저장소로 검증합니다. 이 플래그는 구조화되지 않은 저장소를 사용하는 경우에 필요하고, 버전 1.9.0 이상에서 제공됩니다.

nomos view

Config Sync가 저장소에서 구성을 가져오면 구성이 ClusterConfig 또는 NamespaceConfig 유형의 CustomResourceDefinition(CRD)로 변환됩니다. nomos view 명령어를 사용하면 저장소의 현재 상태로부터 발생한 CRD를 JSON 형식으로 볼 수 있습니다. 이를 통해 변경사항을 커밋하기 전에 또는 nomos vet 명령어를 사용해도 명확하게 밝혀지지 않은 구성 문제를 디버깅할 수 있습니다.

nomos view --path=/path/to/your/repo

버그 신고 작성

Google Cloud 지원의 도움이 필요한 구성 동기화 문제가 있는 경우 nomos bugreport 명령어를 사용하여 유용한 디버깅 정보를 제공할 수 있습니다. 단일 저장소 및 여러 저장소에 이 명령어를 사용할 수 있습니다.

nomos bugreport

이 명령어는 kubectl 컨텍스트에서 설정된 Kubernetes 클러스터에 대한 정보가 있는 타임스탬프 zip 파일을 생성합니다. 이 파일에는 또한 구성 동기화 포드의 로그가 포함됩니다. 구성 동기화로 동기화된 리소스의 정보는 포함되지 않습니다.

ConfigManagement 객체에서 RootSync 객체로 마이그레이션

nomos migrate를 실행하여 ConfigManagement 객체에서 루트Sync 객체로 마이그레이션하여 RootSyncRepoSync API를 사용 설정할 수 있습니다. 이 명령어는 nomos 버전 1.10.0 이상에서 사용할 수 있습니다.

nomos migrate는 마이그레이션 프로세스 미리보기를 위한 테스트 실행을 지원합니다.

nomos migrate --dry-run

테스트 실행 결과가 적합하면 nomos migrate를 사용하여 ConfigManagement 객체를 마이그레이션할 수 있습니다.

nomos migrate

출력은 다음과 비슷합니다.

--------------------
Enabling the multi-repo mode on cluster "my_managed_cluster-1" ...
- A RootSync object is generated and saved in "/tmp/nomos-migrate/my_managed_cluster-1/root-sync.yaml".
- The original ConfigManagement object is saved in "/tmp/nomos-migrate/my_managed_cluster-1/cm-original.yaml".
- The ConfigManagement object is updated and saved in "/tmp/nomos-migrate/my_managed_cluster-1/cm-multi.yaml".
- Resources for the multi-repo mode have been saved in a temp folder. If the migration process is terminated, it can be recovered manually by running the following commands:
  kubectl apply -f /tmp/nomos-migrate/my_managed_cluster-1/cm-multi.yaml && \
  kubectl wait --for condition=established crd rootsyncs.configsync.gke.io && \
  kubectl apply -f /tmp/nomos-migrate/my_managed_cluster-1/root-sync.yaml.
- Updating the ConfigManagement object ....
- Waiting for the RootSync CRD to be established ....
- The RootSync CRD has been established.
- Creating the RootSync object ....
- Waiting for the reconciler-manager Pod to be ready ....
-   Haven't detected running Pods with the label selector "app=reconciler-manager".
-   Haven't detected running Pods with the label selector "app=reconciler-manager".
-   Haven't detected running Pods with the label selector "app=reconciler-manager".
- The reconciler-manager Pod is running.
- Waiting for the root-reconciler Pod to be ready ....
-   Haven't detected running Pods with the label selector "configsync.gke.io/reconciler=root-reconciler".
-   Haven't detected running Pods with the label selector "configsync.gke.io/reconciler=root-reconciler".
-   Haven't detected running Pods with the label selector "configsync.gke.io/reconciler=root-reconciler".
- The root-reconciler Pod is running.
- The migration process is done. Please check the sync status with `nomos status`.

Finished migration on all the contexts. Please check the sync status with `nomos status`.

nomos 마이그레이션 플래그

nomos migrate를 맞춤설정하려면 다음 플래그를 추가합니다.

플래그 설명
--connect-timeout 기간을 허용합니다. 각 클러스터에 연결할 때의 제한 시간입니다. 기본값은 3s입니다.
--contexts 멀티 클러스터 환경에 사용할 컨텍스트의 쉼표로 구분된 목록을 허용합니다. 현재 컨텍스트에 대한 기본값입니다. 모든 컨텍스트에 "all"을 사용합니다.
--dry-run 부울을 허용합니다. true이면 마이그레이션 출력만 출력합니다.
-h 또는 --help nomos migrate 명령어의 도움말입니다.
--wait-timeout 기간을 허용합니다. Kubernetes 리소스의 조건이 true가 될 때까지 기다리는 제한 시간입니다. 기본값은 10m입니다.

계층적 저장소 초기화

구조화되지 않은 저장소를 사용하는 경우 저장소를 임의로 구성할 수 있습니다. 계층적 저장소를 사용하는 경우 nomos init 명령어를 실행하여 계층적 디렉터리를 초기화해야 합니다.

nomos init

그러면 system/, cluster/, namespaces/ 디렉터리를 포함하여 계층적 저장소의 기본 디렉터리 구조가 생성됩니다.

nomos init 플래그

nomos init를 맞춤설정하려면 다음 플래그를 추가합니다.

플래그 설명
--force 비어 있지 않은 경우에도 디렉터리에 기록하여 충돌 파일을 덮어씁니다.
-h 또는 --help nomos init 명령어의 도움말입니다.
--path 문자열을 허용합니다. Anthos Config Management 저장소에 사용할 루트 디렉터리입니다. 기본값은 "."입니다.

문제 해결

Linux에서는 nomos 명령어를 실행할 때 다음 오류가 표시될 수 있습니다.

failed to create client configs: while getting config path: failed to get current user: user: Current not implemented on linux/amd64

이 문제를 해결하려면 USER 환경 변수를 만듭니다.

export USER=$(whoami)

다음 단계