{{ define "windows-tab-content" }}

Install and Set Up kubectl

See https://kubernetes.io/docs/tasks/tools/install-kubectl {{ if .KubectlVersion }}

Download kubectl: https://storage.googleapis.com/kubernetes-release/release/{{.KubectlVersion}}/bin/windows/amd64/kubectl.exe

{{ end }}
{{ if .IDPCaURI }}

Copy IDP CA Certificate From URL

Copy this CA Certificate and download it to your .kube directory

curl --create-dirs -s {{ .IDPCaURI }} -o ${HOME}/.kube/certs/{{ .ClusterName }}/idp-ca.crt
{{ end }} {{ if .IDPCaPem }}

Copy IDP CA From Pem

Put the CA Certificate into your .kube directory

mkdir -p ${HOME}/.kube/certs/{{ .ClusterName }}/ && cat << EOF > ${HOME}/.kube/certs/{{ .ClusterName }}/idp-ca.crt
{{ .IDPCaPem}}
EOF
{{ end }} {{ if .K8sCaURI }}

Copy Kubernetes CA Certificate From URL

Copy this CA Certificate and download it to your .kube directory

curl --create-dirs -s {{ .K8sCaURI }} -o ${HOME}/.kube/certs/{{ .ClusterName }}/k8s-ca.crt
{{ end }} {{ if .K8sCaPem }}

Copy Kubernetes CA Certificate From PEM

Put the CA Certificate into your .kube directory

mkdir -p ${HOME}/.kube/certs/{{ .ClusterName }}/ && cat << EOF > ${HOME}/.kube/certs/{{ .ClusterName }}/k8s-ca.crt
{{ .K8sCaPem }}
EOF
{{ end }}

Run configuration commands

These commands will update ~/.kube/config

kubectl config set-cluster {{ .ClusterName }}
    {{- if or .K8sCaPem .K8sCaURI }} --certificate-authority=${HOME}/.kube/certs/{{ .ClusterName}}/k8s-ca.crt
    {{- end }} --server={{ .K8sMasterURI }}
kubectl config set-credentials {{ .Username }}-{{ .ClusterName }} --auth-provider=oidc --auth-provider-arg=idp-issuer-url={{ .Issuer }} --auth-provider-arg=client-id={{ .ClientID }} --auth-provider-arg=client-secret={{ .ClientSecret }} --auth-provider-arg=refresh-token={{ .RefreshToken }} --auth-provider-arg=id-token={{ .IDToken }}
  {{- if or (.IDPCaURI) (.IDPCaPem) }} --auth-provider-arg=idp-certificate-authority=${HOME}/.kube/certs/{{ .ClusterName }}/idp-ca.crt
  {{- end }}
kubectl config set-context {{ if not .StaticContextName }}{{ .Username }}-{{ end }}{{ .ClusterName }} --cluster={{ .ClusterName }} --user={{ .Username}}-{{.ClusterName }}
kubectl config use-context {{ if not .StaticContextName }}{{ .Username }}-{{ end }}{{ .ClusterName}}
{{ end }}