简体   繁体   English

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM