nd002test/on-premise/main/rancher_v2.9.1/source/rancher-2.9.1/pkg/kubeconfig/templates.go

75 lines
1.3 KiB
Go

package kubeconfig
import "html/template"
const (
tokenTemplateText = `apiVersion: v1
kind: Config
clusters:
{{- range .Nodes}}
- name: "{{.ClusterName}}"
cluster:
server: "{{.Server}}"
{{- if ne .Cert "" }}
certificate-authority-data: "{{.Cert}}"
{{- end }}
{{- end}}
users:
- name: "{{.User}}"
user:
{{- if .Token }}
token: "{{.Token}}"
{{ else }}
exec:
apiVersion: client.authentication.k8s.io/v1beta1
args:
- token
- --server={{.Host}}
- --user={{.User}}
{{- if .EndpointEnabled }}
- --cluster={{.ClusterID}}
{{- end }}
command: rancher
{{- end }}
contexts:
{{- range .Nodes}}
- name: "{{.ClusterName}}"
context:
user: "{{.User}}"
cluster: "{{.ClusterName}}"
{{- end}}
current-context: "{{.ClusterName}}"
`
basicTemplateText = `apiVersion: v1
kind: Config
clusters:
- name: "{{.ClusterName}}"
cluster:
server: "https://{{.Host}}"
api-version: v1
users:
- name: "{{.User}}"
user:
username: "{{.Username}}"
password: "{{.Password}}"
contexts:
- name: "{{.ClusterName}}"
context:
user: "{{.User}}"
cluster: "{{.ClusterName}}"
current-context: "{{.ClusterName}}"
`
)
var (
basicTemplate = template.Must(template.New("basicTemplate").Parse(basicTemplateText))
tokenTemplate = template.Must(template.New("tokenTemplate").Parse(tokenTemplateText))
)