Skip to content

Conversation

Planlos5000
Copy link
Collaborator

Description

Add a helm chart for easy kubernetes deployment

Changelog

  • Add a helm chart
  • Add unit tests for the helm chart
  • Add tilt file for a test deployment

Checklist

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas

@Planlos5000 Planlos5000 linked an issue Feb 18, 2025 that may be closed by this pull request

This comment has been minimized.

@Planlos5000 Planlos5000 added the Review Needed This pull request is ready for review label Mar 5, 2025

This comment has been minimized.

@Zaunei
Copy link
Collaborator

Zaunei commented Apr 29, 2025

All in all, a very clean and nice build Helm Chart 👍

What do you think about installing ingress-nginx with Tilt and keeping the values so that you can use Tilt without any adjustments?

For this you would have to set the insecure flag so that you don't have to generate a key and install an ingress controller and set * as host.

tilt/namespace.yaml:

...

---
apiVersion: v1
kind: Namespace
metadata:
  name: ingress-nginx

tilt/scrumlr-values.yaml:

backend:
  config:
    natsUrl: nats://nats.nats.svc.cluster.local:4222
  secrets:
    databaseUrl: postgres://postgres:SuperStrongpassword@postgres-postgresql.postgres.svc.cluster.local:5432/scrumlr?sslmode=disable
  extraConfig:
    # Do NOT use this config for production deployments, this flag enables hardcoded, insecure keys
    SCRUMLR_INSECURE: true
ingress:
  enabled: true
  annotations:
    # Websocket optimization https://kubernetes.github.io/ingress-nginx/user-guide/miscellaneous/#websockets
    nginx.ingress.kubernetes.io/proxy-send-timeout: "7200"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "7200"
  hostname: "*"
  ingressClassName: "nginx"

tilt/Tiltfile:

load("ext://helm_resource", "helm_resource", "helm_repo")

helm_repo("nats-repo", "https://nats-io.github.io/k8s/helm/charts/")
helm_repo("ingress-nginx-repo","https://kubernetes.github.io/ingress-nginx")

k8s_yaml(yaml="./namespace.yaml")

helm_resource(
    name="postgres",
    chart="oci://registry-1.docker.io/bitnamicharts/postgresql",
    namespace="postgres",
    flags=["--values=postgres-values.yaml"],
)

helm_resource(
    name="nats-deploy",
    release_name="nats",
    chart="nats/nats",
    namespace="nats",
    resource_deps=["nats-repo"],
)

helm_resource(
    name="ingress-nginx-deploy",
    release_name="ingress-nginx",
    chart="ingress-nginx/ingress-nginx",
    namespace="ingress-nginx",
    resource_deps=["ingress-nginx-repo"],
)

yaml = helm(
    "./../../scrumlr",
    name="scrumlr",
    namespace="scrumlr",
    values=["./scrumlr-values.yaml"]
)
k8s_yaml(yaml=yaml)

@Zaunei
Copy link
Collaborator

Zaunei commented Apr 29, 2025

Other small things I would change/ nits:

  • Rename the k8s directory to helm. Especially with the background that I might want to contribute a current Kustomize deployment (mainly for SKE).
  • Inconsistent End of File, the .editorconfig in this repo also suggests a newline at the end of files

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@Lennart01 Lennart01 requested a review from Copilot May 29, 2025 08:37
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds a Helm chart along with associated unit tests and a Tilt file for simplified Kubernetes deployment of Scrumlr.

  • Introduces a complete Helm chart with templates for backend, frontend, ingress, secrets, configmaps, services, HPA, and deployments.
  • Adds unit tests to validate the rendered resources from the Helm chart.
  • Provides Makefile targets for rendering, linting, packaging, and deploying the Helm chart with Tilt.

Reviewed Changes

Copilot reviewed 36 out of 36 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
deployment/helm/scrumlr/tests/backend/configmap_test.yaml Adds tests to validate the backend configmap settings.
deployment/helm/scrumlr/templates/ingress_tls_secrets.yaml Provides TLS secret generation for ingress using either provided or self-signed certs.
deployment/helm/scrumlr/templates/ingress.yaml Defines ingress rules and TLS configuration based on provided values.
deployment/helm/scrumlr/templates/frontend/*.yaml Contains service, secrets, HPA, deployment, and configmap for the frontend.
deployment/helm/scrumlr/templates/backend/*.yaml Contains service, secrets, HPA, deployment, and configmap for the backend.
deployment/helm/scrumlr/templates/_helpers.tpl Provides helper template functions for naming, labels, and certificate annotations.
deployment/helm/scrumlr/README.md Documents available parameters and usage instructions for the Helm chart.
deployment/helm/scrumlr/Makefile Adds Makefile tasks for rendering, linting, packaging, testing, and Tilt deployment.
deployment/helm/scrumlr/Chart.yaml Defines the Helm chart metadata for Scrumlr.
deployment/helm/scrumlr/.helmignore and .gitignore Specifies files to ignore when packaging or committing the Helm chart.
deployment/helm/README.md Provides an overview and development instructions for the Kubernetes deployment.

This comment has been minimized.

Copy link

The deployment to the dev cluster was successful. You can find the deployment here: https://4863.development.scrumlr.fra.ics.inovex.io
This deployment is only for testing purposes and will be deleted after 1 week.
To redeploy rerun the workflow.
DO NOT STORE IMPORTANT DATA ON THIS DEPLOYMENT

Deployed Images
  • ghcr.io/inovex/scrumlr.io/scrumlr-frontend:sha-0d89d55

  • ghcr.io/inovex/scrumlr.io/scrumlr-server:sha-0d89d55

Copy link

octomind-dev bot commented Jun 18, 2025

🐙 Octomind

Test Report: 14/14 successful.

description status details
test all ways to open the setup flow Passed ✅ click
sign-in Passed ✅ click
share_session Passed ✅ click
get started Passed ✅ click
edit_notes_and_actions_v5 Passed ✅ click
create lean coffee board Passed ✅ click
create_and_delete_notes_and_actions_v2 Passed ✅ click
create and delete board columns Passed ✅ click
close cookie banner - sign-in Passed ✅ click
close cookie banner - front page Passed ✅ click
check terms & conditions Passed ✅ click
check Privacy Policy Passed ✅ click
change avatar Passed ✅ click
About Section Visibility Test Passed ✅ click

commit sha: 0d89d55

@Planlos5000 Planlos5000 added this pull request to the merge queue Jun 18, 2025
Merged via the queue into main with commit 66e40d8 Jun 18, 2025
15 of 17 checks passed
@Planlos5000 Planlos5000 deleted the fs/helmchart branch June 18, 2025 07:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Review Needed This pull request is ready for review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add kubernetes deployment
2 participants