Install SMP using Harness SMP Installer
This document describes the steps to install SMP on a cloud provider
Harness SMP Installer is a command-line tool designed to automate the setup and deployment of Harness SMP (Self-Managed Platform) . It simplifies infrastructure provisioning using OpenTofu and Helm, ensuring seamless deployment and management.
Supported Providers
Currently, the installer supports AWS. Support for additional cloud providers will be introduced in the near future.
Supported Profiles
The installer supports two profiles at this time, with plans to expand support for medium and large profiles. The estimated costs provided below are based on on-demand EC2 pricing for t2.2xlarge instances in the US-East (N. Virginia) region and may vary depending on reserved instances, spot pricing, or other AWS regions.
pov
2 t2.2xlarge nodes
Supports 5 users with 1 execution at a time
~$1,400 - $1,600
small
5 t2.2xlarge nodes
Supports 50 users with 10 concurrent executions
~$3,500 - $4,000
Resources Created
The installer creates the following resources on AWS:
loadbalancer
Creates loadbalancer
AWS (ALB)
kubernetes cluster
Creates kubernetes cluster with desired node config
AWS (EKS)
vpc
Creates VPC
AWS
airgap
Creates egress rules to block outgoing traffic
AWS
tls
Create self signed certificate
AWS
helm chart
Install harness helm chart with existing overrides
AWS
dns
Create hosted zone for existing domain
AWS (Route53)
monitoring
Install prometheus and grafana helm charts
AWS (EKS)
How to Run
Clone the repository: Clone this repository to your local machine using Git.
Build the binary: Run the following command to build the installer binary:
Configure the YAML: Use the provided
example.yamlfile as a reference for configuring the installer. Update the necessary fields as per your requirements.Authenticate with AWS
Navigate to the AWS IAM Console.
Copy the access key and secret key for a user with administrative access to your AWS account.
Export the keys in your terminal using the following commands
Run the sync command : Execute the sync command to initiate the deployment:
View the output: The tool will generate an output directory (as specified in
example.yaml), which will contain all rendered OpenTofu files.
Important Notes
If you are using Kubernetes version 1.30 or higher, ensure the following steps are followed:
In the root of your directory, create a file named
override.yamland add the following content:Modify your
example.yamlto include the override.yaml file by adding the following section:In the example.yaml, ensure that either the Load Balancer or DNS is set to
managed: true, but not both. This avoids conflicts.Add the following code to
pkg/tofu/aws/dns/variables.tfto ensure proper tagging:
Last updated
Was this helpful?