Skip to content

✨(openproject) Add OpenProject#1

Merged
shiroginne merged 49 commits intomainfrom
add-openproject
Nov 7, 2025
Merged

✨(openproject) Add OpenProject#1
shiroginne merged 49 commits intomainfrom
add-openproject

Conversation

@shiroginne
Copy link

@shiroginne shiroginne commented Oct 9, 2025

📋 Summary

This PR adds OpenProject as a new application to the MijnBureau infrastructure, providing project management capabilities alongside existing applications like Grist, Keycloak, and Nextcloud.

✨ What's New

🎯 OpenProject Application

  • Full OpenProject deployment using the official OpenProject Helm chart
  • Bundled PostgreSQL for demo environment (as recommended by OpenProject docs)
  • Memcached caching for improved performance
  • Redis
  • Ingress configuration for external access

Add complete OpenProject support with PostgreSQL and Redis dependencies:

- Add OpenProject helmfile configuration with local chart dependencies
- Configure OpenProject with OIDC authentication via Keycloak
- Set up PostgreSQL database and Redis cache for OpenProject
- Add OpenProject to all environment configuration files:
  - Global hostname and domain configuration
  - Database connection settings with derived passwords
  - Redis cache configuration
  - OIDC client authentication setup
  - Resource limits and autoscaling policies
  - Persistent volume claims for data storage
  - SMTP configuration for email notifications
- Use OpenProject community chart v11.0.0 (app v16.4.1)
- Configure ingress with TLS support for openproject.mb.test
- Set up proper security contexts and network policies
- Enable horizontal pod autoscaling for web and worker components

The OpenProject application is now ready for deployment in demo and
production environments with full integration into the mijn-bureau
infrastructure stack.
Attempt to fix the seeder job.
Another attempt to fix an issue with seeder job
Another attempt to fix the seeder job issue.
@shiroginne shiroginne self-assigned this Oct 9, 2025
@shiroginne shiroginne marked this pull request as ready for review October 10, 2025 14:40
@shiroginne shiroginne requested a review from machisuji October 10, 2025 14:40
@NobodysNightmare
Copy link

Redis integration for background job processing

Is that a hallucination? As far as I know, we do not use Redis for background jobs at all. Our background job processor (Good Job) is using Postgresql for all its duties.

As far as I am aware, we do caching through Rails and use memcached for our own deployments, but (as far as I understand from our docs) would also support using Redis instead. But I don't think it would make sense to have both.

Copy link

@NobodysNightmare NobodysNightmare left a comment

Choose a reason for hiding this comment

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

I couldn't meaningfully review the PVC part, due to lack of understanding of what OpenProject needs there.

I still added a couple of questions and I am comparatively sure that some of my comments will require a change.

enabled: true
minReplicas: 1
maxReplicas: 3
targetCPU: 75

Choose a reason for hiding this comment

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

I might be misunderstanding how Helmfile is working here, but I don't see that we are using any of these values when configuring the openproject/values.yaml.gotmpl. Are we really setting anything up here?

Copy link
Author

Choose a reason for hiding this comment

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

They are used in the very end of the values file:

# Autoscaling configuration
{{- if .Values.autoscaling.horizontal.openproject }}
autoscaling:
  hpa: {{ .Values.autoscaling.horizontal.openproject | toYaml | nindent 4 }}
{{- end }}

But, tbh, I'm not sure if the autoscaling values are correct, just copied from another apps in this file.

Choose a reason for hiding this comment

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

Autoscaling is hard. I am not even sure if it's possible to do it properly without knowing the hardware we deploy to (since this is configuring CPU-based autoscaling.

What I usually saw happening is that a misconfigured autoscaling falls left or right:

  • left: the deployment is always scaled to minReplicas, because the requested CPU is too high to ever be reached
  • right: the deployment is always caled to maxReplicas, because the requested CPU is too low to even be reached in idle

Copy link
Author

Choose a reason for hiding this comment

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

We can leave these values as they are and let them decide for themselves whether to change them later 🤔

@shiroginne shiroginne changed the title Add OpenProject ✨(project management) Add OpenProject Nov 6, 2025
@shiroginne shiroginne changed the title ✨(project management) Add OpenProject ✨(openproject) Add OpenProject Nov 7, 2025
@shiroginne shiroginne merged commit 6c610fe into main Nov 7, 2025
9 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants