arc-terraform-deployment

Deploy ARC infrastructure on Rackspace Spot Kubernetes using Terraform with ArgoCD.

Updated Sep 23, 2025
One-click install
npx skills add https://github.com/Matchpoint-AI/matchpoint-github-runners-helm --skill arc-terraform-deployment
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: arc-terraform-deployment
Source: https://github.com/Matchpoint-AI/matchpoint-github-runners-helm/tree/main/.claude/skills/arc-terraform-deployment
Command: npx skills add https://github.com/Matchpoint-AI/matchpoint-github-runners-helm --skill arc-terraform-deployment

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Deploying GitHub Actions Runner Controller (ARC) infrastructure with Terraform on Kubernetes can be tricky, especially when dealing with Custom Resource Definitions (CRDs) that are installed during the same terraform apply run. This often leads to "CRD not found" errors. This Skill provides robust Terraform patterns to overcome these challenges.

Core Features & Use Cases

  • kubectl_manifest for CRDs: Uses the kubectl_manifest provider to apply ArgoCD Applications (CRDs) at runtime, avoiding plan-time validation failures.
  • CRD Registration Wait: Incorporates time_sleep to ensure CRDs are fully registered with the Kubernetes API server before dependent resources are created.
  • Namespace Ownership Strategy: Guides on letting ArgoCD manage namespaces to prevent conflicts with Terraform.
  • Modular Deployment Patterns: Provides patterns for installing ArgoCD and deploying runner scale sets using Terraform modules and ApplicationSets.
  • Use Case: When setting up a new Rackspace Spot Kubernetes cluster and deploying GitHub Actions ARC, use this Skill to correctly configure Terraform to install ArgoCD, wait for its CRDs to register, and then deploy the ArgoCD bootstrap Application, ensuring a smooth, automated infrastructure rollout.

Quick Start

Use the arc-terraform-deployment skill to explain why kubectl_manifest is preferred over kubernetes_manifest when deploying ArgoCD Applications with Terraform, and how time_sleep helps resolve CRD registration issues.

Frequently Asked Questions about arc-terraform-deployment

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does Terraform fail with 'CRD not found' when deploying ArgoCD with ARC on Kubernetes?

CRD not found errors occur when Terraform attempts to create resources that depend on Custom Resource Definitions installed during the same apply run. The kubectl_manifest provider defers validation until runtime, allowing CRDs to register with the API server before dependent resources are created, preventing this failure.

How do I deploy GitHub Actions Runner Controller infrastructure with Terraform on Kubernetes?

Use Terraform modules to install ArgoCD via kubectl_manifest, add explicit time_sleep waits for CRD registration, then deploy runner scale sets through ArgoCD ApplicationSets. This pattern coordinates CRD availability, ArgoCD bootstrap, and namespace management across create-time dependencies to ensure smooth automated rollout.

Should I use kubectl_manifest or kubernetes_manifest for deploying ArgoCD Applications with Terraform?

kubectl_manifest is preferred for ArgoCD Applications because it applies resources at runtime, avoiding plan-time validation failures when CRDs don't exist yet. The kubernetes_manifest provider validates at plan time, which fails if CustomResourceDefinitions haven't been registered.

How do I prevent 'CRD not found' errors when Terraform installs both ArgoCD and its dependent resources?

Incorporate time_sleep to ensure CRDs are fully registered with the Kubernetes API server before creating dependent resources. Combine this with kubectl_manifest for ArgoCD Applications and let ArgoCD manage namespaces to prevent sync conflicts between Terraform and ArgoCD.

Can I use Terraform to automate ARC deployment on Rackspace Spot Kubernetes?

Yes, this Skill provides Terraform patterns specifically for deploying ARC infrastructure on Rackspace Spot Kubernetes. It handles CRD registration, ArgoCD installation, and namespace ownership strategy to automate the entire workflow without manual intervention or synchronization conflicts.

What's the best way to coordinate Terraform and ArgoCD when deploying infrastructure as code to Kubernetes?

Let ArgoCD manage namespaces and use Terraform only for installing ArgoCD and registering CRDs. This division prevents sync conflicts and allows ArgoCD to handle GitOps-driven deployments while Terraform manages the bootstrap infrastructure layer.