簡體   English   中英

修訂版 v0.0.0:未知 go 獲取 k8s.io/kube.netes

[英]Revision v0.0.0: Unknown for go get k8s.io/kubernetes

我該如何解決這個問題?

$ go mod init
$ go get k8s.io/kubernetes@v1.15.5
go: k8s.io/kubernetes@v1.15.5 requires
        k8s.io/api@v0.0.0: reading k8s.io/api/go.mod at revision v0.0.0: unknown revision v0.0.0

環境是:
go 1.13
ubuntu 16.04

由於通過在評論中提供鏈接解決了問題,因此我將其復制到此處。

此處解釋了該問題: Github 問題

我鼓勵查看的另一個鏈接: Github Issue #2

Go 到版本 go1.16.7 linux/amd64。

出現此問題是因為 kube.netes 的依賴項需要不存在的 k8s.io/api v0.0.0- https://github.com/kube.netes/kube.netes/blob/ddc4ed03657d6c8c009a5d915265d00cadcb634c/go.mod#L155

所以我們必須找到我們需要的特定版本這個依賴列表為我解決了問題。

require github.com/GoogleCloudPlatform/spark-on-k8s-operator v0.0.0-20210902044020-c6c97a176521

replace (
    k8s.io/api => k8s.io/api v0.19.6
    k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.19.6
    k8s.io/apimachinery => k8s.io/apimachinery v0.19.6
    k8s.io/apiserver => k8s.io/apiserver v0.19.6
    k8s.io/cli-runtime => k8s.io/cli-runtime v0.19.6
    k8s.io/client-go => k8s.io/client-go v0.19.6
    k8s.io/cloud-provider => k8s.io/cloud-provider v0.19.6
    k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.19.6
    k8s.io/code-generator => k8s.io/code-generator v0.19.6
    k8s.io/component-base => k8s.io/component-base v0.19.6
    k8s.io/cri-api => k8s.io/cri-api v0.19.6
    k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.19.6
    k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.19.6
    k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.19.6
    k8s.io/kube-proxy => k8s.io/kube-proxy v0.19.6
    k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.19.6
    k8s.io/kubectl => k8s.io/kubectl v0.19.6
    k8s.io/kubelet => k8s.io/kubelet v0.19.6
    k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.19.6
    k8s.io/metrics => k8s.io/metrics v0.19.6
    k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.19.6
)

運行以下腳本后我能夠運行它:

#!/bin/bash

VERSION=${1#"v"}
echo $VERSION
if [ -z "$VERSION" ]; then
  echo "Please specify the Kubernetes version: e.g."
  echo "./download-deps.sh v1.21.0"
  exit 1
fi

set -euo pipefail

# Find out all the replaced imports, make a list of them.
MODS=($(
  curl -sS "https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.24/go.mod" |
    sed -n 's|.*k8s.io/\(.*\) => ./staging/src/k8s.io/.*|k8s.io/\1|p'
))

# Now add those similar replace statements in the local go.mod file, but first find the version that
# the Kubernetes is using for them.
for MOD in "${MODS[@]}"; do
echo "Download $MOD"
  V=$(
    go mod download -json "${MOD}@kubernetes-${VERSION}" |
      sed -n 's|.*"Version": "\(.*\)".*|\1|p'
  )

  go mod edit "-replace=${MOD}=${MOD}@${V}"
done

go get "k8s.io/kubernetes@v${VERSION}"
go mod download
echo "done"

使用腳本運行並傳遞版本,如“v1.24.0”

更多詳情: https://suraj.io/post/2021/05/k8s-import/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM