Saltar a contenido

PCTL

Orquestador declarativo de pods para despliegues de contenedores multi-nube.

Un YAML. Multiples proveedores. Cero vendor lock-in.


Que es PCTL?

PCTL toma un unico archivo de configuracion y despliega tus servicios en contenedores a AWS EKS, Google Cloud GKE o Docker (local y remoto via SSH). Se encarga de construir imagenes, subir a registries, crear manifiestos de Kubernetes, gestionar estado y limpiar recursos.

name: my-app

services:
  api:
    image: ./Dockerfile
    registry: ghcr.io/myorg/api
    scale:
      replica: [2, 10]
      cpu: 256m
      memory: 512Mi
    ports:
      - 3000
    health:
      interval: 30
      command: "curl -f http://localhost:3000/health"
    provider:
      name: aws
      options:
        cluster: my-cluster
        namespace: production
pctl deploy     # Construir, subir, desplegar
pctl destroy    # Limpiar todo

Caracteristicas

  • Configuracion Declarativa


    Define servicios, escalado, almacenamiento, health checks y proveedores en un unico archivo YAML. Sin scripts imperativos.

  • Multi-Proveedor


    Despliega la misma configuracion a AWS EKS, Google Cloud GKE o Docker (local + SSH). Mezcla proveedores en un mismo stack.

  • Resolvers Dinamicos


    ${env:KEY} ${ssm:/path} ${cfn:export} ${self:custom.value} - Resuelve valores desde variables de entorno, AWS SSM, CloudFormation o la propia configuracion.

  • Pipeline de Plugins


    Sistema extensible de plugins. Resolver, validar, transformar, desplegar - cada paso es un plugin que puedes reemplazar o extender.

  • Despliegues por Diff


    Genera un fingerprint de cada servicio. Solo reconstruye y redespliega lo que realmente cambio. Los servicios sin cambios se omiten.

  • Destroy Limpio


    El archivo de estado rastrea cada recurso creado. Destroy elimina deployments, servicios, volumenes, imagenes, namespaces y secrets. Espera confirmacion de eliminacion.

  • Agnostico de Registry


    Sube a ECR, Artifact Registry, GHCR, Docker Hub o cualquier registry OCI. Registries privados con imagePullSecrets.

  • Auto-Scaling


    replica: [0, 100] crea un HorizontalPodAutoscaler. Replicas fijas para workers. Scale-to-zero para servicios inactivos.


Inicio Rapido

npm install -g @arcaelas/pctl
pctl deploy -c pctl.yaml              # Desplegar todos los servicios
pctl deploy -c pctl.yaml --name staging  # Sobreescribir nombre del stack
pctl destroy -c pctl.yaml             # Destruir todos los recursos

Arquitectura

graph LR
    A[pctl.yaml] --> B[Resolvers]
    B --> C[Validate]
    C --> D[Plugins]
    D --> E{Provider}
    E --> F[AWS EKS]
    E --> G[GCP GKE]
    E --> H[Docker]
    F --> I[pctl.stack.json]
    G --> I
    H --> I

Proveedores de un Vistazo

Caracteristica AWS (EKS) GCP (GKE) Docker
Kubernetes
Auto-scaling (HPA)
RBAC
Almacenamiento Persistente EBS / EFS PD / Filestore Volumes
Auth de Registry ECR auto AR auto Manual
Despliegue Remoto - - SSH
Health Checks Liveness Probe Liveness Probe Docker Health