GitHub Actions
Avtomatiziraj vzpostavitev clustra in sinhronizacijo konfiguracije z GitHub Actions.
Predpogoji
- Repozitorij, ki vsebuje tvojo
cluster.lok8s.yaml - lok8s CLI, na voljo v CI (nameščen prek
b env add) - Konfigurirane skrivnosti (secrets) repozitorija GitHub
Potrebne skrivnosti
Dodaj jih v nastavitvah repozitorija pod Settings > Secrets and variables > Actions:
| Skrivnost | Opis |
|---|---|
HCLOUD_TOKEN | Hetzner Cloud API žeton |
SSH_PRIVATE_KEY | Zasebni SSH ključ za dostop do vozlišč |
KUBECONFIG | Kubeconfig, kodiran v Base64 (za poteke sinhronizacije) |
Potek vzpostavitve
Ustvari .github/workflows/provision.yml:
yaml
name: Provision Cluster
on:
workflow_dispatch:
inputs:
action:
description: 'Action to perform'
required: true
default: 'provision'
type: choice
options:
- provision
- destroy
jobs:
provision:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install lok8s
run: b env add github.com/kernpilot/lok8s
- name: Setup SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
- name: Provision
env:
HCLOUD_TOKEN: ${{ secrets.HCLOUD_TOKEN }}
run: lo provisionPotek sinhronizacije
Ustvari .github/workflows/sync.yml, da ob potisku (push) uveljaviš spremembe konfiguracije:
yaml
name: Sync Cluster
on:
push:
branches: [main]
paths:
- 'cluster.lok8s.yaml'
- 'deploy/**'
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install lok8s
run: b env add github.com/kernpilot/lok8s
- name: Setup kubeconfig
run: |
mkdir -p ~/.kube
echo "${{ secrets.KUBECONFIG }}" | base64 -d > ~/.kube/config
- name: Reconcile infrastructure
env:
HCLOUD_TOKEN: ${{ secrets.HCLOUD_TOKEN }}
run: lo provision
- name: Deploy platform
run: lo deploylo provision je idempotenten — ponovni zagon uskladi cluster s tvojo specifikacijo. lo deploy uvede manifeste platforme/delovnih obremenitev pod deploy/.
Naslednji koraki
- Registracija — registracija v nadzorno ploščo kubehz
- KubeOne — podrobnosti orodja za vzpostavitev
- CAPI — orodje za vzpostavitev Cluster API
Status dokumenta
| Vidik | Podrobnost |
|---|---|
| Stanje | aktivno |
| Nazadnje pregledano | 2026-04-04 |