Ctrl K
ComunidadGuías…

justfile

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# ─────────────────────────────────────────────────────────────────────────────
# Cluster lifecycle and ad-hoc helpers.
#
#     just                        # list every recipe
#     just talos apply-node eir
#     just kube apply-ks database pgadmin
#     just kanidm onboard ania "Ania K" ania@vzkn.eu users
# ─────────────────────────────────────────────────────────────────────────────

set unstable
set quiet
set script-interpreter := ['bash', '-euo', 'pipefail']
set shell := ['bash', '-euo', 'pipefail', '-c']

# mise exports these too; repeated so the recipes also work for someone who
# only has just and a kubeconfig.
export KUBECONFIG := justfile_directory() / "kubeconfig"
export TALOSCONFIG := justfile_directory() / "talosconfig"
export MINIJINJA_CONFIG_FILE := justfile_directory() / ".minijinja.toml"

INFISICAL_PROJECT := "da94b011-9a7d-408b-92d9-55be47efe750"
INFISICAL_ENV := "prod"

mod bootstrap 'bootstrap/justfile'
mod kube 'kubernetes/justfile'
mod talos 'talos/justfile'
mod kanidm 'kubernetes/platform/security/kanidm/justfile'
mod stunner 'kubernetes/core/network/stunner/justfile'

[private]
default:
    just --list

[doc('Push kubeconfig and talosconfig to Infisical')]
[group('Infisical')]
push-config:
    #!/usr/bin/env bash
    set -euo pipefail
    command -v infisical >/dev/null
    args=(--env={{ INFISICAL_ENV }} --projectId={{ INFISICAL_PROJECT }} --path=/bootstrap/kubeconfig)
    infisical secrets set KUBECONFIG_FLAT="$(kubectl config view --flatten)" "${args[@]}"
    infisical secrets set KUBECONFIG_BASE64="$(kubectl config view --flatten | base64 -w 0)" "${args[@]}"
    infisical secrets set KUBECONFIG_MAIN_BASE64="$(cat "$KUBECONFIG")" "${args[@]}"
    infisical secrets set TALOSCONFIG_MAIN="$(cat "$TALOSCONFIG")" "${args[@]}"
    infisical secrets set TALOSCONFIG_MAIN_BASE64="$(base64 -w 0 < "$TALOSCONFIG")" "${args[@]}"

[confirm('Overwrite the local kubeconfig and talosconfig from Infisical [y|N] ?')]
[doc('Pull kubeconfig and talosconfig from Infisical')]
[group('Infisical')]
pull-config:
    #!/usr/bin/env bash
    set -euo pipefail
    command -v infisical >/dev/null
    mkdir -p ~/.kube ~/.talos
    args=(--env={{ INFISICAL_ENV }} --projectId={{ INFISICAL_PROJECT }} --path=/bootstrap/kubeconfig)
    infisical run "${args[@]}" -- bash -c 'echo "$KUBECONFIG_MAIN_BASE64"' > "$KUBECONFIG"
    infisical run "${args[@]}" -- bash -c 'echo "$TALOSCONFIG_MAIN"' > "$TALOSCONFIG"
    infisical run "${args[@]}" -- bash -c 'echo "$KUBECONFIG_FLAT"' > ~/.kube/config
    infisical run "${args[@]}" -- bash -c 'echo "$TALOSCONFIG_MAIN"' > ~/.talos/config