Skip to main content

Getting Started with DevOpsGenie

This guide will walk you through setting up your first DevOpsGenie-managed environment. By the end, you'll have a fully configured EKS cluster with GitOps, observability, and security baseline installed.

Prerequisites

Before you begin, ensure you have the following:

  • AWS Account with administrator or equivalent IAM permissions
  • AWS CLI v2 configured with credentials (aws configure)
  • Terraform ≥ 1.6 installed
  • kubectl ≥ 1.27 installed
  • Helm ≥ 3.12 installed
  • Node.js ≥ 18 (for the DevOpsGenie CLI)
info

If you're evaluating DevOpsGenie in a sandbox, use a dedicated AWS account to avoid any unintended impact on production resources.

Installation Overview

DevOpsGenie is deployed in three phases:

  1. Bootstrap — install the CLI and configure your AWS environment
  2. Cluster Provisioning — deploy an EKS cluster using the DevOpsGenie Terraform modules
  3. Platform Installation — install the platform stack (GitOps, observability, security) via Helm

Step 1 — Install the DevOpsGenie CLI

npm install -g @devopsgenie/cli
devopsgenie --version

Verify the installation:

devopsgenie version
# DevOpsGenie CLI v2.4.1

Step 2 — Authenticate with AWS

aws configure
# AWS Access Key ID: ****
# AWS Secret Access Key: ****
# Default region name: us-east-1
# Default output format: json

Verify your identity:

aws sts get-caller-identity

Step 3 — Initialize a New Project

devopsgenie init my-platform
cd my-platform

This scaffolds the following directory structure:

my-platform/
├── terraform/
│ ├── modules/
│ │ ├── eks/
│ │ ├── vpc/
│ │ └── iam/
│ └── environments/
│ ├── staging/
│ └── production/
├── kubernetes/
│ ├── addons/
│ ├── namespaces/
│ └── policies/
├── gitops/
│ └── applications/
└── devopsgenie.yaml

Step 4 — Configure Your Environment

Edit devopsgenie.yaml to match your requirements:

devopsgenie.yaml
apiVersion: devopsgenie.io/v2
kind: PlatformConfig

cluster:
name: my-platform-production
region: us-east-1
version: "1.29"
nodeGroups:
- name: system
instanceTypes: [m6i.xlarge]
minSize: 2
maxSize: 5
- name: workloads
instanceTypes: [m6i.2xlarge, m6i.4xlarge]
minSize: 3
maxSize: 20
karpenter: true

platform:
gitops:
enabled: true
provider: argocd
repoUrl: https://github.com/your-org/gitops
observability:
enabled: true
stack: [prometheus, grafana, loki, opentelemetry]
security:
podSecurityStandards: restricted
opa: true
secretsManager: true

Step 5 — Deploy the Cluster

devopsgenie cluster create --config devopsgenie.yaml

This runs Terraform to provision the VPC, EKS cluster, IAM roles, and Karpenter. Expect this step to take 12–18 minutes.

✓ VPC created (3 AZs, public + private subnets)
✓ EKS cluster my-platform-production provisioned (v1.29)
✓ Karpenter installed and NodePool configured
✓ aws-load-balancer-controller deployed
✓ cluster-autoscaler disabled (Karpenter active)
✓ IRSA roles created for all platform components

Step 6 — Install the Platform Stack

devopsgenie platform install
✓ ArgoCD deployed (namespace: argocd)
✓ Prometheus + Alertmanager deployed (namespace: monitoring)
✓ Grafana deployed with 12 pre-built dashboards
✓ Loki + Promtail deployed (namespace: logging)
✓ OPA Gatekeeper deployed with CIS policy bundle
✓ External Secrets Operator configured
✓ cert-manager deployed (Let's Encrypt staging)

Next Steps

Your platform is live. Here's what to do next: