Files

35 lines
1.1 KiB
YAML

name: Configure Kubectl
description: Configure kubectl for use with Kubernetes
inputs:
K8S_CONFIG:
description: "The base64-encoded Kubernetes config"
required: true
K8S_NAMESPACE:
description: "The K8S namespace"
required: true
K8S_CONTEXT:
description: "The K8S context"
required: true
runs:
using: composite
steps:
- name: Mask kubeconfig
shell: sh
env:
K8S_CONFIG: ${{ inputs.K8S_CONFIG }}
run: echo "::add-mask::$K8S_CONFIG"
- name: Configure kubectl
shell: sh
env:
K8S_CONFIG: ${{ inputs.K8S_CONFIG }}
run: |
echo "Configuring kubectl for context=${{ inputs.K8S_CONTEXT }} namespace=${{ inputs.K8S_NAMESPACE }}"
rm -f ~/.kube/config
mkdir -p ~/.kube
printf '%s' "$K8S_CONFIG" | base64 -d > ~/.kube/config
kubectl config set-context ${{ inputs.K8S_CONTEXT }} --cluster=${{ inputs.K8S_CONTEXT }} --namespace=${{ inputs.K8S_NAMESPACE }}
kubectl config use-context ${{ inputs.K8S_CONTEXT }}
echo "kubectl configured successfully"