【go】模板展示不同k8s命名空间的deployment
    		       		warning:
    		            这篇文章距离上次修改已过438天,其中的内容可能已经有所变动。
    		        
        		                
                
package main
 
import (
    "fmt"
    "text/template"
)
 
const tmpl = `
{{- range . }}
Namespace: {{ .Namespace }}
{{- range .Deployments }}
    Deployment: {{ .Name }}
{{- end }}
{{- end }}
`
 
type Deployment struct {
    Name string
}
 
type Namespace struct {
    Namespace       string
    Deployments     []Deployment
}
 
func main() {
    namespaces := []Namespace{
        {
            Namespace: "kube-system",
            Deployments: []Deployment{
                {Name: "kube-dns"},
                {Name: "metrics-server"},
            },
        },
        {
            Namespace: "default",
            Deployments: []Deployment{
                {Name: "my-app"},
            },
        },
    }
 
    t := template.Must(template.New("k8s").Parse(tmpl))
    err := t.Execute(nil, namespaces)
    if err != nil {
        fmt.Println("Error executing template:", err)
    }
}这段代码定义了一个模板,该模板遍历一个包含Namespace和Deployment的Go语言切片,并以Kubernetes命名空间为单位展示其部署(Deployment)。然后定义了相应的结构体,并在main函数中初始化了这些结构体的实例,最后将它们作为模板的输入执行模板渲染。如果执行成功,将按照模板定义的格式输出命名空间和其中的部署名称。如果执行失败,则打印错误信息。
评论已关闭