2016-09-07 19 views
2

私たちはKubernetesクラスターと話をし、公開されているサービスのIPをフェッチします。私たちは、そのようにそれを実行します。K8s Goクライアントライブラリでパッケージを見つけることができません

(import "gopkg.in/kubernetes/kubernetes.v1/pkg/client/restclient") 
(import kubectl "gopkg.in/kubernetes/kubernetes.v1/pkg/client/unversioned") 

svc, err := c.Services(k8sNS).Get(svcName) 
if err != nil { 
    panic(l.Errorf("Could not retrieve svc details. %s", err.Error())) 
} 
svcIP := svc.Status.LoadBalancer.Ingress[0].IP 

go getは正常に動作し、我々はgo run ...を行うときに私たちのスクリプトが実行され、誰もが幸せです。さて、同じスクリプトで昨日(この質問が投稿された時点から) - go getは失敗します。エラーはそうのようなものです:私たちは、特に我々のコードでauthenticationパッケージを使用していない

[09.07.2016 10:56 AM]$ go get 
package k8s.io/kubernetes/pkg/apis/authentication.k8s.io/install: cannot find package "k8s.io/kubernetes/pkg/apis/authentication.k8s.io/install" in any of: 
     /usr/local/go/src/k8s.io/kubernetes/pkg/apis/authentication.k8s.io/install (from $GOROOT) 
     /home/ckotha/godir/src/k8s.io/kubernetes/pkg/apis/authentication.k8s.io/install (from $GOPATH) 

。 kubernetesライブラリを正しくインポートしていますか?これを行う別の方法はありますか?

$GOPATH/k8s.io/kubernetes/pkg/apis/ls、これが見つかりました:

:~/godir/src/k8s.io/kubernetes/pkg/apis 
[09.07.2016 10:53 AM]$ ls 
abac apps authentication authorization autoscaling batch certificates componentconfig extensions imagepolicy OWNERS policy rbac storage 

答えて

1

それはあなたが変更されたインポートされたパッケージのように見えますが。

既存のリポジトリを更新することができます。

go get -u 

-uフラグが指定された パッケージとその依存関係を更新するために、ネットワークを使用して取得指示します。デフォルトではgetはネットワークを使用して のパッケージをチェックアウトしますが、それを使って の既存パッケージのアップデートを検索しません。 gopkg.inパッケージセレクタを許可していないので、これは動作しません。例えば、v1.3.6(EDITをあなたがV1にバージョンを固定するためにgopkg.ioを使うのですが、私はあなたがより具体的にしたいと思います

メジャーバージョンよりも具体的です)。

また、コードが同じであることを確認する良い方法は、go runではなく、バイナリをコンパイルして実行することです。

+0

Markさんに感謝します。私はそれを早く、無駄に試していた。私はすべてのk8s.io/ディレクトリ構造を削除してスクリプトを実行しようとしましたが、それでも失敗しました。いくつかの依存関係は 'authentication/install'の代わりに' authentication.k8s.io/install'を参照しています。 – chetan

関連する問題