Agent Skill
2/7/2026

platform-orchestrator

Orchestrates all skills for unified platform deployment. All services enabled by default. Run from bastion server.

N
nmime
0GitHub Stars
1Views
npx skills add nmime/infra-skills

SKILL.md

Nameplatform-orchestrator
DescriptionOrchestrates all skills for unified platform deployment. All services enabled by default. Run from bastion server.

name: platform-orchestrator description: Orchestrates all skills for unified platform deployment. All services enabled by default. Run from bastion server.

Platform Orchestrator

Unified deployment orchestration. All services enabled by default. All deployments are idempotent - safe to run multiple times.

Cloud Provider Support

ProviderLoadBalancerStatus
hetznerHetzner CCMDefault
awsAWS Cloud ProviderSupported
gcpGCP Cloud ProviderSupported
azureAzure Cloud ProviderSupported
baremetalMetalLBFor bare metal / other clouds

Set in platform.yaml:

infrastructure:
  cloud_provider: hetzner  # hetzner | aws | gcp | azure | baremetal

Naming Convention

All resources use consistent naming: {project}-{resource}

ResourcePatternExample
Network{project}-networkmyapp-network
Bastion{project}-bastionmyapp-bastion
Masters{project}-master-{n}myapp-master-1
Workers{project}-worker-{n}myapp-worker-1
Load Balancer{project}-lbmyapp-lb
K8s NamespacesService namegitlab, argocd, monitoring

Default project name: k8s (configurable in platform.yaml)

Services (All Enabled by Default)

ServiceDefaultDNS Records
GitLab✅ enabledgitlab, registry
ArgoCD✅ enabledargocd
Grafana✅ enabledgrafana
VictoriaMetrics✅ enabledvictoriametrics
Loki✅ enabledloki
MinIO✅ enabledminio, s3
Vault✅ enabledvault
PostgreSQL✅ enabled-
KEDA✅ enabled-
Headscale VPN✅ enabledvpn

Always included: @, *, api, app

Managed Skills

SkillResponsibilityProvider
hetzner-infraServers, networks, LB, DNSHetzner only
k8s-cluster-managementKubernetes, Cilium, TLS, CCM/MetalLBAll providers
network-securityVPN (Headscale), firewallAll providers
minio-storageS3 storageAll providers
k8s-secretsVault + ESOAll providers
k8s-databasesPostgreSQLAll providers
gitlab-selfhostedGitLab CEAll providers
k8s-gitopsArgoCDAll providers
k8s-observabilityMonitoringAll providers
k8s-autoscalingKEDAAll providers

Note: For non-Hetzner providers, provision infrastructure manually or with your cloud's tools (Terraform, CloudFormation, etc.), then run k8s-cluster-management.

Operations

Run from bastion server. See reference files for detailed procedures:

Autonomous Deployment

Do not ask the user to do tasks that can be automated. Configure DNS, provision servers, install services - proceed autonomously. Only ask when user input is truly required (credentials, domain choice, tier selection).

Deployment Order

1. infra      → hetzner-infra (servers, network, LB)
2. dns        → hetzner-infra (records for enabled services) ← configure automatically
3. cluster    → k8s-cluster-management (Kubespray)
4. tls        → k8s-cluster-management (cert-manager)
5. minio      → minio-storage
6. secrets    → k8s-secrets (Vault)
7. databases  → k8s-databases (PostgreSQL)
8. gitlab     → gitlab-selfhosted
9. gitops     → k8s-gitops (ArgoCD)
10. observability → k8s-observability
11. autoscaling   → k8s-autoscaling (KEDA)

Tiers

TierCostNodesHAUse Case
minimal~€18-20/mo2Dev, testing, learning
small~€28-35/mo3Startups, staging
medium~€34/mo5Small production
production~€48/mo6Full production

See profiles/*.yaml for full configs.

Service Dependencies

ServiceRequired DependenciesOptional
MinIOK8s cluster-
VaultK8s cluster-
PostgreSQLK8s cluster-
GitLabK8s, PostgreSQL, MinIOVault
ArgoCDK8s clusterGitLab
LokiK8s cluster, MinIO-
VictoriaMetricsK8s cluster-
GrafanaK8s, VictoriaMetricsLoki
KEDAK8s cluster-
HeadscaleBastion server-

Reference Files

Skills Info
Original Name:platform-orchestratorAuthor:nmime