Compare commits
7 commits
b329241f8b
...
103f99bf09
Author | SHA1 | Date | |
---|---|---|---|
|
103f99bf09 | ||
0ed44394fb | |||
8cf46e454d | |||
39560600cb | |||
64c22596c1 | |||
|
56c0f9149d | ||
|
0d73b48c85 |
4 changed files with 144 additions and 158 deletions
8
.github/workflows/build-and-publish.yml
vendored
8
.github/workflows/build-and-publish.yml
vendored
|
@ -83,7 +83,7 @@ jobs:
|
|||
done
|
||||
|
||||
- name: Stash generated charts changelog files
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: charts-generated-changelog
|
||||
path: |
|
||||
|
@ -105,7 +105,7 @@ jobs:
|
|||
fetch-depth: 0
|
||||
|
||||
- name: Unstash generated charts changelog files
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: charts-generated-changelog
|
||||
path: charts
|
||||
|
@ -117,7 +117,7 @@ jobs:
|
|||
|
||||
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@v3
|
||||
uses: azure/setup-helm@v4
|
||||
with:
|
||||
version: "${{ env.HELM_VERSION }}"
|
||||
|
||||
|
@ -144,7 +144,7 @@ jobs:
|
|||
fetch-depth: 0
|
||||
|
||||
- name: Unstash generated charts changelog files
|
||||
uses: actions/download-artifact@v3
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: charts-generated-changelog
|
||||
path: charts
|
||||
|
|
139
README.md
Normal file
139
README.md
Normal file
|
@ -0,0 +1,139 @@
|
|||
> ⚠️ There are no guarantees with these Helm Charts. I provide basic patching and watering in the sense that I use most of them myself. If charts are unused they may be removed.
|
||||
|
||||
<p>
|
||||
<div align="center">
|
||||
<img src="https://helm.sh/img/helm.svg" align="center" width="144px" height="144px"/>
|
||||
<h3>Minimal and Opinionated Helm Charts</h3>
|
||||
<p><i>... powered by a Norwegian bear 🐻</i></p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<div align="center">
|
||||
<a href="https://code.252.no/tommy/charts/badges/workflows/build-and-publish.yml" class="badge">
|
||||
<img src="https://code.252.no/tommy/charts/badges/workflows/build-and-publish.yml/badge.svg" alt="Relases building" /></a>
|
||||
</div>
|
||||
</p>
|
||||
<p> </p>
|
||||
|
||||
Backend-focused and UX optimized minmal charts built for use with deployments based on Flux. Generally contains Helm charts for infrastructure and some related to security operations.
|
||||
|
||||
This is a Helm Chart repository that provides packages for [Helm](https://helm.sh/), a Kubernetes configuration manager.Builds are made available on GitHub Releases and at charts.252.no.
|
||||
|
||||
Some charts have images made available somewhere else or by me, while others were in such a bad state that I chose to simplify them according to the key principle in here: opinionated and minimal. Opinionated means that they're adapted to [FluxCD](https://fluxcd.io/) and facilitates best practices such as [external-secrets](https://external-secrets.io/latest/).
|
||||
|
||||
As with everything Kubernetes this is a learning journey, so feel free to open an issue.
|
||||
|
||||
Below you'll find an overview of the charts and an intro to get you started.
|
||||
|
||||
### 📖 Overview
|
||||
|
||||
🟢 [Matrix Synapse](charts/matrix-synapse): An end-to-end encrypted, open source (not free) and UX-friendly alternative to Slack, Teams and Mattermost. I currently have simplified and use this. Based on the chart by ananace.
|
||||
|
||||
🟢 [Matrix Synapse](charts/sliding-sync-proxy): A proxy to Matrix servers for the new Element X client.
|
||||
|
||||
🟢 [Dispatch](charts/dispatch): A incident management and coordination system developed by Netflix.
|
||||
|
||||
🚧 [Attic](charts/attic): Nix Binary Cache server that reduces the time to compile and distribute builds ([intro post](https://discourse.nixos.org/t/introducing-attic-a-self-hostable-nix-binary-cache-server/24343))
|
||||
|
||||
🚧 [paperless-ngx](charts/paperless-ngx): Document management system that transforms your physical documents into a searchable online archive.
|
||||
|
||||
🚧 [Vikunja](charts/vikunja): Todo app with web and dav support.
|
||||
|
||||
🚧 [Matrix Authentication Service](charts/matrix-authentication-service): Matrix auth system implementing MSC3861
|
||||
|
||||
🚧 [Maubot](charts/maubot): Matrix bot system.
|
||||
|
||||
🚧 [nfty.sh](charts/nfty-sh): Push notification server for clients and phones.
|
||||
|
||||
🚧 [OLLAMA Web](charts/ollama-web): User-friendly WebUI for LLMs (Formerly Ollama WebUI). A simplified chart of the original and wip, but it works.
|
||||
|
||||
🚧 [Element Call](charts/element-call): WebRTC server for calls and video using Matrix for signalling. Not functional atm.
|
||||
|
||||
⚠️ [Conduit](charts/conduit): An efficient and self-contained Matrix server using an embedded RocksDB database. Currently I use Synapse instead.
|
||||
|
||||
⚠️ [Netbox](charts/netbox): Modeling and docs for IP address management (IPAM) and datacenter infrastructure management (DCIM). This deploys ok but has a few moving parts.
|
||||
|
||||
### Requirements
|
||||
|
||||
You may need to bring your own:
|
||||
|
||||
- S3 compatible object storage
|
||||
- Block storage
|
||||
- PostgreSQL, such as Cloudnative-PG
|
||||
- Redis-compatible server, such as Dragonfly
|
||||
|
||||
All tests are run on the latest version of Kubernetes and Helm and no consideration is taken to vendor-specific implementations.
|
||||
|
||||
### Principles
|
||||
|
||||
So what makes this repo different from others? It is KISS-Safe of course.
|
||||
|
||||
- Secrets and ingresses are defined external from the chart
|
||||
- Expect that an ingress terminates external connection and TLS
|
||||
- Object storage over block storage when possible
|
||||
- Never rely on vendor-specific components
|
||||
- Prefer open source
|
||||
- No plaintext secrets - be sane
|
||||
- Leaving room for initContainers
|
||||
- Use as few values as possible in values.yaml (making sane choices)
|
||||
- Use external databases and transports
|
||||
- Configure for OIDC when possible
|
||||
- The values file should be possible to read up on in minutes
|
||||
- Only support the current major version of Kubernetes and application
|
||||
- Enable service accounts
|
||||
- Use semver for versioning
|
||||
- Charts should install on a small scale by default
|
||||
- Charts are validated for structure, security and syntax before compilation
|
||||
- Regardless of journey level everyone should be able to read or learn the chart
|
||||
|
||||
Some of these principles are implicit and means you'll have to deploy with e.g. kustomize to get going.
|
||||
|
||||
If you see a chart that does not comply with these principles, please open an issue.
|
||||
|
||||
### 🧑💻 Usage
|
||||
|
||||
#### Exploration
|
||||
|
||||
You can explore this repo by using the following commands if you have the Kubernetes package manager installed:
|
||||
|
||||
```shell
|
||||
# add the package source
|
||||
helm repo add 252 https://charts.252.no
|
||||
# or update the repo
|
||||
helm repo update 252
|
||||
|
||||
# search for a specific chart
|
||||
helm search repo dispatch
|
||||
# or list all available charts
|
||||
helm search repo 252 -l
|
||||
|
||||
# show configuration options
|
||||
helm show values 252/dispatch
|
||||
|
||||
# install a chart
|
||||
helm install dispatch helm-charts/charts/dispatch --namespace=toolbox
|
||||
````
|
||||
|
||||
#### As-code with FluxCD
|
||||
|
||||
First take care to setup the chart:
|
||||
|
||||
```yaml
|
||||
apiVersion: source.toolkit.fluxcd.io/v1beta2
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: 252-charts
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 15m
|
||||
url: https://charts.252.no
|
||||
```
|
||||
|
||||
A reference kustomization directory is shown in [./kustomization-components](./kustomization-components).
|
||||
|
||||
** 🤩 Licenses and Gratitude
|
||||
|
||||
Parts of the repo was inspired by [ananace](https://gitlab.com/ananace/charts) (some parts imported and rewritten).
|
||||
|
||||
The general license of this repo is DWTFYWTPB, but respect Apache v2 in some of the repos which were built on other's work. See the individual chart directory for details and these applies.
|
153
README.org
153
README.org
|
@ -1,153 +0,0 @@
|
|||
#+DATE: 2024-04-03
|
||||
|
||||
#+BEGIN_QUOTE
|
||||
⚠️ There are no guarantees with these Helm Charts. I provide basic patching and watering in the sense that I use most of them myself. If charts are unused they may be removed.
|
||||
#+END_QUOTE
|
||||
|
||||
#+BEGIN_HTML
|
||||
<p>
|
||||
<div align="center">
|
||||
<img src="https://helm.sh/img/helm.svg" align="center" width="144px" height="144px"/>
|
||||
<h3>Minimal and Opinionated Helm Charts</h3>
|
||||
<p><i>... powered by a Norwegian bear 🐻</i></p>
|
||||
</div>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<div align="center">
|
||||
<a href="https://github.com/tommy-skaug/charts/actions/workflows/build-and-publish.yml" class="badge">
|
||||
<img src="https://github.com/tommy-skaug/charts/actions/workflows/build-and-publish.yml/badge.svg" alt="Relases building" /></a>
|
||||
|
||||
|
||||
|
||||
<a href="https://github.com/tommy-skaug/charts/actions/workflows/pages/pages-build-deployment" class="badge">
|
||||
<img src="https://github.com/tommy-skaug/charts/actions/workflows/pages/pages-build-deployment/badge.svg" alt="Index Updates" />
|
||||
</a>
|
||||
</div>
|
||||
</p>
|
||||
<p> </p>
|
||||
#+END_HTML
|
||||
|
||||
Backend-focused and UX optimized minmal charts built for use with deployments based on Flux. Generally contains Helm charts for infrastructure and some related to security operations.
|
||||
|
||||
This is a Helm Chart repository that provides packages for [[https://helm.sh/][Helm]], a Kubernetes configuration manager.Builds are made available on GitHub Releases and at charts.252.no.
|
||||
|
||||
Some charts have images made available somewhere else or by me, while others were in such a bad state that I chose to simplify them according to the key principle in here: opinionated and minimal. Opinionated means that they're adapted to [[https://fluxcd.io/][FluxCD]] and facilitates best practices such as [[https://external-secrets.io/latest/][external-secrets]].
|
||||
|
||||
As with everything Kubernetes this is a learning journey, so feel free to open an issue.
|
||||
|
||||
Below you'll find an overview of the charts and an intro to get you started.
|
||||
|
||||
*** 📖 Overview
|
||||
|
||||
🟢 [[charts/][Dispatch]]: A incident management and coordination system developed by Netflix.
|
||||
|
||||
🟢 [[charts/matrix-synapse][Matrix Synapse]]: An end-to-end encrypted, open source (not free) and UX-friendly alternative to Slack, Teams and Mattermost. I currently have simplified and use this. Based on the chart by ananace.
|
||||
|
||||
🟢 [[charts/sliding-sync-proxy][Matrix Synapse]]: A proxy to Matrix servers for the new Element X client.
|
||||
|
||||
🟢 [[charts/][Dispatch]]: A incident management and coordination system developed by Netflix.
|
||||
|
||||
🚧 [[charts/attic][Attic]]: Nix Binary Cache server that reduces the time to compile and distribute builds ([[https://discourse.nixos.org/t/introducing-attic-a-self-hostable-nix-binary-cache-server/24343][intro post]])
|
||||
|
||||
🚧 [[charts/paperless-ngx][paperless-ngx]]: Document management system that transforms your physical documents into a searchable online archive.
|
||||
|
||||
🚧 [[charts/vikunja][Vikunja]]: Todo app with web and dav support.
|
||||
|
||||
🚧 [[charts/matrix-authentication-service][Matrix Authentication Service]]: Matrix auth system implementing MSC3861
|
||||
|
||||
🚧 [[charts/maubot][Maubot]]: Matrix bot system.
|
||||
|
||||
🚧 [[charts/nfty-sh][nfty.sh]]: Push notification server for clients and phones.
|
||||
|
||||
🚧 [[charts/ollama-web][OLLAMA Web]]: User-friendly WebUI for LLMs (Formerly Ollama WebUI). A simplified chart of the original and wip, but it works.
|
||||
|
||||
🚧 [[charts/element-call][Element Call]]: WebRTC server for calls and video using Matrix for signalling. Not functional atm.
|
||||
|
||||
⚠️ [[charts/conduit][Conduit]]: An efficient and self-contained Matrix server using an embedded RocksDB database. Currently I use Synapse instead.
|
||||
|
||||
⚠️ [[charts/netbox][Netbox]]: Modeling and docs for IP address management (IPAM) and datacenter infrastructure management (DCIM). This deploys ok but has a few moving parts.
|
||||
|
||||
*** Requirements
|
||||
|
||||
You may need to bring your own:
|
||||
|
||||
- S3 compatible object storage
|
||||
- Block storage
|
||||
- PostgreSQL, such as Cloudnative-PG
|
||||
- Redis-compatible server, such as Dragonfly
|
||||
|
||||
All tests are run on the latest version of Kubernetes and Helm and no consideration is taken to vendor-specific implementations.
|
||||
|
||||
*** Principles
|
||||
|
||||
So what makes this repo different from others? It is KISS-Safe of course.
|
||||
|
||||
- Secrets and ingresses are defined external from the chart
|
||||
- Expect that an ingress terminates external connection and TLS
|
||||
- Object storage over block storage when possible
|
||||
- Never rely on vendor-specific components
|
||||
- Prefer open source
|
||||
- No plaintext secrets - be sane
|
||||
- Leaving room for initContainers
|
||||
- Use as few values as possible in values.yaml (making sane choices)
|
||||
- Use external databases and transports
|
||||
- Configure for OIDC when possible
|
||||
- The values file should be possible to read up on in minutes
|
||||
- Only support the current major version of Kubernetes and application
|
||||
- Enable service accounts
|
||||
- Use semver for versioning
|
||||
- Charts should install on a small scale by default
|
||||
- Charts are validated for structure, security and syntax before compilation
|
||||
- Regardless of journey level everyone should be able to read or learn the chart
|
||||
|
||||
Some of these principles are implicit and means you'll have to deploy with e.g. kustomize to get going.
|
||||
|
||||
If you see a chart that does not comply with these principles, please open an issue.
|
||||
|
||||
*** 🧑💻 Usage
|
||||
|
||||
**** Exploration
|
||||
|
||||
You can explore this repo by using the following commands if you have the Kubernetes package manager installed:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
# add the package source
|
||||
helm repo add 252 https://charts.252.no
|
||||
# or update the repo
|
||||
helm repo update 252
|
||||
|
||||
# search for a specific chart
|
||||
helm search repo dispatch
|
||||
# or list all available charts
|
||||
helm search repo 252 -l
|
||||
|
||||
# show configuration options
|
||||
helm show values 252/dispatch
|
||||
|
||||
# install a chart
|
||||
helm install dispatch helm-charts/charts/dispatch --namespace=toolbox
|
||||
#+END_SRC
|
||||
|
||||
**** As-code with FluxCD
|
||||
|
||||
First take care to setup the chart:
|
||||
|
||||
#+BEGIN_SRC yaml
|
||||
apiVersion: source.toolkit.fluxcd.io/v1beta2
|
||||
kind: HelmRepository
|
||||
metadata:
|
||||
name: 252-charts
|
||||
namespace: flux-system
|
||||
spec:
|
||||
interval: 15m
|
||||
url: https://charts.252.no
|
||||
#+END_SRC
|
||||
|
||||
A reference kustomization directory is shown in [[./kustomization-components][./kustomization-components]].
|
||||
|
||||
** 🤩 Licenses and Gratitude
|
||||
|
||||
Parts of the repo was inspired by [[https://gitlab.com/ananace/charts][ananace]] (some parts imported and rewritten).
|
||||
|
||||
The general license of this repo is DWTFYWTPB, but respect Apache v2 in some of the repos which were built on other's work. See the individual chart directory for details and these applies.
|
|
@ -11,7 +11,7 @@ initContainers:
|
|||
|
||||
image:
|
||||
repository: quay.io/netboxcommunity/netbox
|
||||
tag: v3.7.6
|
||||
tag: v3.7.7
|
||||
pullPolicy: Always
|
||||
|
||||
nameOverride: ""
|
||||
|
|
Loading…
Reference in a new issue