fix/cicd (#3)
Co-authored-by: Márcio Fernandes <marcio.fernandes@outlook.pt> Reviewed-on: #3
This commit was merged in pull request #3.
This commit is contained in:
@@ -1,45 +0,0 @@
|
|||||||
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}"
|
|
||||||
@@ -3,33 +3,48 @@ name: Casa Home Assistant CI/CD Pipeline
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
|
- fix/*
|
||||||
- main
|
- main
|
||||||
pull_request:
|
pull_request:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 16 * * 0' # every sunday 4 pm
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: mf-casa-vlan-cid-runner
|
runs-on: casa-vlan-cicd
|
||||||
|
env:
|
||||||
|
GITHUB_TEMP: ${{ runner.temp }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup kubectl
|
- name: Fetch limbo public actions
|
||||||
uses: ./.github/actions/kubectl-setup
|
env:
|
||||||
with:
|
RUNNER_TEMP: "${{ runner.temp }}"
|
||||||
kube_server: ${{ secrets.casa_vlan_kube_server }}
|
WORKSPACE: "${{ gitea.workspace }}"
|
||||||
kube_ca_base64: ${{ secrets.casa_vlan_kube_ca_base64 }}
|
|
||||||
kube_token: ${{ secrets.casa_vlan_kube_token }}
|
|
||||||
|
|
||||||
- name: Deploy Home Assistant
|
|
||||||
shell: bash
|
|
||||||
run: |
|
run: |
|
||||||
|
curl -fsSL https://git.limbosolutions.com/kb/gitea/raw/branch/main/cloud-scripts/setup-limbo-actions.sh | bash 2>&1
|
||||||
|
|
||||||
|
- name: Setup kubectl
|
||||||
|
uses: ./.gitea/limbo_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
|
||||||
|
env:
|
||||||
|
ENDPOINT_IP: "${{ secrets.CASA_HOMEASSISTANT_ENDPOINT_IP }}"
|
||||||
|
SERVICE_PORT: "${{ secrets.CASA_HOMEASSISTANT_ENDPOINT_SERVICE_PORT }}"
|
||||||
|
INGRESS_ROUTES_MATCH: "${{ secrets.CASA_HOMEASSISTANT_INGRESS_ROUTES_MATCH }}"
|
||||||
|
INGRESS_TLS_SECRET_NAME: "${{ secrets.CASA_HOMEASSISTANT_INGRESS_TLS_SECRET_NAME }}"
|
||||||
|
run: |
|
||||||
|
#set -x for debugging
|
||||||
set -e
|
set -e
|
||||||
cd ${{ gitea.workspace }}
|
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
|
kubectl apply -f ./deploy/deployment.yaml
|
||||||
envsubst < ./deploy/service.template.yaml | kubectl apply -f -
|
envsubst < ./deploy/service.template.yaml | kubectl apply -f -
|
||||||
|
|
||||||
|
|
||||||
@@ -33,11 +33,6 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
dnsPolicy: ClusterFirstWithHostNet # ensures pod uses cluster DNS (CoreDNS) for service discovery even with host networking
|
dnsPolicy: ClusterFirstWithHostNet # ensures pod uses cluster DNS (CoreDNS) for service discovery even with host networking
|
||||||
hostNetwork: true
|
hostNetwork: true
|
||||||
# delays start so host have time to start on low memory resources
|
|
||||||
# initContainers:
|
|
||||||
# - name: delay-start
|
|
||||||
# image: busybox:latest
|
|
||||||
# command: ["sh", "-c", "sleep 60"]
|
|
||||||
containers:
|
containers:
|
||||||
- name: home-assistant
|
- name: home-assistant
|
||||||
image: "homeassistant/home-assistant"
|
image: "homeassistant/home-assistant"
|
||||||
|
|||||||
Reference in New Issue
Block a user