Repository with a set of Helm charts with my favourite applications to be deployed on Kubernetes.
Continuing with my learning path, I decided to create this repository as a place to store a set of Helm charts for the applications I use at home. With this, I will learn about Kubernetes and Helm, which are things present on my daily basis and what I would like to improve my knowledge about.
- Kubernetes environment on-premise or Micro-k8s. Of course a Kubernetes cluster on the cloud is also suitable in case you can afford it :).
- Helm installed on the server and locally in case you want to develop your own charts.
JDownloader is a popular and open-code Java application to download content from Internet such as games, applications and multimedia. It must not be used to take copyright-protected files.
The chart set here is prepared to store the configuration and content on the host's disk.
Example of installation by providing custom values for persistent configuration and downloads.
helm install jdownloader /mnt/helms/jdownloader-1.0.0.tgz --namespace=default --set spec.volumes.configPath=/mnt/config/ --set spec.volumes.downloadsPath=/mnt/downloads/
Plex gives you one place to find and access all the media that matters to you. From personal media on your own server, to free and on-demand Movies & Shows, live TV, podcasts, and web shows, to streaming music, you can enjoy it all in one app, on any device.
The chart set here is prepared to store the configuration and content on the host's disk.
Example of installation by providing custom values for persistent configuration and media content.
helm install plex /mnt/helms/plex-1.0.0.tgz --namespace=default --set spec.volumes.configPath=/mnt/config/ --set spec.volumes.transcodingPath=/mnt/transcode/ --set spec.volumes.libraryPath=/mnt/library/ --set spec.timeZone=Europe/Madrid
The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.
The chart set here is prepared to store the configuration on the host's disk.
Example of installation by providing custom values for persistent configuration.
helm install jenkins /mnt/helms/jenkins-1.0.0.tgz --namespace=default --set spec.volumes.homePath=/mnt/jenkins/
Following the project environment-test, I added nodes attending my needs for the personal projects I work on. Use the ones you wish! Here further information.
- jenkins-helm-slave: Jenkins node to execute the build related to this project, generate Helm chart packages and move them to a server.
- jenkins-netcore-slave: Jenkins node to build .NET Core projects.
- jenkins-python-slave: Jenkins node to build Python projects.
- docker-registry: Docker registry for staging Docker images. Currently used in the Weather Station Dashboard project. More info.
- sonarqube: SonarQube is the leading tool for continuously inspecting the Code Quality and Security of your codebases, and guiding development teams during Code Reviews.
Example of installations by providing custom values for persistent configuration.
helm install jenkins-helm-slave /mnt/helms/jenkins-helm-slave-1.0.0.tgz --namespace default --set spec.volumes.sshdConfigPath=/mnt/jenkins-slaves/sshd_config --set spec.volumes.authorizedKeysPath=/mnt/jenkins-slaves/jenkins_key.pub --set spec.volumes.helmsPath=/mnt/helms/
helm install jenkins-netcore-slave /mnt/helms/jenkins-netcore-slave-1.0.0.tgz --namespace default --set spec.volumes.sshdConfigPath=/mnt/jenkins-slaves/sshd_config --set spec.volumes.authorizedKeysPath=/mnt/jenkins-slaves/jenkins_key.pub --set spec.volumes.dockerSockPath=/var/run/docker.sock
helm install jenkins-python-slave /mnt/helms/jenkins-python-slave-1.0.0.tgz --namespace default --set spec.volumes.sshdConfigPath=/mnt/jenkins-slaves/sshd_config --set spec.volumes.authorizedKeysPath=/mnt/jenkins-slaves/jenkins_key.pub --set spec.volumes.dockerSockPath=/var/run/docker.sock --set spec.volumes.qemuPath=/mnt/jenkins-slaves/qemu-arm-static
helm install docker-registry /mnt/helms/docker-registry-1.0.0.tgz --namespace default --set spec.volumes.registryPath=/mnt/docker-registry/
helm install sonarqube /mnt/helms/helms/sonarqube-1.0.0.tgz --namespace default --set spec.volumes.dataPath=/mnt/sonarqube/data/ --set spec.volumes.logsPath=/mnt/sonarqube/logs/ --set spec.volumes.extensionsPath=/mnt/sonarqube/extensions/
I will not use branching for this project so I will just create tags when I consider a chart is finished. The code will change without further notice so fork or copy it when you need it.
- v1.4.0 - Added slaves and other nodes for the Jenkins environment.
- v1.3.0 - Added Jenkins. Updated Plex deployment to mount library as readonly.
- v1.2.0 - Added Plex.
- v1.1.1 - Changed JDownloader values to help to override some paths by helm commands. Provided example of installation command.
- v1.1.0 - Added jenkins file to package charts and copy them remotely. It uses the helm Jenkins node present here.
- v1.0.0 - First version with JDownloader.
Use this code as you wish! Totally free to be copied/pasted.
If you liked the project, you found it useful and you are willing to contribute, don't hesitate! I will be very grateful! :-)