continuos deploy
This commit is contained in:
45
.gitea/actions/kubectl-setup/action.yml
Normal file
45
.gitea/actions/kubectl-setup/action.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
name: Setup kubectl
|
||||
description: "Reads kube config from inputs and sets KUBECONFIG"
|
||||
|
||||
inputs:
|
||||
kube_server:
|
||||
description: "Kubernetes API server address"
|
||||
required: true
|
||||
kube_ca_base64:
|
||||
description: "Base64-encoded CA certificate"
|
||||
required: true
|
||||
kube_token:
|
||||
description: "ServiceAccount token"
|
||||
required: true
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Create kubeconfig
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
mkdir -p "${GITHUB_TEMP}/.kube"
|
||||
|
||||
cat <<EOF > "${GITHUB_TEMP}/.kube/config"
|
||||
apiVersion: v1
|
||||
kind: Config
|
||||
clusters:
|
||||
- cluster:
|
||||
certificate-authority-data: ${{ inputs.kube_ca_base64 }}
|
||||
server: ${{ inputs.kube_server }}
|
||||
name: cluster
|
||||
contexts:
|
||||
- context:
|
||||
cluster: cluster
|
||||
namespace: default
|
||||
user: user
|
||||
name: context
|
||||
current-context: context
|
||||
users:
|
||||
- name: user
|
||||
user:
|
||||
token: ${{ inputs.kube_token }}
|
||||
EOF
|
||||
|
||||
echo "KUBECONFIG=${GITHUB_TEMP}/.kube/config" >> "${GITHUB_ENV}"
|
||||
35
.gitea/workflows/deploy.yaml
Normal file
35
.gitea/workflows/deploy.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
name: Casa Home Assistant CI/CD Pipeline
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: mf-casa-vlan-cid-runner
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup kubectl
|
||||
uses: ./.github/actions/kubectl-setup
|
||||
with:
|
||||
kube_server: ${{ secrets.casa_vlan_kube_server }}
|
||||
kube_ca_base64: ${{ secrets.casa_vlan_kube_ca_base64 }}
|
||||
kube_token: ${{ secrets.casa_vlan_kube_token }}
|
||||
|
||||
- name: Deploy Home Assistant
|
||||
shell: bash
|
||||
run: |
|
||||
set -e
|
||||
cd ${{ gitea.workspace }}
|
||||
export ENDPOINT_IP="${{ secrets.ENDPOINT_IP }}"
|
||||
export SERVICE_PORT=${{ secrets.SERVICE_PORT }}
|
||||
export INGRESS_ROUTES_MATCH="${{ secrets.INGRESS_ROUTES_MATCH }}"
|
||||
export INGRESS_TLS_SECRET_NAME=${{ secrets.INGRESS_TLS_SECRET_NAME }}
|
||||
kubectl apply -f ./deploy/deployment.yaml
|
||||
envsubst < ./deploy/service.template.yaml | kubectl apply -f -
|
||||
|
||||
|
||||
Reference in New Issue
Block a user