【go】模板展示不同k8s命名空间的deployment
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
函数中初始化了这些结构体的实例,最后将它们作为模板的输入执行模板渲染。如果执行成功,将按照模板定义的格式输出命名空间和其中的部署名称。如果执行失败,则打印错误信息。
评论已关闭