Skip to main content

Deploying CloudCADI on AWS

CloudCADI is deployed into the customer’s AWS account using an AWS CloudFormation template, which provisions the required infrastructure, including an Amazon EKS cluster and Amazon RDS for PostgreSQL. The CloudCADI application is then configured and deployed to the EKS cluster using Helm.

CloudFormation Stack Deployment Walkthrough

This document describes the step-by-step procedure to deploy the CloudCADI application on Amazon Elastic Kubernetes Service (EKS) using an AWS CloudFormation stack.

Step 1 - CloudFormation

Note

CloudCADI is recommended to be deployed in the management/billing account

Steps to create stack :

  1. Go to the AWS CloudFormation Console.
  2. Select Choose an existing template.
  3. Under Specify template, select Upload a template file.
  4. Click Choose file and upload the CloudCADI CloudFormation template.
  5. Proceed to click on Next. Create stack

Step 2 - Specify Stack Details

  1. Under Provide a stack name, enter a Stack name (e.g. Multicloud-cloudcadi).

  2. Under EKS cluster, provide the following details:

    ClusterName: Enter the EKS cluster name (unique per account/region).

    KubernetesVersion: Enter the EKS control plane version (e.g. 1.36).

    NodeInstanceType: Enter the node instance type (e.g. t3.large).

    NodeDesiredSize, NodeMinSize, NodeMaxSize: Enter the desired, minimum, and maximum node group size.

    Specify stack details

  3. Under Network, the VpcCidr and public subnet CIDRs (PublicSubnet1Cidr, PublicSubnet2Cidr) can be left at their default values.

  4. Under S3 CUR, provide the following details:

    S3BucketName: Enter the bucket name. (Refer to Cost & Usage Data Export)

  5. Under RDS PostgreSQL, provide the following details:

    DBName: Enter the database name.

    DBUsername: Enter the RDS master username.

    DBPassword: Enter the database password.

    DBInstanceClass: Enter the RDS instance class (e.g. db.t3.small).

    Network, S3 CUR, RDS PostgreSQL parameters

  6. Under Cross-Account Configuration and Cross-platform Configuration, leave the default ExternalId (or provide your own) and optional AwsTokenIssuerUrl. Cross-Account and Cross-platform Configuration

    Enable Outbound Identity Federation

    Follow these steps to obtain the Token Issuer URL used for AwsTokenIssuerUrl:

    1. Sign in to the AWS account and open IAM → Account settings.

    2. Under Security Token Service (STS), find Outbound Identity Federation and click Enable.

      Outbound Identity Federation - disabled

    3. Once enabled, copy the Token Issuer URL shown under Outbound Identity Federation and use it as the AwsTokenIssuerUrl value.

      Outbound Identity Federation - enabled

  7. Click Next.

Step 3 - Configure Stack Options

  1. Add the tags, then click Next. Configure stack options - Tags

Step 4 - IAM Access Configuration

  1. Under Capabilities, check I acknowledge that AWS CloudFormation might create IAM resources with custom names, then click Next. Acknowledge IAM capabilities
  2. On the Review and create page, review the configuration and click Submit. Review and submit
Note

Resource creation may take up to 15 minutes.

Step 5 - Accessing CloudCADI

  1. Once the stack creation is complete, navigate to CloudFormationStacks.
  2. Select the newly created CloudCADI stack (e.g. Multicloud-CloudCADI). Stack
  3. Access the CloudCADI application URL from the stack outputs.
  4. You will be redirected to the CloudCADI login page.

Architecture

CloudCADI on AWS — Architecture & Flow
Enterprise FinOps Platform — EKS Deployment (CloudFormation flow)
Cluster: Amazon EKS | Database: RDS for PostgreSQL | Storage: Amazon S3 (CUR) | Registry: Amazon ECR | IaC: CloudFormation + Helm
1
Upload CloudFormation Template
Choose an existing template and upload the CloudCADI CloudFormation template in the Create stack wizard
2
Specify Stack Details
Provide the stack name and parameters for the EKS cluster, VPC/network, S3 CUR bucket, RDS PostgreSQL, and cross-account configuration
3
Configure Stack Options
Add tags to the stack's resources and proceed to the next step
4
IAM Access Configuration
Acknowledge that CloudFormation may create IAM resources with custom names, then review and submit the stack
5
Access CloudCADI
Track stack creation under the Events tab, then access the application once resources are provisioned
1
Image Pushed to ECR
CloudCADI image built and pushed to our private container registry
2
Scoped Access Issued
Repository-scoped, pull-only access granted per customer
3
EKS Pulls the Image
The Helm chart deploys CloudCADI workloads into the provisioned EKS cluster
4
RDS PostgreSQL
The CloudCADI application connects to RDS for PostgreSQL for application data and database operations
5
Pods Running
CloudCADI containers running inside the customer's EKS cluster
Stack Parameters
  • EKS cluster — ClusterName, KubernetesVersion, NodeInstanceType, node scaling sizes
  • Network — VpcCidr, PublicSubnet1Cidr, PublicSubnet2Cidr
  • S3 CUR — S3BucketName for Cost & Usage Report access
  • RDS PostgreSQL — DBName, DBUsername, DBPassword, DBInstanceClass
  • Cross-account / Cross-platform — ExternalId, AwsTokenIssuerUrl
Deployment Model
  • Manual (current) — CloudFormation stack steps, customer-run
  • Automatic (planned) — SSO login, backend-run end to end
Tech Stack
  • Amazon EKS (Kubernetes)
  • RDS for PostgreSQL
  • Amazon S3 (CUR)
  • AWS CloudFormation + Helm
CloudCADI deploys into the customer's own AWS account — the EKS cluster, RDS database, and S3 buckets all stay within their account. Only the container image itself is pulled from our private registry, using scoped, pull-only access per customer.