create-infrastructure
Skill2 starsChanged 7 months agoApache-2.0Archived repositoryView on GitHub
Generate Harness Infrastructure Definition YAML for deployment targets and create via MCP. Use when user says "create infrastructure", "infrastructure definition", "k8s cluster config", "deployment target", or wants to configure where workloads run.
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 179
Verify the referenced connector and environment exist before creating the infrastructure definition.
- Distinctive: line 180
Ensure namespace and cluster names are accurate — typos will cause deployment failures.
- Very specific: line 181
Use <+INFRA_KEY_SHORT_ID> in releaseName to guarantee uniqueness across deployments.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Create Infrastructure
Generate Harness Infrastructure Definition YAML and push via MCP.
Instructions
- Identify infrastructure type - KubernetesDirect, KubernetesGcp (GKE), KubernetesAzure (AKS), ECS, or ServerlessAwsLambda
- Ensure prerequisites exist - The environment and cloud/cluster connector must be created first
- Generate YAML using the templates below, referencing the correct connector and environment
- Create via MCP using
harness_createwith resource_typeinfrastructure
Infrastructure Types
KubernetesDirect
infrastructureDefinition:
name: K8s Production
identifier: k8s_prod
orgIdentifier: default
projectIdentifier: my_project
environmentRef: prod
deploymentType: Kubernetes
type: KubernetesDirect
spec:
connectorRef: k8s_connector
namespace: my-app-prod
releaseName: release-<+INFRA_KEY_SHORT_ID>
allowSimultaneousDeployments: falseKubernetesGcp (GKE)
infrastructureDefinition:
name: GKE Cluster
identifier: gke_prod
environmentRef: prod
deploymentType: Kubernetes
type: KubernetesGcp
spec:
connectorRef: gcp_connector
cluster: my-gke-cluster
namespace: my-app
releaseName: release-<+INFRA_KEY_SHORT_ID>KubernetesAzure (AKS)
infrastructureDefinition:
name: AKS Cluster
identifier: aks_prod
environmentRef: prod
deploymentType: Kubernetes
type: KubernetesAzure
spec:
connectorRef: azure_connector
subscriptionId: <subscription_id>
resourceGroup: my-rg
cluster: my-aks-cluster
namespace: my-app
releaseName: release-<+INFRA_KEY_SHORT_ID>ECS
infrastructureDefinition:
name: ECS Fargate
identifier: ecs_prod
environmentRef: prod
deploymentType: ECS
type: ECS
spec:
connectorRef: aws_connector
region: us-east-1
cluster: my-ecs-clusterServerlessAwsLambda
infrastructureDefinition:
name: Lambda
identifier: lambda_prod
environmentRef: prod
deploymentType: ServerlessAwsLambda
type: ServerlessAwsLambda
spec:
connectorRef: aws_connector
region: us-east-1
stage: prodAzureWebApp
infrastructureDefinition:
name: Azure Web App
identifier: azure_webapp_prod
environmentRef: prod
deploymentType: AzureWebApp
type: AzureWebApp
spec:
connectorRef: azure_connector
subscriptionId: <subscription_id>
resourceGroup: my-rgAsg (Auto Scaling Group)
infrastructureDefinition:
name: ASG Production
identifier: asg_prod
environmentRef: prod
deploymentType: Asg
type: Asg
spec:
connectorRef: aws_connector
region: us-east-1GoogleCloudFunctions
infrastructureDefinition:
name: Cloud Functions
identifier: gcf_prod
environmentRef: prod
deploymentType: GoogleCloudFunctions
type: GoogleCloudFunctions
spec:
connectorRef: gcp_connector
region: us-central1
project: my-gcp-projectPdc (Physical Data Center)
infrastructureDefinition:
name: On-Prem Servers
identifier: pdc_prod
environmentRef: prod
deploymentType: Ssh
type: Pdc
spec:
connectorRef: pdc_connector
hosts:
- host1.example.com
- host2.example.comCreating via MCP
Call MCP tool: harness_create
Parameters:
resource_type: "infrastructure"
org_id: "<organization>"
project_id: "<project>"
body: <infrastructure YAML>Examples
- "Create a K8s infrastructure for prod" - KubernetesDirect with prod namespace
- "Set up GKE infrastructure" - KubernetesGcp with GCP connector
- "Create ECS Fargate infrastructure" - ECS type with AWS connector
- "Create Azure Web App infrastructure" - AzureWebApp type with subscription and resource group
- "Set up on-prem infrastructure" - Pdc type with host list for SSH deployments
Performance Notes
- Verify the referenced connector and environment exist before creating the infrastructure definition.
- Ensure namespace and cluster names are accurate — typos will cause deployment failures.
- Use
<+INFRA_KEY_SHORT_ID>in releaseName to guarantee uniqueness across deployments.
Troubleshooting
CONNECTOR_NOT_FOUND- Create the cloud/K8s connector firstENVIRONMENT_NOT_FOUND- Create the environment firstreleaseNamemust be unique per deployment; use<+INFRA_KEY_SHORT_ID>deploymentTypemust match the service definition's type (e.g., Kubernetes service needs KubernetesDirect infra)allowSimultaneousDeployments: falseis the default; set totrueonly if concurrent deploys are safe
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- harness/harness-skills★ 12798% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository30 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/harness.mdcCursor rule
- analyze-costsSkill
- audit-reportSkill
- chaos-experimentSkill
- create-agentSkill
- create-agent-templateSkill
- create-connectorSkill
- create-environmentSkill
- create-pipelineSkill
- create-pipeline-v1Skill
- create-policySkill
- create-secretSkill
- create-serviceSkill
- create-templateSkill
- create-triggerSkill
- debug-pipelineSkill
- dora-metricsSkill
- gitops-statusSkill
- manage-delegatesSkill
- manage-feature-flagsSkill
- manage-rolesSkill
- manage-usersSkill
- migrate-pipelineSkill
- run-pipelineSkill
- scorecard-reviewSkill
- security-reportSkill
- template-usageSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

