Compare commits

..

21 Commits

Author SHA1 Message Date
fea4db704f .
All checks were successful
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Successful in 13s
2025-11-22 04:12:27 +00:00
7df670bcc2 modified: .gitea/workflows/deploy.yaml
Some checks are pending
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Waiting to run
2025-11-22 04:10:52 +00:00
ac2e287429 modified: .gitea/workflows/deploy.yaml
All checks were successful
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Successful in 21s
2025-11-22 04:02:20 +00:00
74dc2068c8 .
Some checks are pending
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Waiting to run
2025-11-22 03:46:45 +00:00
86687012c9 modified: .gitea/workflows/deploy.yaml
Some checks failed
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Failing after 14s
2025-11-22 03:19:26 +00:00
1c6342b2b5 modified: .gitea/workflows/deploy.yaml
Some checks failed
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Failing after 16s
2025-11-22 03:17:24 +00:00
19c564724f modified: .gitea/workflows/deploy.yaml
Some checks failed
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Failing after 15s
2025-11-22 03:15:01 +00:00
7d50ebaf22 modified: .gitea/workflows/deploy.yaml
Some checks failed
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Failing after 15s
2025-11-22 03:12:44 +00:00
0d193bcc7a modified: .gitea/workflows/deploy.yaml
Some checks failed
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Failing after 14s
2025-11-22 03:10:11 +00:00
a295f671e4 modified: .gitea/workflows/deploy.yaml
Some checks are pending
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Waiting to run
2025-11-22 03:05:58 +00:00
5d7bc73f2c modified: .gitea/workflows/deploy.yaml
Some checks failed
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Failing after 14s
2025-11-22 03:01:41 +00:00
d35544ca2b modified: .gitea/actions/kubectl-setup/action.yml
All checks were successful
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Successful in 14s
2025-11-22 02:58:54 +00:00
10f585819d modified: .gitea/actions/kubectl-setup/action.yml
All checks were successful
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Successful in 14s
2025-11-22 02:55:30 +00:00
3a3f64a59b modified: .gitea/workflows/deploy.yaml
All checks were successful
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Successful in 14s
2025-11-22 02:51:41 +00:00
160176f905 modified: .gitea/workflows/deploy.yaml 2025-11-22 02:42:52 +00:00
d8e6d72e25 simple kubectl test
Some checks are pending
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Waiting to run
2025-11-22 02:30:43 +00:00
1b7b53ddd1 added GITHUB_TEMP env
Some checks are pending
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Waiting to run
2025-11-22 02:25:39 +00:00
ac33cbfc6d fx actions folder name
Some checks failed
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Failing after 14s
2025-11-22 02:20:02 +00:00
cf4dd050ca re enable actions
Some checks failed
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Failing after 15s
2025-11-22 02:17:22 +00:00
473808832b fix runs-on
All checks were successful
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Successful in 15s
2025-11-22 02:16:12 +00:00
f29285d800 clean up workflow
Some checks failed
Casa Home Assistant CI/CD Pipeline (testing) / build (push) Has been cancelled
2025-11-22 02:13:36 +00:00
6 changed files with 70 additions and 28 deletions

View File

@@ -0,0 +1,51 @@
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 -x
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 "config created - ${GITHUB_TEMP}/.kube/config"
ls -lah ${GITHUB_TEMP}/.kube/config
echo "KUBECONFIG=${GITHUB_TEMP}/.kube/config" >> "${GITHUB_ENV}"
# curl -vk \
# --cacert ca.crt \
# -H "Authorization: Bearer $KUBE_TOKEN" \
# https://<server>:6443/version

View File

@@ -1,35 +1,23 @@
name: Casa Home Assistant CI/CD Pipeline
name: Casa Home Assistant CI/CD Pipeline (testing)
on:
push:
branches:
- fix/*
- main
- master
pull_request:
schedule:
- cron: '0 16 * * 0' # every sunday 4 pm
jobs:
deploy:
build:
runs-on: casa-vlan-cicd
env:
GITHUB_TEMP: ${{ runner.temp }}
GITHUB_TEMP: ${{ runner.temp }}
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Fetch limbo public actions
env:
RUNNER_TEMP: "${{ runner.temp }}"
WORKSPACE: "${{ gitea.workspace }}"
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
uses: ./.gitea/actions/kubectl-setup
with:
kube_server: ${{ secrets.CASA_VLAN_KUBE_SERVER }}
kube_ca_base64: ${{ secrets.CASA_VLAN_KUBE_CA_BASE64 }}
@@ -43,6 +31,9 @@ jobs:
INGRESS_ROUTES_MATCH: "${{ secrets.CASA_HOMEASSISTANT_INGRESS_ROUTES_MATCH }}"
INGRESS_TLS_SECRET_NAME: "${{ secrets.CASA_HOMEASSISTANT_INGRESS_TLS_SECRET_NAME }}"
run: |
kubectl apply -f ./deploy/deployment.yaml \
&& envsubst < ./deploy/service.template.yaml | kubectl apply -f -
#set -x for debugging
set -e
cd ${{ gitea.workspace }}
kubectl apply -f ./deploy/deployment.yaml
envsubst < ./deploy/service.template.yaml

View File

@@ -2,9 +2,10 @@
Welcome to my Home Assistant setup repository.
This repository documents and maintains the Home Assistant instance running in my home, hosted on casa server k3s cluster.
Related containers, such as MQTT and speech recognition, are hosted on same cluster.
All essential containers, such as MQTT and speech recognition, are hosted on the same server for seamless integration.
**Table of Contents:**
<!-- omit in toc -->
## Table of Contents
- [Devices](#devices)
- [Broadlink - RM4 Pro](#broadlink---rm4-pro)

View File

@@ -44,8 +44,8 @@ All Environment variables requirements as set as secrets.
[gitea workflow](../.gitea/workflows/deploy.yaml)
## cicd RBAC
## RBAC
```bash { cwd=../ }
kubectl apply -f ./deploy/cicd-rbac.yaml
kubectl apply -f ./deploy/rbac.yaml
```

View File

@@ -33,15 +33,14 @@ spec:
spec:
dnsPolicy: ClusterFirstWithHostNet # ensures pod uses cluster DNS (CoreDNS) for service discovery even with host networking
hostNetwork: true
nodeName: casa # force deploy to master node cluster
tolerations:
- key: "node-role.kubernetes.io/control-plane" # allow installation on control-plane
operator: "Exists"
effect: "NoSchedule"
# 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:
- name: home-assistant
image: "homeassistant/home-assistant"
imagePullPolicy: Always
env:
- name: TZ
value: Europe/Lisbon # set timezone