Skip to content

Commit

Permalink
Merge pull request #15 from librenms/develop
Browse files Browse the repository at this point in the history
Release librenms chart
  • Loading branch information
jochbru authored Jul 11, 2024
2 parents 7c859e8 + c955170 commit cd178d3
Show file tree
Hide file tree
Showing 10 changed files with 303 additions and 49 deletions.
59 changes: 59 additions & 0 deletions .github/workflows/chart-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Lint and Test Charts

on: pull_request

jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Helm
uses: azure/[email protected]
with:
version: v3.14.4

- uses: actions/setup-python@v5
with:
python-version: '3.x'
check-latest: true

- name: Set up chart-testing
uses: helm/[email protected]

- name: Add repositories
run: |
for dir in $(ls -d charts/*/); do
helm dependency list $dir 2> /dev/null | tail +2 | head -n -1 | awk '{ print "helm repo add " $1 " " $3 }' | while read cmd; do $cmd; done
done
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Run chart-testing (lint)
if: steps.list-changed.outputs.changed == 'true' && github.ref != 'refs/heads/develop'
run: ct lint --target-branch ${{ github.event.repository.default_branch }} --check-version-increment=false

- name: Run chart-testing (lint & version)
if: github.event.pull_request.base.ref == 'main'
run: ct lint --target-branch main

- name: Create kind cluster
if: steps.list-changed.outputs.changed == 'true' || github.event.pull_request.base.ref == 'main'
uses: helm/[email protected]

- name: Run chart-testing (install)
if: steps.list-changed.outputs.changed == 'true' && github.ref != 'refs/heads/develop'
run: ct install --target-branch ${{ github.event.repository.default_branch }} --skip-clean-up

- name: Run chart-testing (install & upgrades)
if: github.event.pull_request.base.ref == 'main'
run: ct install --target-branch main --upgrade
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
git config user.email "[email protected]"
- name: Install Helm
uses: azure/setup-helm@v3
uses: azure/setup-helm@v4

- name: Add repositories
run: |
Expand Down
40 changes: 40 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
DOCS_IMAGE_VERSION="v1.14.2"

LINT_IMAGE_VERSION="v3.8.0"

# Charts's path relative to the current directory.
CHARTS := $(wildcard ./charts/*)

CHARTS_NAMES := $(notdir $(CHARTS))

.PHONY: lint
lint: helm-deps-update $(addprefix lint-, $(CHARTS_NAMES))

lint-%:
@docker run \
-it \
-e HOME=/home/ct \
--mount type=tmpfs,destination=/home/ct \
--workdir=/data \
--volume $$(pwd):/data \
-u $$(id -u) \
quay.io/helmpack/chart-testing:$(LINT_IMAGE_VERSION) \
ct lint --config ./ct.yaml --charts ./charts/$*

.PHONY: docs
docs: $(addprefix docs-, $(CHARTS_NAMES))

docs-%:
@docker run \
--rm \
--workdir=/helm-docs \
--volume "$$(pwd):/helm-docs" \
-u $$(id -u) \
jnorwood/helm-docs:$(DOCS_IMAGE_VERSION) \
helm-docs -c ./charts/$* -t ./README.gotmpl -o ./README.md

.PHONY: helm-deps-update
helm-deps-update: $(addprefix helm-deps-update-, $(CHARTS_NAMES))

helm-deps-update-%:
helm dependency update ./charts/$*
6 changes: 3 additions & 3 deletions charts/librenms/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ dependencies:
version: 19.6.1
- name: mysql
repository: https://charts.bitnami.com/bitnami
version: 10.3.0
digest: sha256:7b8a3f1182b70837c842c8a9fe7c1fa913cadd6800f1f780f94c357af7fca21f
generated: "2024-07-05T12:50:36.211666249Z"
version: 11.1.8
digest: sha256:4b82fafdf2c4c72a003d1dc6df9343a089eb5d2f686927d134821854f9633c83
generated: "2024-07-09T10:22:10.255911997Z"
11 changes: 7 additions & 4 deletions charts/librenms/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@ apiVersion: v2
name: librenms
description: LibreNMS is an autodiscovering PHP/MySQL-based network monitoring system.
type: application
version: 3.10.0
version: 3.11.1
appVersion: "24.5.0"
maintainers:
- name: TheChef23
url: https://github.com/TheChef23
dependencies:
- name: redis
version: "~19.6.0"
repository: "https://charts.bitnami.com/bitnami"
when: redis.enabled == true
condition: redis.enabled
- name: mysql
version: "~10.3.0"
version: "~11.1.0"
repository: "https://charts.bitnami.com/bitnami"
when: mysql.enabled == true
condition: mysql.enabled
66 changes: 66 additions & 0 deletions charts/librenms/README.gotmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# LibreNMS
{{ template "chart.badgesSection" . }}

## TL;DR

```shell
$ helm repo add librenms https://www.librenms.org/helm-charts
$ helm install my-release librenms/librenms --set appkey=<LibreNMS Application key>
```

## Prerequisites

- This chart has only been tested on Kubernetes 1.18+, but should work on 1.14+
- Recent versions of Helm 3 are supported

## Installing the Chart

To install the chart with the release name `my-release` and default configuration:

```shell
$ helm repo add librenms https://www.librenms.org/helm-charts
$ helm install my-release librenms/librenms --set appkey=<LibreNMS Application key>
```

## Values
Check the [values.yaml](./values.yaml) file for the available settings for this chart and its
dependencies.

### Required values:
```
librenms:
appkey:
```

This should be filled with a laravel appkey, this can be generated using the laravel artisan command:
```
php artisan key:generate
```
The value should look like:
```
librenms:
appkey: base64:RTMmh+i10E2RMcDxookMu47BTzJQy87hOU+k/zcuPnA=
```
### Recommendations

* `librenms.poller.replicas`: Depending on the scale of your installation, the amount of poller pods needs to b scaled up. Use the poller page in the LibreNMS interface to check for scaling issues.

### Available values

The following table lists the main configurable parameters of the {{ template "chart.name" . }} chart v{{ template "chart.version" . }} and their default values. Please, refer to [values.yaml](./values.yaml) for the full list of configurable parameters.

{{ template "chart.valuesSection" . }}

## Uninstalling the Chart

To delete the chart:

```shell
$ helm delete my-release
```

{{ template "chart.requirementsSection" . }}

{{ template "chart.maintainersSection" . }}

{{ template "helm-docs.versionFooter" . }}
95 changes: 72 additions & 23 deletions charts/librenms/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# LibreNMS

[LibreNMS](https://docs.librenms.org/) is an IP address management (IPAM) and
data center infrastructure management (DCIM) tool.
![Version: 3.11.0](https://img.shields.io/badge/Version-3.11.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 24.5.0](https://img.shields.io/badge/AppVersion-24.5.0-informational?style=flat-square)

## TL;DR

Expand All @@ -25,14 +23,68 @@ $ helm install my-release librenms/librenms --set appkey=<LibreNMS Application k
```

## Values
Check the [values.yaml](/librenms/helm-charts/charts/librenms/blob/main/values.yaml) file for the available settings for this chart and its
Check the [values.yaml](./values.yaml) file for the available settings for this chart and its
dependencies.

### Required values:
```
librenms:
appkey:
appkey:
```

This should be filled with a laravel appkey, this can be generated using the laravel artisan command:
```
php artisan key:generate
```
The value should look like:
```
librenms:
appkey: base64:RTMmh+i10E2RMcDxookMu47BTzJQy87hOU+k/zcuPnA=
```
### Recommendations

* `librenms.poller.replicas`: Depending on the scale of your installation, the amount of poller pods needs to b scaled up. Use the poller page in the LibreNMS interface to check for scaling issues.

### Available values

The following table lists the main configurable parameters of the librenms chart v3.11.0 and their default values. Please, refer to [values.yaml](./values.yaml) for the full list of configurable parameters.

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| librenms.appkey | string | `nil` | Laravel appkey used by LibreNMS, this should be generated by you and is a required setting. See the README for more information |
| librenms.configuration | string | `"$config['distributed_poller_group'] = '0';\n$config['distributed_poller'] = true;\n"` | Custom configuration options for LibreNMS. Fore more infomation on options in this file check the following link: https://docs.librenms.org/Support/Configuration/ |
| librenms.extraEnvs | object | `{}` | LibreNMS frontend extra envs |
| librenms.frontend.readinessProbe.httpGet.path | string | `"/login"` | Check endpoint path |
| librenms.frontend.readinessProbe.httpGet.port | int | `8000` | Check endpoint port |
| librenms.frontend.readinessProbe.initialDelaySeconds | int | `30` | |
| librenms.frontend.readinessProbe.periodSeconds | int | `60` | |
| librenms.frontend.readinessProbe.timeoutSeconds | int | `10` | |
| librenms.frontend.replicas | int | `1` | Frontend replicas |
| librenms.frontend.resources | object | `{}` | resources defines the computing resources (CPU and memory) that are allocated to the containers running within the Pod. |
| librenms.image.repository | string | `"librenms/librenms"` | repository is the image repository to pull from. |
| librenms.image.tag | string | `"24.5.0"` | tag is image tag to pull. |
| librenms.poller.replicas | int | `2` | Poller replicas |
| librenms.poller.resources | object | `{}` | resources defines the computing resources (CPU and memory) that are allocated to the containers running within the Pod. |
| librenms.rrdcached | object | `{"envs":[{"name":"TZ","value":"Europe/Amsterdam"},{"name":"WRITE_JITTER","value":"1800"},{"name":"WRITE_TIMEOUT","value":"1800"}],"extraEnvs":{},"image":{"repository":"crazymax/rrdcached","tag":"1.8.0"},"livenessProbe":{"initialDelaySeconds":15,"periodSeconds":20,"tcpSocket":{"port":42217}},"persistence":{"enabled":true,"journal":{"size":"1Gi"},"rrdcached":{"size":"10Gi"}},"resources":{}}` | RRD cached is the tool that allows for distributed polling and is mandatory in this LibreNMS helm chart. See the rrdcached documentation for more information: https://oss.oetiker.ch/rrdtool/doc/rrdcached.en.html |
| librenms.rrdcached.envs[0] | object | `{"name":"TZ","value":"Europe/Amsterdam"}` | env variables RRD Cached |
| librenms.rrdcached.extraEnvs | object | `{}` | Extra environment variable for RRDCACHED container |
| librenms.rrdcached.image.repository | string | `"crazymax/rrdcached"` | repository is the image repository to pull from. |
| librenms.rrdcached.image.tag | string | `"1.8.0"` | tag is image tag to pull. |
| librenms.rrdcached.livenessProbe.tcpSocket | object | `{"port":42217}` | RRD cached liveness probe |
| librenms.rrdcached.persistence.enabled | bool | `true` | RRDCached persistent volume enabled |
| librenms.rrdcached.persistence.journal.size | string | `"1Gi"` | RRDCached journal PV size |
| librenms.rrdcached.persistence.rrdcached.size | string | `"10Gi"` | RRDCached RRD storage PV size |
| librenms.rrdcached.resources | object | `{}` | resources defines the computing resources (CPU and memory) that are allocated to the containers running within the Pod. |
| librenms.snmp_scanner | object | `{"cron":"15 * * * *","enabled":false,"extraEnvs":{},"resources":{}}` | SNMP network discovery scanner cron job. This job is optional and only use when having snmp network discovery enabled. For this to work either set the 'nets' confifuration in the custom config on in the admin interface See the following link for more information: https://docs.librenms.org/Extensions/Auto-Discovery/ |
| librenms.snmp_scanner.cron | string | `"15 * * * *"` | SNMP scanner cornjob syntac interval |
| librenms.snmp_scanner.enabled | bool | `false` | SNMP scanner enabled |
| librenms.snmp_scanner.extraEnvs | object | `{}` | SNMP scanner extra envs |
| librenms.snmp_scanner.resources | object | `{}` | resources defines the computing resources (CPU and memory) that are allocated to the containers running within the Pod. |
| librenms.timezone | string | `"UTC"` | Timezone used by librenms for communication with RRD cached |
| mysql | object | `{"auth":{"database":"librenms","username":"librenms"},"enabled":true}` | Configuration for MySQL dependency chart by Bitnami. See their chart for more information: https://github.com/bitnami/charts/tree/master/bitnami/mysql |
| redis | object | `{"architecture":"standalone","auth":{"enabled":false,"sentinel":false},"enabled":true,"master":{"disableCommands":[]},"sentinel":{"enabled":false}}` | Configuration for redis dependency chart by Bitnami. See their chart for more information: https://github.com/bitnami/charts/tree/master/bitnami/redis |

## Uninstalling the Chart

Expand All @@ -42,21 +94,18 @@ To delete the chart:
$ helm delete my-release
```

## License

> The following notice applies to all files contained within this Helm Chart and
> the Git repository which contains it:
>
> Copyright 2022 Jochem Bruijns
>
> Licensed under the Apache License, Version 2.0 (the "License");
> you may not use this file except in compliance with the License.
> You may obtain a copy of the License at
>
> http://www.apache.org/licenses/LICENSE-2.0
>
> Unless required by applicable law or agreed to in writing, software
> distributed under the License is distributed on an "AS IS" BASIS,
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> See the License for the specific language governing permissions and
> limitations under the License.
## Requirements

| Repository | Name | Version |
|------------|------|---------|
| https://charts.bitnami.com/bitnami | mysql | ~11.1.0 |
| https://charts.bitnami.com/bitnami | redis | ~19.6.0 |

## Maintainers

| Name | Email | Url |
| ---- | ------ | --- |
| TheChef23 | | <https://github.com/TheChef23> |

----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
2 changes: 2 additions & 0 deletions charts/librenms/ci/test-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
librenms:
appkey: base64:RTMmh+i10E2RMcDxookMu47BTzJQy87hOU+k/zcuPnA=
Loading

0 comments on commit cd178d3

Please sign in to comment.