Ir al contenido

Migrar desde RootPilot

A partir de la versión 1.29.0, el Agent y el Profiler usan el nombre WhyStack en todo lo que definen, no solo en el texto: imagen, nombres de Kubernetes, variables, hostnames, comando de salud. Una instalación hecha con una versión anterior sigue funcionando al pasar a la imagen nueva, gracias a los fallbacks de Lo que sigue funcionando por ahora. Son temporales: reinstala con los nombres nuevos.

Qué Antes Desde la 1.29.0
Imagen del Agent <address>/rootpilot-agent <address>/whystack-agent
Imagen del Profiler <address>/rootpilot-profiler <address>/whystack-profiler
Ruta en Artifact Registry <project>/rootpilot/rootpilot-agent <project>/whystack/whystack-agent
Identidad de la firma (cosign) github.com/sunnysystems/rootpilot-edge/... github.com/sunnysystems/whystack-edge/...
Control-plane (enrollment) https://app.rootpilot.sh https://app.whystack.ai
Túnel wss://tunnel.rootpilot.sh:8443 wss://tunnel.whystack.ai:8443
Documentación docs.rootpilot.sh docs.whystack.ai
Archivo de la policy de IAM rootpilot-edge-readonly.json whystack-edge-readonly.json
Comando de salud rootpilot-health whystack-health
Default de RUNNER_HEALTH_DIR /tmp/rootpilot-health /tmp/whystack-health
Variables ROOTPILOT_OTEL_ENABLED, ROOTPILOT_OTEL_EXPORTER, ROOTPILOT_PII_REDACTION WHYSTACK_OTEL_ENABLED, WHYSTACK_OTEL_EXPORTER, WHYSTACK_PII_REDACTION
Namespace, StatefulSet, Service y NetworkPolicy de Kubernetes rootpilot-agent whystack-agent
ConfigMap y Secret de Kubernetes rootpilot-agent-config, rootpilot-agent-env whystack-agent-config, whystack-agent-env
Label part-of de Kubernetes rootpilot whystack
Audiencia del token OIDC (gke-oidc) rootpilot-enroll whystack-enroll
Servicio y volumen de identidad en Compose rootpilot-agent, rootpilot-identity whystack-agent, whystack-identity
Perfil de AppArmor del Profiler rootpilot-profiler whystack-profiler
Telemetría, si la exportas spans, métricas y atributos rootpilot.*; servicios rootpilot-runner, rootpilot-profiler whystack.*; servicios whystack-runner, whystack-profiler

Los nombres nuevos no actualizan la instalación anterior en su lugar: crean una nueva al lado. Eso es lo que quieres. Levanta el Agent nuevo, confírmalo, y solo entonces quita el anterior. Dos Agents de la misma organización lado a lado durante unos minutos no es un problema, porque cada uno tiene su propia identidad.

  1. Primero el egress. Permite tunnel.whystack.ai:8443, y app.whystack.ai:443 si el Agent hace el enrollment automático, antes de que arranque el Agent nuevo. Consulta Requisitos.

  2. Imagen. Descarga whystack-agent (y whystack-profiler) por digest, y verifica la firma con la identidad nueva, como en Imagen del contenedor. El repositorio anterior no recibe versiones nuevas.

  3. Variables. Renombra las tres variables de la tabla en tu entorno, Secret o secret manager, y apunta RUNNER_TUNNEL_URL y RUNNER_ENROLL_URL a los hostnames nuevos.

  4. Kubernetes. Descarga la base de la versión nueva y aplica tu overlay sobre ella (Kubernetes). Crea el Secret whystack-agent-env en el namespace whystack-agent con un bootstrap token nuevo. Con gke-oidc, cambia la audience del token proyectado a whystack-enroll en tu patch. Cuando el pod nuevo muestre hello accepted, borra el namespace anterior, que se lleva el PVC y la identidad anteriores:

    Ventana de terminal
    kubectl delete namespace rootpilot-agent
  5. Docker Compose. Renombra el servicio y el volumen en tu archivo. El volumen nuevo empieza vacío, así que el Agent hace el enrollment de nuevo: dale un bootstrap token nuevo en RUNNER_BOOTSTRAP_TOKEN para el primer arranque (Docker Compose). docker compose up -d --remove-orphans detiene el contenedor anterior. Borra el volumen anterior cuando el Agent nuevo esté en la Flota.

  6. Profiler. Carga el perfil de AppArmor con el nombre nuevo (AppArmor) y cambia security_opt a apparmor=whystack-profiler. Después descarga el anterior:

    Ventana de terminal
    sudo apparmor_parser -R /etc/apparmor.d/rootpilot-profiler
    sudo rm /etc/apparmor.d/rootpilot-profiler
  7. Tus propios checks. Los probes, healthchecks o scripts que llaman al comando de salud por nombre pasan a whystack-health. Los dashboards y alertas sobre la telemetría del Agent pasan a whystack.*; la historia anterior a la 1.29.0 queda con los nombres anteriores.

La imagen mantiene algunos fallbacks para que una instalación que pasa a la 1.29.0 antes de ser reinstalada no se rompa. Se quitarán en una versión posterior, anunciada en las notas del release:

  • rootpilot-health es un enlace a whystack-health, así que los probes y healthchecks anteriores siguen pasando.
  • ROOTPILOT_OTEL_ENABLED, ROOTPILOT_OTEL_EXPORTER y ROOTPILOT_PII_REDACTION se siguen leyendo cuando el nombre WHYSTACK_* no está definido. Si están los dos, gana el nuevo.
  • Los hostnames anteriores y la audiencia rootpilot-enroll siguen funcionando durante la transición.
  • El Agent acepta un certificado en cualquiera de los dos trust domains de SPIFFE. El control-plane todavía emite spiffe://rootpilot/tenant/<slug>/runner, que es lo que muestra la línea enrolled del log, y pasará a spiffe://whystack/tenant/<slug>/runner más adelante. Los dos nombran a la misma organización.