Skip to content

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:

SkrivnostOpis
HCLOUD_TOKENHetzner Cloud API žeton
SSH_PRIVATE_KEYZasebni SSH ključ za dostop do vozlišč
KUBECONFIGKubeconfig, 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 provision

Potek 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 deploy

lo 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

VidikPodrobnost
Stanjeaktivno
Nazadnje pregledano2026-04-04