Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helm Chart for easy Kubernetes deployment #209

Open
christianhuth opened this issue May 23, 2022 · 17 comments
Open

Helm Chart for easy Kubernetes deployment #209

christianhuth opened this issue May 23, 2022 · 17 comments

Comments

@christianhuth
Copy link

Are there any plans for building a Helm Chart on top of these Docker Images to run TYPO3 in a Kubernetes cluster?

@martin-helmich
Copy link
Owner

I currently don't have any plans on my own for that. I'd be willing to accept pull requests, though. 🙂

@christianhuth
Copy link
Author

Alright. I will build one. :)

@christianhuth
Copy link
Author

Chart is available here: https://github.com/christianknell/helm-charts/tree/main/charts/typo3 and published here https://artifacthub.io/packages/search?repo=christianknell&ts_query_web=typo3.

Currently there is still a bug which prevents it from being reachable through an Ingress resource. Don't know it this needs a fix in your Docker Image or in the way i define the Ingress resource.

@SchoolGuy
Copy link

SchoolGuy commented Sep 27, 2022

Thanks for the HelmChart! However I am curious how you handle the storage? Since this is a deployment and not a StatefulSet (this is my setup atm), I believe running this long-term is a bit tricky.

What I would find a useful additions:

  • Add a Healthcheck to the image and additionally to the probes in k8s.
  • Add a database as a subchart - as the Nextcloud HelmChart does it for example.
  • Add something like the Apache exporter (https://github.com/Lusitaniae/apache_exporter). This way we would be able to monitor the performance of our Typo3 instance very nicely. - Never done it but I am hopeful I can achieve this in my personal instance soon.
  • Add Redis (again as a subchart), to enable caching for the instances. - Sadly with this I have no experience.

@christianhuth
Copy link
Author

christianhuth commented Nov 28, 2022

@SchoolGuy thanks for the suggestions. I will add healthchecks, redis and the apache exporter. Please feel free to add Issues over at my Helm repository. The database is already added as subcharts using the Bitnami Helm charts - see the dependencies here.

@christianhuth
Copy link
Author

@martin-helmich: is your Docker image able to use Redis? Are there any Environment variables for configuring this?

@christianhuth
Copy link
Author

@martin-helmich: are there any build-in healthchecks i can build the Kubernetes probes on?

@martin-helmich
Copy link
Owner

martin-helmich commented Nov 28, 2022

is your Docker image able to use Redis?

We'd probably need to adjust the Docker build to build and install the redis extension.

Currently, the image is designed to just drop you into the installer, and does (currently) not support any ahead-of-time configuration via environment variables. That is a change which I've also talked about with quite a few people by now and would be a welcome addition (although an entirely different beast, altogether -- especially keeping BC).

are there any build-in healthchecks i can build the Kubernetes probes on?

Currently not. You could just probe /, but that might return 400 or 500 errors, depending on how your TYPO3 is configured, unrelated to the actual container health.

@christianhuth
Copy link
Author

@martin-helmich: thanks for providing this information. I will then simply include Redis into the Chart as a dependency, so people are able to install everything they need in one package. The definition than has to be done the "usual TYPO3-way". Would it make sense to also include Memcached as a dependency?

@martin-helmich
Copy link
Owner

Would it make sense to also include Memcached as a dependency?

TBH I've always avoided using Memcached when I had the option to use Redis, instead. If at all, I'd recommend only adding it as an optional dependency, that would need to be explicitly enabled via the Helm values.

@SchoolGuy
Copy link

@martin-helmich As I am using your image already for this purpose and I would like to make the experience smoother, is there anything I could help with? I am aware that keeping such an image alive is not easy but I would be willing to help if I get told what to do.

@martin-helmich
Copy link
Owner

I would like to make the experience smoother, is there anything I could help with?

Sure, any help is appreciated. ❤️ TBH I haven't followed this thread for a while (my time to work on this has been limited, recently), but I'll see if I can (later today) get an overview on anything that is actually still needed for providing an actual, smooth cloud-native experience and translate those into some actionable issues.

@christianhuth
Copy link
Author

Would love to help here as well.

@SchoolGuy
Copy link

@christianknell I just saw we could meet up for a coffee and do a hackathon together for this, as we live in the same city. ;)

@martin-helmich martin-helmich changed the title Kubernetes Deployment Helm Chart for easy Kubernetes deployment Nov 28, 2022
@martin-helmich
Copy link
Owner

What a small world. 😅 Nürnberg is a bit out of the way for me, otherwise I'd join up, too. 😉

As promised, I've collected my thoughts and created an umbrella issue (#229) for all the things that I could come up with for a "real" cloud-native deployments. As mentioned, any help is appreciated. ❤️

@christianknell Admittedly, I kind of lost track of the Helm chart issue a little bit; are there any remaining open issues or blockers? I've some experience with Kubernetes and Helm and be happy to jump in, if needed.

@christianhuth
Copy link
Author

@christianknell I just saw we could meet up for a coffee and do a hackathon together for this, as we live in the same city. ;)

@SchoolGuy sounds awesome :)

@christianhuth
Copy link
Author

What a small world. 😅 Nürnberg is a bit out of the way for me, otherwise I'd join up, too. 😉

As promised, I've collected my thoughts and created an umbrella issue (#229) for all the things that I could come up with for a "real" cloud-native deployments. As mentioned, any help is appreciated. ❤️

@christianknell Admittedly, I kind of lost track of the Helm chart issue a little bit; are there any remaining open issues or blockers? I've some experience with Kubernetes and Helm and be happy to jump in, if needed.

@martin-helmich basically the chart is ready, but as far as I remember there was still an issue with the ingress resource. But can't recall the exact problem at the moment. Will have a look into that this week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants