登录
首页 >  Golang >  Go问答

go 中列出服务

来源:stackoverflow

时间:2024-04-07 09:12:34 247浏览 收藏

从现在开始,努力学习吧!本文《go 中列出服务》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我正在尝试列出 knative (v0.17.0) services,我有一个 clientset 但我不知道从哪里开始。 这是我为测试而启动的服务:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
  name: "helloworld"
spec:
  runLatest:
    configuration:
      revisionTemplate:
        spec:
          container:
            image: "gcr.io/knative-samples/helloworld-go"
            env:
              - name: "TARGET"
                value: "world"

如果您有任何建议、教程或示例,那就太好了


解决方案


基于适用于 1.18 后客户端的 this gistServing clientset godoc

import (
  "context"
  "fmt"
  metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
  "k8s.io/client-go/tools/clientcmd"
  servingv1 "knative.dev/serving/pkg/client/clientset/versioned/typed/serving/v1"
}

func doit() error {
  config, err := clientcmd.buildconfigfromflags("", "") // uses defaults
  if err != nil {
    return err
  }

  serving, err := servingv1.newforconfig(config)
  if err != nil {
    return err
  }

  // get services in the default namespace
  list, err := serving.services("default").list(context.background(), metav1.listoptions{})
  if err != nil {
    return err
  }
  // how to print them out.
  fmt.printf("there are %d services in the default namespace", len(list.items))
  for _, i := range list.items {
    fmt.printf("  > service %q", i.name)
  }
}

如果您想列出 knative 服务,那么您需要使用 api here

为了从此 yaml 获取配置,您可以在 env 列表中将它们设置为环境变量,然后在代码调用中设置:

os.GetEnv("TARGET")

现在使用 env 中的密钥和 api,您可以列出服务。

好了,本文到此结束,带大家了解了《go 中列出服务》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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