Quick Start
This guide walks you through creating your first infrastructure environment with OpenPrime.
Prerequisites​
Gather these before you start — the wizard does not block you on them, but the last step will fail without them:
| You need | Why | Where it goes |
|---|---|---|
| AWS access key + secret | Creating the Terraform state backend, then provisioning | Settings → Cloud Credentials |
| An IAM policy covering S3 and DynamoDB, not just EKS/EC2 | The state backend is created before Terraform runs | see Cloud Credentials |
| A Git repository for the generated code | OpenPrime pushes the infrastructure it generates | wizard, Basic Configuration |
| A deploy key with WRITE access to that repository | The push is a real git push | wizard, Basic Configuration |
| CI secrets in that repository | The generated pipeline applies the Terraform | your Git provider's settings |
The last one is easy to miss: OpenPrime generates and pushes the code, but your
own pipeline is what applies it. It needs AWS_ACCESS_KEY_ID and
AWS_SECRET_ACCESS_KEY configured as repository secrets.
Step 1: Access OpenPrime​
Open app.openprime.io in your browser.
You'll be redirected to Keycloak for authentication.
If you are running the stack yourself, use http://localhost:3000 — see
Installation.
Step 2: Log In or Register​
If this is your first time:
- Click Register on the Keycloak login page
- Fill in your details
- Complete registration
Your user account is automatically created in OpenPrime on first login.
Step 3: Create Your First Environment​
Navigate to Environments​
- Click Environments in the sidebar
- Click Create Environment
Configure Basic Settings​
Name: my-first-env
Provider: AWS
Region: us-east-1
Add Services​
Enable the services you need:
| Service | Description |
|---|---|
| Kubernetes (EKS) | Managed Kubernetes cluster |
| Database (RDS) | Managed PostgreSQL/MySQL |
| Storage (S3) | Object storage buckets |
Configure Kubernetes (Example)​
kubernetes:
enabled: true
clusterName: my-cluster
version: "1.28"
nodeGroups:
- name: general
instanceType: t3.medium
desiredSize: 2
minSize: 1
maxSize: 5
Step 4: Add Helm Charts (Optional)​
Navigate to the Helm Charts tab to add applications:
Common Selections​
- nginx-ingress - Ingress controller
- cert-manager - TLS certificate automation
- prometheus-stack - Monitoring and alerting
Configure each chart or use defaults:
nginx-ingress:
enabled: true
customValues: false
cert-manager:
enabled: true
customValues: true
values: |
installCRDs: true
prometheus:
enabled: true
Step 5: Review and Save​
- Click Review to see your configuration summary
- Verify all settings are correct
- Click Save Environment
Step 6: Generate Infrastructure Code​
Once saved, you can generate deployment artifacts:
Terraform Files​
# Generated structure
environments/
└── my-first-env/
├── main.tf
├── variables.tf
├── outputs.tf
└── terraform.tfvars
Helm Values​
# Generated Helm configurations
helm/
└── my-first-env/
├── nginx-ingress-values.yaml
└── cert-manager-values.yaml
ArgoCD Applications (Optional)​
# GitOps manifests
argocd/
└── my-first-env/
├── application.yaml
└── appproject.yaml
Step 7: Deploy (Optional)​
Using Terraform​
cd environments/my-first-env
# Initialize
terraform init
# Plan
terraform plan
# Apply (requires cloud credentials)
terraform apply
What the Generated Repository Contains​
.github/workflows/ GitHub Actions pipeline (fmt, validate, plan, apply)
.gitlab-ci.yml GitLab CI equivalent
terraform/aws/ Cloud infrastructure (VPC, EKS, RDS, ...)
terraform/kubernetes/ In-cluster resources and Helm releases
argocd/ Application manifests and Helm values
There is no deployment script — the pipeline in .github/workflows/ is what
applies the Terraform. Run it from your repository, or use the terraform
commands above locally.
What's Next?​
- Add Cloud Credentials - Connect to your cloud provider
- Explore Services - Learn about available services
- Understand Templates - How code generation works
Example Configurations​
Minimal Development Environment​
name: dev-env
provider: aws
region: us-west-2
services:
kubernetes:
enabled: true
nodeGroups:
- name: dev
instanceType: t3.small
desiredSize: 1
Production-Ready Setup​
name: prod-env
provider: aws
region: us-east-1
services:
kubernetes:
enabled: true
version: "1.28"
nodeGroups:
- name: system
instanceType: t3.medium
desiredSize: 3
- name: workload
instanceType: t3.large
desiredSize: 5
maxSize: 20
database:
enabled: true
engine: postgresql
version: "15"
instanceClass: db.r5.large
multiAZ: true
helmCharts:
prometheus-stack:
enabled: true
cert-manager:
enabled: true
external-secrets:
enabled: true