Skip to content
Closed
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
5 changes: 2 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,14 @@ jobs:

All images are available for both \`linux/amd64\` and \`linux/arm64\` platforms:

- Kubernetes Controller: \`ghcr.io/${{ github.repository_owner }}/streamspace-kubernetes-controller:${{ steps.version.outputs.VERSION }}\`
- API: \`ghcr.io/${{ github.repository_owner }}/streamspace-api:${{ steps.version.outputs.VERSION }}\`
- UI: \`ghcr.io/${{ github.repository_owner }}/streamspace-ui:${{ steps.version.outputs.VERSION }}\`
- K8s Agent: \`ghcr.io/${{ github.repository_owner }}/streamspace-k8s-agent:${{ steps.version.outputs.VERSION }}\`

## Documentation

- [Installation Guide](https://github.com/${{ github.repository }}/blob/main/README.md)
- [Architecture Docs](https://github.com/${{ github.repository }}/blob/main/docs/ARCHITECTURE.md)
- [Controller Guide](https://github.com/${{ github.repository }}/blob/main/docs/CONTROLLER_GUIDE.md)
- [Helm Chart README](https://github.com/${{ github.repository }}/blob/main/chart/README.md)

## Upgrade Instructions
Expand Down Expand Up @@ -171,7 +170,7 @@ jobs:
needs: release
strategy:
matrix:
component: [kubernetes-controller, api, ui]
component: [api, ui, k8s-agent]
steps:
- name: Extract version
id: version
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/security-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
component: [api, ui, kubernetes-controller]
component: [api, ui, k8s-agent, docker-agent]
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand All @@ -35,8 +35,10 @@ jobs:
docker build -t streamspace-api:scan ./api
elif [ "${{ matrix.component }}" = "ui" ]; then
docker build -t streamspace-ui:scan ./ui
elif [ "${{ matrix.component }}" = "kubernetes-controller" ]; then
docker build -t streamspace-kubernetes-controller:scan ./k8s-controller
elif [ "${{ matrix.component }}" = "k8s-agent" ]; then
docker build -t streamspace-k8s-agent:scan ./agents/k8s-agent
elif [ "${{ matrix.component }}" = "docker-agent" ]; then
docker build -t streamspace-docker-agent:scan ./agents/docker-agent
fi

- name: Run Trivy vulnerability scanner
Expand Down
19 changes: 3 additions & 16 deletions chart/templates/NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -114,21 +114,8 @@ Connection Status:
kubectl logs -n {{ .Release.Namespace }} -l app.kubernetes.io/component=api \
| grep "Agent registered"

The K8s Agent connects to the Control Plane via WebSocket for session management.
This replaces the v1.x controller-based architecture.

{{- else if .Values.controller.enabled }}

⚙️ V1.X CONTROLLER ARCHITECTURE
────────────────────────────────────────────────────────────────────────────

StreamSpace is deployed with the v1.x Controller architecture.

To upgrade to v2.0-beta agent architecture:
helm upgrade {{ .Release.Name }} {{ .Chart.Name }} \
--reuse-values \
--set k8sAgent.enabled=true \
--set controller.enabled=false
The K8s Agent connects to the Control Plane via WebSocket for session
management. (The v1.x controller-based architecture was removed in v2.0.)

{{- end }}

Expand All @@ -147,7 +134,7 @@ To upgrade to v2.0-beta agent architecture:

View metrics:
kubectl port-forward -n {{ .Release.Namespace }} \
svc/{{ include "streamspace.fullname" . }}-controller 8080:8080
svc/{{ include "streamspace.fullname" . }}-api 8080:8080

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Forward metrics to the API service's configured port

This command now targets the API service but still hard-codes 8080:8080, while the chart’s default API service port is 8000 (api.service.port), so the post-install metrics check fails on a default install with a "service does not have a service port 8080" error. Update the port-forward mapping to use the API service port (or template it from values) so NOTES instructions work reliably.

Useful? React with 👍 / 👎.


curl http://localhost:8080/metrics

Expand Down
33 changes: 0 additions & 33 deletions chart/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,6 @@ app.kubernetes.io/name: {{ include "streamspace.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

{{/*
Controller labels
*/}}
{{- define "streamspace.controller.labels" -}}
{{ include "streamspace.labels" . }}
app.kubernetes.io/component: controller
{{- end }}

{{/*
API labels
*/}}
Expand Down Expand Up @@ -91,17 +83,6 @@ PostgreSQL labels
app.kubernetes.io/component: database
{{- end }}

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

{{/*
Create the name of the API service account to use
*/}}
Expand Down Expand Up @@ -194,20 +175,6 @@ Get the PostgreSQL secret key for password
{{- end }}
{{- end }}

{{/*
Image name for controller
*/}}
{{- define "streamspace.controller.image" -}}
{{- $registry := .Values.global.imageRegistry | default .Values.controller.image.registry }}
{{- $repository := .Values.controller.image.repository }}
{{- $tag := .Values.controller.image.tag | default .Chart.AppVersion }}
{{- if $registry }}
{{- printf "%s/%s:%s" $registry $repository $tag }}
{{- else }}
{{- printf "%s:%s" $repository $tag }}
{{- end }}
{{- end }}

{{/*
Image name for API
*/}}
Expand Down
120 changes: 0 additions & 120 deletions chart/templates/controller-deployment.yaml

This file was deleted.

49 changes: 0 additions & 49 deletions chart/templates/networkpolicy.yaml
Original file line number Diff line number Diff line change
@@ -1,53 +1,4 @@
{{- if .Values.networkPolicy.enabled }}
{{- if .Values.controller.enabled }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: {{ include "streamspace.fullname" . }}-controller
namespace: {{ .Release.Namespace }}
labels:
{{- include "streamspace.controller.labels" . | nindent 4 }}
spec:
podSelector:
matchLabels:
{{- include "streamspace.selectorLabels" . | nindent 6 }}
app.kubernetes.io/component: controller
policyTypes:
- Ingress
- Egress
ingress:
# Allow Prometheus to scrape metrics
- from:
- namespaceSelector:
matchLabels:
name: {{ .Values.networkPolicy.monitoring.namespace | default "observability" }}
ports:
- protocol: TCP
port: 8080
egress:
# Allow access to Kubernetes API
- to:
- namespaceSelector: {}
podSelector:
matchLabels:
component: apiserver
ports:
- protocol: TCP
port: 443
# Allow DNS
- to:
- namespaceSelector:
matchLabels:
name: kube-system
ports:
- protocol: UDP
port: 53
# Allow all egress if not restricted
{{- if not .Values.networkPolicy.controller.restrictEgress }}
- {}
{{- end }}
---
{{- end }}
{{- if .Values.api.enabled }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
Expand Down
21 changes: 0 additions & 21 deletions chart/templates/pdb.yaml
Original file line number Diff line number Diff line change
@@ -1,24 +1,3 @@
{{- if and .Values.controller.enabled .Values.controller.podDisruptionBudget.enabled }}
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: {{ include "streamspace.fullname" . }}-controller
namespace: {{ .Release.Namespace }}
labels:
{{- include "streamspace.controller.labels" . | nindent 4 }}
spec:
{{- if .Values.controller.podDisruptionBudget.minAvailable }}
minAvailable: {{ .Values.controller.podDisruptionBudget.minAvailable }}
{{- end }}
{{- if .Values.controller.podDisruptionBudget.maxUnavailable }}
maxUnavailable: {{ .Values.controller.podDisruptionBudget.maxUnavailable }}
{{- end }}
selector:
matchLabels:
{{- include "streamspace.selectorLabels" . | nindent 6 }}
app.kubernetes.io/component: controller
---
{{- end }}
{{- if and .Values.api.enabled .Values.api.podDisruptionBudget.enabled }}
apiVersion: policy/v1
kind: PodDisruptionBudget
Expand Down
Loading
Loading