Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
f9c9157
Add worker component to EOC
abdelkrim-djebbar Oct 29, 2025
9f76de1
Start building beta chart as oci
freddym-rl Oct 29, 2025
461b5c5
Start building beta chart as oci
freddym-rl Oct 29, 2025
95dab92
Redis url missing
abdelkrim-djebbar Oct 30, 2025
53275a6
Fix JWT secret missing
abdelkrim-djebbar Oct 30, 2025
cc2c99c
Add replicas to all EOC deployments
abdelkrim-djebbar Nov 13, 2025
d72c8ac
Add cloudProviderAccounts values
abdelkrim-djebbar Nov 14, 2025
45c0985
improve cloudProviderAccounts
abdelkrim-djebbar Nov 17, 2025
344e959
Move scheduled maintenance config to the eoc worker
abdelkrim-djebbar Nov 19, 2025
5e6b15a
Move notification config to eoc worker
abdelkrim-djebbar Nov 19, 2025
37e9b1f
Fix config
abdelkrim-djebbar Nov 19, 2025
644b093
Add UI_BASE_URL to worker, needed for email content
abdelkrim-djebbar Dec 16, 2025
22c2e79
Add eoc-mcp component
abdelkrim-djebbar Jan 8, 2026
e79e196
Update mcp
abdelkrim-djebbar Jan 8, 2026
daa1102
Add SDC and Grafana config to allow worker manage them
abdelkrim-djebbar Jan 9, 2026
5d5a658
Add new UI and feature flags to backend configmap
abdelkrim-djebbar Feb 2, 2026
953acf3
Bump chart and app version to 2.0.0-beta.2
abdelkrim-djebbar Feb 3, 2026
7ec4306
Update release-beta workflow for EOC to version 2.0.0-beta.2
abdelkrim-djebbar Feb 3, 2026
ba76f4c
Bump version and release 2.0.0-beta.3
freddym-rl Feb 18, 2026
83ffd30
Release 2.0.0-beta.4
freddym-rl Mar 17, 2026
42377fa
Release 2.0.0-beta.5
abdelkrim-djebbar Apr 2, 2026
d7482f5
Revert "Release 2.0.0-beta.5"
abdelkrim-djebbar Apr 2, 2026
bd4ca5b
Update release-beta workflow and chart version to 2.0.0-beta.5
abdelkrim-djebbar Apr 2, 2026
9e7e06f
Update release-beta workflow and chart version to 2.0.0-beta.6
abdelkrim-djebbar Apr 23, 2026
52797c1
Update release-beta workflow and chart version to 2.0.0-rc.1
abdelkrim-djebbar May 12, 2026
de94263
Update release-beta workflow and chart version to 2.0.0-rc.2
abdelkrim-djebbar May 22, 2026
41ec458
Update release-beta workflow and chart version to 2.0.0-rc.3
abdelkrim-djebbar Jun 25, 2026
9641fdb
Update release-beta workflow and chart version to 2.0.0-rc.4
freddym-rl Jul 29, 2026
d1e4530
eoc 2.0.0
freddym-rl Aug 10, 2026
359d8a0
Merge branch 'master' into eoc-2.0.0
freddym-rl Aug 10, 2026
3c1f6a7
Remove charts/sdc/.helmignore reintroduced by master merge
freddym-rl Aug 10, 2026
4b1f3ba
Potential fix for pull request finding
freddym-rl Aug 11, 2026
3e911c6
Potential fix for pull request finding
freddym-rl Aug 11, 2026
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
32 changes: 32 additions & 0 deletions .github/workflows/release-beta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Release EOC Beta Chart

on:
push:
branches:
- eoc-2.0.0

jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Install Helm
uses: azure/setup-helm@v4
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

- name: Chart | Push
uses: appany/helm-oci-chart-releaser@v0.5.0
with:
name: eoc
repository: radiantlogic-devops/helm-charts
path: charts/eoc
tag: 2.0.0
registry: ghcr.io
update_dependencies: true
registry_username: "$GITHUB_ACTOR"
registry_password: ${{ secrets.GITHUB_TOKEN }}
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@

.DS_Store
*.tgz
*.lock
*.lock
local/
.devcontainer/
4 changes: 2 additions & 2 deletions charts/eoc/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.5.3-rc.1
version: 2.0.0

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.5.3-rc.1"
appVersion: "2.0.0"

maintainers:
- name: pgodey
Expand Down
175 changes: 175 additions & 0 deletions charts/eoc/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -212,4 +212,179 @@ Create the name of the service account to use
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

{{/*
WORKER
*/}}

{{/*
Expand the name of the chart.
*/}}
{{- define "eoc-worker.name" -}}
{{- if .Values.nameOverride }}
{{- printf "%s-%s" .Values.nameOverride "worker" | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Chart.Name "worker" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}

{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "eoc-worker.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $_name := default .Chart.Name .Values.nameOverride }}
{{- $name := printf "%s-%s" $_name "worker" }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s" $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}

{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "eoc-worker.chart" -}}
{{- printf "%s-%s-%s" .Chart.Name "worker" .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Common labels
*/}}
{{- define "eoc-worker.labels" -}}
helm.sh/chart: {{ include "eoc-worker.chart" . }}
{{ include "eoc-worker.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}

{{/*
Selector labels
*/}}
{{- define "eoc-worker.selectorLabels" -}}
app.kubernetes.io/name: {{ include "eoc-worker.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

{{/*
Create the name of the service account to use
*/}}
{{- define "eoc-worker.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "eoc-worker.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

{{/*
CLOUD PROVIDER ACCOUNTS HELPERS
*/}}

{{/*
Cloud Provider Accounts with credentials (for orchestrator)
*/}}
{{- define "eoc.cloudProviderAccounts.withCredentials" -}}
{{- if .Values.cloudProviderAccounts }}
{{- .Values.cloudProviderAccounts | toJson }}
{{- else }}
{{- "[]" }}
{{- end }}
{{- end }}

{{/*
Cloud Provider Accounts without credentials (for backend)
*/}}
{{- define "eoc.cloudProviderAccounts.withoutCredentials" -}}
{{- if .Values.cloudProviderAccounts }}
{{- $accounts := list }}
{{- range .Values.cloudProviderAccounts }}
{{- $account := dict "name" .name "label" .label "managedBy" .managedBy "platform" .platform }}
{{- $accounts = append $accounts $account }}
{{- end }}
{{- $accounts | toJson }}
{{- else }}
{{- "[]" }}
{{- end }}
{{- end }}

{{/*
MCP
*/}}

{{/*
Expand the name of the chart.
*/}}
{{- define "eoc-mcp.name" -}}
{{- if .Values.nameOverride }}
{{- printf "%s-%s" .Values.nameOverride "mcp" | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Chart.Name "mcp" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}

{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "eoc-mcp.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $_name := default .Chart.Name .Values.nameOverride }}
{{- $name := printf "%s-%s" $_name "mcp" }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s" $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}

{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "eoc-mcp.chart" -}}
{{- printf "%s-%s-%s" .Chart.Name "mcp" .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Common labels
*/}}
{{- define "eoc-mcp.labels" -}}
helm.sh/chart: {{ include "eoc-mcp.chart" . }}
{{ include "eoc-mcp.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}

{{/*
Selector labels
*/}}
{{- define "eoc-mcp.selectorLabels" -}}
app.kubernetes.io/name: {{ include "eoc-mcp.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

{{/*
Create the name of the service account to use
*/}}
{{- define "eoc-mcp.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "eoc-mcp.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}
8 changes: 8 additions & 0 deletions charts/eoc/templates/backend_configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,14 @@ data:

REGION: {{ .Values.global.region | quote }}

CLOUD_PROVIDER_ACCOUNTS: {{ include "eoc.cloudProviderAccounts.withoutCredentials" . | quote }}

TIERS_ENABLED: {{ .Values.ui.tiersVisibility | default false | quote }}
TASK_MANAGEMENT_LOGS_ENABLED: {{ .Values.ui.taskManagementLogsEnabled | default false | quote }}
TASK_MANAGEMENT_RE_RUN_ENABLED: {{ .Values.ui.taskManagementReRunEnabled | default false | quote }}
TASK_MANAGEMENT_CANCEL_ENABLED: {{ .Values.ui.taskManagementCancelEnabled | default false | quote }}
PROMOTION_PIPELINES_ENABLED: {{ .Values.features.pipeline.enabled | default false | quote }}

{{- range $key, $value := (.Values.backend).env }}
{{ tpl $key $ }}: {{ tpl (print $value) $ | quote }}
{{- end }}
Expand Down
2 changes: 1 addition & 1 deletion charts/eoc/templates/backend_deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ metadata:
labels:
{{- include "eoc-backend.labels" . | nindent 4 }}
spec:
replicas: 1
replicas: {{ .Values.backend.replicas | default 1 }}
selector:
matchLabels:
{{- include "eoc-backend.selectorLabels" . | nindent 6 }}
Expand Down
28 changes: 28 additions & 0 deletions charts/eoc/templates/mcp_configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{{- if .Values.mcp.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "eoc-mcp.fullname" . }}
labels:
app: {{ template "eoc-mcp.fullname" . }}
chart: "{{ template "eoc-mcp.chart" . }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
role: eoc-mcp
data:
# Server Configuration
PORT: "3000"
NODE_ENV: {{ .Values.mcp.nodeEnv | default "production" | quote }}

# Global Configuration
ENV_PREFIX: {{ .Values.global.infrastructureName | quote }}
DOMAIN_NAME: {{ .Values.global.domainName | quote }}
REGION: {{ .Values.global.region | quote }}

{{- range $key, $value := (.Values.mcp).env }}
{{ tpl $key $ }}: {{ tpl (print $value) $ | quote }}
{{- end }}
{{- range $key, $value := (.Values.global).env }}
{{ tpl $key $ }}: {{ tpl (print $value) $ | quote }}
{{- end }}
{{- end }}
66 changes: 66 additions & 0 deletions charts/eoc/templates/mcp_deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
{{- if .Values.mcp.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "eoc-mcp.fullname" . }}
labels:
{{- include "eoc-mcp.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.mcp.replicas | default 1 }}
selector:
matchLabels:
{{- include "eoc-mcp.selectorLabels" . | nindent 6 }}
template:
metadata:
name: {{ include "eoc-mcp.fullname" . | nindent 8 }}
labels:
{{- include "eoc-mcp.selectorLabels" . | nindent 8 }}
annotations:
{{- if (.Values.checksumConfigMap).enabled | default true }}
checksum/environment: {{ include (print $.Template.BasePath "/mcp_configmap.yaml") . | sha256sum }}
{{- end }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 6 }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.mcp.image.repository }}:{{ .Values.mcp.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.mcp.image.pullPolicy }}
ports:
- name: http
containerPort: 3000
protocol: TCP
envFrom:
- configMapRef:
name: {{ template "eoc-mcp.fullname" . }}
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: {{ default 60 .Values.mcp.initialDelaySeconds }}
periodSeconds: {{ default 30 .Values.mcp.periodSeconds }}
failureThreshold: 10
successThreshold: 1
readinessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: {{ default 60 .Values.mcp.initialDelaySeconds }}
periodSeconds: {{ default 30 .Values.mcp.periodSeconds }}
failureThreshold: 10
successThreshold: 1
{{- with .Values.mcp.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.mcp.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.mcp.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
17 changes: 17 additions & 0 deletions charts/eoc/templates/mcp_service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{{- if .Values.mcp.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ include "eoc-mcp.fullname" . }}
labels:
{{- include "eoc-mcp.labels" . | nindent 4 }}
spec:
type: {{ .Values.mcp.service.type }}
ports:
- port: {{ .Values.mcp.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "eoc-mcp.selectorLabels" . | nindent 4 }}
{{- end }}
1 change: 1 addition & 0 deletions charts/eoc/templates/orchestrator_configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ data:
APP_GIT_PRIVATE_KEY: {{ .Values.applications.fid.pipelineConfig.git.privateKey | quote }}
DUPLO_SERVICES_NAMESPACE: {{ .Values.global.commonServicesNamespace | default .Values.orchestrator.duplo.servicesTenantName | quote }}
ENVIRONMENT_NAMESPACE_PREFIX: {{ .Values.global.environmentNamespacePrefix | quote }}
CLOUD_PROVIDER_ACCOUNTS: {{ include "eoc.cloudProviderAccounts.withCredentials" . | quote }}
Comment thread
freddym-rl marked this conversation as resolved.
{{- range $key, $value := (.Values.orchestrator).env }}
{{ tpl $key $ }}: {{ tpl (print $value) $ | quote }}
{{- end }}
Expand Down
2 changes: 1 addition & 1 deletion charts/eoc/templates/orchestrator_deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ metadata:
labels:
{{- include "eoc-orchestrator.labels" . | nindent 4 }}
spec:
replicas: 1
replicas: {{ .Values.orchestrator.replicas | default 1 }}
selector:
matchLabels:
{{- include "eoc-orchestrator.selectorLabels" . | nindent 6 }}
Expand Down
Loading
Loading