[英]k8s go client: how to pass a v1.Deployment type to a function
I'm new to go and playing with k8s go-client.我是 go 和使用 k8s go-client 的新手。 I'd like to pass items from deploymentsClient.List(metav1.ListOptions{})
to a funcion.我想将deploymentsClient.List(metav1.ListOptions{})
中的项目传递给函数。 fmt.Printf("%T\n", deploy)
says it's type v1.Deployment
. fmt.Printf("%T\n", deploy)
说它是v1.Deployment
类型。 So I write a function that takes (deploy *v1.Deployment)
and pass it &deploy
where deploy is an item in the deploymentsClient.List
.所以我写了一个 function ,它接受(deploy *v1.Deployment)
并传递它&deploy
其中 deploy 是deploymentsClient.List
中的一个项目。 This errors with cmd/list.go:136:38: undefined: v1
however.这个错误与cmd/list.go:136:38: undefined: v1
然而。 What am I doing wrong?我究竟做错了什么?
Here are my imports这是我的进口
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"
)
Then I get the list of deployments:然后我得到部署列表:
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)
}
You need to import "k8s.io/api/apps/v1", Deployment is defined in the package.您需要导入“k8s.io/api/apps/v1”,部署在package中定义。 See https://godoc.org/k8s.io/api/apps/v1 .请参阅https://godoc.org/k8s.io/api/apps/v1 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.