Клиент k8s go: как передать тип v1.Deployment в функцию - PullRequest
2 голосов
/ 20 октября 2019

Я новичок в игре с k8s go-client. Я бы хотел передать предметы из deploymentsClient.List(metav1.ListOptions{}) в функцию. fmt.Printf("%T\n", deploy) говорит, что это тип v1.Deployment. Поэтому я пишу функцию, которая принимает (deploy *v1.Deployment) и передает ее &deploy, где deploy это элемент в deploymentsClient.List. Это ошибки с 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)

    }

1 Ответ

2 голосов
/ 20 октября 2019

Вам необходимо импортировать «k8s.io/api/apps/v1», развертывание определяется в пакете. Смотри https://godoc.org/k8s.io/api/apps/v1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...