Skip to content

Commit 5e90fd8

Browse files
authored
#267 - cloud deployment scripts (#268)
* script to create azure resources and deploy * Remove auto-generated values files from tracking - Added .gitignore to ignore values/, *.env files - Removed values/*.yaml files from git (auto-generated during deployment) * add aws script * add aws script * add copyright * update copyright
1 parent d7d7ecc commit 5e90fd8

File tree

14 files changed

+2894
-80
lines changed

14 files changed

+2894
-80
lines changed

deployments/README.md

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
<!--
2+
SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION. All rights reserved.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
16+
SPDX-License-Identifier: Apache-2.0
17+
-->
18+
19+
# OSMO Deployments
20+
21+
This directory contains all resources for deploying OSMO on various cloud providers and environments.
22+
23+
> ⚠️ **Note:** These scripts deploy a **minimal version of OSMO** without authentication.
24+
> Users will interact with OSMO as a **guest user**. For production deployments with
25+
> authentication (SSO, LDAP, etc.), refer to the [full deployment guide](https://nvidia.github.io/OSMO/main/deployment_guide/).
26+
27+
## Quick Start
28+
29+
**Deploy OSMO Minimal with one command:**
30+
31+
```bash
32+
# Azure deployment
33+
cd scripts
34+
./deploy-osmo-minimal.sh --provider azure
35+
36+
# AWS deployment
37+
cd scripts
38+
./deploy-osmo-minimal.sh --provider aws
39+
```
40+
41+
## Directory Structure
42+
43+
```
44+
deployments/
45+
├── scripts/ # Automated deployment scripts (recommended)
46+
│ ├── deploy-osmo-minimal.sh # Main deployment script
47+
│ ├── azure/ # Azure-specific provisioning
48+
│ └── aws/ # AWS-specific provisioning
49+
├── terraform/ # Raw Terraform configurations
50+
│ ├── azure/ # Azure infrastructure modules
51+
│ └── aws/ # AWS infrastructure modules
52+
├── charts/ # Helm charts for OSMO components
53+
└── brev/ # Brev.dev deployment configs
54+
```
55+
56+
## Deployment Options
57+
58+
### 1. Automated Scripts (Recommended)
59+
60+
The easiest way to deploy OSMO. The scripts handle infrastructure provisioning and OSMO deployment automatically.
61+
62+
📖 **[scripts/README.md](scripts/README.md)** - Full documentation
63+
64+
```bash
65+
cd scripts
66+
./deploy-osmo-minimal.sh --provider azure # or aws
67+
```
68+
69+
**Features:**
70+
- Interactive configuration prompts
71+
- Terraform infrastructure provisioning
72+
- Automatic secret creation (database, Redis, MEK)
73+
- Helm chart deployment
74+
- Post-deployment verification
75+
76+
**Limitations (Minimal Deployment):**
77+
- No authentication - all users access as **guest**
78+
- Development/testing purposes only
79+
- Not recommended for production without additional configuration
80+
81+
### 2. Terraform Only
82+
83+
For users who want to provision infrastructure separately and have more control.
84+
85+
📖 **[terraform/azure/example/README.md](terraform/azure/example/README.md)** - Azure Terraform docs
86+
📖 **[terraform/aws/example/README.md](terraform/aws/example/README.md)** - AWS Terraform docs
87+
88+
```bash
89+
cd terraform/azure/example
90+
terraform init
91+
terraform apply
92+
```
93+
94+
### 3. Helm Charts Only
95+
96+
For users who already have Kubernetes infrastructure and want to deploy OSMO directly.
97+
98+
📖 **[charts/](charts/)** - Helm charts
99+
100+
> **Note:** Before installing Helm charts manually, you must create:
101+
> - Kubernetes namespaces (`osmo-minimal`, `osmo-operator`, `osmo-workflows`)
102+
> - Database secrets (`db-secret` with PostgreSQL password)
103+
> - Redis secrets (`redis-secret` with Redis password)
104+
> - MEK ConfigMap (Master Encryption Key)
105+
> - The PostgreSQL database itself
106+
>
107+
> **Recommended:** Use the deployment script which handles all prerequisites.
108+
> You'll need to provide your existing infrastructure details:
109+
110+
```bash
111+
cd scripts
112+
113+
# Set environment variables for your existing infrastructure
114+
export POSTGRES_HOST="your-postgres-host.database.azure.com"
115+
export POSTGRES_USERNAME="postgres"
116+
export POSTGRES_PASSWORD="your-password"
117+
export REDIS_HOST="your-redis-host.redis.cache.windows.net"
118+
export REDIS_PASSWORD="your-redis-password"
119+
120+
./deploy-osmo-minimal.sh --provider azure --skip-terraform
121+
```
122+
123+
## Supported Platforms
124+
125+
| Platform | Status | Documentation |
126+
|----------|--------|---------------|
127+
| **Azure** (AKS) | ✅ Fully Supported | [scripts/README.md](scripts/README.md) |
128+
| **AWS** (EKS) | ✅ Fully Supported | [scripts/README.md](scripts/README.md) |
129+
130+
## Prerequisites
131+
132+
- **Terraform** >= 1.9
133+
- **kubectl**
134+
- **Helm**
135+
- **Cloud CLI** (`az` for Azure, `aws` for AWS)
136+
137+
## Post-Deployment Access
138+
139+
After deployment, access OSMO via port-forwarding:
140+
141+
```bash
142+
# Access OSMO UI
143+
kubectl port-forward svc/osmo-ui 3000:80 -n osmo-minimal
144+
# Open: http://localhost:3000
145+
146+
# Access OSMO API
147+
kubectl port-forward svc/osmo-service 9000:80 -n osmo-minimal
148+
# Open: http://localhost:9000/api/docs
149+
```
150+
151+
## Documentation
152+
153+
- [OSMO Deployment Guide](https://nvidia.github.io/OSMO/main/deployment_guide/appendix/deploy_minimal.html)
154+
- [Configure Data Storage](https://nvidia.github.io/OSMO/main/deployment_guide/getting_started/configure_data_storage.html)
155+
- [Install KAI Scheduler](https://nvidia.github.io/OSMO/main/deployment_guide/byoc/install_dependencies.html)
156+

deployments/scripts/.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Auto-generated files - do not commit
2+
values/
3+
*.env
4+
.azure_outputs.env
5+
.aws_outputs.env
6+
7+
# Terraform state (if accidentally placed here)
8+
*.tfstate
9+
*.tfstate.*
10+
.terraform/
11+

0 commit comments

Comments
 (0)