{{ define "linux-mac-common" }} {{ if .IDPCaURI }}
Copy this CA Certificate and download it to your .kube directory
curl --create-dirs -s {{ .IDPCaURI }} -o ${HOME}/.kube/certs/{{ .ClusterName }}/idp-ca.crt
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
Copy this CA Certificate and download it to your .kube directory
curl --create-dirs -s {{ .K8sCaURI }} -o ${HOME}/.kube/certs/{{ .ClusterName }}/k8s-ca.crt
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
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 }}{{ if .Namespace }} --namespace={{ .Namespace }}{{ end }} \
--user={{ .Username}}-{{.ClusterName }}
kubectl config use-context {{ if not .StaticContextName }}{{ .Username }}-{{ end }}{{ .ClusterName}}