k8s go客户端:如何将v1.Deployment类型传递给函数

k8s go客户端:如何将v1.Deployment类型传递给函数,go,kubernetes,Go,Kubernetes,我是新来的,和k8s go客户一起玩。我想将项目从deploymentsClient.List(metav1.ListOptions{})传递到函数fmt.Printf(“%T\n”,deploy)表示它是类型v1.Deployment。因此,我编写了一个函数,它接受(deploy*v1.Deployment)并将其传递给&deploy,其中deploy是部署客户端列表中的一项。但是,cmd/list.go:136:38:undefined:v1出现错误。我做错了什么 这是我的进口货 impor

我是新来的,和k8s go客户一起玩。我想将项目从
deploymentsClient.List(metav1.ListOptions{})
传递到函数
fmt.Printf(“%T\n”,deploy)
表示它是类型
v1.Deployment
。因此,我编写了一个函数,它接受
(deploy*v1.Deployment)
并将其传递给
&deploy
,其中deploy是
部署客户端列表中的一项。但是,
cmd/list.go:136:38:undefined:v1出现错误。我做错了什么

这是我的进口货

import (
    //  "encoding/json"
    "flag"
    "fmt"
    //yaml "github.com/ghodss/yaml"
    "github.com/spf13/cobra"
    // "k8s.io/apimachinery/pkg/api/errors"
    metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    "k8s.io/client-go/kubernetes"
    "k8s.io/client-go/tools/clientcmd"
    "os"
    "path/filepath"
)
然后我会得到部署列表:

    deploymentsClient := clientset.AppsV1().Deployments(ns)
    deployments, err := deploymentsClient.List(metav1.ListOptions{})
    if err != nil {
        panic(err.Error())
    }
    for _, deploy := range deployments.Items {
        fmt.Println(deploy.ObjectMeta.SelfLink)
        //      printDeploymentSpecJson(deploy)
        //      printDeploymentSpecYaml(deploy)

    }

您需要导入“k8s.io/api/apps/v1”,部署在包中定义。请参阅。

v1
来自哪里?您导入了吗?您没有将模块作为v1导入。如果我将类型更改为
*metav1.Deployment
我会得到错误
cmd/list。go:141:38:未定义:“k8s.io/apimachinery/pkg/api/meta/v1”。Deployment