Skip to content

Commit e20c2e8

Browse files
author
Duksh K.
committed
refactor: ♻️ updated image paths for services
1 parent 692f8b6 commit e20c2e8

12 files changed

Lines changed: 1007 additions & 92 deletions

File tree

3.26 KB
Binary file not shown.

CHANGELOG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Changelog
2+
3+
## Version 0.2.0 (2025-05-06)
4+
5+
### Major Changes
6+
- Completely redesigned the Helm chart to deploy the full OpenOps platform
7+
- Added support for all OpenOps components: App, Engine, Tables, and Analytics
8+
- Integrated with Postgres and Redis dependencies
9+
- Added NGINX gateway for unified access
10+
- Updated image references to use official OpenOps images from ECR public registry
11+
12+
### Components
13+
- OpenOps App: `public.ecr.aws/openops/openops-app:0.2.7`
14+
- OpenOps Engine: `public.ecr.aws/openops/openops-engine:0.2.7`
15+
- OpenOps Tables: `public.ecr.aws/openops/openops-tables:0.1.8`
16+
- OpenOps Analytics: `public.ecr.aws/openops/openops-analytics:0.12.16`
17+
- Postgres: `postgres:14.4`
18+
- Redis: `redis:7.4.0`
19+
- NGINX: `nginx:1.27.4`
20+
21+
### Configuration Changes
22+
- Added component-specific configurations
23+
- Global storage class settings
24+
- Comprehensive environment variables for inter-component communication
25+
- Centralized secret management
26+
27+
## Version 0.1.0 (2025-05-06)
28+
29+
### Initial Release
30+
- Basic Helm chart for OpenOps agent deployment
31+
- Single component architecture
32+
- Basic service exposure
33+
- Simple secret management
34+
- PVC integration

charts/openops/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v2
22
name: openops
3-
description: A Helm chart for OpenOps agent deployment in Kubernetes
3+
description: A Helm chart for deploying the complete OpenOps platform to Kubernetes
44
type: application
5-
version: 0.1.0
5+
version: 0.2.0
66
appVersion: "1.0.0"

charts/openops/README.md

Lines changed: 138 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,164 @@
11
# OpenOps Helm Chart
22

3-
A Helm chart for deploying OpenOps agent to Kubernetes
3+
A Helm chart for deploying the complete OpenOps platform to Kubernetes
44

55
## Version History
66

77
- 0.1.0: Initial release with core functionality
8-
- Deployment configuration
8+
- Deployment configuration for single OpenOps component
99
- Service exposure
1010
- Secret management
1111
- Persistent volume integration
12+
- 0.2.0: Enhanced multi-component architecture
13+
- Full deployment of all OpenOps components (app, engine, tables, analytics)
14+
- Integration with Postgres and Redis dependencies
15+
- NGINX gateway for unified access
16+
- Comprehensive configuration options for each component
1217

1318
## Prerequisites
1419

1520
- Kubernetes 1.19+
1621
- Helm 3.2.0+
17-
- PV provisioner support in the underlying infrastructure (if persistence is enabled)
22+
- PV provisioner support in the underlying infrastructure (for persistence)
1823

1924
## Installing the Chart
2025

2126
```bash
2227
helm install my-openops openops/openops
2328
```
2429

25-
## Parameters
26-
27-
### Global parameters
28-
29-
| Name | Description | Value |
30-
|--------------------|------------------------------------------------|--------|
31-
| `replicaCount` | Number of OpenOps replicas to deploy | `1` |
32-
| `image.repository` | OpenOps image repository | `public.ecr.aws/openops/agent` |
33-
| `image.tag` | OpenOps image tag | `latest` |
34-
| `image.pullPolicy` | OpenOps image pull policy | `IfNotPresent` |
30+
## Architecture
3531

36-
### Service parameters
32+
This Helm chart deploys the complete OpenOps platform with the following components:
3733

38-
| Name | Description | Value |
39-
|--------------------|------------------------------------------------|--------|
40-
| `service.type` | OpenOps service type | `ClusterIP` |
41-
| `service.port` | OpenOps service port | `80` |
34+
- **OpenOps App**: The main application component
35+
- **OpenOps Engine**: The execution engine for automation workflows
36+
- **OpenOps Tables**: Data storage and management component
37+
- **OpenOps Analytics**: Analytics and reporting dashboard
38+
- **Postgres**: Database for persistent storage
39+
- **Redis**: In-memory cache and message broker
40+
- **NGINX**: Gateway that routes traffic to the appropriate components
4241

43-
### Persistence parameters
44-
45-
| Name | Description | Value |
46-
|----------------------------|------------------------------------------|--------|
47-
| `persistence.enabled` | Enable persistence | `true` |
48-
| `persistence.size` | Storage size | `50Gi` |
49-
| `persistence.storageClass` | Storage class (leave empty for default) | `""` |
42+
## Parameters
5043

51-
### Credentials and Environment Variables
44+
### Global parameters
5245

53-
| Name | Description | Value |
54-
|----------------------------|-------------------------------------------|--------|
55-
| `env.OPS_OPENOPS_ADMIN_EMAIL` | Admin email | `admin@example.com` |
56-
| `secrets.enabled` | Enable secret creation | `true` |
57-
| `secrets.adminPassword` | Admin password | `changeMe` |
46+
| Name | Description | Value |
47+
|-----------------------|----------------------------------------------------|--------|
48+
| `nameOverride` | Override the name of the chart | `""` |
49+
| `fullnameOverride` | Override the full name of the chart | `""` |
50+
| `global.storageClass` | Global storage class for persistent volumes | `""` |
51+
52+
### OpenOps App parameters
53+
54+
| Name | Description | Value |
55+
|----------------------------|------------------------------------------------|--------|
56+
| `app.enabled` | Enable OpenOps App component | `true` |
57+
| `app.replicaCount` | Number of OpenOps App replicas | `1` |
58+
| `app.image.repository` | OpenOps App image repository | `public.ecr.aws/openops/openops-app` |
59+
| `app.image.tag` | OpenOps App image tag | `0.2.7` |
60+
| `app.image.pullPolicy` | OpenOps App image pull policy | `IfNotPresent` |
61+
| `app.service.type` | OpenOps App service type | `ClusterIP` |
62+
| `app.service.port` | OpenOps App service port | `80` |
63+
| `app.resources.requests.cpu` | CPU request for OpenOps App | `1` |
64+
| `app.resources.requests.memory` | Memory request for OpenOps App | `2Gi` |
65+
| `app.resources.limits.cpu` | CPU limit for OpenOps App | `2` |
66+
| `app.resources.limits.memory` | Memory limit for OpenOps App | `4Gi` |
67+
68+
### OpenOps Engine parameters
69+
70+
| Name | Description | Value |
71+
|----------------------------|------------------------------------------------|--------|
72+
| `engine.enabled` | Enable OpenOps Engine component | `true` |
73+
| `engine.replicaCount` | Number of OpenOps Engine replicas | `1` |
74+
| `engine.image.repository` | OpenOps Engine image repository | `public.ecr.aws/openops/openops-engine` |
75+
| `engine.image.tag` | OpenOps Engine image tag | `0.2.7` |
76+
| `engine.image.pullPolicy` | OpenOps Engine image pull policy | `IfNotPresent` |
77+
| `engine.volumes.azure.enabled` | Enable Azure CLI volume | `true` |
78+
| `engine.volumes.azure.size` | Azure CLI volume size | `1Gi` |
79+
| `engine.volumes.gcloud.enabled` | Enable Google Cloud SDK volume | `true` |
80+
| `engine.volumes.gcloud.size` | Google Cloud SDK volume size | `1Gi` |
81+
82+
### OpenOps Tables parameters
83+
84+
| Name | Description | Value |
85+
|----------------------------|------------------------------------------------|--------|
86+
| `tables.enabled` | Enable OpenOps Tables component | `true` |
87+
| `tables.replicaCount` | Number of OpenOps Tables replicas | `1` |
88+
| `tables.image.repository` | OpenOps Tables image repository | `public.ecr.aws/openops/openops-tables` |
89+
| `tables.image.tag` | OpenOps Tables image tag | `0.1.8` |
90+
| `tables.image.pullPolicy` | OpenOps Tables image pull policy | `IfNotPresent` |
91+
| `tables.service.type` | OpenOps Tables service type | `ClusterIP` |
92+
| `tables.service.port` | OpenOps Tables service port | `80` |
93+
| `tables.persistence.enabled` | Enable persistence for Tables | `true` |
94+
| `tables.persistence.size` | Storage size for Tables | `10Gi` |
95+
96+
### OpenOps Analytics parameters
97+
98+
| Name | Description | Value |
99+
|----------------------------|------------------------------------------------|--------|
100+
| `analytics.enabled` | Enable OpenOps Analytics component | `true` |
101+
| `analytics.replicaCount` | Number of OpenOps Analytics replicas | `1` |
102+
| `analytics.image.repository` | OpenOps Analytics image repository | `public.ecr.aws/openops/openops-analytics` |
103+
| `analytics.image.tag` | OpenOps Analytics image tag | `0.12.16` |
104+
| `analytics.image.pullPolicy` | OpenOps Analytics image pull policy | `IfNotPresent` |
105+
| `analytics.service.type` | OpenOps Analytics service type | `ClusterIP` |
106+
| `analytics.service.port` | OpenOps Analytics service port | `80` |
107+
108+
### Postgres parameters
109+
110+
| Name | Description | Value |
111+
|----------------------------|------------------------------------------------|--------|
112+
| `postgres.enabled` | Enable Postgres | `true` |
113+
| `postgres.image.repository` | Postgres image repository | `postgres` |
114+
| `postgres.image.tag` | Postgres image tag | `14.4` |
115+
| `postgres.service.port` | Postgres service port | `5432` |
116+
| `postgres.persistence.enabled` | Enable persistence for Postgres | `true` |
117+
| `postgres.persistence.size` | Storage size for Postgres | `20Gi` |
118+
| `postgres.maxConnections` | Maximum number of database connections | `300` |
119+
120+
### Redis parameters
121+
122+
| Name | Description | Value |
123+
|----------------------------|------------------------------------------------|--------|
124+
| `redis.enabled` | Enable Redis | `true` |
125+
| `redis.image.repository` | Redis image repository | `redis` |
126+
| `redis.image.tag` | Redis image tag | `7.4.0` |
127+
| `redis.service.port` | Redis service port | `6379` |
128+
| `redis.persistence.enabled` | Enable persistence for Redis | `true` |
129+
| `redis.persistence.size` | Storage size for Redis | `5Gi` |
130+
131+
### NGINX Gateway parameters
132+
133+
| Name | Description | Value |
134+
|----------------------------|------------------------------------------------|--------|
135+
| `nginx.enabled` | Enable NGINX Gateway | `true` |
136+
| `nginx.image.repository` | NGINX image repository | `nginx` |
137+
| `nginx.image.tag` | NGINX image tag | `1.27.4` |
138+
| `nginx.service.type` | NGINX service type | `ClusterIP` |
139+
| `nginx.service.port` | NGINX service port | `80` |
140+
| `nginx.configMap.enabled` | Enable NGINX configuration | `true` |
141+
142+
### Ingress parameters
143+
144+
| Name | Description | Value |
145+
|---------------------------|-------------------------------------------------|--------|
146+
| `ingress.enabled` | Enable ingress for OpenOps | `false` |
147+
| `ingress.className` | Ingress class name | `""` |
148+
| `ingress.annotations` | Ingress annotations | `{}` |
149+
| `ingress.hosts[0].host` | Hostname for OpenOps | `openops.local` |
150+
| `ingress.hosts[0].paths[0].path` | Path for the host | `/` |
151+
| `ingress.hosts[0].paths[0].pathType` | Path type | `ImplementationSpecific` |
152+
| `ingress.tls` | TLS configuration | `[]` |
153+
154+
### Environment and Secret parameters
155+
156+
| Name | Description | Value |
157+
|------------------------------|----------------------------------------------|--------|
158+
| `env.OPS_OPENOPS_ADMIN_EMAIL` | Admin email address | `admin@example.com` |
159+
| `secrets.enabled` | Enable secret creation | `true` |
160+
| `secrets.OPS_OPENOPS_ADMIN_PASSWORD` | Admin password | `changeMe` |
161+
| `secrets.OPS_POSTGRES_USERNAME` | Postgres username | `postgres` |
162+
| `secrets.OPS_POSTGRES_PASSWORD` | Postgres password | `postgres` |
163+
| `secrets.OPS_ENCRYPTION_KEY` | Encryption key | `changeMe` |
164+
| `secrets.OPS_JWT_SECRET` | JWT signing key | `changeMe` |
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{{- if and .Values.nginx.enabled .Values.nginx.configMap.enabled }}
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: {{ include "openops.fullname" . }}-nginx-config
6+
labels:
7+
{{- include "openops.labels" . | nindent 4 }}
8+
app.kubernetes.io/component: nginx
9+
data:
10+
nginx.conf: |-
11+
server {
12+
listen 80;
13+
14+
proxy_set_header Host $host;
15+
proxy_set_header X-Real-IP $remote_addr;
16+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
17+
proxy_set_header X-Forwarded-Proto $scheme;
18+
19+
location / {
20+
proxy_pass http://{{ include "openops.fullname" . }}-app;
21+
}
22+
23+
location /tables/ {
24+
proxy_pass http://{{ include "openops.fullname" . }}-tables/;
25+
}
26+
27+
location /analytics/ {
28+
proxy_pass http://{{ include "openops.fullname" . }}-analytics/;
29+
}
30+
}
31+
{{- end }}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{{- if .Values.postgres.enabled }}
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: {{ include "openops.fullname" . }}-postgres-init
6+
labels:
7+
{{- include "openops.labels" . | nindent 4 }}
8+
app.kubernetes.io/component: postgres
9+
data:
10+
init-db.sh: |-
11+
#!/bin/bash
12+
set -e
13+
14+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
15+
CREATE DATABASE IF NOT EXISTS analytics;
16+
CREATE DATABASE IF NOT EXISTS {{ .Values.env.OPS_OPENOPS_TABLES_DATABASE_NAME }};
17+
GRANT ALL PRIVILEGES ON DATABASE analytics TO $POSTGRES_USER;
18+
GRANT ALL PRIVILEGES ON DATABASE {{ .Values.env.OPS_OPENOPS_TABLES_DATABASE_NAME }} TO $POSTGRES_USER;
19+
EOSQL
20+
{{- end }}

0 commit comments

Comments
 (0)