Cómo Usar Productive K3S Infra¶
productive-k3s-infra es el engine de runtime para la ejecución package-first de profiles. El árbol fuente público de profiles/scenarios vive en el repositorio hermano productive-k3s-profiles.
Elegí el profile correcto¶
multipass-1-server-2-agents: clúster local de tres nodos sobre VMs de Multipasson-prem-basic/on-prem-arm: bootstrap de hosts existentes porSSHaws-single-node-basic: provisioning de una instanciaEC2conOpenTofuy bootstrap remoto
Entendé el contrato de ejecución¶
Cada profile publicado encapsula el comportamiento de infraestructura alrededor del clúster, mientras que productive-k3s-core sigue siendo responsable del bootstrap del clúster en sí.
En la práctica eso significa que productive-k3s-infra maneja:
- extracción y dispatch del paquete
- merge de defaults de
profile.envcon overrides locales - persistencia y restauración del state de runtime entre
install,status,planydestroy - resolución de bundles de
productive-k3s-core - propagación de telemetría y correlación de comandos
Engine opcional de instalación de K3S¶
El engine por default sigue siendo el camino nativo de bootstrap de Productive K3S.
Los usuarios avanzados también pueden optar por:
Eso está documentado intencionalmente como experimental.
Usá los entrypoints públicos¶
La interfaz pública para operadores es package-first:
./productive-k3s-infra.sh profile validate --tgz https://downloads.productive-k3s.io/infra/multipass-1-server-2-agents-0.9.62-0.9.4.tgz
./productive-k3s-infra.sh profile install --tgz https://downloads.productive-k3s.io/infra/aws-single-node-basic-0.9.62-0.9.4.tgz --env-file ./aws.env
pk3s profile validate multipass-1-server-2-agents
pk3s infra install aws-single-node-basic --env-file ./aws.env
El profile.env embebido en un profile.tgz público se trata como archivo base/default del paquete, no como la configuración final específica de la instalación. Para instalaciones reales, especialmente en cloud y on-prem, pasá overrides locales desde la máquina que invoca mediante --env-file.
Usá los entrypoints de desarrollo¶
Los profiles .env fuente siguen siendo válidos para desarrollo del repositorio y CI. En el modelo separado, esos archivos provienen de un clon temporal o checkout explícito de productive-k3s-profiles, expuesto al engine mediante PRODUCTIVE_K3S_PROFILES_REPO_DIR.
Ejemplo de desarrollo:
export PRODUCTIVE_K3S_PROFILES_REPO_DIR=/tmp/productive-k3s-profiles
git clone https://github.com/jemacchi/productive-k3s-profiles.git "$PRODUCTIVE_K3S_PROFILES_REPO_DIR"
./productive-k3s-infra.sh dev profile validate --profile-env "$PRODUCTIVE_K3S_PROFILES_REPO_DIR/profiles/edge/on-prem/basic.env"
make infra-validate PROFILE="$PRODUCTIVE_K3S_PROFILES_REPO_DIR/profiles/edge/on-prem/basic.env"
Usá dev profile validate cuando sólo quieras chequear que el contrato del .env sea válido. El CI del engine debería clonar productive-k3s-profiles en un workspace temporal y correr los checks de integración existentes, para que cambios de runtime no rompan silenciosamente los profiles públicos.
Notas¶
Note
El comportamiento específico de cada scenario, las topologías y los flujos locales de make ahora viven en profiles.productive-k3s.io.
Note
productive-k3s-infra está diseñado intencionalmente para no tener que versionar todos los profiles públicos. La compatibilidad se valida integrándolo contra un checkout separado de productive-k3s-profiles.