登录
首页 >  Golang >  Go问答

使用 Kubernetes go 客户端的部署列表的返回类型

来源:stackoverflow

时间:2024-04-07 22:09:36 409浏览 收藏

哈喽!今天心血来潮给大家带来了《使用 Kubernetes go 客户端的部署列表的返回类型》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

package main

    import (
          "fmt"
        "html/template"
        "net/http"
        "os"
        log "github.com/kubernetes/klog"
        "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/client-go/kubernetes"
        "k8s.io/client-go/tools/clientcmd"
    )


    type NamespaceDetails struct { //namespace details struct
        Namespace []string
    }


    var templates = template.Must(template.ParseGlob("./*.html"))         
    var microservice = "/microservice/"
    var detailed_view = "/detailed/"
    var kube_config_path = os.Getenv("HOME")+"/.kube/config"
    var config, _ = clientcmd.BuildConfigFromFlags("", kube_config_path)
    var clientset,_ = kubernetes.NewForConfig(config)                              
   var NamespaceClient, _ = clientset.CoreV1().Namespaces().List(v1.ListOptions{}) 

    func main() {
        http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))
        http.Handle("/jpeg/", http.StripPrefix("/jpeg/", http.FileServer(http.Dir("css"))))
        http.HandleFunc("/", Homepage)             // calling homepage function at '/' url
        http.HandleFunc(microservice, Deployments) //calling Deployments function at '/microserivce/' url
        http.HandleFunc(detailed_view, DetailedView)
        // http.HandleFunc("/onlyme", onlyme)
        http.ListenAndServe(":8801", nil) // server runs at this port
    }


    func Homepage(w http.ResponseWriter, r *http.Request) {
        NamespaceStruct := NamespaceDetails{}
        for _, Namespaces := range NamespaceClient.Items {
            log.V(5).Info("inside namespace items loop in homepage")
            NamespaceStruct.Namespace = append(NamespaceStruct.Namespace, Namespaces.Name)
        }
                templates.ExecuteTemplate(w, "homepage2.html", NamespaceStruct)
    }

    func deployments(namespace string)(*"k8s.io/api/apps/v1".DeploymentList, error){
        return  clientset.AppsV1().Deployments(namespace).List(v1.ListOptions{})
    }

当我尝试运行此代码时,出现错误:

语法错误:意外的文字“k8s.io/api/apps/v1”,期望类型

我想使用deploymnets函数返回部署列表。我不知道要使用什么返回类型才能成功返回部署列表。


解决方案


这是无效语法:

func deployments(namespace string)(*"k8s.io/api/apps/v1".deploymentlist, error){

这是正确的语法:

func deployments(namespace string)(*v1.deploymentlist, error){

但是,您已经导入了另一个 v1 包,因此您必须使用不同的别名导入该包,并使用该名称,

在导入中添加此行

v2 "k8s.io/api/apps/v1"

并更新函数参数如下

func deployments(namespace string)(*v2.deploymentlist, error){

如果您正在寻找 podslist/namespacelist

import  v3 "k8s.io/api/core/v1"

并将函数更新为,

func func_name (input paramteters)(*v3.NamespaceList/PodList , error){

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《使用 Kubernetes go 客户端的部署列表的返回类型》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>