Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
707 changes: 707 additions & 0 deletions cfn/docker-enterprise-setup.yaml

Large diffs are not rendered by default.

37 changes: 36 additions & 1 deletion cfn/kubernetes-setup-template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -612,6 +612,25 @@ Resources:
ConsoleRepositoryUri: !Ref ConsoleRepositoryUri
GatewayRepositoryUri: !Ref GatewayRepositoryUri

# SSM Parameters for superuser credentials
SuperUserUsernameParameter:
Type: AWS::SSM::Parameter
DependsOn: KubernetesSetupResource
Properties:
Name: !Sub /flotorch/${TableSuffix}/console/superuser/username
Type: String
Value: superadmin@flotorch.local
Description: FloTorch console superuser username

SuperUserPasswordParameter:
Type: AWS::SSM::Parameter
DependsOn: KubernetesSetupResource
Properties:
Name: !Sub /flotorch/${TableSuffix}/console/superuser/password
Type: String
Value: Password2025!
Description: FloTorch console superuser password

Conditions:
IsUsEast1Region: !Equals
- !Ref AWS::Region
Expand Down Expand Up @@ -639,4 +658,20 @@ Outputs:

EC2PublicIP:
Description: Public IP address of the EC2 instance
Value: !GetAtt EC2Instance.PublicIp
Value: !GetAtt EC2Instance.PublicIp

ConsoleSubdomain:
Description: Subdomain for the console
Value: !Sub ${TableSuffix}.flotorch.cloud

SuperUserUsername:
Description: Superuser username for console login stored in SSM Parameter
Value: !Ref SuperUserUsernameParameter

SuperUserUsernameParameter:
Description: SSM Parameter path for superuser username
Value: !Sub /flotorch/${TableSuffix}/console/superuser/username

SuperUserPasswordParameter:
Description: SSM Parameter path for superuser password
Value: !Sub /flotorch/${TableSuffix}/console/superuser/password
70 changes: 44 additions & 26 deletions cfn/master-template.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -393,13 +393,51 @@ Resources:
AppImageTag: "3.0.0.1"
NeedOpensearch: !Ref NeedOpensearch

KubernetesSetupStackWithOpenSearch:
# KubernetesSetupStackWithOpenSearch:
# Type: AWS::CloudFormation::Stack
# Condition: CreateOpenSearchStack
# DependsOn: [AppRunnerStack]
# DeletionPolicy: Delete
# Properties:
# TemplateURL: !Sub https://flotorch-public.s3.us-east-1.amazonaws.com/test-cfn/templates/kubernetes-setup-template.yaml
# Parameters:
# TableSuffix: !Ref TableSuffix
# VpcId: !GetAtt VPCStack.Outputs.VpcId
# SubnetId: !GetAtt VPCStack.Outputs.PublicSubnet1
# InstanceType: t2.large
# ExperimentationHost: !GetAtt AppRunnerStack.Outputs.ServiceUrl
# ExperimentationUsername: !Ref OpenSearchAdminUser
# ExperimentationPassword: !Ref NginxAuthPassword
# ConsoleImageTag: "test-cfn"
# GatewayImageTag: "test-cfn"
# ConsoleRepositoryUri: !Sub "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/flotorch-console-${TableSuffix}"
# GatewayRepositoryUri: !Sub "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/flotorch-gateway-${TableSuffix}"

# KubernetesSetupStackNoOpenSearch:
# Type: AWS::CloudFormation::Stack
# Condition: CreateNoOpenSearchStack
# DependsOn: [AppRunnerStackNoOpenSearch]
# Properties:
# TemplateURL: !Sub https://flotorch-public.s3.us-east-1.amazonaws.com/test-cfn/templates/kubernetes-setup-template.yaml
# Parameters:
# TableSuffix: !Ref TableSuffix
# VpcId: !GetAtt VPCStack.Outputs.VpcId
# SubnetId: !GetAtt VPCStack.Outputs.PublicSubnet1
# InstanceType: t2.large
# ExperimentationHost: !GetAtt AppRunnerStackNoOpenSearch.Outputs.ServiceUrl
# ExperimentationUsername: !Ref OpenSearchAdminUser
# ExperimentationPassword: !Ref NginxAuthPassword
# ConsoleImageTag: "test-cfn"
# GatewayImageTag: "test-cfn"
# ConsoleRepositoryUri: !Sub "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/flotorch-console-${TableSuffix}"
# GatewayRepositoryUri: !Sub "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/flotorch-gateway-${TableSuffix}"

DockerEnterpriseSetupStackWithOpenSearch:
Type: AWS::CloudFormation::Stack
Condition: CreateOpenSearchStack
DependsOn: [AppRunnerStack]
DeletionPolicy: Delete
Properties:
TemplateURL: !Sub https://flotorch-public.s3.us-east-1.amazonaws.com/test-cfn/templates/kubernetes-setup-template.yaml
TemplateURL: !Sub https://flotorch-public.s3.us-east-1.amazonaws.com/test-enterprise/templates/docker-enterprise-setup.yaml
Parameters:
TableSuffix: !Ref TableSuffix
VpcId: !GetAtt VPCStack.Outputs.VpcId
Expand All @@ -412,13 +450,13 @@ Resources:
GatewayImageTag: "test-cfn"
ConsoleRepositoryUri: !Sub "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/flotorch-console-${TableSuffix}"
GatewayRepositoryUri: !Sub "${AWS::AccountId}.dkr.ecr.${AWS::Region}.amazonaws.com/flotorch-gateway-${TableSuffix}"
KubernetesSetupStackNoOpenSearch:

DockerEnterpriseSetupStackNoOpenSearch:
Type: AWS::CloudFormation::Stack
Condition: CreateNoOpenSearchStack
DependsOn: [AppRunnerStackNoOpenSearch]
Properties:
TemplateURL: !Sub https://flotorch-public.s3.us-east-1.amazonaws.com/test-cfn/templates/kubernetes-setup-template.yaml
TemplateURL: !Sub https://flotorch-public.s3.us-east-1.amazonaws.com/test-enterprise/templates/docker-enterprise-setup.yaml
Parameters:
TableSuffix: !Ref TableSuffix
VpcId: !GetAtt VPCStack.Outputs.VpcId
Expand All @@ -443,26 +481,6 @@ Outputs:
Condition: CreateNoOpenSearchStack
Value: !GetAtt AppRunnerStackNoOpenSearch.Outputs.ServiceUrl

KubernetesConsoleUrl:
Description: URL for Kubernetes Console access
Condition: CreateOpenSearchStack
Value: !GetAtt KubernetesSetupStackWithOpenSearch.Outputs.HTTPSNodePort

KubernetesConsoleUrlNoOpenSearch:
Description: URL for Kubernetes Console access
Condition: CreateNoOpenSearchStack
Value: !GetAtt KubernetesSetupStackNoOpenSearch.Outputs.HTTPSNodePort

KubernetesEC2KeyPairWithOpenSearch:
Description: Name of the key pair for the Kubernetes EC2 instance with OpenSearch
Condition: CreateOpenSearchStack
Value: !GetAtt KubernetesSetupStackWithOpenSearch.Outputs.EC2KeyPairName

KubernetesEC2KeyPairNoOpenSearch:
Description: Name of the key pair for the Kubernetes EC2 instance without OpenSearch
Condition: CreateNoOpenSearchStack
Value: !GetAtt KubernetesSetupStackNoOpenSearch.Outputs.EC2KeyPairName

OpenSearchDashboardsUrl:
Description: URL for OpenSearch Dashboards
Condition: CreateOpenSearchStack
Expand Down
1 change: 1 addition & 0 deletions charts/flotorch/sql/postgres/0003_violet_lifeguard.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ALTER TABLE "models" DROP CONSTRAINT "models_name_unique";
1 change: 1 addition & 0 deletions charts/flotorch/sql/postgres/0004_kind_sersi.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ALTER TABLE "ragendpoints" ALTER COLUMN "vectorStorageId" DROP NOT NULL;
Binary file modified docs/charts/flotorch-0.1.0.tgz
Binary file not shown.
6 changes: 3 additions & 3 deletions docs/charts/index.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ entries:
flotorch:
- apiVersion: v2
appVersion: 1.0.0
created: "2025-04-21T14:02:20.262881+05:30"
created: "2025-04-25T03:20:11.653804+05:30"
description: A Helm chart for Flotorch Enterprise
digest: a84a847a6fa2381f2912d59941385fc440e14a3d4a9b018b7db9a9af4ebfd7dd
digest: daf17cb81b6a6bbe9119919fdde66eaf8a81c021e775e42b45feea62bfa48563
name: flotorch
type: application
urls:
- https://balasriharsha-ch.github.io/FloTorch/charts/flotorch-0.1.0.tgz
version: 0.1.0
generated: "2025-04-21T14:02:20.262026+05:30"
generated: "2025-04-25T03:20:11.653159+05:30"
40 changes: 27 additions & 13 deletions install.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,35 +61,49 @@ Complete the required parameters:

### 3. Configure DNS for Application Access

After deployment completes, get the EC2 instance's public IP:

```bash
aws cloudformation describe-stacks \
--stack-name YOUR_PROJECT_NAME-KubernetesSetupStack \
--query "Stacks[0].Outputs[?OutputKey=='InstancePublicIp'].OutputValue" \
--output text
```
After deployment completes, get the EC2 instance's public IP from the CloudFormation stack outputs of the `<YOUR_PROJECT_NAME>-KubernetesSetupStack`.

Map the FloTorch domain to this IP in your hosts file:

- **Linux users**:
```bash
echo "<EC2_PUBLIC_IP> console.flotorch.com" | sudo tee -a /etc/resolv.conf
echo "<EC2_PUBLIC_IP> <table_suffix>.flotorch.cloud" | sudo tee -a /etc/resolv.conf
```

- **macOS users**:
```bash
sudo vi /private/etc/hosts
# Add: <EC2_PUBLIC_IP> console.flotorch.com
# Add: <EC2_PUBLIC_IP> <table_suffix>.flotorch.cloud
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
```

### 4. Access Your FloTorch Console

Once DNS is configured, access your FloTorch console at:
- https://console.flotorch.com
- https://<table_suffix>.flotorch.cloud:30443/

### 5. Login Credentials

#### Superuser Login

A default superuser account is created automatically and stored in AWS Systems Manager Parameter Store:

- **Username**: `superadmin@flotorch.local` (stored at `/flotorch/<table_suffix>/console/superuser/username`)
- **Password**: `Password2025!` (stored at `/flotorch/<table_suffix>/console/superuser/password`)

You can retrieve these credentials using AWS CLI:

```bash
# Get username
aws ssm get-parameter --name /flotorch/<YOUR_TABLE_SUFFIX>/console/superuser/username --query Parameter.Value --output text

# Get password
aws ssm get-parameter --name /flotorch/<YOUR_TABLE_SUFFIX>/console/superuser/password --query Parameter.Value --output text
```

Or view them in the CloudFormation stack outputs for your `<YOUR_PROJECT_NAME>-KubernetesSetupStack`.

Log in with the credentials you specified in the CloudFormation parameters.
> **Important**: Change the default password after your first login for security purposes.

## What's New

Expand All @@ -116,7 +130,7 @@ aws cloudformation describe-stack-events --stack-name YOUR_PROJECT_NAME

After successful deployment, you'll have access to:

1. **FloTorch Console**: https://console.flotorch.com
1. **FloTorch Console**: https://<table_suffix>.flotorch.cloud
2. **AppRunner Service**: For API requests (URL in CloudFormation outputs)
3. **OpenSearch Dashboard**: For data exploration (if enabled)

Expand Down