Fastlane

Arranca un entorno completo de evaluación o laboratorio de Lamassu en un clúster Kubernetes existente.

Despliega con Fastlane

Fastlane es el camino automatizado para evaluaciones, demos, CI y pequeños clústeres de laboratorio. Instala PostgreSQL, Keycloak, RabbitMQ, Envoy Gateway y Lamassu, y los configura para trabajar juntos.

Para producción, usa Helm para mantener explícitas las decisiones de base de datos, identidad, credenciales, certificados, almacenamiento y upgrades.

Qué añade Fastlane

Fastlane cubre algunas de las dependencias que el chart de aplicación deja deliberadamente fuera:

Fastlane instala o configuraTú sigues proporcionando
Instancias de PostgreSQL, RabbitMQ y Keycloak para evaluaciónEl clúster Kubernetes, sus nodos y el almacenamiento persistente
Envoy Gateway 1.8 y la GatewayClass egcert-manager, accesibilidad desde la red externa, DNS y reglas de firewall/NAT
Un flujo de certificado self-signed para Lamassu, credenciales generadas para las dependencias y un usuario inicialConfianza de los clientes en la CA self-signed, o un certificado de confianza pasado al script
Componentes opcionales de observabilidad y HSM de laboratorioRetención de monitorización, backups, HA y un HSM/servicio de claves de producción

Fastlane no convierte el stack en un servicio de producción: no crea el clúster, DNS público, reglas de firewall, backups, alta disponibilidad ni un certificado público de confianza.

Antes de comenzar

Necesitas:

  • un clúster Kubernetes existente
  • kubectl y Helm, o la CLI de MicroK8s
  • yq
  • cert-manager
  • jq solo si usas --sample-data o --development
  • ssh-keygen solo si usas --with-hsm
  • los puertos externos 80 y 443 libres en un host K3s de un único nodo

Fastlane detecta MicroK8s, K3s, kind o un kubeconfig estándar. Usa --context cuando el clúster deseado no sea el contexto actual.

Comprueba qué clúster está seleccionado

Fastlane instala varios componentes y crea credenciales. Comprueba kubectl config current-context o pasa --context antes de ejecutarlo.

Inicio rápido

Ejecuta el script desde un clon del repositorio Helm:

git clone https://github.com/lamassuiot/lamassu-helm.git
cd lamassu-helm

./scripts/lamassu-fast-lane.sh \
  --non-interactive \
  --namespace lamassu-dev \
  --domain pki.example.com \
  --local-chart-path ./charts/lamassu

Crea un registro DNS para el dominio elegido antes de probar desde otra máquina. En una VM pequeña, apúntalo a la dirección de la VM o del balanceador que realmente recibe los puertos 80 y 443.

Selección de la dirección del Gateway

Por defecto, Fastlane ejecuta hostname -I y escribe las direcciones devueltas en gateway.addresses y en los SAN IP del certificado self-signed.

En una VM de laboratorio con una única interfaz puede seleccionar la dirección esperada. En hosts con Docker, VPN, WireGuard o varias interfaces también puede elegir direcciones inaccesibles para los clientes. Sobrescribe el resultado:

./scripts/lamassu-fast-lane.sh \
  --non-interactive \
  --domain pki.example.com \
  --gateway-ip 192.168.1.50

El valor debe ser una dirección gestionada en el lado Kubernetes de la ruta. Si una IP pública de EC2 reenvía tráfico por WireGuard, pasa la dirección accesible de la VM o clúster, no la IP pública de EC2.

Consulta Expón el Gateway para los conflictos de puertos de K3s, VIP, NAT externo y diseños con varios Gateways.

Opciones de línea de comandos

OpciónValor predeterminadoPropósito
-h, --help—Muestra la ayuda
-c, --contextcontexto actualSelecciona el contexto de kubeconfig para kubectl y Helm
-n, --non-interactivefalseOmite prompts y genera credenciales para las dependencias
-ns, --namespacelamassu-devNamespace de la instalación
-d, --domaindev.lamassu.ioDominio usado por la UI, OIDC y el certificado
-v, --versionlatestVersión del chart de Lamassu
--https-port443Puerto del listener HTTPS
--http-port80Puerto del listener HTTP
--tls-crt—Certificado PEM para TLS downstream
--tls-key—Clave privada PEM para TLS downstream
-l, --local-chart-pathchart del repositorioUsa un chart local de Lamassu sin empaquetar
-ip, --gateway-ipdetección automáticaSobrescribe la dirección escrita en gateway.addresses
--otelfalseInstala Victoria Logs, VictoriaTraces, Jaeger y un OpenTelemetry Collector
--developmentfalseModo desarrollo: provisiona completamente el usuario lamassu de Keycloak (contraseña fija lamassu/lamassu, sin pasos en el primer inicio) y permite al cliente frontend aceptar cualquier redirect URI u origen web. No es para producción
--sample-datafalseCrea CA, perfiles, certificados, DMS y dispositivos de ejemplo
--with-hsmfalseInstala componentes HSM de laboratorio y configura KMS con PKCS#11
--softhsm-chart-path./charts/softhsmUsa otro chart local de SoftHSM

Fastlane no ofrece un modo offline. Para entornos sin conexión, usa el flujo manual con Helm y prepara un registro y mirror de charts.

Modo de desarrollo

--development ajusta el realm lamassu de Keycloak que genera Fastlane para un entorno de evaluación desechable:

  • el usuario lamassu queda completamente provisionado (nombre Lamassu, apellido Admin, email lamassu@lamassu.io, verificado): no hay pasos de perfil ni de cambio de contraseña en el primer inicio de sesión
  • la contraseña conocida lamassu/lamassu es fija y permanente: no se rota nunca y concede el rol pki-admin, incluidos tokens no interactivos a través del cliente frontend
  • el cliente frontend acepta cualquier redirect URI y cualquier origen web (*) en lugar de los patrones /* originales

El modo de desarrollo no es para producción

Con --development, la contraseña fija lamassu/lamassu concede acceso pki-admin a cualquiera que alcance la instalación. No lo uses nunca en nada expuesto más allá de una máquina de desarrollo o de un host accesible por red.

--development se aplica cuando el realm lamassu se importa por primera vez. No modifica un clúster existente. Puede combinarse con --sample-data: la transformación de desarrollo se ejecuta primero y después se añaden los datos de ejemplo a la misma configuración del realm.

Qué configura el script

Fastlane:

  1. valida las herramientas locales y el clúster seleccionado
  2. instala o actualiza Envoy Gateway 1.8 y crea la GatewayClass eg
  3. crea el namespace
  4. instala PostgreSQL y crea las bases de datos necesarias
  5. instala Keycloak y crea el realm lamassu, el cliente frontend, el rol administrador y el usuario inicial
  6. instala RabbitMQ
  7. instala opcionalmente observabilidad y componentes HSM de laboratorio
  8. genera lamassu.yaml e instala el chart de Lamassu
  9. carga datos de ejemplo opcionalmente

La configuración generada expone Keycloak en /auth a través del mismo Gateway y provisiona al usuario inicial lamassu como superadministrador de Lamassu.

Comportamiento TLS

Al proporcionar --tls-crt y --tls-key, Fastlane crea el Secret downstream-provided-crt y configura tls.type: external.

Sin ellos, configura cert-manager con un emisor self-signed. Es adecuado para laboratorio, pero los clientes no confiarán en él hasta que distribuyas la CA. Usa Helm si necesitas un Issuer corporativo, un emisor ACME público o un Secret existente gestionado por otro sistema.

Credenciales y archivos generados

El modo no interactivo genera contraseñas aleatorias para los administradores de PostgreSQL, RabbitMQ y Keycloak. El acceso inicial a Lamassu es lamassu / lamassu y obliga a cambiar la contraseña en el primer uso, salvo que se haya usado --development: en ese caso la contraseña permanece fija y permanente.

Fastlane escribe lamassu.yaml en el directorio actual e incluye credenciales en él.

Fastlane es una herramienta de bootstrap

Protege el archivo de valores generado, guarda las credenciales en un almacén de secretos apropiado y no reutilices la configuración de identidad de evaluación en producción.

Verifica la instalación

kubectl get pods -n lamassu-dev
kubectl get gateway,httproute -n lamassu-dev
kubectl get service -A
helm test lamassu -n lamassu-dev --logs

Abre https://pki.example.com e inicia sesión con el usuario inicial. Si el Gateway está programado pero la URL no es accesible, sigue las comprobaciones de Expón el Gateway.

En esta página