diff --git a/.github/ct-install.yaml b/.github/ct-install.yaml
index 83107f9f..f2234fbd 100644
--- a/.github/ct-install.yaml
+++ b/.github/ct-install.yaml
@@ -6,6 +6,7 @@ chart-dirs:
excluded-charts:
- alertmanager-bot
- dnsmadeeasy-webhook
+- ser2sock
- zigbee2mqtt
chart-repos:
- bitnami=https://charts.bitnami.com/bitnami
diff --git a/.helmdocsignore b/.helmdocsignore
index d3c824c1..f6de48ad 100644
--- a/.helmdocsignore
+++ b/.helmdocsignore
@@ -1,8 +1 @@
-charts/homebridge
-charts/librespeed
-charts/node-feature-discovery
-charts/oauth2-proxy
-charts/ser2sock
-charts/speedtest
-charts/unifi
charts/uptimerobot
diff --git a/charts/homebridge/Chart.yaml b/charts/homebridge/Chart.yaml
index 3b002e42..21574451 100644
--- a/charts/homebridge/Chart.yaml
+++ b/charts/homebridge/Chart.yaml
@@ -1,6 +1,6 @@
apiVersion: v2
appVersion: 3.1.0
-version: 1.0.2
+version: 1.0.3
name: homebridge
description: A lightweight NodeJS server that emulates the iOS HomeKit API
type: application
diff --git a/charts/homebridge/README.md b/charts/homebridge/README.md
index bbe50f50..70bcb186 100644
--- a/charts/homebridge/README.md
+++ b/charts/homebridge/README.md
@@ -1,100 +1,165 @@
-# Homebridge
+# homebridge
-This is a helm chart for [Homebridge](https://homebridge.io) based on [Docker Homebridge](https://github.com/oznu/docker-homebridge).
+![Version: 1.0.3](https://img.shields.io/badge/Version-1.0.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.1.0](https://img.shields.io/badge/AppVersion-3.1.0-informational?style=flat-square)
-## TL;DR;
+A lightweight NodeJS server that emulates the iOS HomeKit API
-```shell
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+
+## Source Code
+
+*
+*
+
+## Requirements
+
+## Dependencies
+
+| Repository | Name | Version |
+|------------|------|---------|
+
+## TL;DR
+
+```console
helm repo add k8s-at-home https://k8s-at-home.com/charts/
-helm install k8s-at-home/homebridge
+helm repo update
+helm install homebridge k8s-at-home/homebridge
```
## Installing the Chart
-To install the chart with the release name `my-release`:
+To install the chart with the release name `homebridge`
-```shell
-helm install --name my-release k8s-at-home/homebridge
+```console
+helm install homebridge k8s-at-home/homebridge
```
## Uninstalling the Chart
-To uninstall/delete the `my-release` deployment:
+To uninstall the `homebridge` deployment
-```shell
-helm delete my-release --purge
+```console
+helm uninstall homebridge
```
-The command removes all the Kubernetes components associated with the chart and deletes the release.
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
## Configuration
-The following tables lists the configurable parameters of the Home Assistant chart and their default values.
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
-| Parameter | Description | Default |
-| ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
-| `image.repository` | Image repository | `oznu/homebridge` |
-| `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/oznu/homebridge/tags). | `3.1.0` |
-| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
-| `image.pullSecrets` | Secrets to use when pulling the image | `[]` |
-| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` |
-| `timezone` | Specify the container timezone | `UTC` |
-| `puid` | process userID the instance should run as | `1000` |
-| `pgid` | process groupID the instance should run as | `1000` |
-| `config.enableUI` | Enable the Homebridge UI plugin | `true` |
-| `config.plugins` | Additional Homebridge plugins to install at container startup | `[]` |
-| `config.additionalPackages` | Additional Alpine packages to install at container statup | `[] ` |
-| `probes.liveness.enabled` | Use the livenessProbe? | `true` |
-| `probes.liveness.initialDelaySeconds` | Specify liveness `initialDelaySeconds` parameter for the deployment | `60` |
-| `probes.liveness.failureThreshold` | Specify liveness `failureThreshold` parameter for the deployment | `5` |
-| `probes.liveness.timeoutSeconds` | Specify liveness `timeoutSeconds` parameter for the deployment | `10` |
-| `probes.readiness.enabled` | Use the readinessProbe? | `true` |
-| `probes.readiness.initialDelaySeconds` | Specify readiness `initialDelaySeconds` parameter for the deployment | `60` |
-| `probes.readiness.failureThreshold` | Specify readiness `failureThreshold` parameter for the deployment | `5` |
-| `probes.readiness.timeoutSeconds` | Specify readiness `timeoutSeconds` parameter for the deployment | `10` |
-| `probes.startup.enabled` | Use the startupProbe? (new in kubernetes 1.16) | `false` |
-| `probes.startup.failureThreshold` | Specify startup `failureThreshold` parameter for the deployment | `5` |
-| `probes.startup.periodSeconds` | Specify startup `periodSeconds` parameter for the deployment | `10` |
-| `service.type` | Kubernetes service type for the homebridge GUI | `ClusterIP` |
-| `service.httpPort` | Kubernetes port where the homebridge GUI is exposed | `8123` |
-| `service.annotations` | Service annotations for the homebridge GUI | `{}` |
-| `service.clusterIP` | Cluster IP for the homebridge GUI | `` |
-| `service.externalIPs` | External IPs for the homebridge GUI | `[]` |
-| `service.loadBalancerIP` | Loadbalancer IP for the homebridge GUI | `` |
-| `service.loadBalancerSourceRanges` | Loadbalancer client IP restriction range for the homebridge GUI | `[]` |
-| `service.externalTrafficPolicy` | Loadbalancer externalTrafficPolicy | `` |
-| `hostNetwork` | Enable hostNetwork - needed for discovery to work | `false` |
-| `service.nodePort` | nodePort to listen on for the homebridge GUI | `` |
-| `ingress.enabled` | Enables Ingress | `false` |
-| `ingress.annotations` | Ingress annotations | `{}` |
-| `ingress.path` | Ingress path | `/` |
-| `ingress.hosts` | Ingress accepted hostnames | `chart-example.local` |
-| `ingress.tls` | Ingress TLS configuration | `[]` |
-| `persistence.enabled` | Use persistent volume to store data | `true` |
-| `persistence.size` | Size of persistent volume claim | `1Gi` |
-| `persistence.existingClaim` | Use an existing PVC to persist data | `nil` |
-| `persistence.storageClass` | Type of persistent volume claim | `-` |
-| `persistence.accessMode` | Persistence access modes | `ReadWriteMany` |
-| `persistence.skipuninstall` | Do not delete the pvc upon helm uninstall | `false` |
-| `extraEnvs` | Extra ENV vars to pass to the homebridge container | `[]` |
-| `resources` | CPU/Memory resource requests/limits or the homebridge GUI | `{}` |
-| `nodeSelector` | Node labels for pod assignment or the homebridge GUI | `{}` |
-| `tolerations` | Toleration labels for pod assignment or the homebridge GUI | `[]` |
-| `affinity` | Affinity settings for pod assignment or the homebridge GUI | `{}` |
-| `podAnnotations` | Key-value pairs to add as pod annotations | `{}` |
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
-Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
-
-```shell
-helm install --name my-release \
- --set timezone="UTC" \
+```console
+helm install homebridge \
+ --set env.TZ="America/New York" \
k8s-at-home/homebridge
```
-Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
-```shell
-helm install --name my-release -f values.yaml k8s-at-home/homebridge
+```console
+helm install homebridge k8s-at-home/homebridge -f values.yaml
```
-Read through the [values.yaml](values.yaml) file. It has several commented out suggested values.
+## Custom configuration
+
+N/A
+
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| affinity | object | `{}` | Affinity settings for pod assignment or the homebridge GUI |
+| config.additionalPackages | list | `[]` | Additional Alpine packages to install at container statup such as `bash` |
+| config.enableUI | bool | `true` | Enable the Homebridge UI plugin |
+| config.plugins | list | `[]` | Additional Homebridge plugins to install at container startup such as `homebridge-hue` |
+| extraEnvs | list | `[]` | Extra ENV vars to pass to the homebridge container |
+| fullnameOverride | string | `""` | |
+| hostNetwork | bool | `false` | Enable hostNetwork - needed for discovery to work |
+| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
+| image.repository | string | `"oznu/homebridge"` | Image repository |
+| image.tag | string | `"3.1.0"` | Overrides the image tag whose default is the chart appVersion. Possible values listed [here](https://hub.docker.com/r/oznu/homebridge/tags) |
+| imagePullSecrets | list | `[]` | Secrets to use when pulling the image |
+| ingress.annotations | object | `{}` | Ingress annotations |
+| ingress.enabled | bool | `false` | Enables Ingress |
+| ingress.hosts | list | `["chart-example.local"]` | Ingress accepted hostnames |
+| ingress.path | string | `"/"` | Ingress path |
+| ingress.tls | list | `[]` | Ingress TLS configuration |
+| nameOverride | string | `""` | |
+| nodeSelector | object | `{}` | Node labels for pod assignment or the homebridge GUI |
+| persistence.accessMode | string | `"ReadWriteOnce"` | Persistence access modes |
+| persistence.enabled | bool | `true` | Use persistent volume to store data |
+| persistence.existingClaim | string | `nil` | Use an existing PVC to persist data |
+| persistence.size | string | `"1Gi"` | Size of persistent volume claim |
+| persistence.skipuninstall | bool | `false` | Do not delete the pvc upon helm uninstall |
+| persistence.storageClass | string | `nil` | Type of persistent volume claim |
+| pgid | int | `1000` | process groupID the instance should run as |
+| podAnnotations | object | `{}` | Key-value pairs to add as pod annotations |
+| podSecurityContext | object | `{}` | |
+| probes.liveness.enabled | bool | `true` | Use the livenessProbe? |
+| probes.liveness.failureThreshold | int | `5` | Specify liveness `failureThreshold` parameter for the deployment |
+| probes.liveness.initialDelaySeconds | int | `60` | Specify liveness `initialDelaySeconds` parameter for the deployment |
+| probes.liveness.timeoutSeconds | int | `10` | Specify liveness `timeoutSeconds` parameter for the deployment |
+| probes.readiness.enabled | bool | `true` | Use the readinessProbe? |
+| probes.readiness.failureThreshold | int | `5` | Specify readiness `failureThreshold` parameter for the deployment |
+| probes.readiness.initialDelaySeconds | int | `60` | Specify readiness `initialDelaySeconds` parameter for the deployment |
+| probes.readiness.timeoutSeconds | int | `10` | Specify readiness `timeoutSeconds` parameter for the deployment |
+| probes.startup.enabled | bool | `false` | Use the startupProbe? (new in kubernetes 1.16) |
+| probes.startup.failureThreshold | int | `30` | Specify startup `failureThreshold` parameter for the deployment |
+| probes.startup.periodSeconds | int | `10` | Specify startup `periodSeconds` parameter for the deployment |
+| puid | int | `1000` | process userID the instance should run as |
+| replicaCount | int | `1` | |
+| resources | object | `{}` | CPU/Memory resource requests/limits or the homebridge GUI |
+| securityContext | object | `{}` | |
+| service.annotations | object | `{}` | Service annotations for the homebridge GUI |
+| service.clusterIP | string | `nil` | Cluster IP for the homebridge GUI |
+| service.externalIPs | string | `nil` | External IPs for the homebridge GUI |
+| service.externalTrafficPolicy | string | `nil` | Loadbalancer externalTrafficPolicy |
+| service.homebridgePort | int | `51826` | |
+| service.httpPort | int | `8080` | Kubernetes port where the homebridge GUI is exposed |
+| service.loadBalancerIP | string | `nil` | Loadbalancer IP for the homebridge GUI |
+| service.loadBalancerSourceRanges | string | `nil` | Loadbalancer client IP restriction range for the homebridge GUI |
+| service.nodePort | string | `nil` | nodePort to listen on for the homebridge GUI |
+| service.type | string | `"ClusterIP"` | Kubernetes service type for the homebridge GUI |
+| serviceAccount.annotations | object | `{}` | |
+| serviceAccount.create | bool | `true` | |
+| serviceAccount.name | string | `""` | |
+| strategyType | string | `"Recreate"` | Specifies the strategy used to replace old Pods by new ones |
+| timezone | string | `"UTC"` | Specify the container timezone |
+| tolerations | list | `[]` | Toleration labels for pod assignment or the homebridge GUI |
+
+## Changelog
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [1.0.3]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- Use helm-docs
+
+#### Removed
+
+- N/A
+
+[1.0.3]: #1.0.3
+
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
\ No newline at end of file
diff --git a/charts/homebridge/README.md.gotmpl b/charts/homebridge/README.md.gotmpl
new file mode 100644
index 00000000..8b868671
--- /dev/null
+++ b/charts/homebridge/README.md.gotmpl
@@ -0,0 +1,145 @@
+{{- define "custom.repository.organization" -}}
+k8s-at-home
+{{- end -}}
+
+{{- define "custom.repository.url" -}}
+https://github.com/k8s-at-home/charts
+{{- end -}}
+
+{{- define "custom.helm.url" -}}
+https://k8s-at-home.com/charts/
+{{- end -}}
+
+{{- define "custom.helm.path" -}}
+{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
+{{- end -}}
+
+{{- define "custom.notes" -}}
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+{{- end -}}
+
+{{- define "custom.requirements" -}}
+## Requirements
+
+{{ template "chart.kubeVersionLine" . }}
+{{- end -}}
+
+{{- define "custom.dependencies" -}}
+## Dependencies
+
+{{ template "chart.requirementsTable" . }}
+{{- end -}}
+
+{{- define "custom.install.tldr" -}}
+## TL;DR
+
+```console
+helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
+helm repo update
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.install" -}}
+## Installing the Chart
+
+To install the chart with the release name `{{ template "chart.name" . }}`
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.uninstall" -}}
+## Uninstalling the Chart
+
+To uninstall the `{{ template "chart.name" . }}` deployment
+
+```console
+helm uninstall {{ template "chart.name" . }}
+```
+
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
+{{- end -}}
+
+{{- define "custom.configuration.header" -}}
+## Configuration
+{{- end -}}
+
+{{- define "custom.configuration.readValues" -}}
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
+{{- end -}}
+
+{{- define "custom.configuration.example.set" -}}
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+```console
+helm install {{ template "chart.name" . }} \
+ --set env.TZ="America/New York" \
+ {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.configuration.example.file" -}}
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
+```
+{{- end -}}
+
+{{- define "custom.valuesSection" -}}
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+{{ template "chart.valuesTable" . }}
+{{- end -}}
+
+{{- define "custom.support" -}}
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+{{- end -}}
+
+{{ template "chart.header" . }}
+
+{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
+
+{{ template "chart.description" . }}
+
+{{ template "custom.notes" . }}
+
+{{ template "chart.sourcesSection" . }}
+
+{{ template "custom.requirements" . }}
+
+{{ template "custom.dependencies" . }}
+
+{{ template "custom.install.tldr" . }}
+
+{{ template "custom.install" . }}
+
+{{ template "custom.uninstall" . }}
+
+{{ template "custom.configuration.header" . }}
+
+{{ template "custom.configuration.readValues" . }}
+
+{{ template "custom.configuration.example.set" . }}
+
+{{ template "custom.configuration.example.file" . }}
+
+{{ template "custom.custom.configuration" . }}
+
+{{ template "custom.valuesSection" . }}
+
+{{ template "custom.changelog" . }}
+
+{{ template "custom.support" . }}
+
+{{ template "helm-docs.versionFooter" . }}
diff --git a/charts/homebridge/README_CHANGELOG.md.gotmpl b/charts/homebridge/README_CHANGELOG.md.gotmpl
new file mode 100644
index 00000000..5f6f22f9
--- /dev/null
+++ b/charts/homebridge/README_CHANGELOG.md.gotmpl
@@ -0,0 +1,27 @@
+{{- define "custom.changelog.header" -}}
+## Changelog
+{{- end -}}
+
+{{- define "custom.changelog" -}}
+{{ template "custom.changelog.header" . }}
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [1.0.3]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- Use helm-docs
+
+#### Removed
+
+- N/A
+
+[1.0.3]: #1.0.3
+{{- end -}}
diff --git a/charts/homebridge/README_CONFIG.md.gotmpl b/charts/homebridge/README_CONFIG.md.gotmpl
new file mode 100644
index 00000000..e93d80bf
--- /dev/null
+++ b/charts/homebridge/README_CONFIG.md.gotmpl
@@ -0,0 +1,9 @@
+{{- define "custom.custom.configuration.header" -}}
+## Custom configuration
+{{- end -}}
+
+{{- define "custom.custom.configuration" -}}
+{{ template "custom.custom.configuration.header" . }}
+
+N/A
+{{- end -}}
diff --git a/charts/homebridge/values.yaml b/charts/homebridge/values.yaml
index 70f065aa..8ca73fb9 100644
--- a/charts/homebridge/values.yaml
+++ b/charts/homebridge/values.yaml
@@ -3,29 +3,39 @@
replicaCount: 1
image:
+ # -- Image repository
repository: oznu/homebridge
+ # -- Image pull policy
pullPolicy: IfNotPresent
- # Overrides the image tag whose default is the chart appVersion.
+ # -- Overrides the image tag whose default is the chart appVersion.
+ # Possible values listed [here](https://hub.docker.com/r/oznu/homebridge/tags)
tag: "3.1.0"
+# -- Secrets to use when pulling the image
imagePullSecrets: []
+
nameOverride: ""
fullnameOverride: ""
-# upgrade strategy type (e.g. Recreate or RollingUpdate)
+# -- Specifies the strategy used to replace old Pods by new ones
strategyType: Recreate
+# -- Specify the container timezone
timezone: "UTC"
+# -- process userID the instance should run as
puid: 1000
+# -- process groupID the instance should run as
pgid: 1000
config:
+ # -- Enable the Homebridge UI plugin
enableUI: true
+ # -- Additional Homebridge plugins to install at container startup such as `homebridge-hue`
plugins: []
- # - homebridge-hue
+ # -- Additional Alpine packages to install at container statup such as `bash`
additionalPackages: []
- # - bash
+# -- Extra ENV vars to pass to the homebridge container
extraEnvs: []
serviceAccount:
@@ -37,6 +47,7 @@ serviceAccount:
# If not set and create is true, a name is generated using the fullname template
name: ""
+# -- Key-value pairs to add as pod annotations
podAnnotations: {}
podSecurityContext: {}
@@ -51,60 +62,87 @@ securityContext: {}
# runAsUser: 1000
service:
+ # -- Kubernetes service type for the homebridge GUI
type: ClusterIP
homebridgePort: 51826
+ # -- Kubernetes port where the homebridge GUI is exposed
httpPort: 8080
+ # -- Service annotations for the homebridge GUI
+ annotations: {}
+ # -- (string) Cluster IP for the homebridge GUI
+ clusterIP:
+ # -- (string) External IPs for the homebridge GUI
+ externalIPs:
+ # -- (string) Loadbalancer IP for the homebridge GUI
+ loadBalancerIP:
+ # -- (string) Loadbalancer client IP restriction range for the homebridge GUI
+ loadBalancerSourceRanges:
+ # -- (string) Loadbalancer externalTrafficPolicy
+ externalTrafficPolicy:
+ # -- (int) nodePort to listen on for the homebridge GUI
+ nodePort:
ingress:
+ # -- Enables Ingress
enabled: false
+ # -- Ingress annotations
annotations: {}
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: "true"
+ # -- Ingress path
path: /
+ # -- Ingress accepted hostnames
hosts:
- chart-example.local
+ # -- Ingress TLS configuration
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
+# -- Enable hostNetwork - needed for discovery to work
hostNetwork: false
persistence:
+ # -- Use persistent volume to store data
enabled: true
- ## homebridge data Persistent Volume Storage Class
- ## If defined, storageClassName:
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is
- ## set, choosing the default provisioner. (gp2 on AWS, standard on
- ## GKE, AWS & OpenStack)
- ##
- # storageClass: "-"
- ##
- ## If you want to reuse an existing claim, you can pass the name of the PVC using
- ## the existingClaim variable
- # existingClaim: your-claim
+ # -- (string) Type of persistent volume claim
+ storageClass:
+ # -- (string) Use an existing PVC to persist data
+ existingClaim:
+ # -- Persistence access modes
accessMode: ReadWriteOnce
+ # -- Size of persistent volume claim
size: 1Gi
- ## Do not delete the pvc upon helm uninstall
+ # -- Do not delete the pvc upon helm uninstall
skipuninstall: false
probes:
liveness:
+ # -- Use the livenessProbe?
enabled: true
+ # -- Specify liveness `initialDelaySeconds` parameter for the deployment
initialDelaySeconds: 60
+ # -- Specify liveness `failureThreshold` parameter for the deployment
failureThreshold: 5
+ # -- Specify liveness `timeoutSeconds` parameter for the deployment
timeoutSeconds: 10
readiness:
+ # -- Use the readinessProbe?
enabled: true
+ # -- Specify readiness `initialDelaySeconds` parameter for the deployment
initialDelaySeconds: 60
+ # -- Specify readiness `failureThreshold` parameter for the deployment
failureThreshold: 5
+ # -- Specify readiness `timeoutSeconds` parameter for the deployment
timeoutSeconds: 10
startup:
+ # -- Use the startupProbe? (new in kubernetes 1.16)
enabled: false
+ # -- Specify startup `failureThreshold` parameter for the deployment
failureThreshold: 30
+ # -- Specify startup `periodSeconds` parameter for the deployment
periodSeconds: 10
+# -- CPU/Memory resource requests/limits or the homebridge GUI
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
@@ -117,8 +155,11 @@ resources: {}
# cpu: 100m
# memory: 128Mi
+# -- Node labels for pod assignment or the homebridge GUI
nodeSelector: {}
+# -- Toleration labels for pod assignment or the homebridge GUI
tolerations: []
+# -- Affinity settings for pod assignment or the homebridge GUI
affinity: {}
diff --git a/charts/librespeed/Chart.yaml b/charts/librespeed/Chart.yaml
index 4513a80f..9ae6580e 100644
--- a/charts/librespeed/Chart.yaml
+++ b/charts/librespeed/Chart.yaml
@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 1.0.6-12
description: Librespeed is a HTML5 webpage to test upload and download speeds
name: librespeed
-version: 2.0.0
+version: 2.0.1
keywords:
- librespeed
home: https://github.com/k8s-at-home/charts/tree/master/charts/librespeed
diff --git a/charts/librespeed/README.md b/charts/librespeed/README.md
index d690307d..91121d49 100644
--- a/charts/librespeed/README.md
+++ b/charts/librespeed/README.md
@@ -1,96 +1,152 @@
-# Librespeed
+# librespeed
-HTML5 based speedtest with password protected history
+![Version: 2.0.1](https://img.shields.io/badge/Version-2.0.1-informational?style=flat-square) ![AppVersion: 1.0.6-12](https://img.shields.io/badge/AppVersion-1.0.6--12-informational?style=flat-square)
-**This chart is not maintained by the Librespeed project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new)**
+Librespeed is a HTML5 webpage to test upload and download speeds
-## TL;DR;
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
-```shell
+## Source Code
+
+*
+*
+*
+
+## Requirements
+
+## Dependencies
+
+| Repository | Name | Version |
+|------------|------|---------|
+
+## TL;DR
+
+```console
helm repo add k8s-at-home https://k8s-at-home.com/charts/
-helm install k8s-at-home/librespeed
+helm repo update
+helm install librespeed k8s-at-home/librespeed
```
-## Introduction
-
-This code is adopted from the [Linuxserver Librespeed docker image](https://hub.docker.com/r/linuxserver/librespeed) which runs the [Librespeed application](https://github.com/librespeed/speedtest)
-
## Installing the Chart
-To install the chart with the release name `my-release`:
+To install the chart with the release name `librespeed`
-```shell
-helm install --name my-release k8s-at-home/librespeed
+```console
+helm install librespeed k8s-at-home/librespeed
```
+
## Uninstalling the Chart
-To uninstall/delete the `my-release` deployment:
+To uninstall the `librespeed` deployment
-```shell
-helm delete my-release --purge
+```console
+helm uninstall librespeed
```
-The command removes all the Kubernetes components associated with the chart and deletes the release.
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
## Configuration
-The following tables lists the configurable parameters of the Librespeed chart and their default values.
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
-| Parameter | Description | Default |
-|:---------------------------------- |:----------------------------------------------------------------------- |:------------------------- |
-| `image.repository` | Librespeed image | `linuxserver/librespeed` |
-| `image.tag` | Librespeed image tag | `5.2-ls25` |
-| `image.pullPolicy` | Librespeed image pull policy | `IfNotPresent` |
-| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` |
-| `livenessProbePath` | Default livenessProbe path | `/` |
-| `readinessProbePath` | Default readinessProbe path | `/` |
-| `timezone` | Default timezone | `UTC` |
-| `puid` | Default UID | `1000` |
-| `pgid` | Default GID | `1000` |
-| `telemetry` | Enable/Disable history | `false` |
-| `title` | Title of your speedtest | `LibreSpeed` |
-| `idObfuscation` | Test IDs are obfuscated, avoids exposing database internal sequential IDs| `false` |
-| `redactIPAddresses` | IP addresses/hostnames are redacted from the collected telemetry | `false` |
-| `email` | Email address for GDPR requests. Must be specified when telemetry=true | `fake@fake.com |
-| `distance` | how the distance from the server is measured. Options `km`, `mi`, or `` | `km` |
-| `service.type` | Kubernetes service type for the GUI | `ClusterIP` |
-| `service.port` | Kubernetes port where the GUI is exposed | `1880` |
-| `service.nodePort` | Kubernetes nodePort where the GUI is exposed | `` |
-| `service.annotations` | Service annotations for the GUI | `{}` |
-| `service.labels` | Custom labels | `{}` |
-| `service.loadBalancerIP` | Loadbalance IP for the GUI | `{}` |
-| `service.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | None |
-| `service.externalTrafficPolicy` | Set the externalTrafficPolicy in the Service to either Cluster or Local | `Cluster` |
-| `ingress.enabled` | Enables Ingress | `false` |
-| `ingress.annotations` | Ingress annotations | `{}` |
-| `ingress.path` | Ingress path | `/` |
-| `ingress.hosts` | Ingress accepted hostnames | `chart-example.local` |
-| `ingress.tls` | Ingress TLS configuration | `[]` |
-| `persistence.enabled` | Use persistent volume to store data | `false` |
-| `persistence.size` | Size of persistent volume claim | `5Gi` |
-| `persistence.existingClaim` | Use an existing PVC to persist data | `nil` |
-| `persistence.storageClass` | Type of persistent volume claim | `-` |
-| `persistence.accessModes` | Persistence access modes | `ReadWriteOnce` |
-| `persistence.subPath` | Mount a sub dir of the persistent volume | `nil` |
-| `resources` | CPU/Memory resource requests/limits | `{}` |
-| `nodeSelector` | Node labels for pod assignment | `{}` |
-| `tolerations` | Toleration labels for pod assignment | `[]` |
-| `affinity` | Affinity settings for pod assignment | `{}` |
-| `podAnnotations` | Key-value pairs to add as pod annotations | `{}` |
-| `deploymentAnnotations` | Key-value pairs to add as deployment annotations | `{}` |
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
-Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
-
-```shell
-helm install --name my-release \
- --set config.timezone="America/New_York" \
+```console
+helm install librespeed \
+ --set env.TZ="America/New York" \
k8s-at-home/librespeed
```
-Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
-```shell
-helm install --name my-release -f values.yaml k8s-at-home/librespeed
+```console
+helm install librespeed k8s-at-home/librespeed -f values.yaml
```
-Read through the [values.yaml](values.yaml) file. It has several commented out suggested values.
+## Custom configuration
+
+N/A
+
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| affinity | object | `{}` | Affinity settings for pod assignment or the homebridge GUI |
+| deploymentAnnotations | object | `{}` | Key-value pairs to add as deployment annotations |
+| distance | string | `"km"` | how the distance from the server is measured. Options `km`, `mi`, or `` |
+| email | string | `nil` | Email address for GDPR requests. Must be specified when telemetry=true |
+| fullnameOverride | string | `""` | |
+| idObfuscation | bool | `false` | Test IDs are obfuscated, avoids exposing database internal sequential IDs |
+| image.pullPolicy | string | `"IfNotPresent"` | Librespeed image pull policy |
+| image.repository | string | `"adolfintel/speedtest"` | Librespeed image |
+| image.tag | string | `"latest"` | Librespeed image tag |
+| ingress.annotations | object | `{}` | Ingress annotations |
+| ingress.enabled | bool | `false` | Enables Ingress |
+| ingress.hosts | list | `["chart-example.local"]` | Ingress accepted hostnames |
+| ingress.path | string | `"/"` | Ingress path |
+| ingress.tls | list | `[]` | Ingress TLS configuration |
+| livenessProbePath | string | `"/"` | Default livenessProbe path |
+| nameOverride | string | `""` | |
+| nodeSelector | object | `{}` | Node labels for pod assignment or the homebridge GUI |
+| password | string | `"ChangeMe"` | password for stats page |
+| persistence.accessMode | string | `"ReadWriteOnce"` | Persistence access modes |
+| persistence.enabled | bool | `true` | Use persistent volume to store data |
+| persistence.existingClaim | string | `nil` | Use an existing PVC to persist data |
+| persistence.size | string | `"1Gi"` | Size of persistent volume claim |
+| persistence.skipuninstall | bool | `false` | Do not delete the pvc upon helm uninstall |
+| persistence.storageClass | string | `nil` | Type of persistent volume claim |
+| persistence.subPath | string | `nil` | When mounting the data volume you may specify a subPath |
+| pgid | string | `"1000"` | Default GID |
+| podAnnotations | object | `{}` | Key-value pairs to add as pod annotations |
+| puid | string | `"1000"` | Default UID |
+| readinessProbePath | string | `"/"` | Default readinessProbe path |
+| redactIPAddresses | bool | `false` | IP addresses/hostnames are redacted from the collected telemetry |
+| resources | object | `{}` | CPU/Memory resource requests/limits or the homebridge GUI |
+| service.annotations | object | `{}` | Service annotations for the GUI |
+| service.externalTrafficPolicy | string | `"Cluster"` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
+| service.labels | object | `{}` | Custom labels |
+| service.loadBalancerIP | string | `nil` | Loadbalance IP for the GUI |
+| service.loadBalancerSourceRanges | list | `nil` | List of IP CIDRs allowed access to load balancer (if supported) |
+| service.nodePort | int | `nil` | Kubernetes nodePort where the GUI is exposed |
+| service.port | int | `80` | Kubernetes port where the GUI is exposed |
+| service.type | string | `"ClusterIP"` | Kubernetes service type for the GUI |
+| strategyType | string | `"Recreate"` | Specifies the strategy used to replace old Pods by new ones |
+| telemetry | bool | `false` | Enable/Disable history |
+| timezone | string | `"UTC"` | Default timezone |
+| title | string | `"LibreSpeed"` | Title of your speedtest |
+| tolerations | list | `[]` | Toleration labels for pod assignment or the homebridge GUI |
+
+## Changelog
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [2.0.1]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- Use helm-docs
+
+#### Removed
+
+- N/A
+
+[2.0.1]: #2.0.1
+
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
\ No newline at end of file
diff --git a/charts/librespeed/README.md.gotmpl b/charts/librespeed/README.md.gotmpl
new file mode 100644
index 00000000..8b868671
--- /dev/null
+++ b/charts/librespeed/README.md.gotmpl
@@ -0,0 +1,145 @@
+{{- define "custom.repository.organization" -}}
+k8s-at-home
+{{- end -}}
+
+{{- define "custom.repository.url" -}}
+https://github.com/k8s-at-home/charts
+{{- end -}}
+
+{{- define "custom.helm.url" -}}
+https://k8s-at-home.com/charts/
+{{- end -}}
+
+{{- define "custom.helm.path" -}}
+{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
+{{- end -}}
+
+{{- define "custom.notes" -}}
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+{{- end -}}
+
+{{- define "custom.requirements" -}}
+## Requirements
+
+{{ template "chart.kubeVersionLine" . }}
+{{- end -}}
+
+{{- define "custom.dependencies" -}}
+## Dependencies
+
+{{ template "chart.requirementsTable" . }}
+{{- end -}}
+
+{{- define "custom.install.tldr" -}}
+## TL;DR
+
+```console
+helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
+helm repo update
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.install" -}}
+## Installing the Chart
+
+To install the chart with the release name `{{ template "chart.name" . }}`
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.uninstall" -}}
+## Uninstalling the Chart
+
+To uninstall the `{{ template "chart.name" . }}` deployment
+
+```console
+helm uninstall {{ template "chart.name" . }}
+```
+
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
+{{- end -}}
+
+{{- define "custom.configuration.header" -}}
+## Configuration
+{{- end -}}
+
+{{- define "custom.configuration.readValues" -}}
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
+{{- end -}}
+
+{{- define "custom.configuration.example.set" -}}
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+```console
+helm install {{ template "chart.name" . }} \
+ --set env.TZ="America/New York" \
+ {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.configuration.example.file" -}}
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
+```
+{{- end -}}
+
+{{- define "custom.valuesSection" -}}
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+{{ template "chart.valuesTable" . }}
+{{- end -}}
+
+{{- define "custom.support" -}}
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+{{- end -}}
+
+{{ template "chart.header" . }}
+
+{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
+
+{{ template "chart.description" . }}
+
+{{ template "custom.notes" . }}
+
+{{ template "chart.sourcesSection" . }}
+
+{{ template "custom.requirements" . }}
+
+{{ template "custom.dependencies" . }}
+
+{{ template "custom.install.tldr" . }}
+
+{{ template "custom.install" . }}
+
+{{ template "custom.uninstall" . }}
+
+{{ template "custom.configuration.header" . }}
+
+{{ template "custom.configuration.readValues" . }}
+
+{{ template "custom.configuration.example.set" . }}
+
+{{ template "custom.configuration.example.file" . }}
+
+{{ template "custom.custom.configuration" . }}
+
+{{ template "custom.valuesSection" . }}
+
+{{ template "custom.changelog" . }}
+
+{{ template "custom.support" . }}
+
+{{ template "helm-docs.versionFooter" . }}
diff --git a/charts/librespeed/README_CHANGELOG.md.gotmpl b/charts/librespeed/README_CHANGELOG.md.gotmpl
new file mode 100644
index 00000000..dfccc3ca
--- /dev/null
+++ b/charts/librespeed/README_CHANGELOG.md.gotmpl
@@ -0,0 +1,27 @@
+{{- define "custom.changelog.header" -}}
+## Changelog
+{{- end -}}
+
+{{- define "custom.changelog" -}}
+{{ template "custom.changelog.header" . }}
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [2.0.1]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- Use helm-docs
+
+#### Removed
+
+- N/A
+
+[2.0.1]: #2.0.1
+{{- end -}}
diff --git a/charts/librespeed/README_CONFIG.md.gotmpl b/charts/librespeed/README_CONFIG.md.gotmpl
new file mode 100644
index 00000000..e93d80bf
--- /dev/null
+++ b/charts/librespeed/README_CONFIG.md.gotmpl
@@ -0,0 +1,9 @@
+{{- define "custom.custom.configuration.header" -}}
+## Custom configuration
+{{- end -}}
+
+{{- define "custom.custom.configuration" -}}
+{{ template "custom.custom.configuration.header" . }}
+
+N/A
+{{- end -}}
diff --git a/charts/librespeed/values.yaml b/charts/librespeed/values.yaml
index a75d6ab2..ae476a02 100644
--- a/charts/librespeed/values.yaml
+++ b/charts/librespeed/values.yaml
@@ -2,112 +2,122 @@
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
-# upgrade strategy type (e.g. Recreate or RollingUpdate)
+# -- Specifies the strategy used to replace old Pods by new ones
strategyType: Recreate
image:
+ # -- Librespeed image
repository: adolfintel/speedtest
+ # -- Librespeed image tag
tag: latest
+ # -- Librespeed image pull policy
pullPolicy: IfNotPresent
nameOverride: ""
fullnameOverride: ""
+# -- Default livenessProbe path
livenessProbePath: /
+# -- Default readinessProbe path
readinessProbePath: /
+# -- Default timezone
timezone: "UTC"
+# -- Default UID
puid: "1000"
+# -- Default GID
pgid: "1000"
-## Store results? If enabled, password is required
+# -- Enable/Disable history
telemetry: false
-## The following are required when telemetry is enabled
-## If telemetry is enabled, a stats page will be available at http://your.server/results/stats.php
-# password: "ChangeMe"
-# email: "fake@fake.com"
+# -- password for stats page
+password: "ChangeMe"
+# -- (string) Email address for GDPR requests. Must be specified when telemetry=true
+email:
-## The following are optional. The defaults are listed
-# title: LibreSpeed
-## Test IDs are obfuscated, to avoid exposing the database internal sequential IDs
-# idObfuscation: false
-## IP addresses and hostnames are redacted from the collected telemetry, for better privacy
-# redactIPAddresses: false
-## Specifies how the distance from the server is measured. Can be either km for kilometers, mi for miles, or an empty string to disable distance measurement.
-# distance: "km"
+# -- Title of your speedtest
+title: LibreSpeed
+# -- Test IDs are obfuscated, avoids exposing database internal sequential IDs
+idObfuscation: false
+# -- IP addresses/hostnames are redacted from the collected telemetry
+redactIPAddresses: false
+# -- how the distance from the server is measured. Options `km`, `mi`, or ``
+distance: "km"
service:
+ # -- Kubernetes service type for the GUI
type: ClusterIP
+ # -- Kubernetes port where the GUI is exposed
port: 80
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ##
- # nodePort:
- ## Provide any additional annotations which may be required. This can be used to
- ## set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
+ # -- (int) Kubernetes nodePort where the GUI is exposed
+ nodePort:
+ # -- Service annotations for the GUI
annotations: {}
+ # -- Custom labels
labels: {}
- ## Use loadBalancerIP to request a specific static IP,
- ## otherwise leave blank
- ##
+ # -- (string) Loadbalance IP for the GUI
loadBalancerIP:
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- # externalTrafficPolicy: Cluster
+ # -- (list) List of IP CIDRs allowed access to load balancer (if supported)
+ loadBalancerSourceRanges:
+ # -- Set the externalTrafficPolicy in the Service to either Cluster or Local
+ externalTrafficPolicy:
ingress:
+ # -- Enables Ingress
enabled: false
+ # -- Ingress annotations
annotations: {}
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: "true"
+ # -- Ingress path
path: /
+ # -- Ingress accepted hostnames
hosts:
- chart-example.local
+ # -- Ingress TLS configuration
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
persistence:
+ # -- Use persistent volume to store data
enabled: false
- ## node-red data Persistent Volume Storage Class
- ## If defined, storageClassName:
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is
- ## set, choosing the default provisioner. (gp2 on AWS, standard on
- ## GKE, AWS & OpenStack)
- ##
- # storageClass: "-"
- ##
- ## If you want to reuse an existing claim, you can pass the name of the PVC using
- ## the existingClaim variable
- # existingClaim: your-claim
+ # -- (string) Type of persistent volume claim
+ storageClass:
+ # -- (string) Use an existing PVC to persist data
+ existingClaim:
+ # -- Persistence access modes
accessMode: ReadWriteOnce
+ # -- Size of persistent volume claim
size: 1Gi
- ## When mounting the data volume you may specify a subPath
- # subPath: /configs/node-red
-
+ # -- Do not delete the pvc upon helm uninstall
+ skipuninstall: false
+ # -- (string) When mounting the data volume you may specify a subPath
+ subPath:
+# -- CPU/Memory resource requests/limits or the homebridge GUI
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
- # cpu: 100m
- # memory: 128Mi
+ # cpu: 100m
+ # memory: 128Mi
# requests:
- # cpu: 100m
- # memory: 128Mi
+ # cpu: 100m
+ # memory: 128Mi
+# -- Node labels for pod assignment or the homebridge GUI
nodeSelector: {}
+# -- Toleration labels for pod assignment or the homebridge GUI
tolerations: []
+# -- Affinity settings for pod assignment or the homebridge GUI
affinity: {}
+# -- Key-value pairs to add as pod annotations
podAnnotations: {}
+# -- Key-value pairs to add as deployment annotations
deploymentAnnotations: {}
diff --git a/charts/node-feature-discovery/Chart.yaml b/charts/node-feature-discovery/Chart.yaml
index 6e59f7c5..f31c8e26 100644
--- a/charts/node-feature-discovery/Chart.yaml
+++ b/charts/node-feature-discovery/Chart.yaml
@@ -1,6 +1,6 @@
apiVersion: v2
name: node-feature-discovery
-version: 2.1.0
+version: 2.1.1
appVersion: 0.7.0
description: Detect hardware features available on each node in a Kubernetes cluster, and advertises those features using node labels
keywords:
diff --git a/charts/node-feature-discovery/README.md b/charts/node-feature-discovery/README.md
index 9f3d9c54..112ec87c 100644
--- a/charts/node-feature-discovery/README.md
+++ b/charts/node-feature-discovery/README.md
@@ -1,72 +1,141 @@
-# node-feature-discovery helm chart
+# node-feature-discovery
-This is a helm chart for [node-feature-discovery](https://github.com/kubernetes-sigs/node-feature-discovery) using the master/worker pattern.
+![Version: 2.1.1](https://img.shields.io/badge/Version-2.1.1-informational?style=flat-square) ![AppVersion: 0.7.0](https://img.shields.io/badge/AppVersion-0.7.0-informational?style=flat-square)
+
+Detect hardware features available on each node in a Kubernetes cluster, and advertises those features using node labels
+
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+
+## Source Code
+
+*
+*
+
+## Requirements
+
+## Dependencies
+
+| Repository | Name | Version |
+|------------|------|---------|
## TL;DR
-```shell
+```console
helm repo add k8s-at-home https://k8s-at-home.com/charts/
-helm install k8s-at-home/node-feature-discovery
+helm repo update
+helm install node-feature-discovery k8s-at-home/node-feature-discovery
```
## Installing the Chart
-To install the chart with the release name `my-release`:
+To install the chart with the release name `node-feature-discovery`
-```shell
-helm install my-release k8s-at-home/node-feature-discovery
+```console
+helm install node-feature-discovery k8s-at-home/node-feature-discovery
```
## Uninstalling the Chart
-To uninstall/delete the `my-release` deployment:
+To uninstall the `node-feature-discovery` deployment
-```shell
-helm delete my-release --purge
+```console
+helm uninstall node-feature-discovery
```
-The command removes all the Kubernetes components associated with the chart and deletes the release.
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
## Configuration
-The following tables lists the configurable parameters of the Sentry chart and their default values.
-Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/node-feature-discovery/values.yaml) file. It has several commented out suggested values.
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
-| Parameter | Description | Default |
-| ------------------------------------------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
-| `image.repository` | Image repository | `quay.io/kubernetes_incubator/node-feature-discovery` |
-| `image.tag` | Image tag. Possible values listed [here](https://github.com/kubernetes-sigs/node-feature-discovery/releases). | `v0.6.0` |
-| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
-| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` |
-| `sources` | List of sources to consider when labeling - see [documentation](https://github.com/kubernetes-sigs/node-feature-discovery#feature-sources) for info | `[]` |
-| `config` | node-feature-discovery configuration - see [nfd-worker.conf.example](https://github.com/kubernetes-sigs/node-feature-discovery/blob/master/nfd-worker.conf.example) for example | `{}` |
-| `service.type` | Kubernetes service type for the GUI | `ClusterIP` |
-| `service.port` | Kubernetes port where the GUI is exposed | `8080` |
-| `service.annotations` | Service annotations for the GUI | `{}` |
-| `service.labels` | Custom labels | `{}` |
-| `service.loadBalancerIP` | Loadbalancer IP for the GUI | `{}` |
-| `service.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | `nil` |
-| `podAnnotations` | Key-value pairs to add as pod annotations | `{}` |
-| `master.replicaCount` | Number of replicas to scale the master component to | `1` |
-| `master.resources` | CPU/Memory resource requests/limits for master component | `{}` |
-| `master.nodeSelector` | Node labels for master component pod assignment | `{}` |
-| `master.tolerations` | Toleration labels for master component pod assignment | See [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/node-feature-discovery/values.yaml) |
-| `master.affinity` | Affinity settings for master component pod assignment | See [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/node-feature-discovery/values.yaml) |
-| `worker.resources` | CPU/Memory resource requests/limits for worker component | `{}` |
-| `worker.nodeSelector` | Node labels for worker component pod assignment | `{}` |
-| `worker.tolerations` | Toleration labels for worker component pod assignment | `[]` |
-| `worker.affinity` | Affinity settings for worker component pod assignment | `{}` |
-
-Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
-helm install my-release \
- --set image.pullPolicy="Always" \
+helm install node-feature-discovery \
+ --set env.TZ="America/New York" \
k8s-at-home/node-feature-discovery
```
-Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
-helm install my-release -f values.yaml k8s-at-home/node-feature-discovery
+helm install node-feature-discovery k8s-at-home/node-feature-discovery -f values.yaml
```
+
+## Custom configuration
+
+N/A
+
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| config | string | `"#sources:\n# cpu:\n# cpuid:\n## NOTE: whitelist has priority over blacklist\n# attributeBlacklist:\n# - \"BMI1\"\n# - \"BMI2\"\n# - \"CLMUL\"\n# - \"CMOV\"\n# - \"CX16\"\n# - \"ERMS\"\n# - \"F16C\"\n# - \"HTT\"\n# - \"LZCNT\"\n# - \"MMX\"\n# - \"MMXEXT\"\n# - \"NX\"\n# - \"POPCNT\"\n# - \"RDRAND\"\n# - \"RDSEED\"\n# - \"RDTSCP\"\n# - \"SGX\"\n# - \"SSE\"\n# - \"SSE2\"\n# - \"SSE3\"\n# - \"SSE4.1\"\n# - \"SSE4.2\"\n# - \"SSSE3\"\n# attributeWhitelist:\n# kernel:\n# kconfigFile: \"/path/to/kconfig\"\n# configOpts:\n# - \"NO_HZ\"\n# - \"X86\"\n# - \"DMI\"\n# pci:\n# deviceClassWhitelist:\n# - \"0200\"\n# - \"03\"\n# - \"12\"\n# deviceLabelFields:\n# - \"class\"\n# - \"vendor\"\n# - \"device\"\n# - \"subsystem_vendor\"\n# - \"subsystem_device\"\n# usb:\n# deviceClassWhitelist:\n# - \"0e\"\n# - \"ef\"\n# - \"fe\"\n# - \"ff\"\n# deviceLabelFields:\n# - \"class\"\n# - \"vendor\"\n# - \"device\"\n# custom:\n# - name: \"my.kernel.feature\"\n# matchOn:\n# - loadedKMod: [\"example_kmod1\", \"example_kmod2\"]\n# - name: \"my.pci.feature\"\n# matchOn:\n# - pciId:\n# class: [\"0200\"]\n# vendor: [\"15b3\"]\n# device: [\"1014\", \"1017\"]\n# - pciId :\n# vendor: [\"8086\"]\n# device: [\"1000\", \"1100\"]\n# - name: \"my.usb.feature\"\n# matchOn:\n# - usbId:\n# class: [\"ff\"]\n# vendor: [\"03e7\"]\n# device: [\"2485\"]\n# - usbId:\n# class: [\"fe\"]\n# vendor: [\"1a6e\"]\n# device: [\"089a\"]\n# - name: \"my.combined.feature\"\n# matchOn:\n# - pciId:\n# vendor: [\"15b3\"]\n# device: [\"1014\", \"1017\"]\n# loadedKMod : [\"vendor_kmod1\", \"vendor_kmod2\"]\n"` | node-feature-discovery configuration - see https://github.com/kubernetes-sigs/node-feature-discovery/blob/master/nfd-worker.conf.example for example |
+| fullnameOverride | string | `""` | |
+| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
+| image.repository | string | `"gcr.io/k8s-staging-nfd/node-feature-discovery"` | Image repository |
+| image.tag | string | `"v0.7.0"` | Image tag. Possible values listed [here](https://github.com/kubernetes-sigs/node-feature-discovery/releases). |
+| imagePullSecrets | list | `[]` | |
+| master.affinity | object | `{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"preference":{"matchExpressions":[{"key":"node-role.kubernetes.io/master","operator":"In","values":[""]}]},"weight":1}]}}` | Affinity settings for master component pod assignment |
+| master.nodeSelector | object | `{}` | Node labels for master component pod assignment |
+| master.replicaCount | int | `1` | Number of replicas to scale the master component to |
+| master.resources | object | `{}` | CPU/Memory resource requests/limits for master component |
+| master.securityContext | object | `{}` | |
+| master.tolerations | list | `[{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Equal","value":""}]` | Toleration labels for master component pod assignment. |
+| nameOverride | string | `""` | |
+| podAnnotations | object | `{}` | Key-value pairs to add as pod annotations |
+| podSecurityContext | object | `{}` | |
+| rbac.create | bool | `true` | |
+| service.annotations | object | `{}` | Service annotations for the GUI |
+| service.clusterIP | string | `""` | |
+| service.externalTrafficPolicy | string | `"Local"` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
+| service.labels | object | `{}` | Custom labels |
+| service.loadBalancerIP | string | `nil` | Loadbalance IP for the GUI |
+| service.loadBalancerSourceRanges | list | `nil` | List of IP CIDRs allowed access to load balancer (if supported) |
+| service.nodePort | int | `nil` | Kubernetes nodePort where the GUI is exposed |
+| service.port | int | `8080` | Kubernetes port where the GUI is exposed |
+| service.type | string | `"ClusterIP"` | Kubernetes service type for the GUI |
+| serviceAccount.annotations | object | `{}` | |
+| serviceAccount.create | bool | `true` | |
+| serviceAccount.name | string | `""` | |
+| sources | list | `[]` | List of sources to consider when labeling - see [documentation](https://github.com/kubernetes-sigs/node-feature-discovery#feature-sources) for info |
+| worker.affinity | object | `{}` | Affinity settings for worker component pod assignment |
+| worker.nodeSelector | object | `{}` | Node labels for worker component pod assignment |
+| worker.resources | object | `{}` | CPU/Memory resource requests/limits for worker component |
+| worker.securityContext | object | `{}` | |
+| worker.tolerations | list | `[]` | Toleration labels for worker component pod assignment |
+
+## Changelog
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [1.0.0]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- N/A
+
+#### Removed
+
+- N/A
+
+[1.0.0]: #1.0.0
+
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
\ No newline at end of file
diff --git a/charts/node-feature-discovery/README.md.gotmpl b/charts/node-feature-discovery/README.md.gotmpl
new file mode 100644
index 00000000..8b868671
--- /dev/null
+++ b/charts/node-feature-discovery/README.md.gotmpl
@@ -0,0 +1,145 @@
+{{- define "custom.repository.organization" -}}
+k8s-at-home
+{{- end -}}
+
+{{- define "custom.repository.url" -}}
+https://github.com/k8s-at-home/charts
+{{- end -}}
+
+{{- define "custom.helm.url" -}}
+https://k8s-at-home.com/charts/
+{{- end -}}
+
+{{- define "custom.helm.path" -}}
+{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
+{{- end -}}
+
+{{- define "custom.notes" -}}
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+{{- end -}}
+
+{{- define "custom.requirements" -}}
+## Requirements
+
+{{ template "chart.kubeVersionLine" . }}
+{{- end -}}
+
+{{- define "custom.dependencies" -}}
+## Dependencies
+
+{{ template "chart.requirementsTable" . }}
+{{- end -}}
+
+{{- define "custom.install.tldr" -}}
+## TL;DR
+
+```console
+helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
+helm repo update
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.install" -}}
+## Installing the Chart
+
+To install the chart with the release name `{{ template "chart.name" . }}`
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.uninstall" -}}
+## Uninstalling the Chart
+
+To uninstall the `{{ template "chart.name" . }}` deployment
+
+```console
+helm uninstall {{ template "chart.name" . }}
+```
+
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
+{{- end -}}
+
+{{- define "custom.configuration.header" -}}
+## Configuration
+{{- end -}}
+
+{{- define "custom.configuration.readValues" -}}
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
+{{- end -}}
+
+{{- define "custom.configuration.example.set" -}}
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+```console
+helm install {{ template "chart.name" . }} \
+ --set env.TZ="America/New York" \
+ {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.configuration.example.file" -}}
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
+```
+{{- end -}}
+
+{{- define "custom.valuesSection" -}}
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+{{ template "chart.valuesTable" . }}
+{{- end -}}
+
+{{- define "custom.support" -}}
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+{{- end -}}
+
+{{ template "chart.header" . }}
+
+{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
+
+{{ template "chart.description" . }}
+
+{{ template "custom.notes" . }}
+
+{{ template "chart.sourcesSection" . }}
+
+{{ template "custom.requirements" . }}
+
+{{ template "custom.dependencies" . }}
+
+{{ template "custom.install.tldr" . }}
+
+{{ template "custom.install" . }}
+
+{{ template "custom.uninstall" . }}
+
+{{ template "custom.configuration.header" . }}
+
+{{ template "custom.configuration.readValues" . }}
+
+{{ template "custom.configuration.example.set" . }}
+
+{{ template "custom.configuration.example.file" . }}
+
+{{ template "custom.custom.configuration" . }}
+
+{{ template "custom.valuesSection" . }}
+
+{{ template "custom.changelog" . }}
+
+{{ template "custom.support" . }}
+
+{{ template "helm-docs.versionFooter" . }}
diff --git a/charts/node-feature-discovery/README_CHANGELOG.md.gotmpl b/charts/node-feature-discovery/README_CHANGELOG.md.gotmpl
new file mode 100644
index 00000000..e6167dad
--- /dev/null
+++ b/charts/node-feature-discovery/README_CHANGELOG.md.gotmpl
@@ -0,0 +1,27 @@
+{{- define "custom.changelog.header" -}}
+## Changelog
+{{- end -}}
+
+{{- define "custom.changelog" -}}
+{{ template "custom.changelog.header" . }}
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [1.0.0]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- N/A
+
+#### Removed
+
+- N/A
+
+[1.0.0]: #1.0.0
+{{- end -}}
diff --git a/charts/node-feature-discovery/README_CONFIG.md.gotmpl b/charts/node-feature-discovery/README_CONFIG.md.gotmpl
new file mode 100644
index 00000000..e93d80bf
--- /dev/null
+++ b/charts/node-feature-discovery/README_CONFIG.md.gotmpl
@@ -0,0 +1,9 @@
+{{- define "custom.custom.configuration.header" -}}
+## Custom configuration
+{{- end -}}
+
+{{- define "custom.custom.configuration" -}}
+{{ template "custom.custom.configuration.header" . }}
+
+N/A
+{{- end -}}
diff --git a/charts/node-feature-discovery/values.yaml b/charts/node-feature-discovery/values.yaml
index 2bd3c13d..05b15d42 100644
--- a/charts/node-feature-discovery/values.yaml
+++ b/charts/node-feature-discovery/values.yaml
@@ -3,9 +3,11 @@
# Declare variables to be passed into your templates.
image:
+ # -- Image repository
repository: gcr.io/k8s-staging-nfd/node-feature-discovery
+ # -- Image pull policy
pullPolicy: IfNotPresent
- # Overrides the image tag whose default is the chart appVersion.
+ # -- Image tag. Possible values listed [here](https://github.com/kubernetes-sigs/node-feature-discovery/releases).
tag: "v0.7.0"
imagePullSecrets: []
@@ -25,7 +27,7 @@ rbac:
# Specifies whether RBAC roles should be created
create: true
-# Comma separated list of feature sources.
+# -- List of sources to consider when labeling - see [documentation](https://github.com/kubernetes-sigs/node-feature-discovery#feature-sources) for info
sources: []
# - cpu
# - custom
@@ -39,7 +41,7 @@ sources: []
# - system
# - usb
-# node-feature-discovery configuration - see https://github.com/kubernetes-sigs/node-feature-discovery/blob/master/nfd-worker.conf.example for example
+# -- node-feature-discovery configuration - see https://github.com/kubernetes-sigs/node-feature-discovery/blob/master/nfd-worker.conf.example for example
config: |
#sources:
# cpu:
@@ -128,28 +130,32 @@ config: |
# loadedKMod : ["vendor_kmod1", "vendor_kmod2"]
service:
+ # -- Kubernetes service type for the GUI
type: ClusterIP
clusterIP: ""
+ # -- Kubernetes port where the GUI is exposed
port: 8080
+ # -- (int) Kubernetes nodePort where the GUI is exposed
+ nodePort:
+ # -- Service annotations for the GUI
+ annotations: {}
+ # -- Custom labels
+ labels: {}
+ # -- (string) Loadbalance IP for the GUI
+ loadBalancerIP:
+ # -- (list) List of IP CIDRs allowed access to load balancer (if supported)
+ loadBalancerSourceRanges:
+ # -- Set the externalTrafficPolicy in the Service to either Cluster or Local
+ externalTrafficPolicy:
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- # nodePort:
- ## List of IP addresses at which the hass-configurator service is available
- ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
- externalIPs: []
- ## Use loadBalancerIP to request a specific static IP, otherwise leave blank
- loadBalancerIP: ""
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- externalTrafficPolicy: # Local
-
+# -- Key-value pairs to add as pod annotations
podAnnotations: {}
podSecurityContext: {}
# fsGroup: 2000
master:
+ # -- Number of replicas to scale the master component to
replicaCount: 1
securityContext: {}
@@ -160,6 +166,7 @@ master:
# runAsNonRoot: true
# runAsUser: 1000
+ # -- CPU/Memory resource requests/limits for master component
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
@@ -172,14 +179,17 @@ master:
# cpu: 100m
# memory: 128Mi
+ # -- Node labels for master component pod assignment
nodeSelector: {}
+ # -- Toleration labels for master component pod assignment.
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Equal"
value: ""
effect: "NoSchedule"
+ # -- Affinity settings for master component pod assignment
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
@@ -199,6 +209,7 @@ worker:
# runAsNonRoot: true
# runAsUser: 1000
+ # -- CPU/Memory resource requests/limits for worker component
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
@@ -211,8 +222,11 @@ worker:
# cpu: 100m
# memory: 128Mi
+ # -- Node labels for worker component pod assignment
nodeSelector: {}
+ # -- Toleration labels for worker component pod assignment
tolerations: []
+ # -- Affinity settings for worker component pod assignment
affinity: {}
diff --git a/charts/oauth2-proxy/Chart.yaml b/charts/oauth2-proxy/Chart.yaml
index f3e7077d..0bc80800 100644
--- a/charts/oauth2-proxy/Chart.yaml
+++ b/charts/oauth2-proxy/Chart.yaml
@@ -1,5 +1,5 @@
name: oauth2-proxy
-version: 5.0.0
+version: 5.0.1
apiVersion: v1
appVersion: 7.0.1
home: https://oauth2-proxy.github.io/oauth2-proxy/
diff --git a/charts/oauth2-proxy/README.md b/charts/oauth2-proxy/README.md
index e762e2fd..b8f3be52 100644
--- a/charts/oauth2-proxy/README.md
+++ b/charts/oauth2-proxy/README.md
@@ -1,154 +1,72 @@
# oauth2-proxy
-[oauth2-proxy](https://github.com/pusher/oauth2_proxy) is a reverse proxy and static file server that provides authentication using Providers (Google, GitHub, and others) to validate accounts by email, domain or group.
+![Version: 5.0.1](https://img.shields.io/badge/Version-5.0.1-informational?style=flat-square) ![AppVersion: 7.0.1](https://img.shields.io/badge/AppVersion-7.0.1-informational?style=flat-square)
-## TL;DR;
+A reverse proxy that provides authentication with Google, Github or other providers
+
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+
+## Source Code
+
+*
+
+## Requirements
+
+Kubernetes: `>=1.9.0-0`
+
+## Dependencies
+
+| Repository | Name | Version |
+|------------|------|---------|
+
+## TL;DR
```console
-$ helm install stable/oauth2-proxy
+helm repo add k8s-at-home https://k8s-at-home.com/charts/
+helm repo update
+helm install oauth2-proxy k8s-at-home/oauth2-proxy
```
-## Introduction
-
-This chart bootstraps an oauth2-proxy deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
-
## Installing the Chart
-To install the chart with the release name `my-release`:
+To install the chart with the release name `oauth2-proxy`
```console
-$ helm install stable/oauth2-proxy --name my-release
+helm install oauth2-proxy k8s-at-home/oauth2-proxy
```
-The command deploys oauth2-proxy on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
-
## Uninstalling the Chart
-To uninstall/delete the `my-release` deployment:
+To uninstall the `oauth2-proxy` deployment
```console
-$ helm delete my-release
+helm uninstall oauth2-proxy
```
-The command removes all the Kubernetes components associated with the chart and deletes the release.
-
-## Upgrading an existing Release to a new major version
-
-A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an
-incompatible breaking change needing manual actions.
-
-### To 1.0.0
-
-This version upgrade oauth2-proxy to v4.0.0. Please see the [changelog](https://github.com/pusher/oauth2_proxy/blob/v4.0.0/CHANGELOG.md#v400) in order to upgrade.
-
-### To 2.0.0
-
-Version 2.0.0 of this chart introduces support for Kubernetes v1.16.x by way of addressing the deprecation of the Deployment object apiVersion `apps/v1beta2`. See [the v1.16 API deprecations page](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/) for more information.
-
-Due to [this issue](https://github.com/helm/helm/issues/6583) there may be errors performing a `helm upgrade`of this chart from versions earlier than 2.0.0.
-
-### To 3.0.0
-
-Version 3.0.0 introduces support for [EKS IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) by adding a managed service account to the chart. This is a breaking change since the service account is enabled by default. To disable this behaviour set `serviceAccount.enabled` to `false`
-
-### To 4.0.0
-
-This is a breaking change as the chart was moved to k8s-at-home. No other change on top of the 3.x.x branch.
-
-## To 5.0.0
-
-Not many breaking changes. See the [changelog](https://github.com/oauth2-proxy/oauth2-proxy/releases/tag/v7.0.0) for oauth2-proxy, specifically the section "Breaking Changes" for a few configuration changes, particularly to do with the Azure provider.
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
## Configuration
-The following table lists the configurable parameters of the oauth2-proxy chart and their default values.
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
-Parameter | Description | Default
---- | --- | ---
-`affinity` | node/pod affinities | None
-`authenticatedEmailsFile.enabled` | Enables authorize individual email addresses | `false`
-`authenticatedEmailsFile.template` | Name of the configmap that is handled outside of that chart | `""`
-`authenticatedEmailsFile.restricted_access` | [email addresses](https://github.com/pusher/oauth2_proxy#email-authentication) list config | `""`
-`config.clientID` | oauth client ID | `""`
-`config.clientSecret` | oauth client secret | `""`
-`config.cookieSecret` | server specific cookie for the secret; create a new one with `openssl rand -base64 32 | head -c 32 | base64` | `""`
-`config.existingSecret` | existing Kubernetes secret to use for OAuth2 credentials. See [secret template](https://github.com/helm/charts/blob/master/stable/oauth2-proxy/templates/secret.yaml) for the required values | `nil`
-`config.configFile` | custom [oauth2_proxy.cfg](https://github.com/pusher/oauth2_proxy/blob/master/contrib/oauth2_proxy.cfg.example) contents for settings not overridable via environment nor command line | `""`
-`config.existingConfig` | existing Kubernetes configmap to use for the configuration file. See [config template](https://github.com/helm/charts/blob/master/stable/oauth2-proxy/templates/configmap.yaml) for the required values | `nil`
-`config.google.adminEmail` | user impersonated by the google service account | `""`
-`config.google.serviceAccountJson` | google service account json contents | `""`
-`config.google.existingConfig` | existing Kubernetes configmap to use for the service account file. See [google secret template](https://github.com/helm/charts/blob/master/stable/oauth2-proxy/templates/google-secret.yaml) for the required values | `nil`
-`extraArgs` | key:value list of extra arguments to give the binary | `{}`
-`extraEnv` | key:value list of extra environment variables to give the binary | `[]`
-`extraVolumes` | list of extra volumes | `[]`
-`extraVolumeMounts` | list of extra volumeMounts | `[]`
-`htpasswdFile.enabled` | enable htpasswd-file option | `false`
-`htpasswdFile.entries` | list of [SHA encrypted user:passwords](https://pusher.github.io/oauth2_proxy/configuration#command-line-options) | `{}`
-`htpasswdFile.existingSecret` | existing Kubernetes secret to use for OAuth2 htpasswd file | `""`
-`httpScheme` | `http` or `https`. `name` used for port on the deployment. `httpGet` port `name` and `scheme` used for `liveness`- and `readinessProbes`. `name` and `targetPort` used for the service. | `http`
-`image.pullPolicy` | Image pull policy | `IfNotPresent`
-`image.repository` | Image repository | `quay.io/pusher/oauth2_proxy`
-`image.tag` | Image tag | `v5.1.0`
-`imagePullSecrets` | Specify image pull secrets | `nil` (does not add image pull secrets to deployed pods)
-`ingress.enabled` | Enable Ingress | `false`
-`ingress.ingressClassName` | Set ingressClassName | `nil`
-`ingress.path` | Ingress accepted path | `/`
-`ingress.extraPaths` | Ingress extra paths to prepend to every host configuration. Useful when configuring [custom actions with AWS ALB Ingress Controller](https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/#actions). | `[]`
-`ingress.annotations` | Ingress annotations | `nil`
-`ingress.hosts` | Ingress accepted hostnames | `nil`
-`ingress.tls` | Ingress TLS configuration | `nil`
-`initContainers` | pod init containers | `[]`
-`livenessProbe.enabled` | enable Kubernetes livenessProbe. Disable to use oauth2-proxy with Istio mTLS. See [Istio FAQ](https://istio.io/help/faq/security/#k8s-health-checks) | `true`
-`livenessProbe.initialDelaySeconds` | number of seconds | 0
-`livenessProbe.timeoutSeconds` | number of seconds | 1
-`nodeSelector` | node labels for pod assignment | `{}`
-`podAnnotations` | annotations to add to each pod | `{}`
-`podLabels` | additional labesl to add to each pod | `{}`
-`podDisruptionBudget.enabled`| Enabled creation of PodDisruptionBudget (only if replicaCount > 1) | true
-`podDisruptionBudget.minAvailable`| minAvailable parameter for PodDisruptionBudget | 1
-`podSecurityContext` | Kubernetes security context to apply to pod | `{}`
-`priorityClassName` | priorityClassName | `nil`
-`readinessProbe.enabled` | enable Kubernetes readinessProbe. Disable to use oauth2-proxy with Istio mTLS. See [Istio FAQ](https://istio.io/help/faq/security/#k8s-health-checks) | `true`
-`readinessProbe.initialDelaySeconds` | number of seconds | 0
-`readinessProbe.timeoutSeconds` | number of seconds | 1
-`readinessProbe.periodSeconds` | number of seconds | 10
-`readinessProbe.successThreshold` | number of successes | 1
-`replicaCount` | desired number of pods | `1`
-`resources` | pod resource requests & limits | `{}`
-`service.port` | port for the service | `80`
-`service.type` | type of service | `ClusterIP`
-`service.clusterIP` | cluster ip address | `nil`
-`service.loadBalancerIP` | ip of load balancer | `nil`
-`service.loadBalancerSourceRanges` | allowed source ranges in load balancer | `nil`
-`serviceAccount.enabled` | create a service account | `true`
-`serviceAccount.name` | the service account name | ``
-`serviceAccount.annotations` | (optional) annotations for the service account | `{}`
-`tolerations` | list of node taints to tolerate | `[]`
-`topologySpreadConstraints.enabled` | enable Kubernetes [topologySpreadConstraints](https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/) | `false`
-`topologySpreadConstraints.maxSkew` | the degree to which Pods may be unevenly distributed | `1`
-`topologySpreadConstraints.topologyKey` | the key of node labels | `topology.kubernetes.io/zone`
-`topologySpreadConstraints.whenUnsatisfiable` | how to deal with a Pod if it doesn't satisfy the spread constraint (`DoNotSchedule`, `ScheduleAnyway`) | `DoNotSchedule`
-`securityContext.enabled` | enable Kubernetes security context on container | `false`
-`securityContext.runAsNonRoot` | make sure that the container runs as a non-root user | `true`
-`proxyVarsAsSecrets` | choose between environment values or secrets for setting up OAUTH2_PROXY variables. When set to false, remember to add the variables OAUTH2_PROXY_CLIENT_ID, OAUTH2_PROXY_CLIENT_SECRET, OAUTH2_PROXY_COOKIE_SECRET in extraEnv | `true`
-
-
-Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
-$ helm install stable/oauth2-proxy --name my-release \
- --set=image.tag=v0.0.2,resources.limits.cpu=200m
+helm install oauth2-proxy \
+ --set env.TZ="America/New York" \
+ k8s-at-home/oauth2-proxy
```
-Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
-$ helm install stable/oauth2-proxy --name my-release -f values.yaml
+helm install oauth2-proxy k8s-at-home/oauth2-proxy -f values.yaml
```
-> **Tip**: You can use the default [values.yaml](values.yaml)
+## Custom configuration
-## SSL Configuration
+### SSL Configuration
See: [SSL Configuration](https://pusher.github.io/oauth2_proxy/tls-configuration).
Use ```values.yaml``` like:
@@ -178,3 +96,126 @@ data:
cert.pem: AB..==
cert.key: CD..==
```
+
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| affinity | object | `{}` | node/pod affinities Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity |
+| authenticatedEmailsFile.enabled | bool | `false` | Enables authorize individual email addresses |
+| authenticatedEmailsFile.restricted_access | string | `""` | [email addresses](https://github.com/pusher/oauth2_proxy#email-authentication) list config |
+| authenticatedEmailsFile.template | string | `""` | Name of the configmap that is handled outside of that chart It's a simpler way to maintain only one configmap (user list) instead changing it for each oauth2-proxy service. Be aware the value name in the extern config map in data needs to be named to "restricted_user_access". One email per line example: restricted_access: |- name1@domain name2@domain If you override the config with restricted_access it will configure a user list within this chart what takes care of the config map resource. |
+| config.clientID | string | `"XXXXXXX"` | OAuth client ID |
+| config.clientSecret | string | `"XXXXXXXX"` | OAuth client secret |
+| config.configFile | string | `"email_domains = [ \"*\" ]\nupstreams = [ \"file:///dev/null\" ]"` | google service account json contents serviceAccountJson: xxxx -- Alternatively, use an existing secret (see google-secret.yaml for required fields) existingSecret: google-secret -- custom [oauth2_proxy.cfg](https://github.com/pusher/oauth2_proxy/blob/master/contrib/oauth2_proxy.cfg.example) contents for settings not overridable via environment nor command line |
+| config.cookieSecret | string | `"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"` | server specific cookie for the secret; create a new one with `openssl rand -base64 32 | head -c 32 | base64` |
+| config.existingConfig | string | `nil` | xisting Kubernetes configmap to use for the configuration file. See [config template](https://github.com/helm/charts/blob/master/stable/oauth2-proxy/templates/configmap.yaml) for the required values |
+| config.google | object | `{}` | |
+| extraArgs | object | `{}` | key:value list of extra arguments to give the binary |
+| extraEnv | list | `[]` | key:value list of extra environment variables to give the binary |
+| extraVolumeMounts | list | `[]` | list of extra volumeMounts |
+| extraVolumes | list | `[]` | list of extra volumes |
+| htpasswdFile.enabled | bool | `false` | enable htpasswd-file option |
+| htpasswdFile.entries | object | `{}` | list of [SHA encrypted user:passwords](https://pusher.github.io/oauth2_proxy/configuration#command-line-options) |
+| htpasswdFile.existingSecret | string | `""` | existing Kubernetes secret to use for OAuth2 htpasswd file |
+| httpScheme | string | `"http"` | `http` or `https`. `name` used for port on the deployment. `httpGet` port `name` and `scheme` used for `liveness`- and `readinessProbes`. `name` and `targetPort` used for the service. |
+| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
+| image.repository | string | `"quay.io/oauth2-proxy/oauth2-proxy"` | Image repository |
+| image.tag | string | `"v7.0.1"` | Image tag |
+| imagePullSecrets | list | `nil` | Optionally specify an array of imagePullSecrets. Secrets must be manually created in the namespace. ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod |
+| ingress.annotations | object | `{}` | Ingress annotations |
+| ingress.enabled | bool | `false` | Enable Ingress |
+| ingress.extraPaths | list | `[]` | Ingress extra paths to prepend to every host configuration. Useful when configuring [custom actions with AWS ALB Ingress Controller](https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/#actions). |
+| ingress.hosts | list | `[]` | Ingress accepted hostnames |
+| ingress.ingressClassName | string | `nil` | Set ingressClassName |
+| ingress.path | string | `"/"` | Ingress accepted path |
+| ingress.tls | list | `nil` | Ingress TLS configuration |
+| initContainers | list | `[]` | Configure init containers for pod Ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ |
+| livenessProbe | object | `{"enabled":true,"initialDelaySeconds":0,"timeoutSeconds":1}` | Configure Kubernetes liveness probes. Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ Disable both when deploying with Istio 1.0 mTLS. https://istio.io/help/faq/security/#k8s-health-checks |
+| nodeSelector | object | `{}` | Node labels for pod assignment Ref: https://kubernetes.io/docs/user-guide/node-selection/ |
+| podAnnotations | object | `{}` | annotations to add to each pod |
+| podDisruptionBudget | object | `{"enabled":true,"minAvailable":1}` | PodDisruptionBudget settings Ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ |
+| podLabels | object | `{}` | labels to add to each pod |
+| podSecurityContext | object | `{}` | |
+| priorityClassName | string | `""` | |
+| proxyVarsAsSecrets | bool | `true` | |
+| readinessProbe | object | `{"enabled":true,"initialDelaySeconds":0,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | Configure Kubernetes readiness probes. |
+| replicaCount | int | `1` | |
+| resources | object | `{}` | |
+| securityContext | object | `{"enabled":false,"runAsNonRoot":true}` | Configure Kubernetes security context for container Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ |
+| service.annotations | object | `{}` | Service annotations for the GUI |
+| service.loadBalancerIP | string | `nil` | Loadbalance IP for the GUI |
+| service.loadBalancerSourceRanges | list | `nil` | List of IP CIDRs allowed access to load balancer (if supported) |
+| service.port | int | `80` | Kubernetes port where the GUI is exposed |
+| service.type | string | `"ClusterIP"` | Kubernetes service type for the GUI |
+| serviceAccount.annotations | object | `{}` | |
+| serviceAccount.enabled | bool | `true` | |
+| serviceAccount.name | string | `nil` | |
+| tolerations | list | `[]` | Tolerations for pod assignment Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ |
+| topologySpreadConstraints | object | `{"enabled":false,"maxSkew":1,"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"DoNotSchedule"}` | Configure Pod Topology Spread Constraints See https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ Requires Kubernetes >= v1.16 |
+
+## Changelog
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [1.0.0]
+
+#### Changed
+
+- This version upgrade oauth2-proxy to v4.0.0. Please see the [changelog](https://github.com/pusher/oauth2_proxy/blob/v4.0.0/CHANGELOG.md#v400) in order to upgrade.
+
+### [2.0.0]
+
+#### Changed
+
+- support for Kubernetes v1.16.x by way of addressing the deprecation of the Deployment object apiVersion `apps/v1beta2`. See [the v1.16 API deprecations page](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/) for more information.
+
+Due to [this issue](https://github.com/helm/helm/issues/6583) there may be errors performing a `helm upgrade`of this chart from versions earlier than 2.0.0.
+
+### [3.0.0]
+
+#### Changed
+
+- support for [EKS IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) by adding a managed service account to the chart. This is a breaking change since the service account is enabled by default. To disable this behaviour set `serviceAccount.enabled` to `false`
+
+### [4.0.0]
+
+#### Changed
+
+- This is a breaking change as the chart was moved to k8s-at-home. No other change on top of the 3.x.x branch.
+
+### [5.0.0]
+
+#### Changed
+
+- Not many breaking changes. See the [changelog](https://github.com/oauth2-proxy/oauth2-proxy/releases/tag/v7.0.0) for oauth2-proxy, specifically the section "Breaking Changes" for a few configuration changes, particularly to do with the Azure provider.
+
+### [5.0.1]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- Use helm-docs
+
+#### Removed
+
+- N/A
+
+[5.0.1]: #5.0.1
+
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
\ No newline at end of file
diff --git a/charts/oauth2-proxy/README.md.gotmpl b/charts/oauth2-proxy/README.md.gotmpl
new file mode 100644
index 00000000..8b868671
--- /dev/null
+++ b/charts/oauth2-proxy/README.md.gotmpl
@@ -0,0 +1,145 @@
+{{- define "custom.repository.organization" -}}
+k8s-at-home
+{{- end -}}
+
+{{- define "custom.repository.url" -}}
+https://github.com/k8s-at-home/charts
+{{- end -}}
+
+{{- define "custom.helm.url" -}}
+https://k8s-at-home.com/charts/
+{{- end -}}
+
+{{- define "custom.helm.path" -}}
+{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
+{{- end -}}
+
+{{- define "custom.notes" -}}
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+{{- end -}}
+
+{{- define "custom.requirements" -}}
+## Requirements
+
+{{ template "chart.kubeVersionLine" . }}
+{{- end -}}
+
+{{- define "custom.dependencies" -}}
+## Dependencies
+
+{{ template "chart.requirementsTable" . }}
+{{- end -}}
+
+{{- define "custom.install.tldr" -}}
+## TL;DR
+
+```console
+helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
+helm repo update
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.install" -}}
+## Installing the Chart
+
+To install the chart with the release name `{{ template "chart.name" . }}`
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.uninstall" -}}
+## Uninstalling the Chart
+
+To uninstall the `{{ template "chart.name" . }}` deployment
+
+```console
+helm uninstall {{ template "chart.name" . }}
+```
+
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
+{{- end -}}
+
+{{- define "custom.configuration.header" -}}
+## Configuration
+{{- end -}}
+
+{{- define "custom.configuration.readValues" -}}
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
+{{- end -}}
+
+{{- define "custom.configuration.example.set" -}}
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+```console
+helm install {{ template "chart.name" . }} \
+ --set env.TZ="America/New York" \
+ {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.configuration.example.file" -}}
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
+```
+{{- end -}}
+
+{{- define "custom.valuesSection" -}}
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+{{ template "chart.valuesTable" . }}
+{{- end -}}
+
+{{- define "custom.support" -}}
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+{{- end -}}
+
+{{ template "chart.header" . }}
+
+{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
+
+{{ template "chart.description" . }}
+
+{{ template "custom.notes" . }}
+
+{{ template "chart.sourcesSection" . }}
+
+{{ template "custom.requirements" . }}
+
+{{ template "custom.dependencies" . }}
+
+{{ template "custom.install.tldr" . }}
+
+{{ template "custom.install" . }}
+
+{{ template "custom.uninstall" . }}
+
+{{ template "custom.configuration.header" . }}
+
+{{ template "custom.configuration.readValues" . }}
+
+{{ template "custom.configuration.example.set" . }}
+
+{{ template "custom.configuration.example.file" . }}
+
+{{ template "custom.custom.configuration" . }}
+
+{{ template "custom.valuesSection" . }}
+
+{{ template "custom.changelog" . }}
+
+{{ template "custom.support" . }}
+
+{{ template "helm-docs.versionFooter" . }}
diff --git a/charts/oauth2-proxy/README_CHANGELOG.md.gotmpl b/charts/oauth2-proxy/README_CHANGELOG.md.gotmpl
new file mode 100644
index 00000000..b18b0662
--- /dev/null
+++ b/charts/oauth2-proxy/README_CHANGELOG.md.gotmpl
@@ -0,0 +1,59 @@
+{{- define "custom.changelog.header" -}}
+## Changelog
+{{- end -}}
+
+{{- define "custom.changelog" -}}
+{{ template "custom.changelog.header" . }}
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [1.0.0]
+
+#### Changed
+
+- This version upgrade oauth2-proxy to v4.0.0. Please see the [changelog](https://github.com/pusher/oauth2_proxy/blob/v4.0.0/CHANGELOG.md#v400) in order to upgrade.
+
+### [2.0.0]
+
+#### Changed
+
+- support for Kubernetes v1.16.x by way of addressing the deprecation of the Deployment object apiVersion `apps/v1beta2`. See [the v1.16 API deprecations page](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/) for more information.
+
+Due to [this issue](https://github.com/helm/helm/issues/6583) there may be errors performing a `helm upgrade`of this chart from versions earlier than 2.0.0.
+
+### [3.0.0]
+
+#### Changed
+
+- support for [EKS IAM roles for service accounts](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) by adding a managed service account to the chart. This is a breaking change since the service account is enabled by default. To disable this behaviour set `serviceAccount.enabled` to `false`
+
+### [4.0.0]
+
+#### Changed
+
+- This is a breaking change as the chart was moved to k8s-at-home. No other change on top of the 3.x.x branch.
+
+### [5.0.0]
+
+#### Changed
+
+- Not many breaking changes. See the [changelog](https://github.com/oauth2-proxy/oauth2-proxy/releases/tag/v7.0.0) for oauth2-proxy, specifically the section "Breaking Changes" for a few configuration changes, particularly to do with the Azure provider.
+
+### [5.0.1]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- Use helm-docs
+
+#### Removed
+
+- N/A
+
+[5.0.1]: #5.0.1
+{{- end -}}
diff --git a/charts/oauth2-proxy/README_CONFIG.md.gotmpl b/charts/oauth2-proxy/README_CONFIG.md.gotmpl
new file mode 100644
index 00000000..763a1622
--- /dev/null
+++ b/charts/oauth2-proxy/README_CONFIG.md.gotmpl
@@ -0,0 +1,38 @@
+{{- define "custom.custom.configuration.header" -}}
+## Custom configuration
+{{- end -}}
+
+{{- define "custom.custom.configuration" -}}
+{{ template "custom.custom.configuration.header" . }}
+
+### SSL Configuration
+
+See: [SSL Configuration](https://pusher.github.io/oauth2_proxy/tls-configuration).
+Use ```values.yaml``` like:
+
+```yaml
+...
+extraArgs:
+ tls-cert: /path/to/cert.pem
+ tls-key: /path/to/cert.key
+
+extraVolumes:
+ - name: ssl-cert
+ secret:
+ secretName: my-ssl-secret
+
+extraVolumeMounts:
+ - mountPath: /path/to/
+ name: ssl-cert
+...
+```
+
+With a secret called `my-ssl-secret`:
+
+```yaml
+...
+data:
+ cert.pem: AB..==
+ cert.key: CD..==
+```
+{{- end -}}
diff --git a/charts/oauth2-proxy/values.yaml b/charts/oauth2-proxy/values.yaml
index c57b9d53..da144476 100644
--- a/charts/oauth2-proxy/values.yaml
+++ b/charts/oauth2-proxy/values.yaml
@@ -1,22 +1,22 @@
# Oauth client configuration specifics
config:
- # OAuth client ID
+ # -- OAuth client ID
clientID: "XXXXXXX"
- # OAuth client secret
+ # -- OAuth client secret
clientSecret: "XXXXXXXX"
- # Create a new secret with the following command
- # openssl rand -base64 32 | head -c 32 | base64
- # Use an existing secret for OAuth2 credentials (see secret.yaml for required fields)
- # Example:
- # existingSecret: secret
+ # -- server specific cookie for the secret; create a new one with `openssl rand -base64 32 | head -c 32 | base64`
cookieSecret: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
google: {}
+ # -- user impersonated by the google service account
# adminEmail: xxxx
+
+ # -- google service account json contents
# serviceAccountJson: xxxx
- # Alternatively, use an existing secret (see google-secret.yaml for required fields)
- # Example:
+
+ # -- Alternatively, use an existing secret (see google-secret.yaml for required fields)
# existingSecret: google-secret
- # Default configuration, to be overridden
+
+ # -- custom [oauth2_proxy.cfg](https://github.com/pusher/oauth2_proxy/blob/master/contrib/oauth2_proxy.cfg.example) contents for settings not overridable via environment nor command line
configFile: |-
email_domains = [ "*" ]
upstreams = [ "file:///dev/null" ]
@@ -24,32 +24,37 @@ config:
# configFile: |-
# pass_basic_auth = false
# pass_access_token = true
- # Use an existing config map (see configmap.yaml for required fields)
- # Example:
- # existingConfig: config
+
+ # -- (string)existing Kubernetes configmap to use for the configuration file. See [config template](https://github.com/helm/charts/blob/master/stable/oauth2-proxy/templates/configmap.yaml) for the required values
+ existingConfig:
image:
+ # -- Image repository
repository: "quay.io/oauth2-proxy/oauth2-proxy"
+ # -- Image tag
tag: "v7.0.1"
+ # -- Image pull policy
pullPolicy: "IfNotPresent"
-# Optionally specify an array of imagePullSecrets.
+# -- (list) Optionally specify an array of imagePullSecrets.
# Secrets must be manually created in the namespace.
# ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
-# imagePullSecrets:
+imagePullSecrets:
# - name: myRegistryKeySecretName
+# -- key:value list of extra arguments to give the binary
extraArgs: {}
+# -- key:value list of extra environment variables to give the binary
extraEnv: []
# To authorize individual email addresses
# That is part of extraArgs but since this needs special treatment we need to do a separate section
authenticatedEmailsFile:
+ # -- Enables authorize individual email addresses
enabled: false
- # template is the name of the configmap what contains the email user list but has been configured without this chart.
+ # -- Name of the configmap that is handled outside of that chart
# It's a simpler way to maintain only one configmap (user list) instead changing it for each oauth2-proxy service.
# Be aware the value name in the extern config map in data needs to be named to "restricted_user_access".
- template: ""
# One email per line
# example:
# restricted_access: |-
@@ -57,18 +62,22 @@ authenticatedEmailsFile:
# name2@domain
# If you override the config with restricted_access it will configure a user list within this chart what takes care of the
# config map resource.
+ template: ""
+
+ # -- [email addresses](https://github.com/pusher/oauth2_proxy#email-authentication) list config
restricted_access: ""
service:
+ # -- Kubernetes service type for the GUI
type: ClusterIP
- # when service.type is ClusterIP ...
- # clusterIP: 192.0.2.20
- # when service.type is LoadBalancer ...
- # loadBalancerIP: 198.51.100.40
- # loadBalancerSourceRanges: 203.0.113.0/24
+ # -- Kubernetes port where the GUI is exposed
port: 80
+ # -- Service annotations for the GUI
annotations: {}
- # foo.io/bar: "true"
+ # -- (string) Loadbalance IP for the GUI
+ loadBalancerIP:
+ # -- (list) List of IP CIDRs allowed access to load balancer (if supported)
+ loadBalancerSourceRanges:
## Create or use ServiceAccount
serviceAccount:
@@ -80,27 +89,33 @@ serviceAccount:
annotations: {}
ingress:
+ # -- Enable Ingress
enabled: false
+ # -- Ingress accepted path
path: /
- # Used to create an Ingress record.
- # hosts:
- # - chart-example.local
- # Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
- # extraPaths:
+ # -- Ingress accepted hostnames
+ hosts: []
+ # -- Ingress extra paths to prepend to every host configuration. Useful when configuring [custom actions with AWS ALB Ingress Controller](https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/ingress/annotation/#actions).
+ extraPaths: []
# - path: /*
# backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
- # annotations:
+
+ # -- Ingress annotations
+ annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
- # tls:
+
+ # -- (list) Ingress TLS configuration
+ tls:
# Secrets must be manually created in the namespace.
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
- # Define the ingressClassName
- # ingressClassName: nginx
+
+ # -- (string) Set ingressClassName
+ ingressClassName:
resources: {}
# limits:
@@ -110,33 +125,35 @@ resources: {}
# cpu: 100m
# memory: 300Mi
+# -- list of extra volumes
extraVolumes: []
# - name: ca-bundle-cert
# secret:
# secretName:
+# -- list of extra volumeMounts
extraVolumeMounts: []
# - mountPath: /etc/ssl/certs/
# name: ca-bundle-cert
priorityClassName: ""
-# Affinity for pod assignment
+# -- node/pod affinities
# Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
-# affinity: {}
+affinity: {}
-# Tolerations for pod assignment
+# -- Tolerations for pod assignment
# Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
tolerations: []
-# Node labels for pod assignment
+# -- Node labels for pod assignment
# Ref: https://kubernetes.io/docs/user-guide/node-selection/
nodeSelector: {}
# Whether to use secrets instead of environment values for setting up OAUTH2_PROXY variables
proxyVarsAsSecrets: true
-# Configure Kubernetes liveness and readiness probes.
+# -- Configure Kubernetes liveness probes.
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
# Disable both when deploying with Istio 1.0 mTLS. https://istio.io/help/faq/security/#k8s-health-checks
livenessProbe:
@@ -144,6 +161,7 @@ livenessProbe:
initialDelaySeconds: 0
timeoutSeconds: 1
+# -- Configure Kubernetes readiness probes.
readinessProbe:
enabled: true
initialDelaySeconds: 0
@@ -151,18 +169,20 @@ readinessProbe:
periodSeconds: 10
successThreshold: 1
-# Configure Kubernetes security context for container
+# -- Configure Kubernetes security context for container
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
securityContext:
enabled: false
runAsNonRoot: true
+# -- annotations to add to each pod
podAnnotations: {}
+# -- labels to add to each pod
podLabels: {}
replicaCount: 1
-## PodDisruptionBudget settings
-## ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
+# -- PodDisruptionBudget settings
+# Ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
podDisruptionBudget:
enabled: true
minAvailable: 1
@@ -171,27 +191,30 @@ podDisruptionBudget:
# Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
podSecurityContext: {}
-# Configure init containers for pod
-# REF: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
+# -- Configure init containers for pod
+# Ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
initContainers: []
-# whether to use http or https
+# -- `http` or `https`. `name` used for port on the deployment. `httpGet` port `name` and `scheme` used for `liveness`- and `readinessProbes`. `name` and `targetPort` used for the service.
httpScheme: http
# Additionally authenticate against a htpasswd file. Entries must be created with "htpasswd -s" for SHA encryption.
# Alternatively supply an existing secret which contains the required information.
htpasswdFile:
+ # -- enable htpasswd-file option
enabled: false
+ # -- existing Kubernetes secret to use for OAuth2 htpasswd file
existingSecret: ""
+ # -- list of [SHA encrypted user:passwords](https://pusher.github.io/oauth2_proxy/configuration#command-line-options)
entries: {}
# One row for each user
# example:
# entries:
# - testuser:{SHA}EWhzdhgoYJWy0z2gyzhRYlN9DSiv
-## Configure Pod Topology Spread Constraints
-## See https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
-## Requires Kubernetes >= v1.16
+# -- Configure Pod Topology Spread Constraints
+# See https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
+# Requires Kubernetes >= v1.16
topologySpreadConstraints:
enabled: false
maxSkew: 1
diff --git a/charts/ser2sock/Chart.yaml b/charts/ser2sock/Chart.yaml
index e0333add..aee15a2d 100644
--- a/charts/ser2sock/Chart.yaml
+++ b/charts/ser2sock/Chart.yaml
@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 1.0.0
description: Serial to Socket Redirector
name: ser2sock
-version: 2.0.1
+version: 2.0.2
keywords:
- ser2sock
home: https://github.com/k8s-at-home/charts/tree/master/charts/ser2sock
diff --git a/charts/ser2sock/README.md b/charts/ser2sock/README.md
index 640daada..4ae7fae1 100644
--- a/charts/ser2sock/README.md
+++ b/charts/ser2sock/README.md
@@ -1,22 +1,70 @@
-# ser2sock: Serial to Socket Redirector
+# ser2sock
-This is a helm chart for [ser2sock](https://github.com/nutechsoftware/ser2sock)
+![Version: 2.0.2](https://img.shields.io/badge/Version-2.0.2-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
-## TL;DR;
+Serial to Socket Redirector
-```shell
-$ helm repo add k8s-at-home https://k8s-at-home.com/charts/
-$ helm install k8s-at-home/ser2sock
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+
+## Source Code
+
+*
+*
+
+## Requirements
+
+## Dependencies
+
+| Repository | Name | Version |
+|------------|------|---------|
+
+## TL;DR
+
+```console
+helm repo add k8s-at-home https://k8s-at-home.com/charts/
+helm repo update
+helm install ser2sock k8s-at-home/ser2sock
```
## Installing the Chart
-To install the chart with the release name `my-release`:
+To install the chart with the release name `ser2sock`
```console
-helm install --name my-release k8s-at-home/ser2sock
+helm install ser2sock k8s-at-home/ser2sock
```
+## Uninstalling the Chart
+
+To uninstall the `ser2sock` deployment
+
+```console
+helm uninstall ser2sock
+```
+
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
+
+## Configuration
+
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
+
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+```console
+helm install ser2sock \
+ --set env.TZ="America/New York" \
+ k8s-at-home/ser2sock
+```
+
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
+
+```console
+helm install ser2sock k8s-at-home/ser2sock -f values.yaml
+```
+
+## Custom configuration
+
**IMPORTANT NOTE:** the USB device must be accessible on the node where this pod runs, in order for this chart to function properly.
A way to achieve this can be with nodeAffinity rules, for example:
@@ -35,52 +83,66 @@ affinity:
... where a node with an attached Coral USB device is labeled with `usb: alarmdecoder`
-## Uninstalling the Chart
+## Values
-To uninstall/delete the `my-release` deployment:
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
-```console
-helm delete my-release --purge
-```
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| affinity | object | `{}` | Affinity settings for pod assignment of the GUI |
+| baudRate | int | `115200` | Baudrate |
+| device | string | `"/dev/ttyUSB0"` | USB Device to use |
+| fullnameOverride | string | `""` | |
+| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
+| image.repository | string | `"tenstartups/ser2sock"` | Image repository |
+| image.tag | string | `"latest"` | Image tag. Possible values listed [here](https://hub.docker.com/r/tenstartups/ser2sock/tags). |
+| nameOverride | string | `""` | |
+| nodeSelector | object | `{}` | Node labels for pod assignment of the GUI |
+| pgid | string | `"1001"` | GID to run as |
+| podAnnotations | object | `{}` | Pod annotations |
+| puid | string | `"1001"` | UID to run as |
+| resources | object | `{}` | CPU/Memory resource requests/limits or the GUI |
+| service.annotations | object | `{}` | Service annotations for the GUI |
+| service.clusterIP | string | `nil` | Cluster IP for the GUI |
+| service.externalIPs | string | `nil` | External IPs for the GUI |
+| service.externalTrafficPolicy | string | `nil` | Loadbalancer externalTrafficPolicy |
+| service.loadBalancerIP | string | `nil` | Loadbalancer IP for the GUI |
+| service.loadBalancerSourceRanges | string | `nil` | Loadbalancer client IP restriction range for the GUI |
+| service.nodePort | string | `nil` | nodePort to listen on for the GUI |
+| service.port | int | `10000` | Kubernetes port where the GUI is exposed |
+| service.type | string | `"ClusterIP"` | Kubernetes service type for the GUI |
+| strategyType | string | `"Recreate"` | Specifies the strategy used to replace old Pods by new ones |
+| timezone | string | `nil` | Timezone the ser2sock instance should run as, e.g. 'America/New_York' |
+| tolerations | list | `[]` | Toleration labels for pod assignment of the GUI |
-The command removes all the Kubernetes components associated with the chart and deletes the release.
+## Changelog
-## Configuration
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
-The following tables lists the configurable parameters of the Sentry chart and their default values.
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-| Parameter | Description | Default |
-|----------------------------|-------------------------------------|---------------------------------------------------------|
-| `image.repository` | Image repository | `tenstartups/ser2sock` |
-| `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/tenstartups/ser2sock/tags).| `latest`|
-| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
-| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` |
-| `timezone` | Timezone the ser2sock instance should run as, e.g. 'America/New_York' | `` |
-| `device` | USB Device to use | `/dev/ttyUSB0` |
-| `puid` | UID to run as | `1001` |
-| `pgid` | GID to run as | `1001` |
-| `Service.type` | Kubernetes service type for the ser2sock GUI | `ClusterIP` |
-| `Service.port` | Kubernetes port where the ser2sock GUI is exposed| `5000` |
-| `Service.annotations` | Service annotations for the ser2sock GUI | `{}` |
-| `Service.labels` | Custom labels | `{}` |
-| `Service.loadBalancerIP` | Loadbalance IP for the ser2sock GUI | `{}` |
-| `Service.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | None
-| `resources` | CPU/Memory resource requests/limits | `{}` |
-| `nodeSelector` | Node labels for pod assignment | `{}` |
-| `tolerations` | Toleration labels for pod assignment | `[]` |
-| `affinity` | Affinity settings for pod assignment | `{}` |
+### [2.0.2]
-Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
+#### Added
-```console
-helm install --name my-release \
- k8s-at-home/ser2sock
-```
+- N/A
-Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
+#### Changed
-```console
-helm install --name my-release -f values.yaml k8s-at-home/ser2sock
-```
+- N/A
-Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/ser2sock/values.yaml) file. It has several commented out suggested values.
+#### Removed
+
+- N/A
+
+[2.0.2]: #2.0.2
+
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
\ No newline at end of file
diff --git a/charts/ser2sock/README.md.gotmpl b/charts/ser2sock/README.md.gotmpl
new file mode 100644
index 00000000..8b868671
--- /dev/null
+++ b/charts/ser2sock/README.md.gotmpl
@@ -0,0 +1,145 @@
+{{- define "custom.repository.organization" -}}
+k8s-at-home
+{{- end -}}
+
+{{- define "custom.repository.url" -}}
+https://github.com/k8s-at-home/charts
+{{- end -}}
+
+{{- define "custom.helm.url" -}}
+https://k8s-at-home.com/charts/
+{{- end -}}
+
+{{- define "custom.helm.path" -}}
+{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
+{{- end -}}
+
+{{- define "custom.notes" -}}
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+{{- end -}}
+
+{{- define "custom.requirements" -}}
+## Requirements
+
+{{ template "chart.kubeVersionLine" . }}
+{{- end -}}
+
+{{- define "custom.dependencies" -}}
+## Dependencies
+
+{{ template "chart.requirementsTable" . }}
+{{- end -}}
+
+{{- define "custom.install.tldr" -}}
+## TL;DR
+
+```console
+helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
+helm repo update
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.install" -}}
+## Installing the Chart
+
+To install the chart with the release name `{{ template "chart.name" . }}`
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.uninstall" -}}
+## Uninstalling the Chart
+
+To uninstall the `{{ template "chart.name" . }}` deployment
+
+```console
+helm uninstall {{ template "chart.name" . }}
+```
+
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
+{{- end -}}
+
+{{- define "custom.configuration.header" -}}
+## Configuration
+{{- end -}}
+
+{{- define "custom.configuration.readValues" -}}
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
+{{- end -}}
+
+{{- define "custom.configuration.example.set" -}}
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+```console
+helm install {{ template "chart.name" . }} \
+ --set env.TZ="America/New York" \
+ {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.configuration.example.file" -}}
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
+```
+{{- end -}}
+
+{{- define "custom.valuesSection" -}}
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+{{ template "chart.valuesTable" . }}
+{{- end -}}
+
+{{- define "custom.support" -}}
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+{{- end -}}
+
+{{ template "chart.header" . }}
+
+{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
+
+{{ template "chart.description" . }}
+
+{{ template "custom.notes" . }}
+
+{{ template "chart.sourcesSection" . }}
+
+{{ template "custom.requirements" . }}
+
+{{ template "custom.dependencies" . }}
+
+{{ template "custom.install.tldr" . }}
+
+{{ template "custom.install" . }}
+
+{{ template "custom.uninstall" . }}
+
+{{ template "custom.configuration.header" . }}
+
+{{ template "custom.configuration.readValues" . }}
+
+{{ template "custom.configuration.example.set" . }}
+
+{{ template "custom.configuration.example.file" . }}
+
+{{ template "custom.custom.configuration" . }}
+
+{{ template "custom.valuesSection" . }}
+
+{{ template "custom.changelog" . }}
+
+{{ template "custom.support" . }}
+
+{{ template "helm-docs.versionFooter" . }}
diff --git a/charts/ser2sock/README_CHANGELOG.md.gotmpl b/charts/ser2sock/README_CHANGELOG.md.gotmpl
new file mode 100644
index 00000000..a222497c
--- /dev/null
+++ b/charts/ser2sock/README_CHANGELOG.md.gotmpl
@@ -0,0 +1,27 @@
+{{- define "custom.changelog.header" -}}
+## Changelog
+{{- end -}}
+
+{{- define "custom.changelog" -}}
+{{ template "custom.changelog.header" . }}
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [2.0.2]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- N/A
+
+#### Removed
+
+- N/A
+
+[2.0.2]: #2.0.2
+{{- end -}}
diff --git a/charts/ser2sock/README_CONFIG.md.gotmpl b/charts/ser2sock/README_CONFIG.md.gotmpl
new file mode 100644
index 00000000..d7b19e64
--- /dev/null
+++ b/charts/ser2sock/README_CONFIG.md.gotmpl
@@ -0,0 +1,25 @@
+{{- define "custom.custom.configuration.header" -}}
+## Custom configuration
+{{- end -}}
+
+{{- define "custom.custom.configuration" -}}
+{{ template "custom.custom.configuration.header" . }}
+
+**IMPORTANT NOTE:** the USB device must be accessible on the node where this pod runs, in order for this chart to function properly.
+
+A way to achieve this can be with nodeAffinity rules, for example:
+
+```yaml
+affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: usb
+ operator: In
+ values:
+ - alarmdecoder
+```
+
+... where a node with an attached Coral USB device is labeled with `usb: alarmdecoder`
+{{- end -}}
diff --git a/charts/ser2sock/values.yaml b/charts/ser2sock/values.yaml
index 96bdb007..95e3bdba 100644
--- a/charts/ser2sock/values.yaml
+++ b/charts/ser2sock/values.yaml
@@ -2,44 +2,52 @@
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
-# upgrade strategy type (e.g. Recreate or RollingUpdate)
+# -- Specifies the strategy used to replace old Pods by new ones
strategyType: Recreate
image:
+ # -- Image repository
repository: tenstartups/ser2sock
+ # -- Image tag. Possible values listed [here](https://hub.docker.com/r/tenstartups/ser2sock/tags).
tag: latest
+ # -- Image pull policy
pullPolicy: IfNotPresent
nameOverride: ""
fullnameOverride: ""
-# timezone: "America/New York"
+# -- (string) Timezone the ser2sock instance should run as, e.g. 'America/New_York'
+timezone:
+# -- USB Device to use
device: "/dev/ttyUSB0"
+# -- UID to run as
puid: "1001"
+# -- GID to run as
pgid: "1001"
+# -- Baudrate
baudRate: 115200
service:
+ # -- Kubernetes service type for the GUI
type: ClusterIP
+ # -- Kubernetes port where the GUI is exposed
port: 10000
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ##
- # nodePort:
- ## Provide any additional annotations which may be required. This can be used to
- ## set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
+ # -- Service annotations for the GUI
annotations: {}
- labels: {}
- ## Use loadBalancerIP to request a specific static IP,
- ## otherwise leave blank
- ##
+ # -- (string) Cluster IP for the GUI
+ clusterIP:
+ # -- (string) External IPs for the GUI
+ externalIPs:
+ # -- (string) Loadbalancer IP for the GUI
loadBalancerIP:
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- # externalTrafficPolicy: Cluster
+ # -- (string) Loadbalancer client IP restriction range for the GUI
+ loadBalancerSourceRanges:
+ # -- (string) Loadbalancer externalTrafficPolicy
+ externalTrafficPolicy:
+ # -- (string) nodePort to listen on for the GUI
+ nodePort:
+# -- CPU/Memory resource requests/limits or the GUI
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
@@ -52,10 +60,14 @@ resources: {}
# cpu: 100m
# memory: 128Mi
+# -- Node labels for pod assignment of the GUI
nodeSelector: {}
+# -- Toleration labels for pod assignment of the GUI
tolerations: []
+# -- Affinity settings for pod assignment of the GUI
affinity: {}
+# -- Pod annotations
podAnnotations: {}
diff --git a/charts/speedtest/Chart.yaml b/charts/speedtest/Chart.yaml
index 944ee7bb..240ab740 100644
--- a/charts/speedtest/Chart.yaml
+++ b/charts/speedtest/Chart.yaml
@@ -1,6 +1,6 @@
apiVersion: v2
name: speedtest
-version: 3.0.0
+version: 3.0.1
appVersion: 1.0.0
description: periodic speedtest and save the results to InfluxDB
keywords:
@@ -15,3 +15,9 @@ sources:
maintainers:
- name: billimek
email: jeff@billimek.com
+
+dependencies:
+- name: influxdb
+ version: 1.1.9
+ repository: https://charts.bitnami.com/bitnami
+ condition: influxdb.enabled
diff --git a/charts/speedtest/README.md b/charts/speedtest/README.md
index 065a8af6..518e500a 100644
--- a/charts/speedtest/README.md
+++ b/charts/speedtest/README.md
@@ -1,71 +1,129 @@
-# Speedtest.net Collector For InfluxDB and Grafana
+# speedtest
-![Screenshot](https://camo.githubusercontent.com/c652a6685bcb5a8cec6a47c92e57d159b28e47e7/68747470733a2f2f7075752e73682f746d664f412f623535373665383864652e706e67)
+![Version: 3.0.1](https://img.shields.io/badge/Version-3.0.1-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square)
-This tool is a wrapper for speedtest-cli which allows you to run periodic speedtets and save the results to Influxdb
+periodic speedtest and save the results to InfluxDB
-## TL;DR;
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+
+## Source Code
+
+*
+*
+
+## Requirements
+
+## Dependencies
+
+| Repository | Name | Version |
+|------------|------|---------|
+| https://charts.bitnami.com/bitnami | influxdb | 1.1.9 |
+
+## TL;DR
```console
-$ helm repo add k8s-at-home https://k8s-at-home.com/charts/
-$ helm install k8s-at-home/speedtest
+helm repo add k8s-at-home https://k8s-at-home.com/charts/
+helm repo update
+helm install speedtest k8s-at-home/speedtest
```
## Installing the Chart
-To install the chart with the release name `my-release`:
+To install the chart with the release name `speedtest`
```console
-$ helm install --name my-release k8s-at-home/speedtest
+helm install speedtest k8s-at-home/speedtest
```
## Uninstalling the Chart
-To uninstall/delete the `my-release` deployment:
+To uninstall the `speedtest` deployment
```console
-$ helm delete my-release --purge
+helm uninstall speedtest
```
-The command removes all the Kubernetes components associated with the chart and deletes the release.
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
## Configuration
-The configuration is set as a block of text through a configmap and mounted as a file in /src/config.ini Any value in this text block should match the defined speedtest configuration. There are several values here that will have to match our kubernetes configuration.
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
-## Configuration
-
-The following tables lists the configurable parameters of the Sentry chart and their default values.
-
-| Parameter | Description | Default |
-| ------------------------------- | ------------------------------- | ---------------------------------------------------------- |
-| `image.repository` | speedtest image | `k8s-at-home/speedtestusage-for-influxdb` |
-| `image.tag` | speedtest image tag | `latest` |
-| `image.pullPolicy` | speedtest image pull policy | `IfNotPresent` |
-| `debug` | Display debugging output | `false` |
-| `config.delay` | how many seconds to wait between checks | `3600` |
-| `config.influxdb.host` | InfluxDB hostname | `influxdb-influxdb` |
-| `config.influxdb.port` | InfluxDB port | `8086` |
-| `config.influxdb.database` | InfluxDB database | `speedtests` |
-| `config.influxdb.username` | InfluxDB username | `` |
-| `config.influxdb.password` | InfluxDB password | `` |
-| `config.influxdb.ssl` | InfluxDB connection using SSL | `false` |
-| `config.speedtest.server` | server to use for speedtest - leave blank to auto-pick | `` |
-| `podAnnotations` | Key-value pairs to add as pod annotations | `{}` |
-
-
-Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
-$ helm install --name my-release \
- --set config.influxdb.host=some-influx-host \
+helm install speedtest \
+ --set env.TZ="America/New York" \
k8s-at-home/speedtest
```
-Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
-$ helm install --name my-release -f values.yaml k8s-at-home/speedtest
+helm install speedtest k8s-at-home/speedtest -f values.yaml
```
-Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/speedtest/values.yaml) file. It has several commented out suggested values.
+## Custom configuration
+
+N/A
+
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| config.delay | int | `3600` | how many seconds to wait between checks |
+| config.influxdb.database | string | `"speedtests"` | InfluxDB database |
+| config.influxdb.host | string | `nil` | InfluxDB host @default - internal influxDB chart if not set |
+| config.influxdb.password | string | `nil` | InfluxDB password |
+| config.influxdb.port | int | `8086` | InfluxDB port |
+| config.influxdb.ssl | bool | `false` | enable TLS |
+| config.influxdb.username | string | `nil` | InfluxDB username |
+| config.speedtest.server | string | `nil` | server to use for speedtest - leave blank to auto-pick |
+| debug | bool | `false` | Display debugging output |
+| image.pullPolicy | string | `"IfNotPresent"` | speedtest image pull policy |
+| image.repository | string | `"atribe/speedtest-for-influxdb-and-grafana"` | speedtest image |
+| image.tag | string | `"latest"` | speedtest image tag |
+| influxdb.architecture | string | `"standalone"` | |
+| influxdb.authEnabled | bool | `false` | |
+| influxdb.database | string | `"speedtests"` | |
+| influxdb.enabled | bool | `true` | |
+| influxdb.persistence.enabled | bool | `false` | |
+| nodeSelector | object | `{}` | |
+| podAnnotations | object | `{}` | Key-value pairs to add as pod annotations |
+| replicaCount | int | `1` | |
+| resources | object | `{}` | |
+
+## Changelog
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [3.0.1]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- USe helm-docs
+
+#### Removed
+
+- N/A
+
+[3.0.1]: #3.0.1
+
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
\ No newline at end of file
diff --git a/charts/speedtest/README.md.gotmpl b/charts/speedtest/README.md.gotmpl
new file mode 100644
index 00000000..8b868671
--- /dev/null
+++ b/charts/speedtest/README.md.gotmpl
@@ -0,0 +1,145 @@
+{{- define "custom.repository.organization" -}}
+k8s-at-home
+{{- end -}}
+
+{{- define "custom.repository.url" -}}
+https://github.com/k8s-at-home/charts
+{{- end -}}
+
+{{- define "custom.helm.url" -}}
+https://k8s-at-home.com/charts/
+{{- end -}}
+
+{{- define "custom.helm.path" -}}
+{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
+{{- end -}}
+
+{{- define "custom.notes" -}}
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+{{- end -}}
+
+{{- define "custom.requirements" -}}
+## Requirements
+
+{{ template "chart.kubeVersionLine" . }}
+{{- end -}}
+
+{{- define "custom.dependencies" -}}
+## Dependencies
+
+{{ template "chart.requirementsTable" . }}
+{{- end -}}
+
+{{- define "custom.install.tldr" -}}
+## TL;DR
+
+```console
+helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
+helm repo update
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.install" -}}
+## Installing the Chart
+
+To install the chart with the release name `{{ template "chart.name" . }}`
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.uninstall" -}}
+## Uninstalling the Chart
+
+To uninstall the `{{ template "chart.name" . }}` deployment
+
+```console
+helm uninstall {{ template "chart.name" . }}
+```
+
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
+{{- end -}}
+
+{{- define "custom.configuration.header" -}}
+## Configuration
+{{- end -}}
+
+{{- define "custom.configuration.readValues" -}}
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
+{{- end -}}
+
+{{- define "custom.configuration.example.set" -}}
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+```console
+helm install {{ template "chart.name" . }} \
+ --set env.TZ="America/New York" \
+ {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.configuration.example.file" -}}
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
+```
+{{- end -}}
+
+{{- define "custom.valuesSection" -}}
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+{{ template "chart.valuesTable" . }}
+{{- end -}}
+
+{{- define "custom.support" -}}
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+{{- end -}}
+
+{{ template "chart.header" . }}
+
+{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
+
+{{ template "chart.description" . }}
+
+{{ template "custom.notes" . }}
+
+{{ template "chart.sourcesSection" . }}
+
+{{ template "custom.requirements" . }}
+
+{{ template "custom.dependencies" . }}
+
+{{ template "custom.install.tldr" . }}
+
+{{ template "custom.install" . }}
+
+{{ template "custom.uninstall" . }}
+
+{{ template "custom.configuration.header" . }}
+
+{{ template "custom.configuration.readValues" . }}
+
+{{ template "custom.configuration.example.set" . }}
+
+{{ template "custom.configuration.example.file" . }}
+
+{{ template "custom.custom.configuration" . }}
+
+{{ template "custom.valuesSection" . }}
+
+{{ template "custom.changelog" . }}
+
+{{ template "custom.support" . }}
+
+{{ template "helm-docs.versionFooter" . }}
diff --git a/charts/speedtest/README_CHANGELOG.md.gotmpl b/charts/speedtest/README_CHANGELOG.md.gotmpl
new file mode 100644
index 00000000..e216d056
--- /dev/null
+++ b/charts/speedtest/README_CHANGELOG.md.gotmpl
@@ -0,0 +1,27 @@
+{{- define "custom.changelog.header" -}}
+## Changelog
+{{- end -}}
+
+{{- define "custom.changelog" -}}
+{{ template "custom.changelog.header" . }}
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [3.0.1]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- USe helm-docs
+
+#### Removed
+
+- N/A
+
+[3.0.1]: #3.0.1
+{{- end -}}
diff --git a/charts/speedtest/README_CONFIG.md.gotmpl b/charts/speedtest/README_CONFIG.md.gotmpl
new file mode 100644
index 00000000..e93d80bf
--- /dev/null
+++ b/charts/speedtest/README_CONFIG.md.gotmpl
@@ -0,0 +1,9 @@
+{{- define "custom.custom.configuration.header" -}}
+## Custom configuration
+{{- end -}}
+
+{{- define "custom.custom.configuration" -}}
+{{ template "custom.custom.configuration.header" . }}
+
+N/A
+{{- end -}}
diff --git a/charts/speedtest/templates/configmap.yaml b/charts/speedtest/templates/configmap.yaml
index ce137c2e..b983b0d1 100644
--- a/charts/speedtest/templates/configmap.yaml
+++ b/charts/speedtest/templates/configmap.yaml
@@ -12,7 +12,7 @@ data:
[GENERAL]
Delay = {{ .Values.config.delay }}
[INFLUXDB]
- Address = {{ .Values.config.influxdb.host }}
+ Address = {{ default .Values.config.influxdb.host (printf "%s-influxdb" .Release.Name) }}
Port = {{ .Values.config.influxdb.port }}
Database = {{ .Values.config.influxdb.database }}
Username = {{ .Values.config.influxdb.username }}
diff --git a/charts/speedtest/values.yaml b/charts/speedtest/values.yaml
index 252457fc..82216bff 100644
--- a/charts/speedtest/values.yaml
+++ b/charts/speedtest/values.yaml
@@ -3,8 +3,11 @@
# Declare variables to be passed into your templates.
replicaCount: 1
image:
+ # -- speedtest image
repository: atribe/speedtest-for-influxdb-and-grafana
+ # -- speedtest image tag
tag: latest
+ # -- speedtest image pull policy
pullPolicy: IfNotPresent
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
@@ -17,21 +20,43 @@ resources: {}
# requests:
# cpu: 100m
# memory: 128Mi
+
nodeSelector: {}
+# -- Display debugging output
debug: false
config:
- # how many seconds to wait between checks
+ # -- how many seconds to wait between checks
delay: 3600
influxdb:
- # host/port/database are mandatory - change as needed
- host: influxdb-influxdb
+ # -- InfluxDB host
+ # @default - internal influxDB chart if not set
+ host:
+ # -- InfluxDB port
port: 8086
+ # -- InfluxDB database
database: speedtests
- # username:
- # password:
+ # -- (string) InfluxDB username
+ username:
+ # -- (string) InfluxDB password
+ password:
+ # -- enable TLS
ssl: false
speedtest:
- # Leave blank to auto pick server
+ # -- server to use for speedtest - leave blank to auto-pick
server:
+# -- Key-value pairs to add as pod annotations
podAnnotations: {}
+
+# Enable embeded influxdb
+# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/influxdb
+influxdb:
+ # - Use internal Influx DB. Set to false if you use an external DB.
+ enabled: true
+ architecture: standalone
+ database: speedtests
+ authEnabled: false
+ persistence:
+ enabled: false
+ # storageClass: ""
+ # size: 8Gi
diff --git a/charts/unifi/Chart.yaml b/charts/unifi/Chart.yaml
index 45521b9a..ccd3ee6b 100644
--- a/charts/unifi/Chart.yaml
+++ b/charts/unifi/Chart.yaml
@@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 5.14.23
description: Ubiquiti Network's Unifi Controller
name: unifi
-version: 1.5.2
+version: 1.5.3
keywords:
- ubiquiti
- unifi
diff --git a/charts/unifi/README.md b/charts/unifi/README.md
index 50ff8561..c0da4563 100644
--- a/charts/unifi/README.md
+++ b/charts/unifi/README.md
@@ -1,184 +1,70 @@
-# Ubiquiti Network's Unifi Controller
+# unifi
-This is a helm chart for [Ubiquiti Network's][ubnt] [Unifi Controller][ubnt 2].
+![Version: 1.5.3](https://img.shields.io/badge/Version-1.5.3-informational?style=flat-square) ![AppVersion: 5.14.23](https://img.shields.io/badge/AppVersion-5.14.23-informational?style=flat-square)
-## TL;DR;
+Ubiquiti Network's Unifi Controller
-```shell
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+
+## Source Code
+
+*
+
+## Requirements
+
+## Dependencies
+
+| Repository | Name | Version |
+|------------|------|---------|
+
+## TL;DR
+
+```console
helm repo add k8s-at-home https://k8s-at-home.com/charts/
-helm install k8s-at-home/unifi
+helm repo update
+helm install unifi k8s-at-home/unifi
```
## Installing the Chart
-To install the chart with the release name `my-release`:
+To install the chart with the release name `unifi`
```console
-helm install --name my-release stable/unifi
+helm install unifi k8s-at-home/unifi
```
## Uninstalling the Chart
-To uninstall/delete the `my-release` deployment:
+To uninstall the `unifi` deployment
```console
-helm delete my-release --purge
+helm uninstall unifi
```
-The command removes all the Kubernetes components associated with the chart and deletes the release.
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
## Configuration
-The following tables lists the configurable parameters of the Unifi chart and their default values.
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
-| Parameter | Default | Description |
-|-------------------------------------------------|------------------------------|------------------------------------------------------------------------------------------------------------------------|
-| `image.repository` | `jacobalberty/unifi` | Image repository |
-| `image.tag` | `5.14.23` | Image tag. Possible values listed [here][docker]. |
-| `image.pullPolicy` | `IfNotPresent` | Image pull policy |
-| `strategyType` | `Recreate` | Specifies the strategy used to replace old Pods by new ones |
-| `guiService.type` | `ClusterIP` | Kubernetes service type for the Unifi GUI |
-| `guiService.port` | `8443` | Kubernetes port where the Unifi GUI is exposed |
-| `guiService.annotations` | `{}` | Service annotations for the Unifi GUI |
-| `guiService.labels` | `{}` | Custom labels |
-| `guiService.loadBalancerIP` | `{}` | Loadbalance IP for the Unifi GUI |
-| `guiService.loadBalancerSourceRanges` | None | List of IP CIDRs allowed access to load balancer (if supported) |
-| `guiService.externalTrafficPolicy` | `Cluster` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
-| `captivePortalService.enabled` | `false` | Install the captive portal service (needed if you want guest captive portal) |
-| `captivePortalService.type` | `ClusterIP` | Kubernetes service type for the captive portal |
-| `captivePortalService.http` | `8880` | Kubernetes port where the captive portal is exposed |
-| `captivePortalService.https` | `8843` | Kubernetes port where the captive portal is exposed (with SSL) |
-| `captivePortalService.annotations` | `{}` | Service annotations for the captive portal |
-| `captivePortalService.labels` | `{}` | Custom labels |
-| `captivePortalService.loadBalancerIP` | `{}` | Loadbalance IP for the Unifi GUI |
-| `captivePortalService.loadBalancerSourceRanges` | None | List of IP CIDRs allowed access to load balancer (if supported) |
-| `captivePortalService.externalTrafficPolicy` | `Cluster` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
-| `captivePortalService.ingress.enabled` | `false` | Enables Ingress (for the captive portal, the main ingress needs to be enabled for the controller to be accessible) |
-| `captivePortalService.ingress.annotations` | `{}` | Ingress annotations for the captive portal |
-| `captivePortalService.ingress.labels` | `{}` | Custom labels for the captive portal |
-| `captivePortalService.ingress.path` | `/` | Ingress path for the captive portal |
-| `captivePortalService.ingress.hosts` | `chart-example.local` | Ingress accepted hostnames for the captive portal |
-| `captivePortalService.ingress.tls` | `[]` | Ingress TLS configuration for the captive portal |
-| `controllerService.type` | `NodePort` | Kubernetes service type for the Unifi Controller communication |
-| `controllerService.port` | `8080` | Kubernetes port where the Unifi Controller is exposed - this needs to be reachable by the unifi devices on the network |
-| `controllerService.annotations` | `{}` | Service annotations for the Unifi Controller |
-| `controllerService.labels` | `{}` | Custom labels |
-| `controllerService.loadBalancerIP` | `{}` | Loadbalance IP for the Unifi Controller |
-| `controllerService.loadBalancerSourceRanges` | None | List of IP CIDRs allowed access to load balancer (if supported) |
-| `controllerService.externalTrafficPolicy` | `Cluster` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
-| `controllerService.ingress.enabled` | `false` | Enables Ingress for the controller |
-| `controllerService.ingress.annotations` | `{}` | Ingress annotations for the controller |
-| `controllerService.ingress.labels` | `{}` | Custom labels for the controller |
-| `controllerService.ingress.path` | `/` | Ingress path for the controller |
-| `controllerService.ingress.hosts` | `chart-example.local` | Ingress accepted hostnames for the controller |
-| `controllerService.ingress.tls` | `[]` | Ingress TLS configuration for the controller |
-| `stunService.type` | `NodePort` | Kubernetes service type for the Unifi STUN |
-| `stunService.port` | `3478` | Kubernetes UDP port where the Unifi STUN is exposed |
-| `stunService.annotations` | `{}` | Service annotations for the Unifi STUN |
-| `stunService.labels` | `{}` | Custom labels |
-| `stunService.loadBalancerIP` | `{}` | Loadbalance IP for the Unifi STUN |
-| `stunService.loadBalancerSourceRanges` | None | List of IP CIDRs allowed access to load balancer (if supported) |
-| `stunService.externalTrafficPolicy` | `Cluster` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
-| `discoveryService.type` | `NodePort` | Kubernetes service type for AP discovery |
-| `discoveryService.port` | `10001` | Kubernetes UDP port for AP discovery |
-| `discoveryService.annotations` | `{}` | Service annotations for AP discovery |
-| `discoveryService.labels` | `{}` | Custom labels |
-| `discoveryService.loadBalancerIP` | `{}` | Loadbalance IP for AP discovery |
-| `discoveryService.loadBalancerSourceRanges` | None | List of IP CIDRs allowed access to load balancer (if supported) |
-| `discoveryService.externalTrafficPolicy` | `Cluster` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
-| `syslogService.type` | `NodePort` | Kubernetes service type for remote syslog capture |
-| `syslogService.port` | `5514` | Kubernetes UDP port for remote syslog capture |
-| `syslogService.annotations` | `{}` | Service annotations for remote syslog capture |
-| `syslogService.labels` | `{}` | Custom labels |
-| `syslogService.loadBalancerIP` | `{}` | Loadbalancer IP for remote syslog capture |
-| `syslogService.loadBalancerSourceRanges` | None | List of IP CIDRs allowed access to load balancer (if supported) |
-| `syslogService.externalTrafficPolicy` | `Cluster` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
-| `speedtestService.type` | `ClusterIP` | Kubernetes service type for mobile speedtest |
-| `speedtestService.port` | `6789` | Kubernetes UDP port for mobile speedtest |
-| `speedtestService.annotations` | `{}` | Service annotations for mobile speedtest |
-| `speedtestService.labels` | `{}` | Custom labels |
-| `speedtestService.loadBalancerIP` | `{}` | Loadbalancer IP for mobile speedtest |
-| `speedtestService.loadBalancerSourceRanges` | None | List of IP CIDRs allowed access to load balancer (if supported) |
-| `speedtestService.externalTrafficPolicy` | `Cluster` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
-| `unifiedService.enabled` | `false` | Use a single service for GUI, controller, STUN, discovery, syslog and speedtest |
-| `unifiedService.type` | `ClusterIP` | Kubernetes service type for the unified service |
-| `unifiedService.annotations` | `{}` | Annotations for the unified service |
-| `unifiedService.labels` | `{}` | Custom labels for the unified service |
-| `unifiedService.loadBalancerIP` | None | Load balancer IP for the unified service |
-| `unifiedService.loadBalancerSourceRanges` | None | List of IP CIDRs allowed access to the load balancer (if supported) |
-| `unifiedService.externalTrafficPolicy` | `Cluster` | Set the externalTrafficPolicy in the service to either Cluster or Local |
-| `ingress.enabled` | `false` | Enables Ingress |
-| `ingress.annotations` | `{}` | Ingress annotations |
-| `ingress.labels` | `{}` | Custom labels |
-| `ingress.path` | `/` | Ingress path |
-| `ingress.hosts` | `chart-example.local` | Ingress accepted hostnames |
-| `ingress.tls` | `[]` | Ingress TLS configuration |
-| `timezone` | `UTC` | Timezone the Unifi controller should run as, e.g. 'America/New York' |
-| `runAsRoot` | `false` | Run the controller as UID0 (root user); if set to false, will give container SETFCAP instead |
-| `UID` | `999` | Run the controller as user UID |
-| `GID` | `999` | Run the controller as group GID |
-| `customCert.enabled` | `false` | Define whether you are using s custom certificate |
-| `customCert.isChain` | `false` | If you are using a Let's Encrypt certificate which already includes the full chain set this to `true` |
-| `customCert.certName` | `tls.crt` | Name of the the certificate file in `/cert` |
-| `customCert.keyName` | `tls.key` | Name of the the private key file in `/cert` |
-| `customCert.certSecret` | `nil` | Name of the the k8s tls secret where the certificate and its key are stored. |
-| `logging.promtail.enabled` | `false` | Enable a Promtail sidecar to collect controller logs |
-| `logging.promtail.image.repository` | `grafana/promtail` | Promtail image repository |
-| `logging.promtail.image.tag` | `1.6.0` | Promtail image tag |
-| `logging.promtail.image.pullPolicy` | `IfNotPresent` | Promtail image pull policy |
-| `logging.promtail.loki.url` | `http://loki.logs.svc.cluster.local:3100/loki/api/v1/push` | URL of the Loki push API |
-| `mongodb.enabled` | `false` | Use external MongoDB for data storage |
-| `mongodb.dbUri` | `mongodb://mongo/unifi` | external MongoDB URI |
-| `mongodb.statDbUri` | `mongodb://mongo/unifi_stat` | external MongoDB statdb URI |
-| `mongodb.databaseName` | `unifi` | external MongoDB database name |
-| `persistence.enabled` | `true` | Use persistent volume to store data |
-| `persistence.size` | `5Gi` | Size of persistent volume claim |
-| `persistence.existingClaim` | `nil` | Use an existing PVC to persist data |
-| `persistence.subPath` | `` | Store data in a subdirectory of PV instead of at the root directory |
-| `persistence.storageClass` | `-` | Type of persistent volume claim |
-| `extraVolumes` | `[]` | Additional volumes to be used by extraVolumeMounts |
-| `extraVolumeMounts` | `[]` | Additional volume mounts to be mounted in unifi container |
-| `persistence.accessModes` | `[]` | Persistence access modes |
-| `extraConfigFiles` | `{}` | Dictionary containing files mounted to `/configmap` inside the pod (See [values.yaml](values.yaml) for examples) |
-| `extraJvmOpts` | `[]` | List of additional JVM options, e.g. `["-Dlog4j.configurationFile=file:/configmap/log4j2.xml"]` |
-| `jvmInitHeapSize` | `` | Java Virtual Machine (JVM) initial, and minimum, heap size. |
-| `jvmMaxHeapSize` | `1024M` | Java Virtual Machine (JVM) maximum heap size. |
-| `resources` | `{}` | CPU/Memory resource requests/limits |
-| `livenessProbe.enabled` | `true` | Turn on and off liveness probe |
-| `livenessProbe.initialDelaySeconds` | `30` | Delay before liveness probe is initiated |
-| `livenessProbe.periodSeconds` | `15` | How often to perform the probe |
-| `livenessProbe.timeoutSeconds` | `5` | When the probe times out |
-| `livenessProbe.failureThreshold` | `3` | Minimum consecutive failures for the probe |
-| `livenessProbe.successThreshold` | `1` | Minimum consecutive successes for the probe |
-| `readinessProbe.enabled` | `true` | Turn on and off readiness probe |
-| `readinessProbe.initialDelaySeconds` | `30` | Delay before readiness probe is initiated |
-| `readinessProbe.periodSeconds` | `15` | How often to perform the probe |
-| `readinessProbe.timeoutSeconds` | `5` | When the probe times out |
-| `readinessProbe.failureThreshold` | `3` | Minimum consecutive failures for the probe |
-| `readinessProbe.successThreshold` | `1` | Minimum consecutive successes for the probe |
-| `nodeSelector` | `{}` | Node labels for pod assignment |
-| `tolerations` | `[]` | Toleration labels for pod assignment |
-| `affinity` | `{}` | Affinity settings for pod assignment |
-| `podAnnotations` | `{}` | Key-value pairs to add as pod annotations |
-| `deploymentAnnotations` | `{}` | Key-value pairs to add as deployment annotations |
-
-Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
-helm install --name my-release \
- --set timezone="America/New York" \
- stable/unifi
+helm install unifi \
+ --set env.TZ="America/New York" \
+ k8s-at-home/unifi
```
-Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
-helm install --name my-release -f values.yaml stable/unifi
+helm install unifi k8s-at-home/unifi -f values.yaml
```
-Read through the [values.yaml](values.yaml) file. It has several commented out suggested values.
+## Custom configuration
-## Regarding the services
+### Regarding the services
- `guiService`: Represents the main web UI and is what one would normally point
the ingress to.
@@ -196,13 +82,13 @@ Read through the [values.yaml](values.yaml) file. It has several commented out s
- `stunService`: Also used periodically by the unifi devices to communicate
with the controller using UDP. See [this article][ubnt 3] and [this other
article][ubnt 4] for more information.
-- `syslogService`: Used to capture syslog from Unifi devices if the feature is
+- `syslogService`: Used to capture syslog from Unifi devices if the feature is
enabled in the site configuration. This needs to be reachable by Unifi devices
on port 5514/UDP.
- `speedtestService`: Used for mobile speedtest inside the UniFi Mobile app.
This needs to be reachable by clients connecting to port 6789/TCP.
-## Ingress and HTTPS
+### Ingress and HTTPS
Unifi does [not support HTTP][unifi] so if you wish to use the guiService, you
need to ensure that you use a backend transport of HTTPS.
@@ -216,10 +102,142 @@ ingress:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
```
-[docker]: https://hub.docker.com/r/jacobalberty/unifi/tags/
-[github]: https://github.com/jacobalberty/unifi-docker
-[ubnt]: https://www.ubnt.com/
-[ubnt 2]: https://unifi-sdn.ubnt.com/
-[ubnt 3]: https://help.ubnt.com/hc/en-us/articles/204976094-UniFi-What-protocol-does-the-controller-use-to-communicate-with-the-UAP-
-[ubnt 4]: https://help.ubnt.com/hc/en-us/articles/115015457668-UniFi-Troubleshooting-STUN-Communication-Errors
-[unifi]: https://community.ui.com/questions/Controller-how-to-deactivate-http-to-https/c5e247d8-b5b9-4c84-a3bb-28a90fd65668
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| GID | int | `999` | |
+| UID | int | `999` | |
+| affinity | object | `{}` | |
+| captivePortalService.annotations | object | `{}` | Provide any additional annotations which may be required. This can be used to set the LoadBalancer service type to internal only. ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer |
+| captivePortalService.enabled | bool | `false` | |
+| captivePortalService.externalTrafficPolicy | string | `"Cluster"` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
+| captivePortalService.http | int | `8880` | Kubernetes port where the http service is exposed |
+| captivePortalService.https | int | `8843` | Kubernetes port where the https service is exposed |
+| captivePortalService.ingress | object | `{"annotations":{},"enabled":false,"hosts":["chart-example.local"],"path":"/","tls":[]}` | Ingress settings |
+| captivePortalService.labels | object | `{}` | |
+| captivePortalService.loadBalancerIP | string | `nil` | Use loadBalancerIP to request a specific static IP, otherwise leave blank |
+| captivePortalService.loadBalancerSourceRanges | list | `nil` | loadBalancerSourceRanges |
+| captivePortalService.type | string | `"ClusterIP"` | Kubernetes service type |
+| controllerService.annotations | object | `{}` | Provide any additional annotations which may be required. This can be used to set the LoadBalancer service type to internal only. ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer |
+| controllerService.enabled | bool | `false` | |
+| controllerService.externalTrafficPolicy | string | `"Cluster"` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
+| controllerService.ingress | object | `{"annotations":{},"enabled":false,"hosts":["chart-example.local"],"path":"/","tls":[]}` | Ingress settings |
+| controllerService.labels | object | `{}` | |
+| controllerService.loadBalancerIP | string | `nil` | Use loadBalancerIP to request a specific static IP, otherwise leave blank |
+| controllerService.loadBalancerSourceRanges | list | `nil` | loadBalancerSourceRanges |
+| controllerService.port | int | `8080` | Kubernetes port where the service is exposed |
+| controllerService.type | string | `"NodePort"` | Kubernetes service type |
+| customCert | object | `{"certName":"tls.crt","enabled":false,"isChain":false,"keyName":"tls.key"}` | If you provide your own custom certificate in /cert you can define the following parameters to configure the controller |
+| deploymentAnnotations | object | `{}` | |
+| discoveryService.annotations | object | `{}` | Provide any additional annotations which may be required. This can be used to set the LoadBalancer service type to internal only. ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer |
+| discoveryService.enabled | bool | `false` | |
+| discoveryService.externalTrafficPolicy | string | `"Cluster"` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
+| discoveryService.ingress | object | `{"annotations":{},"enabled":false,"hosts":["chart-example.local"],"path":"/","tls":[]}` | Ingress settings |
+| discoveryService.labels | object | `{}` | |
+| discoveryService.loadBalancerIP | string | `nil` | Use loadBalancerIP to request a specific static IP, otherwise leave blank |
+| discoveryService.loadBalancerSourceRanges | list | `nil` | loadBalancerSourceRanges |
+| discoveryService.port | int | `10001` | Kubernetes port where the service is exposed |
+| discoveryService.type | string | `"NodePort"` | Kubernetes service type |
+| extraConfigFiles | object | `{}` | |
+| extraJvmOpts | list | `[]` | |
+| extraVolumeMounts | list | `[]` | |
+| extraVolumes | list | `[]` | |
+| guiService.annotations | object | `{}` | Provide any additional annotations which may be required. This can be used to set the LoadBalancer service type to internal only. ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer |
+| guiService.enabled | bool | `false` | |
+| guiService.externalTrafficPolicy | string | `"Cluster"` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
+| guiService.labels | object | `{}` | |
+| guiService.loadBalancerIP | string | `nil` | Use loadBalancerIP to request a specific static IP, otherwise leave blank |
+| guiService.loadBalancerSourceRanges | list | `nil` | loadBalancerSourceRanges |
+| guiService.nodePort | int | `nil` | Specify the nodePort value for the LoadBalancer and NodePort service types. ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport |
+| guiService.port | int | `8443` | Kubernetes port where the service is exposed |
+| guiService.type | string | `"ClusterIP"` | Kubernetes service type |
+| image.pullPolicy | string | `"IfNotPresent"` | |
+| image.repository | string | `"jacobalberty/unifi"` | |
+| image.tag | string | `"5.14.23"` | |
+| ingress | object | `{"annotations":{},"enabled":false,"hosts":["chart-example.local"],"path":"/","tls":[]}` | Ingress settings |
+| jvmInitHeapSize | string | `nil` | Java Virtual Machine (JVM) initial, and minimum, heap size Unset value means there is no lower limit |
+| jvmMaxHeapSize | string | `"1024M"` | Java Virtual Machine (JVM) maximum heap size For larger installations a larger value is recommended. For memory constrained system this value can be lowered. |
+| livenessProbe | object | `{"enabled":true,"failureThreshold":3,"initialDelaySeconds":30,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | Liveness probe values Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes |
+| logging | object | `{"promtail":{"enabled":false,"image":{"pullPolicy":"IfNotPresent","repository":"grafana/promtail","tag":"1.6.0"},"loki":{"url":"http://loki.logs.svc.cluster.local:3100/loki/api/v1/push"}}}` | Logging configuration |
+| mongodb | object | `{"databaseName":"unifi","dbUri":"mongodb://mongo/unifi","enabled":false,"statDbUri":"mongodb://mongo/unifi_stat"}` | define an external mongoDB instead of using the built-in mongodb |
+| nodeSelector | object | `{}` | |
+| persistence.accessMode | string | `"ReadWriteOnce"` | Persistence access modes |
+| persistence.enabled | bool | `true` | Use persistent volume to store data |
+| persistence.existingClaim | string | `nil` | Use an existing PVC to persist data |
+| persistence.size | string | `"5Gi"` | Size of persistent volume claim |
+| persistence.skipuninstall | bool | `false` | Do not delete the pvc upon helm uninstall |
+| persistence.storageClass | string | `nil` | Type of persistent volume claim |
+| podAnnotations | object | `{}` | |
+| readinessProbe | object | `{"enabled":true,"failureThreshold":3,"initialDelaySeconds":15,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1}` | Readiness probe values Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes |
+| resources | object | `{}` | |
+| runAsRoot | bool | `false` | |
+| speedtestService.annotations | object | `{}` | Provide any additional annotations which may be required. This can be used to set the LoadBalancer service type to internal only. ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer |
+| speedtestService.enabled | bool | `false` | |
+| speedtestService.externalTrafficPolicy | string | `"Cluster"` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
+| speedtestService.labels | object | `{}` | |
+| speedtestService.loadBalancerIP | string | `nil` | Use loadBalancerIP to request a specific static IP, otherwise leave blank |
+| speedtestService.loadBalancerSourceRanges | list | `nil` | loadBalancerSourceRanges |
+| speedtestService.port | int | `6789` | Kubernetes port where the service is exposed |
+| speedtestService.type | string | `"ClusterIP"` | Kubernetes service type |
+| strategyType | string | `"Recreate"` | upgrade strategy type (e.g. Recreate or RollingUpdate) |
+| stunService.annotations | object | `{}` | Provide any additional annotations which may be required. This can be used to set the LoadBalancer service type to internal only. ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer |
+| stunService.enabled | bool | `false` | |
+| stunService.externalTrafficPolicy | string | `"Cluster"` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
+| stunService.labels | object | `{}` | |
+| stunService.loadBalancerIP | string | `nil` | Use loadBalancerIP to request a specific static IP, otherwise leave blank |
+| stunService.loadBalancerSourceRanges | list | `nil` | loadBalancerSourceRanges |
+| stunService.port | int | `3478` | Kubernetes port where the service is exposed |
+| stunService.type | string | `"NodePort"` | Kubernetes service type |
+| syslogService.annotations | object | `{}` | Provide any additional annotations which may be required. This can be used to set the LoadBalancer service type to internal only. ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer |
+| syslogService.enabled | bool | `false` | |
+| syslogService.externalTrafficPolicy | string | `"Cluster"` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
+| syslogService.labels | object | `{}` | |
+| syslogService.loadBalancerIP | string | `nil` | Use loadBalancerIP to request a specific static IP, otherwise leave blank |
+| syslogService.loadBalancerSourceRanges | list | `nil` | loadBalancerSourceRanges |
+| syslogService.port | int | `5514` | Kubernetes port where the service is exposed |
+| syslogService.type | string | `"NodePort"` | Kubernetes service type |
+| timezone | string | `"UTC"` | |
+| tolerations | list | `[]` | |
+| unifiedService.annotations | object | `{}` | Provide any additional annotations which may be required. This can be used to set the LoadBalancer service type to internal only. ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer |
+| unifiedService.enabled | bool | `false` | |
+| unifiedService.externalTrafficPolicy | string | `"Cluster"` | Set the externalTrafficPolicy in the Service to either Cluster or Local |
+| unifiedService.labels | object | `{}` | |
+| unifiedService.loadBalancerIP | string | `nil` | Use loadBalancerIP to request a specific static IP, otherwise leave blank |
+| unifiedService.loadBalancerSourceRanges | list | `nil` | loadBalancerSourceRanges |
+| unifiedService.nodePort | int | `nil` | Specify the nodePort value for the LoadBalancer and NodePort service types. ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport |
+| unifiedService.type | string | `"ClusterIP"` | Kubernetes service type |
+
+## Changelog
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [1.5.3]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- Use helm-docs
+
+#### Removed
+
+- N/A
+
+[1.5.3]: #1.5.3
+
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
\ No newline at end of file
diff --git a/charts/unifi/README.md.gotmpl b/charts/unifi/README.md.gotmpl
new file mode 100644
index 00000000..8b868671
--- /dev/null
+++ b/charts/unifi/README.md.gotmpl
@@ -0,0 +1,145 @@
+{{- define "custom.repository.organization" -}}
+k8s-at-home
+{{- end -}}
+
+{{- define "custom.repository.url" -}}
+https://github.com/k8s-at-home/charts
+{{- end -}}
+
+{{- define "custom.helm.url" -}}
+https://k8s-at-home.com/charts/
+{{- end -}}
+
+{{- define "custom.helm.path" -}}
+{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
+{{- end -}}
+
+{{- define "custom.notes" -}}
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+{{- end -}}
+
+{{- define "custom.requirements" -}}
+## Requirements
+
+{{ template "chart.kubeVersionLine" . }}
+{{- end -}}
+
+{{- define "custom.dependencies" -}}
+## Dependencies
+
+{{ template "chart.requirementsTable" . }}
+{{- end -}}
+
+{{- define "custom.install.tldr" -}}
+## TL;DR
+
+```console
+helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
+helm repo update
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.install" -}}
+## Installing the Chart
+
+To install the chart with the release name `{{ template "chart.name" . }}`
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.uninstall" -}}
+## Uninstalling the Chart
+
+To uninstall the `{{ template "chart.name" . }}` deployment
+
+```console
+helm uninstall {{ template "chart.name" . }}
+```
+
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
+{{- end -}}
+
+{{- define "custom.configuration.header" -}}
+## Configuration
+{{- end -}}
+
+{{- define "custom.configuration.readValues" -}}
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
+{{- end -}}
+
+{{- define "custom.configuration.example.set" -}}
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+```console
+helm install {{ template "chart.name" . }} \
+ --set env.TZ="America/New York" \
+ {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.configuration.example.file" -}}
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
+```
+{{- end -}}
+
+{{- define "custom.valuesSection" -}}
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+{{ template "chart.valuesTable" . }}
+{{- end -}}
+
+{{- define "custom.support" -}}
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+{{- end -}}
+
+{{ template "chart.header" . }}
+
+{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
+
+{{ template "chart.description" . }}
+
+{{ template "custom.notes" . }}
+
+{{ template "chart.sourcesSection" . }}
+
+{{ template "custom.requirements" . }}
+
+{{ template "custom.dependencies" . }}
+
+{{ template "custom.install.tldr" . }}
+
+{{ template "custom.install" . }}
+
+{{ template "custom.uninstall" . }}
+
+{{ template "custom.configuration.header" . }}
+
+{{ template "custom.configuration.readValues" . }}
+
+{{ template "custom.configuration.example.set" . }}
+
+{{ template "custom.configuration.example.file" . }}
+
+{{ template "custom.custom.configuration" . }}
+
+{{ template "custom.valuesSection" . }}
+
+{{ template "custom.changelog" . }}
+
+{{ template "custom.support" . }}
+
+{{ template "helm-docs.versionFooter" . }}
diff --git a/charts/unifi/README_CHANGELOG.md.gotmpl b/charts/unifi/README_CHANGELOG.md.gotmpl
new file mode 100644
index 00000000..4627b445
--- /dev/null
+++ b/charts/unifi/README_CHANGELOG.md.gotmpl
@@ -0,0 +1,27 @@
+{{- define "custom.changelog.header" -}}
+## Changelog
+{{- end -}}
+
+{{- define "custom.changelog" -}}
+{{ template "custom.changelog.header" . }}
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [1.5.3]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- Use helm-docs
+
+#### Removed
+
+- N/A
+
+[1.5.3]: #1.5.3
+{{- end -}}
diff --git a/charts/unifi/README_CONFIG.md.gotmpl b/charts/unifi/README_CONFIG.md.gotmpl
new file mode 100644
index 00000000..8cb5579e
--- /dev/null
+++ b/charts/unifi/README_CONFIG.md.gotmpl
@@ -0,0 +1,45 @@
+{{- define "custom.custom.configuration.header" -}}
+## Custom configuration
+{{- end -}}
+
+{{- define "custom.custom.configuration" -}}
+{{ template "custom.custom.configuration.header" . }}
+
+### Regarding the services
+
+- `guiService`: Represents the main web UI and is what one would normally point
+ the ingress to.
+- `captivePortalService`: This service is used to allow the captive portal webpage
+ to be accessible. It needs to be reachable by the clients connecting to your guest
+ network.
+- `controllerService`: This is needed in order for the unifi devices to talk to
+ the controller and must be otherwise exposed to the network where the unifi
+ devices run. If you run this as a `NodePort` (the default setting), make sure
+ that there is an external load balancer that is directing traffic from port
+ 8080 to the `NodePort` for this service.
+- `discoveryService`: This needs to be reachable by the unifi devices on the
+ network similar to the controller `Service` but only during the discovery
+ phase. This is a UDP service.
+- `stunService`: Also used periodically by the unifi devices to communicate
+ with the controller using UDP. See [this article][ubnt 3] and [this other
+ article][ubnt 4] for more information.
+- `syslogService`: Used to capture syslog from Unifi devices if the feature is
+ enabled in the site configuration. This needs to be reachable by Unifi devices
+ on port 5514/UDP.
+- `speedtestService`: Used for mobile speedtest inside the UniFi Mobile app.
+ This needs to be reachable by clients connecting to port 6789/TCP.
+
+### Ingress and HTTPS
+
+Unifi does [not support HTTP][unifi] so if you wish to use the guiService, you
+need to ensure that you use a backend transport of HTTPS.
+
+An example entry in `values.yaml` to achieve this is as follows:
+
+```
+ingress:
+ enabled: true
+ annotations:
+ nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
+```
+{{- end -}}
diff --git a/charts/unifi/values.yaml b/charts/unifi/values.yaml
index b1e5a73e..859df86b 100644
--- a/charts/unifi/values.yaml
+++ b/charts/unifi/values.yaml
@@ -2,7 +2,7 @@
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
-# upgrade strategy type (e.g. Recreate or RollingUpdate)
+# -- upgrade strategy type (e.g. Recreate or RollingUpdate)
strategyType: Recreate
image:
@@ -19,106 +19,98 @@ image:
# different services on different IPs.
unifiedService:
enabled: false
+ # -- Kubernetes service type
type: ClusterIP
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ##
- # nodePort:
- ## Provide any additional annotations which may be required. This can be used to
- ## set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
+ # -- (int) Specify the nodePort value for the LoadBalancer and NodePort service types.
+ # ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
+ #
+ nodePort:
+ # -- Provide any additional annotations which may be required. This can be used to
+ # set the LoadBalancer service type to internal only.
+ # ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
annotations: {}
labels: {}
- ## Use loadBalancerIP to request a specific static IP,
- ## otherwise leave blank
- ##
+ # -- Use loadBalancerIP to request a specific static IP,
+ # otherwise leave blank
loadBalancerIP:
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- # externalTrafficPolicy: Cluster
+ # -- (list) loadBalancerSourceRanges
+ loadBalancerSourceRanges:
+ # -- Set the externalTrafficPolicy in the Service to either Cluster or Local
+ externalTrafficPolicy:
guiService:
+ enabled: false
+ # -- Kubernetes service type
type: ClusterIP
+ # -- Kubernetes port where the service is exposed
port: 8443
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ##
- # nodePort:
- ## Provide any additional annotations which may be required. This can be used to
- ## set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
+ # -- (int) Specify the nodePort value for the LoadBalancer and NodePort service types.
+ # ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
+ #
+ nodePort:
+ # -- Provide any additional annotations which may be required. This can be used to
+ # set the LoadBalancer service type to internal only.
+ # ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
annotations: {}
labels: {}
- ## Use loadBalancerIP to request a specific static IP,
- ## otherwise leave blank
- ##
+ # -- Use loadBalancerIP to request a specific static IP,
+ # otherwise leave blank
loadBalancerIP:
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- # externalTrafficPolicy: Cluster
+ # -- (list) loadBalancerSourceRanges
+ loadBalancerSourceRanges:
+ # -- Set the externalTrafficPolicy in the Service to either Cluster or Local
+ externalTrafficPolicy:
captivePortalService:
enabled: false
+ # -- Kubernetes service type
type: ClusterIP
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ##
+ # -- Kubernetes port where the http service is exposed
http: 8880
+ # -- Kubernetes port where the https service is exposed
https: 8843
- ## Provide any additional annotations which may be required. This can be used to
- ## set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
+ # -- Provide any additional annotations which may be required. This can be used to
+ # set the LoadBalancer service type to internal only.
+ # ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
annotations: {}
labels: {}
- ## Use loadBalancerIP to request a specific static IP,
- ## otherwise leave blank
- ##
+ # -- Use loadBalancerIP to request a specific static IP,
+ # otherwise leave blank
loadBalancerIP:
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- # externalTrafficPolicy: Cluster
+ # -- (list) loadBalancerSourceRanges
+ loadBalancerSourceRanges:
+ # -- Set the externalTrafficPolicy in the Service to either Cluster or Local
+ externalTrafficPolicy:
-
- # Ingress settings only for the captive portal
+ # -- Ingress settings
ingress:
enabled: false
annotations: {}
- # nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: "true"
path: /
hosts:
- chart-example.local
tls: []
- # - secretName: chart-example-tls
- # hosts:
- # - chart-example.local
controllerService:
+ enabled: false
+ # -- Kubernetes service type
type: NodePort
+ # -- Kubernetes port where the service is exposed
port: 8080
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ##
- # nodePort:
- ## Provide any additional annotations which may be required. This can be used to
- ## set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
+ # -- Provide any additional annotations which may be required. This can be used to
+ # set the LoadBalancer service type to internal only.
+ # ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
annotations: {}
labels: {}
- ## Use loadBalancerIP to request a specific static IP,
- ## otherwise leave blank
- ##
+ # -- Use loadBalancerIP to request a specific static IP,
+ # otherwise leave blank
loadBalancerIP:
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- # externalTrafficPolicy: Cluster
- ##
- # Ingress settings only for the controller
+ # -- (list) loadBalancerSourceRanges
+ loadBalancerSourceRanges:
+ # -- Set the externalTrafficPolicy in the Service to either Cluster or Local
+ externalTrafficPolicy:
+
+ # -- Ingress settings
ingress:
enabled: false
annotations: {}
@@ -128,102 +120,100 @@ controllerService:
tls: []
stunService:
+ enabled: false
+ # -- Kubernetes service type
type: NodePort
- port: 3478 # udp
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ##
- # nodePort:
- ## Provide any additional annotations which may be required. This can be used to
- ## set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
+ # -- Kubernetes port where the service is exposed
+ port: 3478
+ # -- Provide any additional annotations which may be required. This can be used to
+ # set the LoadBalancer service type to internal only.
+ # ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
annotations: {}
labels: {}
- ## Use loadBalancerIP to request a specific static IP,
- ## otherwise leave blank
- ##
+ # -- Use loadBalancerIP to request a specific static IP,
+ # otherwise leave blank
loadBalancerIP:
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- # externalTrafficPolicy: Cluster
+ # -- (list) loadBalancerSourceRanges
+ loadBalancerSourceRanges:
+ # -- Set the externalTrafficPolicy in the Service to either Cluster or Local
+ externalTrafficPolicy:
discoveryService:
+ enabled: false
+ # -- Kubernetes service type
type: NodePort
- port: 10001 # udp
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ##
- # nodePort:
- ## Provide any additional annotations which may be required. This can be used to
- ## set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
+ # -- Kubernetes port where the service is exposed
+ port: 10001
+ # -- Provide any additional annotations which may be required. This can be used to
+ # set the LoadBalancer service type to internal only.
+ # ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
annotations: {}
labels: {}
- ## Use loadBalancerIP to request a specific static IP,
- ## otherwise leave blank
- ##
+ # -- Use loadBalancerIP to request a specific static IP,
+ # otherwise leave blank
loadBalancerIP:
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- # externalTrafficPolicy: Cluster
+ # -- (list) loadBalancerSourceRanges
+ loadBalancerSourceRanges:
+ # -- Set the externalTrafficPolicy in the Service to either Cluster or Local
+ externalTrafficPolicy:
+
+
+ # -- Ingress settings
+ ingress:
+ enabled: false
+ annotations: {}
+ path: /
+ hosts:
+ - chart-example.local
+ tls: []
syslogService:
+ enabled: false
+ # -- Kubernetes service type
type: NodePort
- port: 5514 # udp
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ##
- # nodePort:
- ## Provide any additional annotations which may be required. This can be used to
- ## set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
+ # -- Kubernetes port where the service is exposed
+ port: 5514
+ # -- Provide any additional annotations which may be required. This can be used to
+ # set the LoadBalancer service type to internal only.
+ # ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
annotations: {}
labels: {}
- ## Use loadBalancerIP to request a specific static IP,
- ## otherwise leave blank
- ##
+ # -- Use loadBalancerIP to request a specific static IP,
+ # otherwise leave blank
loadBalancerIP:
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- # externalTrafficPolicy: Cluster
+ # -- (list) loadBalancerSourceRanges
+ loadBalancerSourceRanges:
+ # -- Set the externalTrafficPolicy in the Service to either Cluster or Local
+ externalTrafficPolicy:
speedtestService:
+ enabled: false
+ # -- Kubernetes service type
type: ClusterIP
+ # -- Kubernetes port where the service is exposed
port: 6789
- ## Specify the nodePort value for the LoadBalancer and NodePort service types.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
- ##
- # nodePort:
- ## Provide any additional annotations which may be required. This can be used to
- ## set the LoadBalancer service type to internal only.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
- ##
+ # -- Provide any additional annotations which may be required. This can be used to
+ # set the LoadBalancer service type to internal only.
+ # ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
annotations: {}
labels: {}
- ## Use loadBalancerIP to request a specific static IP,
- ## otherwise leave blank
- ##
+ # -- Use loadBalancerIP to request a specific static IP,
+ # otherwise leave blank
loadBalancerIP:
- # loadBalancerSourceRanges: []
- ## Set the externalTrafficPolicy in the Service to either Cluster or Local
- # externalTrafficPolicy: Cluster
+ # -- (list) loadBalancerSourceRanges
+ loadBalancerSourceRanges:
+ # -- Set the externalTrafficPolicy in the Service to either Cluster or Local
+ externalTrafficPolicy:
+
+# -- Ingress settings
ingress:
enabled: false
annotations: {}
- # nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: "true"
path: /
hosts:
- chart-example.local
tls: []
- # - secretName: chart-example-tls
- # hosts:
- # - chart-example.local
timezone: UTC
@@ -231,8 +221,8 @@ runAsRoot: false
UID: 999
GID: 999
-## If you provide your own custom certificate in /cert
-## you can define the following parameters to configure the controller
+# -- If you provide your own custom certificate in /cert
+# you can define the following parameters to configure the controller
customCert:
enabled: false
isChain: false
@@ -242,7 +232,7 @@ customCert:
# you can pass the name of that secret using certSecret variable
# certSecret: unifi-tls
-# Logging configuration
+# -- Logging configuration
logging:
promtail:
enabled: false
@@ -253,7 +243,7 @@ logging:
loki:
url: http://loki.logs.svc.cluster.local:3100/loki/api/v1/push
-# define an external mongoDB instead of using the built-in mongodb
+# -- define an external mongoDB instead of using the built-in mongodb
mongodb:
enabled: false
dbUri: mongodb://mongo/unifi
@@ -261,24 +251,18 @@ mongodb:
databaseName: unifi
persistence:
- enabled: true
- ## unifi data Persistent Volume Storage Class
- ## If defined, storageClassName:
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is
- ## set, choosing the default provisioner. (gp2 on AWS, standard on
- ## GKE, AWS & OpenStack)
- ##
- # storageClass: "-"
- ##
- ## If you want to reuse an existing claim, you can pass the name of the PVC using
- ## the existingClaim variable
- # existingClaim: your-claim
- #
- ## Applies a prefix to the directories created by the unifi container
- # subPath: unifi
+ # -- Use persistent volume to store data
+ enabled: false
+ # -- (string) Type of persistent volume claim
+ storageClass:
+ # -- (string) Use an existing PVC to persist data
+ existingClaim:
+ # -- Persistence access modes
accessMode: ReadWriteOnce
+ # -- Size of persistent volume claim
size: 5Gi
+ # -- Do not delete the pvc upon helm uninstall
+ skipuninstall: false
extraVolumes: []
## specify additional volume to be used by extraVolumeMounts inside unifi container
@@ -300,13 +284,13 @@ extraJvmOpts: []
# - "-Dlog4j.configurationFile=file:/configmap/log4j2.xml"
# - "-Dsystem_ip=1.2.3.4"
-## Java Virtual Machine (JVM) initial, and minimum, heap size
-## Unset value means there is no lower limit
+# -- Java Virtual Machine (JVM) initial, and minimum, heap size
+# Unset value means there is no lower limit
jvmInitHeapSize:
-## Java Virtual Machine (JVM) maximum heap size
-## For larger installations a larger value is recommended.
-## For memory constrained system this value can be lowered.
+# -- Java Virtual Machine (JVM) maximum heap size
+# For larger installations a larger value is recommended.
+# For memory constrained system this value can be lowered.
jvmMaxHeapSize: 1024M
extraConfigFiles: {}
@@ -350,9 +334,8 @@ resources: {}
# cpu: 100m
# memory: 128Mi
-## Liveness and readiness probe values
-## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
-##
+# -- Liveness probe values
+# Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
livenessProbe:
enabled: true
initialDelaySeconds: 30
@@ -360,6 +343,9 @@ livenessProbe:
timeoutSeconds: 1
failureThreshold: 3
successThreshold: 1
+
+# -- Readiness probe values
+# Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
readinessProbe:
enabled: true
initialDelaySeconds: 15
diff --git a/charts/uptimerobot/Chart.yaml b/charts/uptimerobot/Chart.yaml
index b9c447f0..25b754b7 100644
--- a/charts/uptimerobot/Chart.yaml
+++ b/charts/uptimerobot/Chart.yaml
@@ -1,6 +1,6 @@
apiVersion: v2
name: uptimerobot
-version: 3.0.1
+version: 3.0.2
appVersion: 1.1.0
description: A tool to get statistics from Uptime Robot and log it into InfluxDB
keywords:
diff --git a/charts/uptimerobot/README.md b/charts/uptimerobot/README.md
index 8ea04d2a..5a8805c6 100644
--- a/charts/uptimerobot/README.md
+++ b/charts/uptimerobot/README.md
@@ -1,73 +1,120 @@
-# A tool to get statistics from Uptime Robot and log it into InfluxDB
+# uptimerobot
-![Screenshot](https://raw.githubusercontent.com/billimek/node-influx-uptimerobot/master/docs/dashboard.png)
+![Version: 3.0.1](https://img.shields.io/badge/Version-3.0.1-informational?style=flat-square) ![AppVersion: 1.1.0](https://img.shields.io/badge/AppVersion-1.1.0-informational?style=flat-square)
-This tool allows you to run periodic uptimerobot data usage checks and save the results to Influxdb
+A tool to get statistics from Uptime Robot and log it into InfluxDB
-## TL;DR;
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+
+## Source Code
+
+*
+*
+
+## Requirements
+
+## Dependencies
+
+| Repository | Name | Version |
+|------------|------|---------|
+
+## TL;DR
```console
-$ helm repo add k8s-at-home https://k8s-at-home.com/charts/
-$ helm install k8s-at-home/uptimerobot
+helm repo add k8s-at-home https://k8s-at-home.com/charts/
+helm repo update
+helm install uptimerobot k8s-at-home/uptimerobot
```
-## Introduction
-
-This code is adopted from [this original repo](https://github.com/trojanc/node-influx-uptimerobot)
-
## Installing the Chart
-To install the chart with the release name `my-release`:
+To install the chart with the release name `uptimerobot`
```console
-$ helm install --name my-release k8s-at-home/uptimerobot
+helm install uptimerobot k8s-at-home/uptimerobot
```
+
## Uninstalling the Chart
-To uninstall/delete the `my-release` deployment:
+To uninstall the `uptimerobot` deployment
```console
-$ helm delete my-release --purge
+helm uninstall uptimerobot
```
-The command removes all the Kubernetes components associated with the chart and deletes the release.
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
## Configuration
-The configuration is set as a block of text through a configmap and mounted as a file in /src/config.ini Any value in this text block should match the defined uptimerobot configuration. There are several values here that will have to match our kubernetes configuration.
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
-## Configuration
-
-The following tables lists the configurable parameters of the Sentry chart and their default values.
-
-| Parameter | Description | Default |
-| ------------------------------- | ------------------------------- | ---------------------------------------------------------- |
-| `image.repository` | uptimerobot image | `billimek/uptimerobotusage-for-influxdb` |
-| `image.tag` | uptimerobot image tag | `latest` |
-| `image.pullPolicy` | uptimerobot image pull policy | `IfNotPresent` |
-| `delay` | number of seconds to wait between collections | `300` |
-| `config.influxdb.host` | InfluxDB hostname | `influxdb-influxdb` |
-| `config.influxdb.port` | InfluxDB port | `8086` |
-| `config.influxdb.database` | InfluxDB database | `uptimerobot` |
-| `config.influxdb.protocol` | InfluxDB protocol | `http` |
-| `config.influxdb.username` | InfluxDB username | `` |
-| `config.influxdb.password` | InfluxDB password | `` |
-| `config.uptimerobot.apikey` | uptimerobot API key (REQUIRED) | `someapikey` |
-| `podAnnotations` | Key-value pairs to add as pod annotations | `{}` |
-
-
-Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
-$ helm install --name my-release \
- --set config.uptimerobot.apikey=thisismyapikey \
+helm install uptimerobot \
+ --set env.TZ="America/New York" \
k8s-at-home/uptimerobot
```
-Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
-$ helm install --name my-release -f values.yaml k8s-at-home/uptimerobot
+helm install uptimerobot k8s-at-home/uptimerobot -f values.yaml
```
-Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/uptimerobot/values.yaml) file. It has several commented out suggested values.
+## Custom configuration
+
+N/A
+
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| config.influxdb.database | string | `"uptimerobot"` | |
+| config.influxdb.host | string | `"influxdb-influxdb"` | host/port/database are mandatory - change as needed |
+| config.influxdb.port | int | `8086` | |
+| config.influxdb.protocol | string | `"http"` | |
+| config.uptimerobot.apikey | string | `"someapikey"` | uptimerobot API key (REQUIRED) |
+| delay | int | `300` | number of seconds to wait between collections |
+| image.pullPolicy | string | `"Always"` | uptimerobot image pull policy |
+| image.repository | string | `"billimek/node-influx-uptimerobot"` | uptimerobot image |
+| image.tag | string | `"latest"` | uptimerobot image tag |
+| nodeSelector | object | `{}` | |
+| podAnnotations | object | `{}` | Key-value pairs to add as pod annotations |
+| replicaCount | int | `1` | |
+| resources | object | `{}` | |
+
+## Changelog
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [3.0.1]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- Use helm-docs
+
+#### Removed
+
+- N/A
+
+[3.0.1]: #3.0.1
+
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)
\ No newline at end of file
diff --git a/charts/uptimerobot/README.md.gotmpl b/charts/uptimerobot/README.md.gotmpl
new file mode 100644
index 00000000..8b868671
--- /dev/null
+++ b/charts/uptimerobot/README.md.gotmpl
@@ -0,0 +1,145 @@
+{{- define "custom.repository.organization" -}}
+k8s-at-home
+{{- end -}}
+
+{{- define "custom.repository.url" -}}
+https://github.com/k8s-at-home/charts
+{{- end -}}
+
+{{- define "custom.helm.url" -}}
+https://k8s-at-home.com/charts/
+{{- end -}}
+
+{{- define "custom.helm.path" -}}
+{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
+{{- end -}}
+
+{{- define "custom.notes" -}}
+**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
+{{- end -}}
+
+{{- define "custom.requirements" -}}
+## Requirements
+
+{{ template "chart.kubeVersionLine" . }}
+{{- end -}}
+
+{{- define "custom.dependencies" -}}
+## Dependencies
+
+{{ template "chart.requirementsTable" . }}
+{{- end -}}
+
+{{- define "custom.install.tldr" -}}
+## TL;DR
+
+```console
+helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
+helm repo update
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.install" -}}
+## Installing the Chart
+
+To install the chart with the release name `{{ template "chart.name" . }}`
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.uninstall" -}}
+## Uninstalling the Chart
+
+To uninstall the `{{ template "chart.name" . }}` deployment
+
+```console
+helm uninstall {{ template "chart.name" . }}
+```
+
+The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
+{{- end -}}
+
+{{- define "custom.configuration.header" -}}
+## Configuration
+{{- end -}}
+
+{{- define "custom.configuration.readValues" -}}
+Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
+Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
+{{- end -}}
+
+{{- define "custom.configuration.example.set" -}}
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
+
+```console
+helm install {{ template "chart.name" . }} \
+ --set env.TZ="America/New York" \
+ {{ template "custom.helm.path" . }}
+```
+{{- end -}}
+
+{{- define "custom.configuration.example.file" -}}
+Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
+
+```console
+helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
+```
+{{- end -}}
+
+{{- define "custom.valuesSection" -}}
+## Values
+
+**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
+
+{{ template "chart.valuesTable" . }}
+{{- end -}}
+
+{{- define "custom.support" -}}
+## Support
+
+- See the [Docs](https://docs.k8s-at-home.com/our-helm-charts/getting-started/)
+- Open an [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
+- Ask a [question](https://github.com/k8s-at-home/organization/discussions)
+- Join our [Discord](https://discord.gg/sTMX7Vh) community
+{{- end -}}
+
+{{ template "chart.header" . }}
+
+{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
+
+{{ template "chart.description" . }}
+
+{{ template "custom.notes" . }}
+
+{{ template "chart.sourcesSection" . }}
+
+{{ template "custom.requirements" . }}
+
+{{ template "custom.dependencies" . }}
+
+{{ template "custom.install.tldr" . }}
+
+{{ template "custom.install" . }}
+
+{{ template "custom.uninstall" . }}
+
+{{ template "custom.configuration.header" . }}
+
+{{ template "custom.configuration.readValues" . }}
+
+{{ template "custom.configuration.example.set" . }}
+
+{{ template "custom.configuration.example.file" . }}
+
+{{ template "custom.custom.configuration" . }}
+
+{{ template "custom.valuesSection" . }}
+
+{{ template "custom.changelog" . }}
+
+{{ template "custom.support" . }}
+
+{{ template "helm-docs.versionFooter" . }}
diff --git a/charts/uptimerobot/README_CHANGELOG.md.gotmpl b/charts/uptimerobot/README_CHANGELOG.md.gotmpl
new file mode 100644
index 00000000..21dc5b6d
--- /dev/null
+++ b/charts/uptimerobot/README_CHANGELOG.md.gotmpl
@@ -0,0 +1,27 @@
+{{- define "custom.changelog.header" -}}
+## Changelog
+{{- end -}}
+
+{{- define "custom.changelog" -}}
+{{ template "custom.changelog.header" . }}
+
+All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+### [3.0.2]
+
+#### Added
+
+- N/A
+
+#### Changed
+
+- Use helm-docs
+
+#### Removed
+
+- N/A
+
+[3.0.2]: #3.0.2
+{{- end -}}
diff --git a/charts/uptimerobot/README_CONFIG.md.gotmpl b/charts/uptimerobot/README_CONFIG.md.gotmpl
new file mode 100644
index 00000000..e93d80bf
--- /dev/null
+++ b/charts/uptimerobot/README_CONFIG.md.gotmpl
@@ -0,0 +1,9 @@
+{{- define "custom.custom.configuration.header" -}}
+## Custom configuration
+{{- end -}}
+
+{{- define "custom.custom.configuration" -}}
+{{ template "custom.custom.configuration.header" . }}
+
+N/A
+{{- end -}}
diff --git a/charts/uptimerobot/values.yaml b/charts/uptimerobot/values.yaml
index ee447f33..257814b5 100644
--- a/charts/uptimerobot/values.yaml
+++ b/charts/uptimerobot/values.yaml
@@ -3,8 +3,11 @@
# Declare variables to be passed into your templates.
replicaCount: 1
image:
+ # -- uptimerobot image
repository: billimek/node-influx-uptimerobot
+ # -- uptimerobot image tag
tag: latest
+ # -- uptimerobot image pull policy
pullPolicy: Always
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
@@ -18,11 +21,11 @@ resources: {}
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
-# number of seconds to wait between collections
+# -- number of seconds to wait between collections
delay: 300
config:
influxdb:
- # host/port/database are mandatory - change as needed
+ # -- host/port/database are mandatory - change as needed
host: influxdb-influxdb
port: 8086
protocol: http
@@ -30,9 +33,10 @@ config:
# username:
# password:
uptimerobot:
- # API key is mandatory and must be populated
+ # -- uptimerobot API key (REQUIRED)
apikey: someapikey
# logs_limit: 100
# response_times_limit: 100
+# -- Key-value pairs to add as pod annotations
podAnnotations: {}