Skip to content
Merged

Main #173

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
ca1b560
fix: separate SSL certificates (#101)
wgalanciak May 7, 2025
b64df46
fix: Set environment variables via .env file. (#99)
nmorenor May 8, 2025
2c6b287
fix: add env_file to codetogether-intel (#105)
wgalanciak May 10, 2025
2605843
fix: missing CT_HQ_BASE_URL env var (#107)
wgalanciak May 12, 2025
fb116ee
feat: nginx auto config (#109)
wgalanciak May 12, 2025
4d79a6d
fix: add step for sso provider (#110)
wgalanciak May 12, 2025
063a4eb
fix: add client_max_body_size to intel (#112)
wgalanciak May 12, 2025
d665be1
fix: tweak name of dhparam.pem env var (#113)
wgalanciak May 12, 2025
56d5eee
fix: missing env file on collab (#114)
nmorenor May 12, 2025
f21332a
fix: handle nil ai.openai.api_key to prevent template er… (#116)
danc094codetogether May 12, 2025
11960dd
fix: cleanup for sso tenants (#117)
wgalanciak May 12, 2025
9cd2f48
feat(intel): add option to disable AI integration entirely (#120)
danc094codetogether May 16, 2025
c7bee30
Change gen ai image name on values file (#122)
nmorenor Jun 10, 2025
75c414f
fix: bump up version number (#123)
nmorenor Jun 10, 2025
aacad57
docs: remove outdated metrics section from README (#130)
danc094codetogether Jun 16, 2025
23ddc3e
fix: add note to env-template file (#127)
nmorenor Jun 17, 2025
447a8a7
fix: update LLM image URL to hub.edge (#132)
danc094codetogether Jun 18, 2025
61a8250
docs: add deprecation notice to old Live chart (#131)
danc094codetogether Jun 18, 2025
d4665b0
126 automatically configure ollama integration when llm is enabled (#…
danc094codetogether Jun 18, 2025
9e1cae0
Gen AI Changes (#124)
nmorenor Jun 18, 2025
4fab2ad
Fix collab helm chart to allow usage of locator. (#134)
nmorenor Jun 18, 2025
8033f54
fix: invalid values in AI values section (#137)
wgalanciak Jun 30, 2025
5547e74
fix: support automatic configuration of the LLM integration if AI is …
wgalanciak Jun 30, 2025
6e96ea7
Fixes after Testing (#139)
danc094codetogether Jun 30, 2025
b55b89c
Changes to use localhost always to avoid dns issues (#142)
nmorenor Jun 30, 2025
ea40024
Merge branch 'main' into dev
nmorenor Jun 30, 2025
c481aed
feat: support for optional keycloak deployment (#145)
wgalanciak Jul 10, 2025
40dffd5
144 keycloak (#146)
nmorenor Jul 10, 2025
502eb16
144 keycloak (#147)
nmorenor Jul 10, 2025
f3790b8
144 keycloak (#149)
nmorenor Jul 10, 2025
a044e60
fixes on properties file
nmorenor Jul 10, 2025
98cd5b5
Prepare examples for deployment with keycloak.
nmorenor Jul 10, 2025
0191fcd
move files
nmorenor Jul 10, 2025
65d2a48
feat(charts, compose): add CT_TRUST_ALL_CERTS support (#158)
danc094codetogether Jul 21, 2025
5f5741c
feat(chart): guard `ai-secrets` template behind `ai.enabled` (#161)
danc094codetogether Aug 11, 2025
264c8e4
fix: improve keycloak compose health check (#162)
nmorenor Aug 12, 2025
ecf00a4
fix(helm/intel): scope AI resources per-release to avoid cross-releas…
danc094codetogether Aug 27, 2025
b7f92f8
chore(keycloak): switch to KC_BOOTSTRAP_* admin vars and update compo…
danc094codetogether Sep 5, 2025
2256e9d
feat(helm): add RO rootfs support for Intel and Collab (#169)
danc094codetogether Sep 18, 2025
54402d5
feat(helm-collab): Support optional existing secret for Intel connect…
danc094codetogether Sep 18, 2025
fd6aec4
Merge branch 'main' into dev
danc094codetogether Sep 18, 2025
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
22 changes: 19 additions & 3 deletions charts/collab/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ spec:
annotations:
checksum/coturn: {{ include (print $.Template.BasePath "/secret-coturn.yaml") . | sha256sum }}
checksum/dashboard: {{ include (print $.Template.BasePath "/secret-dashboard.yaml") . | sha256sum }}
checksum/intel: {{ include (print $.Template.BasePath "/secret-intel.yaml") . | sha256sum }}
checksum/intel: {{- if not .Values.intelsecret.enabled }} {{ include (print $.Template.BasePath "/secret-intel.yaml") . | sha256sum }} {{- else }} "external" {{- end }}
checksum/ssl: {{ include (print $.Template.BasePath "/secret-ssl.yaml") . | sha256sum }}
{{- with .Values.podAnnotations }}
{{- toYaml . | nindent 8 }}
Expand Down Expand Up @@ -139,15 +139,27 @@ spec:
value: {{ .Values.codetogether.timeZone.region | quote }}
{{- end }}

{{- if and .Values.intelsecret.enabled (not .Values.intelsecret.ref) }}
{{- fail "intelsecret.enabled=true requires intelsecret.ref (existing Secret name)" -}}
{{- end }}

- name: CT_INTEL_URL
valueFrom:
secretKeyRef:
name: {{ include "codetogether.fullname" . }}-intel
name: {{ if .Values.intelsecret.enabled -}}
{{ .Values.intelsecret.ref | quote }}
{{- else }}
{{ printf "%s-intel" (include "codetogether.fullname" .) | quote }}
{{- end }}
key: url
- name: CT_INTEL_SECRET
valueFrom:
secretKeyRef:
name: {{ include "codetogether.fullname" . }}-intel
name: {{ if .Values.intelsecret.enabled -}}
{{ .Values.intelsecret.ref | quote }}
{{- else }}
{{ printf "%s-intel" (include "codetogether.fullname" .) | quote }}
{{- end }}
key: secret
{{- if .Values.dashboard.enabled }}
- name: CT_DASHBOARD_USER
Expand Down Expand Up @@ -182,6 +194,10 @@ spec:
name: codetogether-runtime
- mountPath: /tmp
name: codetogether-tmp
- mountPath: /var/log/nginx
name: codetogether-runtime
- mountPath: /var/cache/nginx
name: codetogether-runtime
{{- if .Values.favicon.enabled }}
- mountPath: /opt/volatile-template/nginx/favicon.ico
name: favicon-volume
Expand Down
2 changes: 2 additions & 0 deletions charts/collab/templates/secret-intel.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{- if not .Values.intelsecret.enabled }}
apiVersion: v1
kind: Secret
metadata:
Expand All @@ -8,3 +9,4 @@ type: Opaque
data:
url: {{ .Values.intel.url | b64enc | quote }}
secret: {{ .Values.intel.secret | b64enc | quote }}
{{- end }}
11 changes: 8 additions & 3 deletions charts/collab/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ imageCredentials:
openshift:
enabled: false

# Optional: use an existing secret for Intel connection
intelsecret:
enabled: false # default OFF - chart-managed secret
ref: "" # name of existing Secret (must have keys: url, secret)

#
# Values required for establishing connection with the Intel server.
#
Expand Down Expand Up @@ -206,13 +211,13 @@ serviceAccount:

podAnnotations: {}

securityContext: {}
securityContext: {} #defaults to
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
# readOnlyRootFilesystem: true # enable for read-only setup
# runAsUser: 0 # Use '0' for root user for read-only setup

readinessProbe:
initialDelaySeconds: 60
Expand Down
7 changes: 4 additions & 3 deletions charts/intel/templates/ai-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: ai-config
name: {{ printf "%s-ai-config" (include "codetogether.fullname" .) }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "codetogether.labels" . | nindent 4 }}
data:
ai_provider: {{ .Values.ai.provider | quote }}
ai_url: {{ .Values.ai.url | quote }}
{{- end }}

{{- end }}
43 changes: 41 additions & 2 deletions charts/intel/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,17 @@ spec:
imagePullSecrets:
- name: {{ include "codetogether.fullname" . }}-pull-secret
{{- end }}
{{- if .Values.readOnlyMode.enabled }}
initContainers:
- name: prepare-ro
image: busybox:latest
securityContext:
runAsUser: 0
command: ["sh", "-lc", "mkdir -p /mnt/volatile/var-log-nginx /mnt/volatile/var-cache-nginx /mnt/var/log-codetogether || true"]
volumeMounts:
- name: volatile
mountPath: /mnt/volatile
{{- end }}
serviceAccountName: {{ include "codetogether.serviceAccountName" . }}
containers:
- name: {{ .Chart.Name }}
Expand All @@ -44,12 +55,12 @@ spec:
- name: AI_PROVIDER
valueFrom:
configMapKeyRef:
name: ai-config
name: {{ printf "%s-ai-config" (include "codetogether.fullname" .) }}
key: ai_provider
- name: AI_EXTERNAL_URL
valueFrom:
configMapKeyRef:
name: ai-config
name: {{ printf "%s-ai-config" (include "codetogether.fullname" .) }}
key: ai_url
- name: AI_EXTERNAL_API_KEY
valueFrom:
Expand All @@ -76,6 +87,10 @@ spec:
key: {{ .Values.java.customCacerts.trustStorePasswordKey }}
optional: true
{{- end }}
{{- if .Values.codetogether.trustAllCerts }}
- name: CT_TRUST_ALL_CERTS
value: "true"
{{- end }}
{{- if .Values.ai.enabled }}
- name: CT_HQ_OLLAMA_AI_URL
value: {{ if eq .Values.ai.mode "bundled" }}
Expand Down Expand Up @@ -104,6 +119,20 @@ spec:
mountPath: /etc/ssl/certs/java/cacerts
subPath: cacerts
{{- end }}
{{- if .Values.readOnlyMode.enabled }}
- name: volatile
mountPath: /run/volatile
- name: run
mountPath: /run
- name: tmp
mountPath: /tmp
- name: volatile
mountPath: /var/log/nginx
subPath: var-log-nginx
- name: volatile
mountPath: /var/cache/nginx
subPath: var-cache-nginx
{{- end }}
ports:
- name: http
containerPort: 1080
Expand Down Expand Up @@ -152,6 +181,16 @@ spec:
secret:
secretName: {{ .Values.java.customCacerts.cacertsSecretName }}
{{- end }}
{{- if .Values.readOnlyMode.enabled }}
- name: volatile
emptyDir: {}
- name: run
emptyDir:
medium: Memory
- name: tmp
emptyDir:
medium: Memory
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
Expand Down
2 changes: 2 additions & 0 deletions charts/intel/templates/secrets.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{- if .Values.ai.enabled }}
apiVersion: v1
kind: Secret
metadata:
Expand All @@ -14,3 +15,4 @@ data:
external-ai-key: {{ .Values.ai.external.api_key | b64enc }}
{{- end }}
{{- end }}
{{- end }}
23 changes: 17 additions & 6 deletions charts/intel/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,14 @@ imageCredentials:
email: unused

#
# Set CodeTogether runing mode and server's FQDN (HTTPS is mandatory for CodeTogether)
# Set CodeTogether running mode and server's FQDN (HTTPS is mandatory for CodeTogether)
# Use 'direct' for simple evaluations and small deployments. CodeTogether can provide
# guidance on the best deployment option based on your needs.
#
codetogether:
url: https://<server-fqdn>
trustAllCerts: false # Set to 'true' to trust all certificates


hqproperties:
hq.sso.client.id: CLIENTID.apps.googleusercontent.com
Expand Down Expand Up @@ -130,20 +132,26 @@ serviceAccount:

podAnnotations: {}

securityContext: {}
securityContext: {} #defaults to

# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
#readOnlyRootFilesystem: true # enable for read-only setup
#runAsUser: 0 # Use '0' for root user for read-only setup
# runAsNonRoot: true
# runAsUser: 1000

ai:
enabled: false
mode: "bundled" # Options: bundled | external
image:
repository: hub.edge.codetogether.com/releases/codetogether-llm
tag: latest
provider: ""
url: ""
modelName: "gemma3:1b"
externalSecret:
create: false
name: ""
apiKey: ""
# resources: # Recommended resources configuration
# requests:
# cpu: "2"
Expand Down Expand Up @@ -173,3 +181,6 @@ tolerations: []
affinity: {}

replicaCount: 1

readOnlyMode:
enabled: false # Set to 'true' to enable read-only mode
4 changes: 4 additions & 0 deletions compose/.env-template
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,7 @@ DHPARAM_PEM=dhparam.pem
# Uncomment the following lines to enable AI integration with Ollama
#CT_HQ_OLLAMA_AI_URL=http://codetogether-llm:8000
#CT_HQ_OLLAMA_AI_MODEL_NAME=gemma3:1b

# Enable “to trust all certificates”
CT_TRUST_ALL_CERTS=false

4 changes: 2 additions & 2 deletions compose/.env-with-keycloak-template
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ SSL_KEYCLOAK_KEY=ssl-keycloak.key
KEYCLOAK_DB_USERNAME=keycloak
KEYCLOAK_DB_PASSWORD=keycloak

KEYCLOAK_ADMIN_PASSWORD=keycloak
KEYCLOAK_ADMIN=admin
KC_BOOTSTRAP_ADMIN_PASSWORD=keycloak
KC_BOOTSTRAP_ADMIN_USERNAME=admin

# Uncomment the following lines to enable AI integration with Ollama
#CT_HQ_OLLAMA_AI_URL=http://codetogether-llm:8000
Expand Down
4 changes: 2 additions & 2 deletions compose/keycloak/.env-template
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ SSL_KEYCLOAK_KEY=ssl-keycloak.key
KEYCLOAK_DB_USERNAME=keycloak
KEYCLOAK_DB_PASSWORD=keycloak

KEYCLOAK_ADMIN_PASSWORD=keycloak
KEYCLOAK_ADMIN=admin
KC_BOOTSTRAP_ADMIN_PASSWORD=keycloak
KC_BOOTSTRAP_ADMIN_USERNAME=admin
14 changes: 9 additions & 5 deletions compose/keycloak/compose-keycloak-no-nginx.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ services:
- "start"
environment:
# Admin credentials
KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN}
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD}
KC_BOOTSTRAP_ADMIN_USERNAME: ${KC_BOOTSTRAP_ADMIN_USERNAME}
KC_BOOTSTRAP_ADMIN_PASSWORD: ${KC_BOOTSTRAP_ADMIN_PASSWORD}

# Database connectivity
KC_DB: mysql
Expand All @@ -62,11 +62,15 @@ services:
networks:
- codetogethernet
healthcheck:
test: ["CMD-SHELL", "echo > /dev/tcp/localhost/8080 || exit 1"]
test:
[
"CMD-SHELL",
"bash -lc 'exec 3<>/dev/tcp/127.0.0.1/9000 && printf \"GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n\" >&3 && head -n1 <&3 | grep -q \" 200 \"'"
]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
retries: 30
start_period: 90s

volumes:
mysql_data:
Expand Down
14 changes: 9 additions & 5 deletions compose/keycloak/compose-keycloak.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ services:
- "start"
environment:
# Admin credentials
KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN}
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD}
KC_BOOTSTRAP_ADMIN_USERNAME: ${KC_BOOTSTRAP_ADMIN_USERNAME}
KC_BOOTSTRAP_ADMIN_PASSWORD: ${KC_BOOTSTRAP_ADMIN_PASSWORD}

# Database connectivity
KC_DB: mysql
Expand All @@ -81,11 +81,15 @@ services:
networks:
- codetogethernet
healthcheck:
test: ["CMD-SHELL", "echo > /dev/tcp/localhost/8080 || exit 1"]
test:
[
"CMD-SHELL",
"bash -lc 'exec 3<>/dev/tcp/127.0.0.1/9000 && printf \"GET /health/ready HTTP/1.1\\r\\nHost: localhost\\r\\nConnection: close\\r\\n\\r\\n\" >&3 && head -n1 <&3 | grep -q \" 200 \"'"
]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
retries: 30
start_period: 90s

volumes:
mysql_data:
Expand Down
Loading