Argo CD Go 패키지 가져오기

Argo CD Go 패키지 가져오기 (Importing Argo CD go packages)

자신의 프로젝트에 Argo CD 패키지를 가져올 때 의존성 다운로드 중 "unknown revision v0.0.0" 같은 오류가 발생할 수 있습니다. 이는 Argo CD가 go.mod에 unknown v0.0.0 버전이 있는 일부 Kubernetes 패키지에 직접 의존하기 때문입니다. 해결 방법은 Argo CD 버전의 go.mod와 동일한 replace 섹션을 자신의 go.mod에 추가하는 것입니다.

출처: 문서

본문

Argo CD go 패키지 가져오기

문제(Issue)

자신의 프로젝트에 Argo CD 패키지를 가져올 때 의존성을 다운로드하는 동안 "unknown revision v0.0.0" 같은 일부 오류가 발생할 수 있습니다. 이는 Argo CD가 go.mod에 이러한 unknown v0.0.0 버전이 있는 일부 Kubernetes 패키지에 직접 의존하기 때문입니다.

해결책(Solution)

해당 Argo CD 버전의 go.mod의 replace 섹션과 동일한 replace 섹션을 자신의 go.mod에 추가하세요. 특정 버전의 go.mod를 찾으려면 Argo CD 저장소로 이동해 switch branches/tags 드롭다운을 클릭해 찾는 버전을 선택하세요. 이제 다른 모든 파일과 함께 특정 버전의 go.mod 파일을 볼 수 있습니다.

예시(Example)

Argo CD v2.4.15를 사용한다면 go.mod에 다음이 포함되어야 합니다:

replace (
    // https://github.com/golang/go/issues/33546#issuecomment-519656923
    github.com/go-check/check => github.com/go-check/check v0.0.0-20180628173108-788fd7840127

    github.com/golang/protobuf => github.com/golang/protobuf v1.4.2
    github.com/gorilla/websocket => github.com/gorilla/websocket v1.4.2
    github.com/grpc-ecosystem/grpc-gateway => github.com/grpc-ecosystem/grpc-gateway v1.16.0
    github.com/improbable-eng/grpc-web => github.com/improbable-eng/grpc-web v0.0.0-20181111100011-16092bd1d58a

    // Avoid CVE-2022-28948
    gopkg.in/yaml.v3 => gopkg.in/yaml.v3 v3.0.1

    // https://github.com/kubernetes/kubernetes/issues/79384#issuecomment-505627280
    k8s.io/api => k8s.io/api v0.23.1
    k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.23.1
    k8s.io/apimachinery => k8s.io/apimachinery v0.23.1
    k8s.io/apiserver => k8s.io/apiserver v0.23.1
    k8s.io/cli-runtime => k8s.io/cli-runtime v0.23.1
    k8s.io/client-go => k8s.io/client-go v0.23.1
    k8s.io/cloud-provider => k8s.io/cloud-provider v0.23.1
    k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.23.1
    k8s.io/code-generator => k8s.io/code-generator v0.23.1
    k8s.io/component-base => k8s.io/component-base v0.23.1
    k8s.io/component-helpers => k8s.io/component-helpers v0.23.1
    k8s.io/controller-manager => k8s.io/controller-manager v0.23.1
    k8s.io/cri-api => k8s.io/cri-api v0.23.1
    k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.23.1
    k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.23.1
    k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.23.1
    k8s.io/kube-proxy => k8s.io/kube-proxy v0.23.1
    k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.23.1
    k8s.io/kubectl => k8s.io/kubectl v0.23.1
    k8s.io/kubelet => k8s.io/kubelet v0.23.1
    k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.23.1
    k8s.io/metrics => k8s.io/metrics v0.23.1
    k8s.io/mount-utils => k8s.io/mount-utils v0.23.1
    k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.23.1
    k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.23.1
)

더 알아보기 (Learn more)