diff --git a/charts/adguard-home/README.md b/charts/adguard-home/README.md index 1023dd25..d3c9dc80 100644 --- a/charts/adguard-home/README.md +++ b/charts/adguard-home/README.md @@ -1,184 +1,64 @@ -# adguard-home +# DNS proxy as ad-blocker for local network -![Version: 2.2.0](https://img.shields.io/badge/Version-2.2.0-informational?style=flat-square) ![AppVersion: v0.102.0](https://img.shields.io/badge/AppVersion-v0.102.0-informational?style=flat-square) +This is an opinionated helm chart for [adguard-home](https://github.com/AdguardTeam/AdGuardHome) -DNS proxy as ad-blocker for local network +The default values and container images used in this chart will allow for running in a multi-arch cluster (amd64, arm, arm64) -**Homepage:** +## TL;DR -## Maintainers +```shell +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/adguard-home +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | | | +## Installing the Chart -## Source Code +To install the chart with the release name `my-release`: -* +```console +helm install --name adguard-home k8s-at-home/adguard-home +``` -## Values +## Uninstalling the Chart -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| configAsCode.config.bind_host | string | `"0.0.0.0"` | | -| configAsCode.config.bind_port | int | `3000` | | -| configAsCode.config.clients | list | `[]` | | -| configAsCode.config.debug_pprof | bool | `false` | | -| configAsCode.config.dhcp.enabled | bool | `false` | | -| configAsCode.config.dhcp.gateway_ip | string | `""` | | -| configAsCode.config.dhcp.icmp_timeout_msec | int | `1000` | | -| configAsCode.config.dhcp.interface_name | string | `""` | | -| configAsCode.config.dhcp.lease_duration | int | `86400` | | -| configAsCode.config.dhcp.range_end | string | `""` | | -| configAsCode.config.dhcp.range_start | string | `""` | | -| configAsCode.config.dhcp.subnet_mask | string | `""` | | -| configAsCode.config.dns.aaaa_disabled | bool | `false` | | -| configAsCode.config.dns.all_servers | bool | `false` | | -| configAsCode.config.dns.allowed_clients | list | `[]` | | -| configAsCode.config.dns.anonymize_client_ip | bool | `false` | | -| configAsCode.config.dns.bind_host | string | `"0.0.0.0"` | | -| configAsCode.config.dns.blocked_hosts | list | `[]` | | -| configAsCode.config.dns.blocked_response_ttl | int | `10` | | -| configAsCode.config.dns.blocked_services | list | `[]` | | -| configAsCode.config.dns.blocking_ipv4 | string | `""` | | -| configAsCode.config.dns.blocking_ipv6 | string | `""` | | -| configAsCode.config.dns.blocking_mode | string | `"default"` | | -| configAsCode.config.dns.bogus_nxdomain | list | `[]` | | -| configAsCode.config.dns.bootstrap_dns[0] | string | `"9.9.9.10"` | | -| configAsCode.config.dns.bootstrap_dns[1] | string | `"149.112.112.10"` | | -| configAsCode.config.dns.bootstrap_dns[2] | string | `"2620:fe::10"` | | -| configAsCode.config.dns.bootstrap_dns[3] | string | `"2620:fe::fe:10"` | | -| configAsCode.config.dns.cache_size | int | `4194304` | | -| configAsCode.config.dns.cache_time | int | `30` | | -| configAsCode.config.dns.cache_ttl_max | int | `0` | | -| configAsCode.config.dns.cache_ttl_min | int | `0` | | -| configAsCode.config.dns.disallowed_clients | list | `[]` | | -| configAsCode.config.dns.edns_client_subnet | bool | `false` | | -| configAsCode.config.dns.enable_dnssec | bool | `false` | | -| configAsCode.config.dns.fastest_addr | bool | `false` | | -| configAsCode.config.dns.filtering_enabled | bool | `true` | | -| configAsCode.config.dns.filters_update_interval | int | `24` | | -| configAsCode.config.dns.parental_block_host | string | `"family-block.dns.adguard.com"` | | -| configAsCode.config.dns.parental_cache_size | int | `1048576` | | -| configAsCode.config.dns.parental_enabled | bool | `false` | | -| configAsCode.config.dns.port | int | `53` | | -| configAsCode.config.dns.protection_enabled | bool | `true` | | -| configAsCode.config.dns.querylog_enabled | bool | `true` | | -| configAsCode.config.dns.querylog_interval | int | `90` | | -| configAsCode.config.dns.querylog_size_memory | int | `1000` | | -| configAsCode.config.dns.ratelimit | int | `0` | | -| configAsCode.config.dns.ratelimit_whitelist | list | `[]` | | -| configAsCode.config.dns.refuse_any | bool | `true` | | -| configAsCode.config.dns.rewrites | list | `[]` | | -| configAsCode.config.dns.safebrowsing_block_host | string | `"standard-block.dns.adguard.com"` | | -| configAsCode.config.dns.safebrowsing_cache_size | int | `1048576` | | -| configAsCode.config.dns.safebrowsing_enabled | bool | `false` | | -| configAsCode.config.dns.safesearch_cache_size | int | `1048576` | | -| configAsCode.config.dns.safesearch_enabled | bool | `false` | | -| configAsCode.config.dns.statistics_interval | int | `1` | | -| configAsCode.config.dns.upstream_dns[0] | string | `"https://dns10.quad9.net/dns-query"` | | -| configAsCode.config.filters[0].enabled | bool | `true` | | -| configAsCode.config.filters[0].id | int | `1` | | -| configAsCode.config.filters[0].name | string | `"AdGuard DNS filter"` | | -| configAsCode.config.filters[0].url | string | `"https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt"` | | -| configAsCode.config.filters[1].enabled | bool | `false` | | -| configAsCode.config.filters[1].id | int | `2` | | -| configAsCode.config.filters[1].name | string | `"AdAway"` | | -| configAsCode.config.filters[1].url | string | `"https://adaway.org/hosts.txt"` | | -| configAsCode.config.filters[2].enabled | bool | `false` | | -| configAsCode.config.filters[2].id | int | `4` | | -| configAsCode.config.filters[2].name | string | `"MalwareDomainList.com Hosts List"` | | -| configAsCode.config.filters[2].url | string | `"https://www.malwaredomainlist.com/hostslist/hosts.txt"` | | -| configAsCode.config.http_proxy | string | `""` | | -| configAsCode.config.language | string | `"en"` | | -| configAsCode.config.log_file | string | `""` | | -| configAsCode.config.rlimit_nofile | int | `0` | | -| configAsCode.config.schema_version | int | `6` | | -| configAsCode.config.tls.allow_unencrypted_doh | bool | `false` | | -| configAsCode.config.tls.certificate_chain | string | `""` | | -| configAsCode.config.tls.certificate_path | string | `""` | | -| configAsCode.config.tls.enabled | bool | `false` | | -| configAsCode.config.tls.force_https | bool | `false` | | -| configAsCode.config.tls.port_dns_over_tls | int | `853` | | -| configAsCode.config.tls.port_https | int | `443` | | -| configAsCode.config.tls.private_key | string | `""` | | -| configAsCode.config.tls.private_key_path | string | `""` | | -| configAsCode.config.tls.server_name | string | `""` | | -| configAsCode.config.tls.strict_sni_check | bool | `false` | | -| configAsCode.config.user_rules | list | `[]` | | -| configAsCode.config.users | list | `[]` | | -| configAsCode.config.verbose | bool | `false` | | -| configAsCode.config.web_session_ttl | int | `720` | | -| configAsCode.config.whitelist_filters | list | `[]` | | -| configAsCode.enabled | bool | `false` | | -| configAsCode.image.pullPolicy | string | `"Always"` | | -| configAsCode.image.repository | string | `"busybox"` | | -| configAsCode.image.tag | string | `"latest"` | | -| configAsCode.resources | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"adguard/adguardhome"` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0] | string | `"chart-example.local"` | | -| ingress.path | string | `"/"` | | -| ingress.tls | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.config.accessMode | string | `"ReadWriteOnce"` | | -| persistence.config.enabled | bool | `true` | | -| persistence.config.size | string | `"20Mi"` | | -| persistence.config.skipuninstall | bool | `false` | | -| persistence.work.accessMode | string | `"ReadWriteOnce"` | | -| persistence.work.enabled | bool | `true` | | -| persistence.work.size | string | `"10Gi"` | | -| persistence.work.skipuninstall | bool | `false` | | -| podAnnotations."prometheus.io/port" | string | `"api"` | | -| podAnnotations."prometheus.io/scrape" | string | `"true"` | | -| podSecurityContext | object | `{}` | | -| probes.liveness.enabled | bool | `true` | | -| probes.liveness.failureThreshold | int | `5` | | -| probes.liveness.initialDelaySeconds | int | `5` | | -| probes.liveness.periodSeconds | int | `10` | | -| probes.readiness.enabled | bool | `false` | | -| probes.readiness.failureThreshold | int | `5` | | -| probes.readiness.initialDelaySeconds | int | `5` | | -| probes.readiness.periodSeconds | int | `10` | | -| probes.startup.enabled | bool | `false` | | -| probes.startup.failureThreshold | int | `30` | | -| probes.startup.initialDelaySeconds | int | `5` | | -| probes.startup.periodSeconds | int | `10` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| service.annotations | object | `{}` | | -| service.type | string | `"ClusterIP"` | | -| serviceDHCP.annotations | object | `{}` | | -| serviceDHCP.enabled | bool | `false` | | -| serviceDHCP.loadBalancerIP | string | `""` | | -| serviceDHCP.type | string | `"NodePort"` | | -| serviceDNSOverTLS.annotations | object | `{}` | | -| serviceDNSOverTLS.enabled | bool | `false` | | -| serviceDNSOverTLS.loadBalancerIP | string | `""` | | -| serviceDNSOverTLS.type | string | `"NodePort"` | | -| serviceMonitor.additionalLabels | object | `{}` | | -| serviceMonitor.enabled | bool | `false` | | -| serviceTCP.annotations | object | `{}` | | -| serviceTCP.enabled | bool | `false` | | -| serviceTCP.loadBalancerIP | string | `""` | | -| serviceTCP.type | string | `"NodePort"` | | -| serviceUDP.annotations | object | `{}` | | -| serviceUDP.enabled | bool | `true` | | -| serviceUDP.loadBalancerIP | string | `""` | | -| serviceUDP.type | string | `"NodePort"` | | -| strategyType | string | `"Recreate"` | | -| timezone | string | `"UTC"` | | -| tlsSecretName | string | `""` | | -| tolerations | list | `[]` | | -| volumePermissions.image.pullPolicy | string | `"Always"` | | -| volumePermissions.image.repository | string | `"busybox"` | | -| volumePermissions.image.tag | string | `"latest"` | | -| volumePermissions.resources | object | `{}` | | +To uninstall/delete the `adguard-home` deployment: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +```console +helm delete adguard-home --purge +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/adguard-home/values.yaml) file. It has several commented out suggested values. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install --name adguard-home \ + --set timeZone="America/New York" \ + k8s-at-home/adguard-home +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name adguard-home -f values.yaml k8s-at-home/adguard-home +``` + +#### Helm force upgrade + +```sh +helm upgrade --force +``` + +#### Delete the existing `adguard-home` services prior to upgrading + +```sh +kubectl delete svc/adguard-home +``` + +#### Remove the existing adguard-home chart first + +This is the 'easiest' approach, but will incur downtime which can be problematic if you rely on adguard-home for DNS diff --git a/charts/bitwardenrs/README.md b/charts/bitwardenrs/README.md index cdd5424b..350ad331 100644 --- a/charts/bitwardenrs/README.md +++ b/charts/bitwardenrs/README.md @@ -1,102 +1,58 @@ -# bitwardenrs +# Unofficial Bitwarden compatible server written in Rust -![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.18.0](https://img.shields.io/badge/AppVersion-1.18.0-informational?style=flat-square) +This is an opinionated helm chart for [bitwarden_rs](https://github.com/dani-garcia/bitwarden_rs) -Unofficial Bitwarden compatible server written in Rust +The default values and container images used in this chart will allow for running in a multi-arch cluster (amd64, arm, arm64) -**Homepage:** +## TL;DR -## Maintainers +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/bitwardenrs +``` -| Name | Email | Url | -| ---- | ------ | --- | -| DirtyCajunRice | nick@cajun.pro | | +## Installing the Chart -## Source Code +To install the chart with the release name `bitwarden`: -* +```console +helm install bitwarden k8s-at-home/bitwardenrs +``` -## Values +## Uninstalling the Chart -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| autoscaling.enabled | bool | `false` | | -| autoscaling.maxReplicas | int | `100` | | -| autoscaling.minReplicas | int | `1` | | -| autoscaling.targetCPUUtilizationPercentage | int | `80` | | -| bitwardenrs.admin.disableAdminToken | bool | `false` | | -| bitwardenrs.admin.enabled | bool | `true` | | -| bitwardenrs.admin.existingSecret.enabled | bool | `false` | | -| bitwardenrs.admin.existingSecret.name | string | `""` | | -| bitwardenrs.admin.existingSecret.tokenKey | string | `""` | | -| bitwardenrs.domain | string | `""` | | -| bitwardenrs.externalDatabase.database | string | `""` | | -| bitwardenrs.externalDatabase.enabled | bool | `false` | | -| bitwardenrs.externalDatabase.existingSecret.enabled | bool | `false` | | -| bitwardenrs.externalDatabase.existingSecret.name | string | `""` | | -| bitwardenrs.externalDatabase.existingSecret.passwordKey | string | `""` | | -| bitwardenrs.externalDatabase.existingSecret.userKey | string | `""` | | -| bitwardenrs.externalDatabase.host | string | `""` | | -| bitwardenrs.externalDatabase.password | string | `""` | | -| bitwardenrs.externalDatabase.port | string | `""` | | -| bitwardenrs.externalDatabase.type | string | `""` | | -| bitwardenrs.externalDatabase.user | string | `""` | | -| bitwardenrs.gui.port | int | `80` | | -| bitwardenrs.signupsAllowed | bool | `false` | | -| bitwardenrs.smtp.enabled | bool | `false` | | -| bitwardenrs.smtp.existingSecret.enabled | bool | `false` | | -| bitwardenrs.smtp.existingSecret.name | string | `""` | | -| bitwardenrs.smtp.existingSecret.passwordKey | string | `""` | | -| bitwardenrs.smtp.existingSecret.userKey | string | `""` | | -| bitwardenrs.smtp.from | string | `""` | | -| bitwardenrs.smtp.fromName | string | `""` | | -| bitwardenrs.smtp.host | string | `""` | | -| bitwardenrs.smtp.password | string | `""` | | -| bitwardenrs.smtp.port | int | `587` | | -| bitwardenrs.smtp.ssl | bool | `true` | | -| bitwardenrs.smtp.user | string | `""` | | -| bitwardenrs.websockets.enabled | bool | `true` | | -| bitwardenrs.websockets.port | int | `3012` | | -| bitwardenrs.yubico.clientId | string | `""` | | -| bitwardenrs.yubico.enabled | bool | `false` | | -| bitwardenrs.yubico.existingSecret.clientIdKey | string | `""` | | -| bitwardenrs.yubico.existingSecret.enabled | bool | `false` | | -| bitwardenrs.yubico.existingSecret.name | string | `""` | | -| bitwardenrs.yubico.existingSecret.secretKeyKey | string | `""` | | -| bitwardenrs.yubico.secretKey | string | `""` | | -| bitwardenrs.yubico.server | string | `""` | | -| env | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"bitwardenrs/server"` | | -| image.tag | string | `""` | | -| imagePullSecrets | list | `[]` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0].host | string | `"chart-example.local"` | | -| ingress.hosts[0].paths | list | `[]` | | -| ingress.tls | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.accessMode | string | `"ReadWriteOnce"` | | -| persistence.enabled | bool | `false` | | -| persistence.size | string | `"1Gi"` | | -| persistence.type | string | `"statefulset"` | | -| podAnnotations | object | `{}` | | -| podSecurityContext | object | `{}` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| service.additionalSpec | object | `{}` | | -| service.annotations | object | `{}` | | -| service.labels | object | `{}` | | -| service.port | int | `80` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.name | string | `""` | | -| tolerations | list | `[]` | | +To uninstall/delete the `bitwarden` deployment: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +```console +helm uninstall bitwarden +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/bitwardenrs/values.yaml) file. It has several commented out suggested values. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install bitwarden \ + --set timeZone="America/New York" \ + k8s-at-home/bitwardenrs +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install bitwarden k8s-at-home/bitwardenrs --values values.yaml +``` + +## Upgrading an existing Release to a new major version + +A major chart version change (like 1.1.1 -> 2.0.0) indicates that there is an incompatible breaking change potentially needing manual actions. + +### Upgrading from 1.x.x to 2.x.x + +Chart version 2.0.0 introduces external database support. + * No actions required to continue with the default sqlite backend. + * Refer to the `bitwardenrs.externalDatabase` section of [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/bitwardenrs/values.yaml) to configure MySQL or PostgreSQL database backends. diff --git a/charts/blocky/README.md b/charts/blocky/README.md index 827fe928..fb4ba177 100644 --- a/charts/blocky/README.md +++ b/charts/blocky/README.md @@ -1,67 +1,79 @@ -# blocky +# DNS proxy as ad-blocker for local network -![Version: 5.0.0](https://img.shields.io/badge/Version-5.0.0-informational?style=flat-square) ![AppVersion: v0.12](https://img.shields.io/badge/AppVersion-v0.12-informational?style=flat-square) +This is an opinionated helm chart for [blocky](https://github.com/0xERR0R/blocky) -DNS proxy as ad-blocker for local network +The default values and container images used in this chart will allow for running in a multi-arch cluster (amd64, arm, arm64) -**Homepage:** +## TL;DR -## Maintainers +```shell +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/blocky +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Installing the Chart -## Source Code +To install the chart with the release name `my-release`: -* +```console +helm install --name blocky k8s-at-home/blocky +``` -## Values +## Uninstalling the Chart -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| config | string | `"upstream:\n # these external DNS resolvers will be used. Blocky picks 2 random resolvers from the list for each query\n # format for resolver: [net:]host:[port][/path]. net could be empty (default, shortcut for tcp+udp), tcp+udp, tcp, udp, tcp-tls or https (DoH). If port is empty, default port will be used (53 for udp and tcp, 853 for tcp-tls, 443 for https (Doh))\n externalResolvers:\n - 46.182.19.48\n - 80.241.218.68\n - tcp-tls:fdns1.dismail.de:853\n - https://dns.digitale-gesellschaft.ch/dns-query\n\n# optional: custom IP address for domain name (with all sub-domains)\n# example: query \"printer.lan\" or \"my.printer.lan\" will return 192.168.178.3\ncustomDNS:\n mapping:\n printer.lan: 192.168.178.3\n\n# optional: definition, which DNS resolver(s) should be used for queries to the domain (with all sub-domains). Multiple resolvers must be separated by comma\n# Example: Query client.fritz.box will ask DNS server 192.168.178.1. This is necessary for local network, to resolve clients by host name\nconditional:\n mapping:\n fritz.box: udp:192.168.178.1\n lan.net: udp:192.168.178.1,udp:192.168.178.2\n\n# optional: use black and white lists to block queries (for example ads, trackers, adult pages etc.)\nblocking:\n # definition of blacklist groups. Can be external link (http/https) or local file\n blackLists:\n ads:\n - https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt\n - https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts\n - https://mirror1.malwaredomains.com/files/justdomains\n - http://sysctl.org/cameleon/hosts\n - https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist\n - https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt\n special:\n - https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews/hosts\n # definition of whitelist groups. Attention: if the same group has black and whitelists, whitelists will be used to disable particular blacklist entries. If a group has only whitelist entries -> this means only domains from this list are allowed, all other domains will be blocked\n whiteLists:\n ads:\n - whitelist.txt\n # definition: which groups should be applied for which client\n clientGroupsBlock:\n # default will be used, if no special definition for a client name exists\n default:\n - ads\n - special\n # use client name (with wildcard support: * - sequence of any characters, [0-9] - range)\n # or single ip address / client subnet as CIDR notation\n laptop*:\n - ads\n 192.168.178.1/24:\n - special\n # which response will be sent, if query is blocked:\n # zeroIp: 0.0.0.0 will be returned (default)\n # nxDomain: return NXDOMAIN as return code\n # comma separated list of destination IP adresses (for example: 192.100.100.15, 2001:0db8:85a3:08d3:1319:8a2e:0370:7344). Should contain ipv4 and ipv6 to cover all query types. Useful with running web server on this address to display the \"blocked\" page.\n blockType: zeroIp\n # optional: automatically list refresh period in minutes. Default: 4h.\n # Negative value -> deactivate automatically refresh.\n # 0 value -> use default\n refreshPeriod: 0\n\n# optional: configuration for caching of DNS responses\ncaching:\n # amount in minutes, how long a response must be cached (min value).\n # If <=0, use response's TTL, if >0 use this value, if TTL is smaller\n # Default: 0\n minTime: 5\n # amount in minutes, how long a response must be cached (max value).\n # If <0, do not cache responses\n # If 0, use TTL\n # If > 0, use this value, if TTL is greater\n # Default: 0\n maxTime: -1\n # if true, will preload DNS results for often used queries (names queried more than 5 times in a 2 hour time window)\n # this improves the response time for often used queries, but significantly increases external traffic\n # default: false\n prefetching: true\n\n# optional: configuration of client name resolution\nclientLookup:\n # optional: this DNS resolver will be used to perform reverse DNS lookup (typically local router)\n upstream: udp:192.168.178.1\n # optional: some routers return multiple names for client (host name and user defined name). Define which single name should be used.\n # Example: take second name if present, if not take first name\n singleNameOrder:\n - 2\n - 1\n # optional: custom mapping of client name to IP addresses. Useful if reverse DNS does not work properly or just to have custom client names.\n clients:\n laptop:\n - 192.168.178.29\n\n# optional: configuration for prometheus metrics endpoint\n# prometheus:\n# # enabled if true\n# enable: true\n# # url path, optional (default '/metrics')\n# path: /metrics\n\n# optional: write query information (question, answer, client, duration etc) to daily csv file\n# queryLog:\n# # directory (should be mounted as volume in docker)\n# dir: /logs\n# # if true, write one file per client. Writes all queries to single file otherwise\n# perClient: true\n# # if > 0, deletes log files which are older than ... days\n# logRetentionDays: 7\n\n# optional: DNS listener port and bind ip address, default 53 (UDP and TCP). Example: 53, :53, 127.0.0.1:53\nport: 53\n# optional: HTTP listener port, default 0 = no http listener. If > 0, will be used for prometheus metrics, pprof, REST API, DoH ...\nhttpPort: 4000\n# optional: HTTPS listener port, default 0 = no http listener. If > 0, will be used for prometheus metrics, pprof, REST API, DoH...\n#httpsPort: 443\n# mandatory, if https port > 0: path to cert and key file for SSL encryption\n#httpsCertFile: server.crt\n#httpsKeyFile: server.key\n# optional: use this DNS server to resolve blacklist urls and upstream DNS servers (DOH). Useful if no DNS resolver is configured and blocky needs to resolve a host name. Format net:IP:port, net must be udp or tcp\nbootstrapDns: tcp:1.1.1.1\n# optional: Log level (one from debug, info, warn, error). Default: info\nlogLevel: info\n# optional: Log format (text or json). Default: text\nlogFormat: text\n"` | | -| extraLists | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"spx01/blocky"` | | -| image.tag | string | `"v0.12"` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.accessModes[0] | string | `"ReadWriteOnce"` | | -| persistence.enabled | bool | `false` | | -| persistence.finalizers[0] | string | `"kubernetes.io/pvc-protection"` | | -| persistence.size | string | `"10Gi"` | | -| podAnnotations."prometheus.io/port" | string | `"api"` | | -| podAnnotations."prometheus.io/scrape" | string | `"true"` | | -| probes.liveness.failureThreshold | int | `5` | | -| probes.liveness.periodSeconds | int | `10` | | -| probes.readiness.failureThreshold | int | `5` | | -| probes.readiness.periodSeconds | int | `10` | | -| probes.startup.failureThreshold | int | `30` | | -| probes.startup.initialDelaySeconds | int | `5` | | -| probes.startup.periodSeconds | int | `10` | | -| replicas | int | `1` | | -| resources | object | `{}` | | -| service.annotations | object | `{}` | | -| service.type | string | `"ClusterIP"` | | -| serviceMonitor.additionalLabels | object | `{}` | | -| serviceMonitor.enabled | bool | `false` | | -| serviceTCP.annotations | object | `{}` | | -| serviceTCP.enabled | bool | `false` | | -| serviceTCP.externalIPs | list | `[]` | | -| serviceTCP.externalTrafficPolicy | string | `"Local"` | | -| serviceTCP.loadBalancerIP | string | `""` | | -| serviceTCP.type | string | `"NodePort"` | | -| serviceUDP.annotations | object | `{}` | | -| serviceUDP.enabled | bool | `true` | | -| serviceUDP.externalIPs | list | `[]` | | -| serviceUDP.externalTrafficPolicy | string | `"Local"` | | -| serviceUDP.loadBalancerIP | string | `""` | | -| serviceUDP.type | string | `"NodePort"` | | -| timeZone | string | `"UTC"` | | -| tolerations | list | `[]` | | +To uninstall/delete the `blocky` deployment: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +```console +helm delete blocky --purge +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/blocky/values.yaml) file. It has several commented out suggested values. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install --name blocky \ + --set timeZone="America/New York" \ + k8s-at-home/blocky +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name blocky -f values.yaml k8s-at-home/blocky +``` + +--- + +## Upgrading an existing Release to a new major version + +A major chart version change (like 2.2.2 -> 3.0.0) indicates that there is an +incompatible breaking change needing manual actions. + +### Upgrading from 2.x.x to 3.x.x + +Due to the renaming of the service port, an upgrade-in-place will not work. The following are possible approaches to solve this: + +#### Helm force upgrade + +```sh +helm upgrade --force +``` + +#### Delete the existing `blocky` service prior to upgrading + +```sh +kubectl delete svc/blocky +``` + +#### Remove the existing blocky chart first + +This is the 'easiest' approach, but will incur downtime which can be problematic if you rely on blocky for DNS + +### Upgrading from 4.x.x to 5.x.x + +Configuration inside `config` is no longer a yaml object, it is now a multiline string diff --git a/charts/comcast/README.md b/charts/comcast/README.md index 4c29ff42..fd282d55 100644 --- a/charts/comcast/README.md +++ b/charts/comcast/README.md @@ -1,41 +1,84 @@ -# comcast +# Comcast Data Cap Usage Collector For InfluxDB and Grafana -![Version: 3.0.0](https://img.shields.io/badge/Version-3.0.0-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square) +![Screenshot](https://github.com/billimek/comcastUsage-for-influxdb/raw/master/images/comcast_grafana_example.png) -periodic comcast data usage checks and save the results to InfluxDB +This tool allows you to run periodic comcast data usage checks and save the results to Influxdb -**Homepage:** +## TL;DR; -## Maintainers +```console +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/comcast +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Introduction -## Source Code +This code is adopted from the work done by [barrycarey](https://github.com/barrycarey) in the [similar thing for capturing speedtest data](https://github.com/barrycarey/Speedtest-for-InfluxDB-and-Grafana) as well as [jantman's](https://github.com/jantman) [xfinity-usage python example](https://github.com/jantman/xfinity-usage) -* -* +## Installing the Chart -## Values +To install the chart with the release name `my-release`: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| config.comcast.password | string | `"somepassword"` | | -| config.comcast.username | string | `"someuser"` | | -| config.delay | int | `3600` | | -| config.influxdb.database | string | `"comcast"` | | -| config.influxdb.host | string | `"influxdb-influxdb"` | | -| config.influxdb.port | int | `8086` | | -| config.influxdb.ssl | bool | `false` | | -| debug | bool | `false` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"billimek/comcastusage-for-influxdb"` | | -| image.tag | string | `"latest"` | | -| nodeSelector | object | `{}` | | -| podAnnotations | object | `{}` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | +```console +$ helm install --name my-release k8s-at-home/comcast +``` +## Uninstalling the Chart ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +To uninstall/delete the `my-release` deployment: + +```console +$ helm delete my-release --purge +``` + +The command removes all the Kubernetes components associated with the chart 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 Comcast configuration. There are several values here that will have to match our kubernetes configuration. + +## Configuration + +The following tables lists the configurable parameters of the Sentry chart and their default values. + +| Parameter | Description | Default | +| ------------------------------- | ------------------------------- | ---------------------------------------------------------- | +| `image.repository` | Comcast image | `billimek/comcastusage-for-influxdb` | +| `image.tag` | Comcast image tag | `latest` | +| `image.pullPolicy` | Comcast 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 | `comcast` | +| `config.influxdb.username` | InfluxDB username | `` | +| `config.influxdb.password` | InfluxDB password | `` | +| `config.influxdb.ssl` | InfluxDB connection using SSL | `false` | +| `config.comcast.username` | Comcast website login usernma | `someuser` | +| `config.comcast.password` | Comcast website login password | `somepassword` | +| `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, + +```console +helm install --name my-release \ + --set config.comcast.username=tonystark,config.comcast.password=mypassword \ + k8s-at-home/comcast +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name my-release -f values.yaml k8s-at-home/comcast +``` + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/comcast/values.yaml) file. It has several commented out suggested values. + +## InfluxDB metrics +``` +'measurement': 'comcast_data_usage', +'fields': { + 'used', + 'total', + 'unit' +} +``` diff --git a/charts/deconz/README.md b/charts/deconz/README.md index 10d4277f..d621067a 100644 --- a/charts/deconz/README.md +++ b/charts/deconz/README.md @@ -1,82 +1,102 @@ -# deconz +# deCONZ helm chart -![Version: 2.0.1](https://img.shields.io/badge/Version-2.0.1-informational?style=flat-square) ![AppVersion: 2.05.80](https://img.shields.io/badge/AppVersion-2.05.80-informational?style=flat-square) +This is a helm chart for [deCONZ](https://www.dresden-elektronik.de/funk/software/deconz.html) based on the [container image provided by marthoc](https://hub.docker.com/r/marthoc/deconz/). -A Helm chart for deploying deCONZ +## TL;DR -**Homepage:** +```shell +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/deconz +``` -## Maintainers +## Installing the Chart -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +To install the chart with the release name `my-release`: -## Source Code +```shell +helm install my-release k8s-at-home/deconz +``` -* -* +## Uninstalling the Chart -## Values +To uninstall/delete the `my-release` deployment: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| autoscaling.enabled | bool | `false` | | -| autoscaling.maxReplicas | int | `1` | | -| autoscaling.minReplicas | int | `1` | | -| extraVolumes | list | `[]` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"marthoc/deconz"` | | -| image.tag | string | `"amd64-2.05.80"` | | -| imagePullSecrets | list | `[]` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0].host | string | `"deconz.local"` | | -| ingress.path | string | `"/"` | | -| ingress.tls | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.accessMode | string | `"ReadWriteOnce"` | | -| persistence.annotations | object | `{}` | | -| persistence.enabled | bool | `false` | | -| persistence.size | string | `"1Gi"` | | -| podAnnotations | object | `{}` | | -| podSecurityContext | object | `{}` | | -| probes.liveness.enabled | bool | `true` | | -| probes.liveness.failureThreshold | int | `5` | | -| probes.liveness.initialDelaySeconds | int | `30` | | -| probes.liveness.timeoutSeconds | int | `10` | | -| probes.readiness.enabled | bool | `true` | | -| probes.readiness.failureThreshold | int | `5` | | -| probes.readiness.initialDelaySeconds | int | `30` | | -| probes.readiness.timeoutSeconds | int | `10` | | -| probes.startup.enabled | bool | `false` | | -| probes.startup.failureThreshold | int | `30` | | -| probes.startup.periodSeconds | int | `10` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| securityContext.privileged | bool | `true` | | -| service.clusterIP | string | `""` | | -| service.externalIPs | list | `[]` | | -| service.externalTrafficPolicy | string | `"Local"` | | -| service.httpPort | int | `80` | | -| service.loadBalancerIP | string | `""` | | -| service.type | string | `"ClusterIP"` | | -| service.vncPort | int | `5900` | | -| service.websocketPort | int | `443` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.name | string | `""` | | -| strategyType | string | `"Recreate"` | | -| timezone | string | `"UTC"` | | -| tolerations | list | `[]` | | -| vnc.enabled | bool | `true` | | -| vnc.existingSecret | string | `""` | | -| vnc.password | string | `"changeme"` | | -| zigbeeDevice.enabled | bool | `false` | | -| zigbeeDevice.hostPath | string | `"/dev/ttyUSB1"` | | +```shell +helm delete my-release --purge +``` ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +The command removes all the Kubernetes components associated with the chart 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/deconz/values.yaml) file. It has several commented out suggested values. + +| Parameter | Description | Default | +| ------------------------------------------- | -------------------------------------------------------------------------------------------- | ---------------------------------------------- | +| `replicaCount` | Number of replicas to scale to | `1` | +| `autoscaling.enabled` | Enables Pod auto-scaling | `false` | +| `autoscaling.minReplicas` | Minimum number of replicas to auto-scale to | `1` | +| `autoscaling.maxReplicas` | Maximum number of replicas to auto-scale to | `1` | +| `image.repository` | Image repository | `marthoc/deconz` | +| `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/marthoc/deconz/tags/). | `amd64-2.05.79` | +| `image.pullPolicy` | Image pull policy | `IfNotPresent` | +| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` | +| `timezone` | Timezone the instance should run as, e.g. 'America/New_York' | `UTC` | +| `zigbeeDevice.enabled` | Enables passing through a Zigbee device | `false` | +| `zigbeeDevice.hostPath` | HostPath of the Zigbee device that should be passed through | `/dev/ttyUSB1` | +| `vnc.enabled` | Enabled the built-in VNC server to access the application | `true` | +| `vnc.password` | VNC server password | `changeme` | +| `vnc.existingSecret` | Existing Kubernetes secret containing the VNC password | `nil` | +| `probes.liveness.enabled` | Enables liveness probe for the Pod | `true` | +| `probes.liveness.failureThreshold` | Specify liveness `failureThreshold` parameter for the Pod | `5` | +| `probes.liveness.initialDelaySeconds` | Specify liveness `initialDelaySeconds` parameter for the Pod | `60` | +| `probes.liveness.timeoutSeconds` | Specify liveness `timeoutSeconds` parameter for the Pod | `10` | +| `probes.readiness.enabled` | Enables readiness probe for the Pod | `true` | +| `probes.readiness.initialDelaySeconds` | Specify readiness `initialDelaySeconds` parameter for the Pod | `60` | +| `probes.readiness.failureThreshold` | Specify readiness `failureThreshold` parameter for the Pod | `5` | +| `probes.readiness.timeoutSeconds` | Specify readiness `timeoutSeconds` parameter for the Pod | `10` | +| `probes.startup.enabled` | Enables startup probe for the Pod | `false` | +| `probes.startup.failureThreshold` | Specify startup `failureThreshold` parameter for the Pod | `30` | +| `probes.startup.timeoutSeconds` | Specify startup `periodSeconds` parameter for the Pod | `10` | +| `service.type` | Kubernetes service type for the GUI | `ClusterIP` | +| `service.httpPort` | Kubernetes port where the GUI is exposed | `80` | +| `service.websocketPort` | Kubernetes port where the Websocket is exposed | `443` | +| `service.vncPort` | Kubernetes port where the VNC server is exposed | `5900` | +| `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` | +| `ingress.enabled` | Enables Ingress | `false` | +| `ingress.annotations` | Ingress annotations | `{}` | +| `ingress.labels` | Custom labels | `{}` | +| `ingress.path` | Ingress path | `/` | +| `ingress.hosts` | Ingress accepted hostnames | `chart-example.local` | +| `ingress.tls` | Ingress TLS configuration | `[]` | +| `persistence.enabled` | Use persistent volume to store configuration data | `true` | +| `persistence.annotations` | Key-value pairs to add as persistent volume claim annotations | `{}` | +| `persistence.storageClass` | Type of persistent volume claim | `-` | +| `persistence.existingClaim` | Use an existing PVC to persist data | `nil` | +| `persistence.accessMode` | Persistence access mode | `ReadWriteOnce` | +| `persistence.size` | Size of persistent volume claim | `1Gi` | +| `persistence.subPath` | Mount a sub dir of the persistent volume | `nil` | +| `extraVolumes` | Optionally add additional Volumes | `[]` | +| `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 | `{}` | + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install my-release \ + --set timezone="Europe/Amsterdam" \ + k8s-at-home/deconz +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install my-release -f values.yaml k8s-at-home/deconz +``` diff --git a/charts/digitalocean-dyndns/README.md b/charts/digitalocean-dyndns/README.md index a9dbe0ed..79d2618a 100644 --- a/charts/digitalocean-dyndns/README.md +++ b/charts/digitalocean-dyndns/README.md @@ -1,38 +1,62 @@ -# digitalocean-dyndns +# Dynamic DNS using DigitalOcean's DNS Services -![Version: 2.0.1](https://img.shields.io/badge/Version-2.0.1-informational?style=flat-square) ![AppVersion: 1.0](https://img.shields.io/badge/AppVersion-1.0-informational?style=flat-square) +A script that pushes the public IP address of the running machine to DigitalOcean's DNS API's. It requires an existing A record to update. The resulting container image is roughly around 7 MB (thanks to Alpine Linux). -Dynamic DNS using DigitalOcean's DNS Services +## TL;DR; -**Homepage:** +```console +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/digitalocean-dyndns +``` -## Maintainers +## Introduction -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +This code is adopted from [this original repo](https://github.com/tunix/digitalocean-dyndns) -## Source Code +## Installing the Chart -* -* +To install the chart with the release name `my-release`: -## Values +```console +$ helm install --name my-release k8s-at-home/digitalocean-dyndns +``` +## Uninstalling the Chart -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| digitialocean.domain | string | `"somedomain"` | | -| digitialocean.name | string | `"@"` | | -| digitialocean.sleep_interval | int | `300` | | -| digitialocean.token | string | `"sometoken"` | | -| image.pullPolicy | string | `"Always"` | | -| image.repository | string | `"tunix/digitalocean-dyndns"` | | -| image.tag | string | `"latest"` | | -| nodeSelector | object | `{}` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| tolerations | list | `[]` | | +To uninstall/delete the `my-release` deployment: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +```console +$ helm delete my-release --purge +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the Sentry chart and their default values. + +| Parameter | Description | Default | +| ------------------------------- | ------------------------------- | ---------------------------------------------------------- | +| `image.repository` | digitalocean-dyndns image | `tunix/digitalocean-dyndns` | +| `image.tag` | digitalocean-dyndns image tag | `latest` | +| `image.pullPolicy` | digitalocean-dyndns image pull policy | `Always` | +| `digitialocean.token` | The token you generate in DigitalOcean's API settings. | `` | +| `digitialocean.domain` | The domain your subdomain is registered at. (i.e. foo.com for home.foo.com) | `` | +| `digitialocean.name` | Subdomain to use. (name in A record) (i.e. home for home.foo.com or @ for no subdomain) | `@` | +| `digitialocean.sleep_interval` | Polling time in seconds | `300` | + + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install --name my-release \ + --set config.digitalocean.token=thisismyapikey \ + k8s-at-home/digitalocean-dyndns +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name my-release -f values.yaml k8s-at-home/digitalocean-dyndns +``` + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/digitalocean-dyndns/values.yaml) file. It has several commented out suggested values. diff --git a/charts/duplicati/README.md b/charts/duplicati/README.md index 0d87baef..f5b409db 100644 --- a/charts/duplicati/README.md +++ b/charts/duplicati/README.md @@ -1,72 +1,109 @@ -# duplicati +# Duplicati Backup Client -![Version: 2.0.1](https://img.shields.io/badge/Version-2.0.1-informational?style=flat-square) ![AppVersion: v2.0.5.1](https://img.shields.io/badge/AppVersion-v2.0.5.1-informational?style=flat-square) +This is a helm chart for [duplicati](https://github.com/duplicati/duplicati) leveraging the [Linuxserver.io image](https://hub.docker.com/r/linuxserver/duplicati/) -Store securely encrypted backups on cloud storage services! +## TL;DR; -**Homepage:** +```shell +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/duplicati +``` -## Maintainers +## Installing the Chart -| Name | Email | Url | -| ---- | ------ | --- | -| skaro13 | simon.caron@protonmail.com | | +To install the chart with the release name `my-release`: -## Source Code +```console +helm install my-release k8s-at-home/duplicati +``` -* -* +## Uninstalling the Chart -## Values +To uninstall/delete the `my-release` deployment: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| cliArgs | string | `""` | | -| deploymentAnnotations | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"linuxserver/duplicati"` | | -| image.tag | string | `"v2.0.5.1-2.0.5.1_beta_2020-01-18-ls72"` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0] | string | `"chart-example.local"` | | -| ingress.labels | object | `{}` | | -| ingress.path | string | `"/"` | | -| ingress.tls | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.backups.accessMode | string | `"ReadWriteOnce"` | | -| persistence.backups.enabled | bool | `true` | | -| persistence.backups.size | string | `"1Gi"` | | -| persistence.backups.skipuninstall | bool | `false` | | -| persistence.config.accessMode | string | `"ReadWriteOnce"` | | -| persistence.config.enabled | bool | `true` | | -| persistence.config.size | string | `"1Gi"` | | -| persistence.config.skipuninstall | bool | `false` | | -| persistence.extraExistingClaimMounts | list | `[]` | | -| persistence.source.accessMode | string | `"ReadWriteOnce"` | | -| persistence.source.enabled | bool | `true` | | -| persistence.source.size | string | `"1Gi"` | | -| persistence.source.skipuninstall | bool | `false` | | -| pgid | int | `1001` | | -| podAnnotations | object | `{}` | | -| probes.liveness.failureThreshold | int | `5` | | -| probes.liveness.initialDelaySeconds | int | `60` | | -| probes.liveness.timeoutSeconds | int | `10` | | -| probes.readiness.failureThreshold | int | `5` | | -| probes.readiness.initialDelaySeconds | int | `60` | | -| probes.readiness.timeoutSeconds | int | `10` | | -| puid | int | `1001` | | -| resources | object | `{}` | | -| service.annotations | object | `{}` | | -| service.labels | object | `{}` | | -| service.loadBalancerIP | string | `nil` | | -| service.port | int | `8200` | | -| service.type | string | `"ClusterIP"` | | -| strategyType | string | `"Recreate"` | | -| timezone | string | `"UTC"` | | -| tolerations | list | `[]` | | +```console +helm delete my-release +``` ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the Sentry chart and their default values. + +| Parameter | Description | Default | +|----------------------------|-------------------------------------|---------------------------------------------------------| +| `image.repository` | Image repository | `linuxserver/duplicati` | +| `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/linuxserver/duplicati/tags/).| `v2.0.5.1-2.0.5.1_beta_2020-01-18-ls58`| +| `image.pullPolicy` | Image pull policy | `IfNotPresent` | +| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` | +| `timezone` | Timezone the duplicati instance should run as, e.g. 'America/New_York' | `UTC` | +| `puid` | process userID the duplicati instance should run as | `1001` | +| `pgid` | process groupID the duplicati instance should run as | `1001` | +| `cliArgs` | optionally specify any CLI variables you want to launch the app with | `nil` | +| `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.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` | +| `Service.type` | Kubernetes service type for the duplicati GUI | `ClusterIP` | +| `Service.port` | Kubernetes port where the duplicati GUI is exposed| `8200` | +| `Service.annotations` | Service annotations for the duplicati GUI | `{}` | +| `Service.labels` | Custom labels | `{}` | +| `Service.loadBalancerIP` | Loadbalance IP for the duplicati GUI | `{}` | +| `Service.loadBalancerSourceRanges` | List of IP CIDRs allowed access to load balancer (if supported) | None +| `ingress.enabled` | Enables Ingress | `false` | +| `ingress.annotations` | Ingress annotations | `{}` | +| `ingress.labels` | Custom labels | `{}` +| `ingress.path` | Ingress path | `/` | +| `ingress.hosts` | Ingress accepted hostnames | `chart-example.local` | +| `ingress.tls` | Ingress TLS configuration | `[]` | +| `persistence.config.enabled` | Use persistent volume to store configuration data | `true` | +| `persistence.config.size` | Size of persistent volume claim | `1Gi` | +| `persistence.config.existingClaim`| Use an existing PVC to persist data | `nil` | +| `persistence.config.storageClass` | Type of persistent volume claim | `-` | +| `persistence.config.accessMode` | Persistence access mode | `ReadWriteOnce` | +| `persistence.config.skipuninstall` | Do not delete the pvc upon helm uninstall | `false` | +| `persistence.source.enabled` | Use persistent volume to store source data | `true` | +| `persistence.source.size` | Size of persistent volume claim | `10Gi` | +| `persistence.source.existingClaim`| Use an existing PVC to persist data | `nil` | +| `persistence.source.storageClass` | Type of persistent volume claim | `-` | +| `persistence.source.accessMode` | Persistence access mode | `ReadWriteOnce` | +| `persistence.source.skipuninstall` | Do not delete the pvc upon helm uninstall | `false` | +| `persistence.backups.enabled` | Use persistent volume to store backups data | `true` | +| `persistence.backups.size` | Size of persistent volume claim | `10Gi` | +| `persistence.backups.existingClaim`| Use an existing PVC to persist data | `nil` | +| `persistence.backups.storageClass` | Type of persistent volume claim | `-` | +| `persistence.backups.accessMode` | Persistence access mode | `ReadWriteOnce` | +| `persistence.backups.skipuninstall` | Do not delete the pvc upon helm uninstall | `false` | +| `persistence.extraExistingClaimMounts` | Optionally add multiple existing claims | `[]` | +| `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`. For example, + +```console +helm install my-release \ + --set timezone="America/New York" \ + k8s-at-home/duplicati +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install my-release -f values.yaml k8s-at-home/duplicati +``` + +--- +**NOTE** + +If you get `Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: ...` it may be because you uninstalled the chart with `skipuninstall` enabled, you need to manually delete the pvc or use `existingClaim`. + +--- + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/duplicati/values.yaml) file. It has several commented out suggested values. diff --git a/charts/homebridge/README.md b/charts/homebridge/README.md index a5289aca..bbe50f50 100644 --- a/charts/homebridge/README.md +++ b/charts/homebridge/README.md @@ -1,75 +1,100 @@ -# homebridge +# Homebridge -![Version: 1.0.2](https://img.shields.io/badge/Version-1.0.2-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) +This is a helm chart for [Homebridge](https://homebridge.io) based on [Docker Homebridge](https://github.com/oznu/docker-homebridge). -A lightweight NodeJS server that emulates the iOS HomeKit API +## TL;DR; -**Homepage:** +```shell +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/homebridge +``` -## Maintainers +## Installing the Chart -| Name | Email | Url | -| ---- | ------ | --- | -| bjw-s | bjw-s@users.noreply.github.com | | +To install the chart with the release name `my-release`: -## Source Code +```shell +helm install --name my-release k8s-at-home/homebridge +``` -* -* +## Uninstalling the Chart -## Values +To uninstall/delete the `my-release` deployment: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| config.additionalPackages | list | `[]` | | -| config.enableUI | bool | `true` | | -| config.plugins | list | `[]` | | -| extraEnvs | list | `[]` | | -| fullnameOverride | string | `""` | | -| hostNetwork | bool | `false` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"oznu/homebridge"` | | -| image.tag | string | `"3.1.0"` | | -| imagePullSecrets | list | `[]` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0] | string | `"chart-example.local"` | | -| ingress.path | string | `"/"` | | -| ingress.tls | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.accessMode | string | `"ReadWriteOnce"` | | -| persistence.enabled | bool | `true` | | -| persistence.size | string | `"1Gi"` | | -| persistence.skipuninstall | bool | `false` | | -| pgid | int | `1000` | | -| podAnnotations | object | `{}` | | -| podSecurityContext | object | `{}` | | -| probes.liveness.enabled | bool | `true` | | -| probes.liveness.failureThreshold | int | `5` | | -| probes.liveness.initialDelaySeconds | int | `60` | | -| probes.liveness.timeoutSeconds | int | `10` | | -| probes.readiness.enabled | bool | `true` | | -| probes.readiness.failureThreshold | int | `5` | | -| probes.readiness.initialDelaySeconds | int | `60` | | -| probes.readiness.timeoutSeconds | int | `10` | | -| probes.startup.enabled | bool | `false` | | -| probes.startup.failureThreshold | int | `30` | | -| probes.startup.periodSeconds | int | `10` | | -| puid | int | `1000` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| service.homebridgePort | int | `51826` | | -| service.httpPort | int | `8080` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.name | string | `""` | | -| strategyType | string | `"Recreate"` | | -| timezone | string | `"UTC"` | | -| tolerations | list | `[]` | | +```shell +helm delete my-release --purge +``` ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the Home Assistant chart and their default values. + +| 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`. For example, + +```shell +helm install --name my-release \ + --set timezone="UTC" \ + 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, + +```shell +helm install --name my-release -f values.yaml k8s-at-home/homebridge +``` + +Read through the [values.yaml](values.yaml) file. It has several commented out suggested values. diff --git a/charts/intel-gpu-plugin/README.md b/charts/intel-gpu-plugin/README.md index ac38c191..86f1ef89 100644 --- a/charts/intel-gpu-plugin/README.md +++ b/charts/intel-gpu-plugin/README.md @@ -1,41 +1,73 @@ -# intel-gpu-plugin +# intel-gpu-plugin helm chart -![Version: 1.0.0](https://img.shields.io/badge/Version-1.0.0-informational?style=flat-square) ![AppVersion: 0.18.1](https://img.shields.io/badge/AppVersion-0.18.1-informational?style=flat-square) +This is a helm chart that will deploy [intel-gpu-plugin](https://github.com/intel/intel-device-plugins-for-kubernetes/blob/master/cmd/gpu_plugin) as a DaemonSet. -The Intel GPU plugin facilitates offloading the processing of computation intensive workloads to GPU hardware +The GPU plugin facilitates offloading the processing of computation intensive workloads to GPU hardware. -**Homepage:** +## TL;DR -## Maintainers +```shell +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/intel-gpu-plugin +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Installing the Chart -## Source Code +To install the chart with the release name `my-release`: -* +```shell +helm install my-release k8s-at-home/intel-gpu-plugin +``` -## Values +## Uninstalling the Chart -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"intel/intel-gpu-plugin"` | | -| image.tag | string | `"0.18.1"` | | -| imagePullSecrets | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| podAnnotations | object | `{}` | | -| podSecurityContext | object | `{}` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.name | string | `""` | | -| tolerations | list | `[]` | | +To uninstall/delete the `my-release` deployment: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +```shell +helm delete my-release --purge +``` + +The command removes all the Kubernetes components associated with the chart 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/intel-gpu-plugin/values.yaml) file. It has several commented out suggested values. + +| Parameter | Description | Default | +| ------------------------------------------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------------- | +| `image.repository` | Image repository | `intel/intel-gpu-plugin` | +| `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/intel/intel-gpu-plugin/tags). | `0.18.1` | +| `image.pullPolicy` | Image pull policy | `IfNotPresent` | +| `strategyType` | Specifies the strategy used to replace old Pods by new ones | `Recreate` | +| `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, + +```shell +helm install my-release \ + --set image.pullPolicy="Always" \ + k8s-at-home/intel-gpu-plugin +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```shell +helm install my-release -f values.yaml k8s-at-home/intel-gpu-plugin +``` + +### Node Feature Discovery + +If your cluster runs [Node Feature Discovery](https://github.com/k8s-at-home/charts/blob/master/charts/node-feature-discovery), you can deploy the device plugin only on nodes with Intel GPU by specifying the desired `nodeSelector` or `affinity` in your values. For example (make sure to update to your exact feature label): + +```yaml +affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: feature.node.kubernetes.io/pci-0300_8086.present + operator: In + values: + - "true" +``` diff --git a/charts/librespeed/README.md b/charts/librespeed/README.md index bda8b090..d690307d 100644 --- a/charts/librespeed/README.md +++ b/charts/librespeed/README.md @@ -1,58 +1,96 @@ -# librespeed +# Librespeed -![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![AppVersion: 1.0.6-12](https://img.shields.io/badge/AppVersion-1.0.6--12-informational?style=flat-square) +HTML5 based speedtest with password protected history -Librespeed is a HTML5 webpage to test upload and download speeds +**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)** -**Homepage:** +## TL;DR; -## Maintainers +```shell +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/librespeed +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Introduction -## Source Code +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 -## Values +To install the chart with the release name `my-release`: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| deploymentAnnotations | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"adolfintel/speedtest"` | | -| image.tag | string | `"latest"` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0] | string | `"chart-example.local"` | | -| ingress.path | string | `"/"` | | -| ingress.tls | list | `[]` | | -| livenessProbePath | string | `"/"` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.accessMode | string | `"ReadWriteOnce"` | | -| persistence.enabled | bool | `false` | | -| persistence.size | string | `"1Gi"` | | -| pgid | string | `"1000"` | | -| podAnnotations | object | `{}` | | -| puid | string | `"1000"` | | -| readinessProbePath | string | `"/"` | | -| resources | object | `{}` | | -| service.annotations | object | `{}` | | -| service.labels | object | `{}` | | -| service.loadBalancerIP | string | `nil` | | -| service.port | int | `80` | | -| service.type | string | `"ClusterIP"` | | -| strategyType | string | `"Recreate"` | | -| telemetry | bool | `false` | | -| timezone | string | `"UTC"` | | -| tolerations | list | `[]` | | +```shell +helm install --name my-release k8s-at-home/librespeed +``` +## Uninstalling the Chart ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +To uninstall/delete the `my-release` deployment: + +```shell +helm delete my-release --purge +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the Librespeed chart and their default values. + +| 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`. For example, + +```shell +helm install --name my-release \ + --set config.timezone="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, + +```shell +helm install --name my-release -f values.yaml k8s-at-home/librespeed +``` + +Read through the [values.yaml](values.yaml) file. It has several commented out suggested values. diff --git a/charts/modem-stats/README.md b/charts/modem-stats/README.md index de861e4d..13748011 100644 --- a/charts/modem-stats/README.md +++ b/charts/modem-stats/README.md @@ -1,40 +1,69 @@ -# modem-stats +# cable modem (sb6183) signal and stats collection agent for influxdb -![Version: 3.0.0](https://img.shields.io/badge/Version-3.0.0-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square) +![Screenshot](https://camo.githubusercontent.com/939e044c0491abf790d91bd1d7f909b187e4098c/68747470733a2f2f692e696d6775722e636f6d2f70705a6a6e6b502e706e67) -periodic cable modem data collection and save the results to InfluxDB +This tool allows you to run periodic scanning of the sb6183 cable modem and save the results to Influxdb -**Homepage:** +## TL;DR; -## Maintainers +```console +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/modem-stats +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Installing the Chart -## Source Code +To install the chart with the release name `my-release`: -* -* +```console +$ helm install --name my-release k8s-at-home/modem-stats +``` +## Uninstalling the Chart -## Values +To uninstall/delete the `my-release` deployment: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| config.delay | int | `3600` | | -| config.influxdb.database | string | `"cable_modem_stats"` | | -| config.influxdb.host | string | `"influxdb-influxdb"` | | -| config.influxdb.port | int | `8086` | | -| config.influxdb.ssl | bool | `false` | | -| config.modem.url | string | `"http://192.168.100.1/RgConnect.asp"` | | -| debug | bool | `false` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"billimek/sb6183-for-influxdb"` | | -| image.tag | string | `"latest"` | | -| nodeSelector | object | `{}` | | -| podAnnotations | object | `{}` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | +```console +$ helm delete my-release --purge +``` ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The configuration is set as a block of text through a configmap and mouted as a file in /src/config.ini Any value in this text block should match the defined sb6183 configuration. There are several values here that will have to match our kubernetes configuration. + +## Configuration + +The following tables lists the configurable parameters of the Sentry chart and their default values. + +| Parameter | Description | Default | +| ------------------------------- | ------------------------------- | ---------------------------------------------------------- | +| `image.repository` | modem-stats image | `billimek/sb6183-for-influxdb` | +| `image.tag` | modem-stats image tag | `latest` | +| `image.pullPolicy` | modem-stats 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 | `sb6183` | +| `config.influxdb.username` | InfluxDB username | `` | +| `config.influxdb.password` | InfluxDB password | `` | +| `config.influxdb.ssl` | InfluxDB connection using SSL | `false` | +| `config.modem.url` | sb6183 stats URL page | `http://192.168.100.1/RgConnect.asp` | +| `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, + +```console +$ helm install --name my-release \ + --set onfig.influxdb.host=some-influx-host \ + k8s-at-home/modem-stats +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +$ helm install --name my-release -f values.yaml k8s-at-home/modem-stats +``` + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/modem-stats/values.yaml) file. It has several commented out suggested values. diff --git a/charts/mosquitto/README.md b/charts/mosquitto/README.md index 2abac56e..d660ea32 100644 --- a/charts/mosquitto/README.md +++ b/charts/mosquitto/README.md @@ -1,65 +1,46 @@ -# mosquitto +# Mosquitto: A small MQTT broker -![Version: 0.7.0](https://img.shields.io/badge/Version-0.7.0-informational?style=flat-square) ![AppVersion: 2.0.4](https://img.shields.io/badge/AppVersion-2.0.4-informational?style=flat-square) +This is a helm chart for [mosquitto](https://mosquitto.org/) -Eclipse Mosquitto - An open source MQTT broker +## TL;DR; -**Homepage:** +```shell +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/mosquitto +``` -## Maintainers +## Installing the Chart -| Name | Email | Url | -| ---- | ------ | --- | -| ishioni | helm@movishell.pl | | +To install the chart with the release name `my-release`: -## Source Code +```console +helm install --name my-release k8s-at-home/mosquitto +``` -* +## Uninstalling the Chart -## Values +To uninstall/delete the `my-release` deployment: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| extraVolumeMounts | list | `[]` | | -| extraVolumes | list | `[]` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"eclipse-mosquitto"` | | -| image.tag | string | `"{{ .Chart.AppVersion }}"` | | -| imagePullSecrets | list | `[]` | | -| monitoring.podMonitor.enabled | bool | `false` | | -| monitoring.sidecar.args[0] | string | `"--use-splitted-config"` | | -| monitoring.sidecar.enabled | bool | `false` | | -| monitoring.sidecar.envs[0].name | string | `"MQTT_CLIENT_ID"` | | -| monitoring.sidecar.envs[0].value | string | `"exporter"` | | -| monitoring.sidecar.envs[1].name | string | `"BROKER_HOST"` | | -| monitoring.sidecar.envs[1].valueFrom.fieldRef.fieldPath | string | `"status.podIP"` | | -| monitoring.sidecar.image.pullPolicy | string | `"IfNotPresent"` | | -| monitoring.sidecar.image.repository | string | `"nolte/mosquitto-exporter"` | | -| monitoring.sidecar.image.tag | string | `"v0.6.3"` | | -| monitoring.sidecar.port | int | `9234` | | -| monitoring.sidecar.resources.limits.cpu | string | `"300m"` | | -| monitoring.sidecar.resources.limits.memory | string | `"128Mi"` | | -| monitoring.sidecar.resources.requests.cpu | string | `"100m"` | | -| monitoring.sidecar.resources.requests.memory | string | `"64Mi"` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.accessMode | string | `"ReadWriteOnce"` | | -| persistence.annotations | object | `{}` | | -| persistence.enabled | bool | `false` | | -| persistence.size | string | `"5Gi"` | | -| podSecurityContext | object | `{}` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| service.annotations | object | `{}` | | -| service.port | int | `1883` | | -| service.type | string | `"ClusterIP"` | | -| service.websocketPort | int | `9001` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.name | string | `nil` | | -| tolerations | list | `[]` | | +```console +helm delete my-release --purge +``` ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/mosquitto/values.yaml) file. It has several commented out suggested values. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install --name my-release \ + --set persistence.enabled=true \ + k8s-at-home/mosquitto +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name my-release -f values.yaml k8s-at-home/mosquitto +``` diff --git a/charts/node-feature-discovery/README.md b/charts/node-feature-discovery/README.md index a5b1212b..9f3d9c54 100644 --- a/charts/node-feature-discovery/README.md +++ b/charts/node-feature-discovery/README.md @@ -1,63 +1,72 @@ -# node-feature-discovery +# node-feature-discovery helm chart -![Version: 2.1.0](https://img.shields.io/badge/Version-2.1.0-informational?style=flat-square) ![AppVersion: 0.7.0](https://img.shields.io/badge/AppVersion-0.7.0-informational?style=flat-square) +This is a helm chart for [node-feature-discovery](https://github.com/kubernetes-sigs/node-feature-discovery) using the master/worker pattern. -Detect hardware features available on each node in a Kubernetes cluster, and advertises those features using node labels +## TL;DR -**Homepage:** +```shell +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/node-feature-discovery +``` -## Maintainers +## Installing the Chart -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +To install the chart with the release name `my-release`: -## Source Code +```shell +helm install my-release k8s-at-home/node-feature-discovery +``` -* -* +## Uninstalling the Chart -## Values +To uninstall/delete the `my-release` deployment: -| 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"` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"gcr.io/k8s-staging-nfd/node-feature-discovery"` | | -| image.tag | string | `"v0.7.0"` | | -| imagePullSecrets | list | `[]` | | -| master.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].preference.matchExpressions[0].key | string | `"node-role.kubernetes.io/master"` | | -| master.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].preference.matchExpressions[0].operator | string | `"In"` | | -| master.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].preference.matchExpressions[0].values[0] | string | `""` | | -| master.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].weight | int | `1` | | -| master.nodeSelector | object | `{}` | | -| master.replicaCount | int | `1` | | -| master.resources | object | `{}` | | -| master.securityContext | object | `{}` | | -| master.tolerations[0].effect | string | `"NoSchedule"` | | -| master.tolerations[0].key | string | `"node-role.kubernetes.io/master"` | | -| master.tolerations[0].operator | string | `"Equal"` | | -| master.tolerations[0].value | string | `""` | | -| nameOverride | string | `""` | | -| podAnnotations | object | `{}` | | -| podSecurityContext | object | `{}` | | -| rbac.create | bool | `true` | | -| service.clusterIP | string | `""` | | -| service.externalIPs | list | `[]` | | -| service.externalTrafficPolicy | string | `nil` | | -| service.loadBalancerIP | string | `""` | | -| service.port | int | `8080` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.name | string | `""` | | -| sources | list | `[]` | | -| worker.affinity | object | `{}` | | -| worker.nodeSelector | object | `{}` | | -| worker.resources | object | `{}` | | -| worker.securityContext | object | `{}` | | -| worker.tolerations | list | `[]` | | +```shell +helm delete my-release --purge +``` ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +The command removes all the Kubernetes components associated with the chart 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. + +| 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, + +```console +helm install my-release \ + --set image.pullPolicy="Always" \ + 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, + +```console +helm install my-release -f values.yaml k8s-at-home/node-feature-discovery +``` diff --git a/charts/oauth2-proxy/README.md b/charts/oauth2-proxy/README.md index 34aec658..1463a6c2 100644 --- a/charts/oauth2-proxy/README.md +++ b/charts/oauth2-proxy/README.md @@ -1,82 +1,176 @@ # oauth2-proxy -![Version: 4.4.0](https://img.shields.io/badge/Version-4.4.0-informational?style=flat-square) ![AppVersion: 5.1.0](https://img.shields.io/badge/AppVersion-5.1.0-informational?style=flat-square) +[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. -A reverse proxy that provides authentication with Google, Github or other providers +## TL;DR; -**Homepage:** +```console +$ helm install stable/oauth2-proxy +``` -## Maintainers +## Introduction -| Name | Email | Url | -| ---- | ------ | --- | -| carpenike | ryan@ryanholt.net | | +This chart bootstraps an oauth2-proxy deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. -## Source Code +## Installing the Chart -* +To install the chart with the release name `my-release`: -## Requirements +```console +$ helm install stable/oauth2-proxy --name my-release +``` -Kubernetes: `>=1.9.0-0` +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. -## Values +## Uninstalling the Chart -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| authenticatedEmailsFile.enabled | bool | `false` | | -| authenticatedEmailsFile.restricted_access | string | `""` | | -| authenticatedEmailsFile.template | string | `""` | | -| config.clientID | string | `"XXXXXXX"` | | -| config.clientSecret | string | `"XXXXXXXX"` | | -| config.configFile | string | `"email_domains = [ \"*\" ]\nupstreams = [ \"file:///dev/null\" ]"` | | -| config.cookieSecret | string | `"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"` | | -| config.google | object | `{}` | | -| extraArgs | object | `{}` | | -| extraEnv | list | `[]` | | -| extraVolumeMounts | list | `[]` | | -| extraVolumes | list | `[]` | | -| htpasswdFile.enabled | bool | `false` | | -| htpasswdFile.entries | object | `{}` | | -| htpasswdFile.existingSecret | string | `""` | | -| httpScheme | string | `"http"` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"quay.io/oauth2-proxy/oauth2-proxy"` | | -| image.tag | string | `"v6.1.1"` | | -| ingress.enabled | bool | `false` | | -| ingress.path | string | `"/"` | | -| initContainers | list | `[]` | | -| livenessProbe.enabled | bool | `true` | | -| livenessProbe.initialDelaySeconds | int | `0` | | -| livenessProbe.timeoutSeconds | int | `1` | | -| nodeSelector | object | `{}` | | -| podAnnotations | object | `{}` | | -| podDisruptionBudget.enabled | bool | `true` | | -| podDisruptionBudget.minAvailable | int | `1` | | -| podLabels | object | `{}` | | -| podSecurityContext | object | `{}` | | -| priorityClassName | string | `""` | | -| proxyVarsAsSecrets | bool | `true` | | -| readinessProbe.enabled | bool | `true` | | -| readinessProbe.initialDelaySeconds | int | `0` | | -| readinessProbe.periodSeconds | int | `10` | | -| readinessProbe.successThreshold | int | `1` | | -| readinessProbe.timeoutSeconds | int | `1` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| securityContext.enabled | bool | `false` | | -| securityContext.runAsNonRoot | bool | `true` | | -| service.annotations | object | `{}` | | -| service.port | int | `80` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.enabled | bool | `true` | | -| serviceAccount.name | string | `nil` | | -| tolerations | list | `[]` | | -| topologySpreadConstraints.enabled | bool | `false` | | -| topologySpreadConstraints.maxSkew | int | `1` | | -| topologySpreadConstraints.topologyKey | string | `"topology.kubernetes.io/zone"` | | -| topologySpreadConstraints.whenUnsatisfiable | string | `"DoNotSchedule"` | | +To uninstall/delete the `my-release` deployment: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +```console +$ helm delete my-release +``` + +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. + +## Configuration + +The following table lists the configurable parameters of the oauth2-proxy chart and their default values. + +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, + +```console +$ helm install stable/oauth2-proxy --name my-release \ + --set=image.tag=v0.0.2,resources.limits.cpu=200m +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +$ helm install stable/oauth2-proxy --name my-release -f values.yaml +``` + +> **Tip**: You can use the default [values.yaml](values.yaml) + +## 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..== +``` diff --git a/charts/plex/README.md b/charts/plex/README.md index b7073d98..d086f384 100644 --- a/charts/plex/README.md +++ b/charts/plex/README.md @@ -1,125 +1,48 @@ -# plex +# Plex Media Server helm chart -![Version: 2.3.0](https://img.shields.io/badge/Version-2.3.0-informational?style=flat-square) ![AppVersion: 1.20.2.3402](https://img.shields.io/badge/AppVersion-1.20.2.3402-informational?style=flat-square) +This is an opinionated helm chart for Plex Media Center based on the [official container image](https://hub.docker.com/r/plexinc/pms-docker/). -Plex Media Server +This chart is 'forked' from the excellent [munnerz/kube-plex](https://github.com/munnerz/kube-plex) repo in order to allow for more timely updates and publishing to a helm registry. **NOTE:** This chart is not compatible as an upgrade from the `kube-plex` chart. -**Homepage:** +## TL;DR -## Maintainers +```shell +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/plex +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Installing the Chart -## Source Code +To install the chart with the release name `plex`: -* -* +```console +helm install plex k8s-at-home/plex +``` -## Values +## Uninstalling the Chart -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| certificate.pkcsMangler.certificateSecret.crtName | string | `"tls.crt"` | | -| certificate.pkcsMangler.certificateSecret.keyName | string | `"tls.key"` | | -| certificate.pkcsMangler.certificateSecret.name | string | `""` | | -| certificate.pkcsMangler.certificateSecret.volume.mountPath | string | `"/etc/plex-certs"` | | -| certificate.pkcsMangler.certificateSecret.volume.name | string | `"plex-certs"` | | -| certificate.pkcsMangler.configmap.annotations | object | `{}` | | -| certificate.pkcsMangler.configmap.labels | object | `{}` | | -| certificate.pkcsMangler.configmap.name | string | `"42-pkcs-mangler"` | | -| certificate.pkcsMangler.enabled | bool | `false` | | -| certificate.pkcsMangler.image.repository | string | `"tlsprint/openssl"` | | -| certificate.pkcsMangler.image.tag | string | `"1.1.1f"` | | -| certificate.pkcsMangler.pfxInContainerPath | string | `"/config/plex.pfx"` | | -| certificate.pkcsMangler.pfxPassword.annotations | object | `{}` | | -| certificate.pkcsMangler.pfxPassword.labels | object | `{}` | | -| certificate.pkcsMangler.pfxPassword.passwordKey | string | `"pfx-password"` | | -| certificate.pkcsMangler.pfxPassword.secretName | string | `"plex-media-server-pfx-password"` | | -| certificate.pkcsMangler.pfxPassword.value | string | `"setpassword"` | | -| certificate.pkcsMangler.setPlexPreferences.customCertificateDomain | string | `""` | | -| certificate.pkcsMangler.setPlexPreferences.enabled | bool | `true` | | -| certificate.pkcsMangler.volume.defaultMode | int | `493` | | -| certificate.pkcsMangler.volume.mountPath | string | `"/etc/cont-init.d/42-pkcs-mangler"` | | -| certificate.pkcsMangler.volume.name | string | `"42-pkcs-mangler"` | | -| certificate.pkcsMangler.volume.subPath | string | `"42-pkcs-mangler"` | | -| claimToken | string | `""` | | -| deploymentAnnotations | object | `{}` | | -| fullnameOverride | string | `""` | | -| hostNetwork | bool | `false` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"plexinc/pms-docker"` | | -| image.tag | string | `"1.20.2.3402-0fec14d92"` | | -| imagePullSecrets | list | `[]` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0] | string | `"chart-example.local"` | | -| ingress.path | string | `"/"` | | -| ingress.tls | list | `[]` | | -| logging.promtail.enabled | bool | `false` | | -| logging.promtail.image.pullPolicy | string | `"IfNotPresent"` | | -| logging.promtail.image.repository | string | `"grafana/promtail"` | | -| logging.promtail.image.tag | string | `"1.6.0"` | | -| logging.promtail.loki.url | string | `"http://loki.logs.svc.cluster.local:3100/loki/api/v1/push"` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.config.accessMode | string | `"ReadWriteOnce"` | | -| persistence.config.size | string | `"20Gi"` | | -| persistence.config.storageClass | string | `""` | | -| persistence.data.accessMode | string | `"ReadWriteOnce"` | | -| persistence.data.enabled | bool | `true` | | -| persistence.data.size | string | `"40Gi"` | | -| persistence.data.storageClass | string | `""` | | -| persistence.extraData | list | `[]` | | -| persistence.extraMounts | list | `[]` | | -| persistence.transcode.accessMode | string | `"ReadWriteOnce"` | | -| persistence.transcode.emptyDir.medium | string | `""` | | -| persistence.transcode.enabled | bool | `false` | | -| persistence.transcode.size | string | `"20Gi"` | | -| persistence.transcode.storageClass | string | `""` | | -| plexPreferences.configmap.annotations | object | `{}` | | -| plexPreferences.configmap.labels | object | `{}` | | -| plexPreferences.configmap.name | string | `"41-plex-preferences"` | | -| plexPreferences.enabled | bool | `false` | | -| plexPreferences.volume.defaultMode | int | `493` | | -| plexPreferences.volume.mountPath | string | `"/etc/cont-init.d/41-plex-preferences"` | | -| plexPreferences.volume.name | string | `"41-plex-preferences"` | | -| plexPreferences.volume.subPath | string | `"41-plex-preferences"` | | -| podAnnotations | object | `{}` | | -| podSecurityContext | object | `{}` | | -| probes.liveness.enabled | bool | `true` | | -| probes.liveness.failureThreshold | int | `5` | | -| probes.liveness.httpGet.path | string | `"/identity"` | | -| probes.liveness.httpGet.port | int | `32400` | | -| probes.liveness.periodSeconds | int | `10` | | -| probes.readiness.enabled | bool | `true` | | -| probes.readiness.failureThreshold | int | `5` | | -| probes.readiness.httpGet.path | string | `"/identity"` | | -| probes.readiness.httpGet.port | int | `32400` | | -| probes.readiness.periodSeconds | int | `10` | | -| probes.startup.enabled | bool | `true` | | -| probes.startup.failureThreshold | int | `30` | | -| probes.startup.httpGet.path | string | `"/identity"` | | -| probes.startup.httpGet.port | int | `32400` | | -| probes.startup.initialDelaySeconds | int | `5` | | -| probes.startup.periodSeconds | int | `10` | | -| proxy.enabled | bool | `false` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| serviceTCP.annotations | object | `{}` | | -| serviceTCP.labels | object | `{}` | | -| serviceTCP.loadBalancerIP | string | `nil` | | -| serviceTCP.port | int | `32400` | | -| serviceTCP.type | string | `"ClusterIP"` | | -| serviceUDP.annotations | object | `{}` | | -| serviceUDP.labels | object | `{}` | | -| serviceUDP.loadBalancerIP | string | `nil` | | -| serviceUDP.type | string | `"ClusterIP"` | | -| strategyType | string | `"Recreate"` | | -| timezone | string | `"UTC"` | | -| tolerations | list | `[]` | | +To uninstall/delete the `plex` deployment: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +```console +helm delete plex +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/plex/values.yaml) file. It has several commented out suggested values. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install plex \ + --set timezone="America/New York" \ + k8s-at-home/plex +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install plex -f values.yaml k8s-at-home/plex +``` diff --git a/charts/powerdns/README.md b/charts/powerdns/README.md deleted file mode 100644 index 325dcc9c..00000000 --- a/charts/powerdns/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# powerdns - -![Version: 3.0.3](https://img.shields.io/badge/Version-3.0.3-informational?style=flat-square) ![AppVersion: v4.3.1](https://img.shields.io/badge/AppVersion-v4.3.1-informational?style=flat-square) - -PowerDNS is a DNS server, written in C++ and licensed under the GPL. It runs on most Unix derivatives. PowerDNS features a large number of different backends ranging from simple BIND style zonefiles to relational databases and load balancing/failover algorithms. A DNS recursor is provided as a separate program. - -**Homepage:** - -## Maintainers - -| Name | Email | Url | -| ---- | ------ | --- | -| carpenike | ryan@ryanholt.net | | - -## Source Code - -* - -## Requirements - -| Repository | Name | Version | -|------------|------|---------| -| https://charts.bitnami.com/bitnami | mariadb | 9.2.5 | -| https://charts.bitnami.com/bitnami | postgresql | 10.2.7 | - -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"Always"` | | -| image.repository | string | `"naps/powerdns"` | | -| image.tag | string | `"4.3.1"` | | -| imagePullSecrets | list | `[]` | | -| mariadb.architecture | string | `"standalone"` | | -| mariadb.auth.database | string | `"pdns"` | | -| mariadb.auth.password | string | `"pdns-pass"` | | -| mariadb.auth.rootPassword | string | `"pdnsrootpass"` | | -| mariadb.auth.username | string | `"pdns"` | | -| mariadb.enabled | bool | `false` | | -| mariadb.primary.persistence.enabled | bool | `false` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| podSecurityContext | object | `{}` | | -| postgresql.enabled | bool | `true` | | -| postgresql.persistence.enabled | bool | `false` | | -| postgresql.postgresqlDatabase | string | `"pdns"` | | -| postgresql.postgresqlPassword | string | `"pdnspass"` | | -| postgresql.postgresqlPostgresPassword | string | `"pdnsadminpass"` | | -| postgresql.postgresqlUsername | string | `"pdns"` | | -| powerdns.config | object | `{}` | | -| powerdns.dnssec | bool | `true` | | -| powerdns.domain | string | `"mydomain.local"` | | -| powerdns.mysql.database | string | `"pdns"` | | -| powerdns.mysql.password | string | `"pdnspass"` | | -| powerdns.mysql.username | string | `"pdns"` | | -| powerdns.postgres.database | string | `"pdns"` | | -| powerdns.postgres.password | string | `"pdnspass"` | | -| powerdns.postgres.username | string | `"pdns"` | | -| probes.liveness.enabled | bool | `true` | | -| probes.liveness.failureThreshold | int | `5` | | -| probes.liveness.initialDelaySeconds | int | `30` | | -| probes.liveness.timeoutSeconds | int | `10` | | -| probes.readiness.enabled | bool | `true` | | -| probes.readiness.failureThreshold | int | `5` | | -| probes.readiness.initialDelaySeconds | int | `30` | | -| probes.readiness.timeoutSeconds | int | `10` | | -| probes.startup.enabled | bool | `false` | | -| probes.startup.failureThreshold | int | `30` | | -| probes.startup.periodSeconds | int | `10` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| service.externalTrafficPolicy | string | `""` | | -| service.port | int | `53` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.name | string | `nil` | | -| strategyType | string | `"Recreate"` | | -| tolerations | list | `[]` | | - ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) diff --git a/charts/prometheus-nut-exporter/README.md b/charts/prometheus-nut-exporter/README.md index 485f182b..d45b3d1e 100644 --- a/charts/prometheus-nut-exporter/README.md +++ b/charts/prometheus-nut-exporter/README.md @@ -1,53 +1,50 @@ -# prometheus-nut-exporter +# Prometheus NUT Exporter -![Version: 1.0.1](https://img.shields.io/badge/Version-1.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.1](https://img.shields.io/badge/AppVersion-1.0.1-informational?style=flat-square) +This is a helm chart provides a service monitor to send NUT server metrics to a Prometheus instance. Based on [Prometheus NUT Exporter](https://github.com/HON95/prometheus-nut-exporter). -A Helm chart for Kubernetes +## TL;DR; -**Homepage:** +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/prometheus-nut-exporter +``` -## Maintainers +## Installing the Chart -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +To install the chart with the release name `prometheus-nut-exporter`: -## Source Code +```console +helm install --name prometheus-nut-exporter k8s-at-home/prometheus-nut-exporter +``` -* +## Uninstalling the Chart -## Values +To uninstall/delete the `prometheus-nut-exporter` deployment: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| env | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"hon95/prometheus-nut-exporter"` | | -| image.tag | string | `"1.0.1"` | | -| imagePullSecrets | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| podAnnotations | object | `{}` | | -| podSecurityContext | object | `{}` | | -| probes.liveness.failureThreshold | int | `5` | | -| probes.liveness.initialDelaySeconds | int | `30` | | -| probes.liveness.timeoutSeconds | int | `10` | | -| probes.readiness.failureThreshold | int | `5` | | -| probes.readiness.initialDelaySeconds | int | `30` | | -| probes.readiness.timeoutSeconds | int | `10` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| service.port | int | `9995` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.name | string | `""` | | -| serviceMonitor.enabled | bool | `false` | | -| serviceMonitor.targets | list | `[]` | | -| tolerations | list | `[]` | | +```console +helm delete prometheus-nut-exporter +``` ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/prometheus-nut-exporter/values.yaml) file. It has several commented out suggested values. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install --name prometheus-nut-exporter \ + --set serviceMonitor.enabled=true \ + k8s-at-home/prometheus-nut-exporter +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name prometheus-nut-exporter -f values.yaml k8s-at-home/prometheus-nut-exporter +``` + +## Metrics + +You can find the exported metrics here: [metrics](https://github.com/HON95/prometheus-nut-exporter/blob/master/metrics.md). diff --git a/charts/rtorrent-flood/README.md b/charts/rtorrent-flood/README.md index 0d4da2bb..f4d044a7 100644 --- a/charts/rtorrent-flood/README.md +++ b/charts/rtorrent-flood/README.md @@ -1,74 +1,27 @@ -# rtorrent-flood +# rTorrent/flood BitTorrent client -![Version: 5.0.0](https://img.shields.io/badge/Version-5.0.0-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square) +## Setup -rtorrent and flood co-located in the same deployment +NB: This chart will start 2 containers in a single pod, when both containers are started, you will be able to configure flood. -**Homepage:** +1. Install the chart `helm install rtorrent k8s-at-home/rtorrent-flood` -## Maintainers +2. Port-forward to the container `kubectl port-forward $(kubectl get pods -A -o json | jq '.items[] | select(.metadata.labels."app.kubernetes.io/name"=="rtorrent-flood")' | jq .metadata.name -r) 3000:3000` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +3. To connect flood to rtorrent, provide the socket path : `/tmp/rtorrent.sock` -## Source Code +4. When connected with flood to rtorrent, go to the settings and change the download path to `/data` which is set by default by the chart -* -* -* +5. You should be able to start downloading torrents now :) -## Values -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| btService.annotations | object | `{}` | | -| btService.labels | object | `{}` | | -| btService.loadBalancerIP | string | `nil` | | -| btService.port | int | `49161` | | -| btService.type | string | `"NodePort"` | | -| flood.enabled | bool | `true` | | -| flood.image.pullPolicy | string | `"Always"` | | -| flood.image.repository | string | `"jfurrow/flood-ui"` | | -| flood.image.tag | string | `"latest"` | | -| flood.resources.limits.memory | string | `"250Mi"` | | -| flood.resources.requests.cpu | string | `"10m"` | | -| flood.resources.requests.memory | string | `"100Mi"` | | -| floodSecret | string | `"supersecret"` | | -| fullnameOverride | string | `""` | | -| gid | int | `1001` | | -| guiService.annotations | object | `{}` | | -| guiService.labels | object | `{}` | | -| guiService.loadBalancerIP | string | `nil` | | -| guiService.port | int | `3000` | | -| guiService.type | string | `"ClusterIP"` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0] | string | `"chart-example.local"` | | -| ingress.path | string | `"/"` | | -| ingress.tls | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.config.accessMode | string | `"ReadWriteOnce"` | | -| persistence.config.enabled | bool | `true` | | -| persistence.config.size | string | `"1Gi"` | | -| persistence.config.skipuninstall | bool | `false` | | -| persistence.data.accessMode | string | `"ReadWriteOnce"` | | -| persistence.data.enabled | bool | `true` | | -| persistence.data.size | string | `"10Gi"` | | -| persistence.data.skipuninstall | bool | `false` | | -| podAnnotations | object | `{}` | | -| rtorrent.enabled | bool | `true` | | -| rtorrent.image.pullPolicy | string | `"Always"` | | -| rtorrent.image.repository | string | `"billimek/rtorrent"` | | -| rtorrent.image.tag | string | `"latest"` | | -| rtorrent.resources.limits.memory | string | `"1Gi"` | | -| rtorrent.resources.requests.cpu | string | `"50m"` | | -| rtorrent.resources.requests.memory | string | `"50Mi"` | | -| strategyType | string | `"Recreate"` | | -| tolerations | list | `[]` | | -| uid | int | `1001` | | +## Custom parameters ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +Like any other chart, you can provide a file with your own values (check `./values.yaml` for reference) : + +`helm install rtorrent k8s-at-home/rtorrent-flood -f my-values.yaml` + + +## Pitfalls + +You may need to change the StorageClass depending on your kubernetes setup or the containers won't start, use a custom `values.yaml` file to do so. diff --git a/charts/ser2sock/README.md b/charts/ser2sock/README.md index 2ae5e407..640daada 100644 --- a/charts/ser2sock/README.md +++ b/charts/ser2sock/README.md @@ -1,46 +1,86 @@ -# ser2sock +# ser2sock: Serial to Socket Redirector -![Version: 2.0.1](https://img.shields.io/badge/Version-2.0.1-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square) +This is a helm chart for [ser2sock](https://github.com/nutechsoftware/ser2sock) -Serial to Socket Redirector +## TL;DR; -**Homepage:** +```shell +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/ser2sock +``` -## Maintainers +## Installing the Chart -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +To install the chart with the release name `my-release`: -## Source Code +```console +helm install --name my-release k8s-at-home/ser2sock +``` -* -* +**IMPORTANT NOTE:** the USB device must be accessible on the node where this pod runs, in order for this chart to function properly. -## Values +A way to achieve this can be with nodeAffinity rules, for example: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| baudRate | int | `115200` | | -| device | string | `"/dev/ttyUSB0"` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"tenstartups/ser2sock"` | | -| image.tag | string | `"latest"` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| pgid | string | `"1001"` | | -| podAnnotations | object | `{}` | | -| puid | string | `"1001"` | | -| resources | object | `{}` | | -| service.annotations | object | `{}` | | -| service.labels | object | `{}` | | -| service.loadBalancerIP | string | `nil` | | -| service.port | int | `10000` | | -| service.type | string | `"ClusterIP"` | | -| strategyType | string | `"Recreate"` | | -| tolerations | list | `[]` | | +```yaml +affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: usb + operator: In + values: + - alarmdecoder +``` ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +... where a node with an attached Coral USB device is labeled with `usb: alarmdecoder` + +## Uninstalling the Chart + +To uninstall/delete the `my-release` deployment: + +```console +helm delete my-release --purge +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the Sentry chart and their default values. + +| 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 | `{}` | + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install --name my-release \ + k8s-at-home/ser2sock +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name my-release -f values.yaml k8s-at-home/ser2sock +``` + +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. diff --git a/charts/speedtest-prometheus/README.md b/charts/speedtest-prometheus/README.md index 93c8517d..a674aad7 100644 --- a/charts/speedtest-prometheus/README.md +++ b/charts/speedtest-prometheus/README.md @@ -1,45 +1,52 @@ -# speedtest-prometheus +# Prometheus Exporter using the Speedtest CLI -![Version: 2.1.0](https://img.shields.io/badge/Version-2.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.1.0](https://img.shields.io/badge/AppVersion-1.1.0-informational?style=flat-square) +![Screenshot](https://i.imgur.com/iIzWUre.png) -Prometheus Exporter for the official Speedtest CLI +This is a helm chart provising a prometheus exporter (with optional ServiceMontor) to conduct speedtests using the official speedtest CLI. Based on the [prometheus-speedtest-exporter](https://github.com/billimek/prometheus-speedtest-exporter) multi-arch container image. -**Homepage:** +## TL;DR; -## Maintainers +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/speedtest-prometheus +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Installing the Chart -## Source Code +To install the chart with the release name `speedtest-prometheus`: -* +```console +helm install --name speedtest-prometheus k8s-at-home/speedtest-prometheus +``` -## Values +## Uninstalling the Chart -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"billimek/prometheus-speedtest-exporter"` | | -| image.tag | string | `"1.1.0"` | | -| imagePullSecrets | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| podAnnotations | object | `{}` | | -| podSecurityContext | object | `{}` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| service.port | int | `9469` | | -| service.type | string | `"ClusterIP"` | | -| serviceMonitor.additionalLabels | object | `{}` | | -| serviceMonitor.enabled | bool | `false` | | -| serviceMonitor.interval | string | `"60m"` | | -| serviceMonitor.scrapeTimeout | string | `"90s"` | | -| tolerations | list | `[]` | | +To uninstall/delete the `speedtest-prometheus` deployment: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +```console +helm delete speedtest-prometheus +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/speedtest-prometheus/values.yaml) file. It has several commented out suggested values. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install --name speedtest-prometheus \ + --set serviceMonitor.enabled=true \ + k8s-at-home/speedtest-prometheus +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name speedtest-prometheus -f values.yaml k8s-at-home/speedtest-prometheus +``` + +## Grafana Dashboard + +You can find an [example grafana dashboard](https://github.com/billimek/prometheus-speedtest-exporter/blob/master/speedtest-exporter.json) as shown in the screenshot above. diff --git a/charts/speedtest/README.md b/charts/speedtest/README.md index f8e5db7b..065a8af6 100644 --- a/charts/speedtest/README.md +++ b/charts/speedtest/README.md @@ -1,40 +1,71 @@ -# speedtest +# Speedtest.net Collector For InfluxDB and Grafana -![Version: 3.0.0](https://img.shields.io/badge/Version-3.0.0-informational?style=flat-square) ![AppVersion: 1.0.0](https://img.shields.io/badge/AppVersion-1.0.0-informational?style=flat-square) +![Screenshot](https://camo.githubusercontent.com/c652a6685bcb5a8cec6a47c92e57d159b28e47e7/68747470733a2f2f7075752e73682f746d664f412f623535373665383864652e706e67) -periodic speedtest and save the results to InfluxDB +This tool is a wrapper for speedtest-cli which allows you to run periodic speedtets and save the results to Influxdb -**Homepage:** +## TL;DR; -## Maintainers +```console +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/speedtest +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Installing the Chart -## Source Code +To install the chart with the release name `my-release`: -* -* +```console +$ helm install --name my-release k8s-at-home/speedtest +``` -## Values +## Uninstalling the Chart -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| config.delay | int | `3600` | | -| config.influxdb.database | string | `"speedtests"` | | -| config.influxdb.host | string | `"influxdb-influxdb"` | | -| config.influxdb.port | int | `8086` | | -| config.influxdb.ssl | bool | `false` | | -| config.speedtest.server | string | `nil` | | -| debug | bool | `false` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"atribe/speedtest-for-influxdb-and-grafana"` | | -| image.tag | string | `"latest"` | | -| nodeSelector | object | `{}` | | -| podAnnotations | object | `{}` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | +To uninstall/delete the `my-release` deployment: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +```console +$ helm delete my-release --purge +``` + +The command removes all the Kubernetes components associated with the chart 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. + +## 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, + +```console +$ helm install --name my-release \ + --set config.influxdb.host=some-influx-host \ + 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, + +```console +$ helm install --name my-release -f values.yaml k8s-at-home/speedtest +``` + +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. diff --git a/charts/statping/README.md b/charts/statping/README.md index 90052d84..bfeea11e 100644 --- a/charts/statping/README.md +++ b/charts/statping/README.md @@ -1,100 +1,36 @@ -# statping +# statping | Status page for monitoring your websites and applications -![Version: 1.5.1](https://img.shields.io/badge/Version-1.5.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.90.65](https://img.shields.io/badge/AppVersion-v0.90.65-informational?style=flat-square) +## TL;DR +```console +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/statping +``` -Status page for monitoring your websites and applications +## Installing the Chart +To install the chart with the release name `statping`: +```console +helm install statping k8s-at-home/statping +``` -**Homepage:** +## Uninstalling the Chart +To uninstall the `statping` deployment: +```console +helm uninstall statping +``` +The command removes all the Kubernetes components associated with the chart and deletes the release. -## Maintainers +## Configuration +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/statping/values.yaml) +file. It has several commented out suggested values. -| Name | Email | Url | -| ---- | ------ | --- | -| DirtyCajunRice | nick@cajun.pro | | - -## Source Code - -* - -## Requirements - -| Repository | Name | Version | -|------------|------|---------| -| https://charts.bitnami.com/bitnami | postgresql | 10.2.6 | - -## Values - -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| additionalVolumeMounts | list | `[]` | | -| additionalVolumes | list | `[]` | | -| affinity | object | `{}` | | -| autoscaling.enabled | bool | `false` | | -| autoscaling.maxReplicas | int | `3` | | -| autoscaling.minReplicas | int | `1` | | -| autoscaling.targetCPUUtilizationPercentage | int | `80` | | -| env | list | `[]` | | -| externalSecret.enabled | bool | `false` | | -| externalSecret.kubernetesExternalSecrets.data | list | `[]` | | -| externalSecret.kubernetesExternalSecrets.spec | object | `{}` | | -| externalSecret.type | string | `"kubernetes-external-secrets"` | | -| fullnameOverride | string | `""` | | -| global.postgresql.postgresqlDatabase | string | `"postgres"` | | -| global.postgresql.postgresqlUsername | string | `"postgres"` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"statping/statping"` | | -| image.tag | string | `""` | | -| imagePullSecrets | list | `[]` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0].host | string | `"chart-example.local"` | | -| ingress.hosts[0].paths[0] | string | `"/"` | | -| ingress.labels | object | `{}` | | -| ingress.tls | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| persistence.accessMode | string | `"ReadWriteOnce"` | | -| persistence.enabled | bool | `true` | | -| persistence.size | string | `"1Gi"` | | -| persistence.skipuninstall | bool | `false` | | -| podAnnotations | object | `{}` | | -| podSecurityContext | object | `{}` | | -| postgres.kubedb.enabled | bool | `false` | | -| postgres.kubedb.storage.accessModes[0] | string | `"ReadWriteOnce"` | | -| postgres.kubedb.storage.resources.requests.storage | string | `"1Gi"` | | -| postgres.kubedb.storageType | string | `"Durable"` | | -| postgres.kubedb.version | float | `11.1` | | -| postgres.posgresql.enabled | bool | `true` | | -| postgres.type | string | `"postgresql"` | | -| probes.liveness.failureThreshold | int | `5` | | -| probes.liveness.initialDelaySeconds | int | `60` | | -| probes.liveness.timeoutSeconds | int | `10` | | -| probes.readiness.failureThreshold | int | `5` | | -| probes.readiness.initialDelaySeconds | int | `60` | | -| probes.readiness.timeoutSeconds | int | `10` | | -| replication.enabled | bool | `false` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| service.additionalSpec | object | `{}` | | -| service.annotations | object | `{}` | | -| service.labels | object | `{}` | | -| service.port | int | `8080` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.name | string | `""` | | -| statping.admin.email | string | `""` | | -| statping.admin.existingSecret.emailKey | string | `""` | | -| statping.admin.existingSecret.enabled | bool | `false` | | -| statping.admin.existingSecret.name | string | `""` | | -| statping.admin.existingSecret.passwordKey | string | `""` | | -| statping.admin.existingSecret.userKey | string | `""` | | -| statping.admin.password | string | `""` | | -| statping.admin.user | string | `""` | | -| statping.description | string | `""` | | -| statping.domain | string | `""` | | -| statping.name | string | `""` | | -| tolerations | list | `[]` | | - ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, +```console +helm install statping \ + --set statping.env.TZ="America/New York" \ + k8s-at-home/statping +``` +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the +chart. For example, +```console +helm install statping k8s-at-home/statping --values values.yaml +``` diff --git a/charts/teslamate/README.md b/charts/teslamate/README.md index 28c94c5d..f5e7367c 100644 --- a/charts/teslamate/README.md +++ b/charts/teslamate/README.md @@ -1,77 +1,48 @@ -# teslamate +# A self-hosted data logger for your Tesla 🚘 -![Version: 3.5.1](https://img.shields.io/badge/Version-3.5.1-informational?style=flat-square) ![AppVersion: v1.20.0](https://img.shields.io/badge/AppVersion-v1.20.0-informational?style=flat-square) +This is an opinionated helm chart for [Teslamate](https://github.com/adriankumpf/teslamate) installed with a standalone postgresql database. -A self-hosted data logger for your Tesla 🚘 +The default values and container images used in this chart will allow for running in a multi-arch cluster (amd64, arm, arm64) -**Homepage:** +## TL;DR; -## Maintainers +```shell +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/teslamate +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Installing the Chart -## Source Code +To install the chart with the release name `my-release`: -* +```console +helm install --name teslamate k8s-at-home/teslamate +``` -## Requirements +## Uninstalling the Chart -| Repository | Name | Version | -|------------|------|---------| -| https://charts.bitnami.com/bitnami | postgresql | 10.2.7 | +To uninstall/delete the `teslamate` deployment: -## Values +```console +helm delete teslamate --purge +``` -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| checkOrigin | bool | `false` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"teslamate/teslamate"` | | -| image.tag | string | `"1.20.0"` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0] | string | `"chart-example.local"` | | -| ingress.path | string | `"/"` | | -| ingress.tls | list | `[]` | | -| locale | string | `"en"` | | -| mqtt.enabled | bool | `false` | | -| mqtt.host | string | `nil` | | -| mqtt.password | string | `nil` | | -| mqtt.tls | string | `nil` | | -| mqtt.tlsAcceptInvalid | string | `nil` | | -| mqtt.username | string | `nil` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| postgresql.enabled | bool | `true` | | -| postgresql.image.repository | string | `"postgres"` | | -| postgresql.image.tag | float | `12.1` | | -| postgresql.persistence.accessModes[0] | string | `"ReadWriteOnce"` | | -| postgresql.persistence.enabled | bool | `true` | | -| postgresql.persistence.mountPath | string | `"/data/"` | | -| postgresql.persistence.size | string | `"8Gi"` | | -| postgresql.persistence.storageClass | string | `nil` | | -| postgresql.postgresqlDataDir | string | `"/data/pgdata"` | | -| postgresql.postgresqlDatabase | string | `"teslamate"` | | -| postgresql.postgresqlPassword | string | `"teslamate"` | | -| postgresql.postgresqlUsername | string | `"teslamate"` | | -| probes.liveness.failureThreshold | int | `15` | | -| probes.liveness.periodSeconds | int | `10` | | -| probes.readiness.failureThreshold | int | `15` | | -| probes.readiness.periodSeconds | int | `10` | | -| probes.startup.failureThreshold | int | `30` | | -| probes.startup.initialDelaySeconds | int | `15` | | -| probes.startup.periodSeconds | int | `10` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| service.port | int | `4000` | | -| service.type | string | `"ClusterIP"` | | -| timeZone | string | `"UTC"` | | -| tolerations | list | `[]` | | -| virtualHost | string | `nil` | | +The command removes all the Kubernetes components associated with the chart and deletes the release. ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +## Configuration + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/teslamate/values.yaml) file. It has several commented out suggested values. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install --name teslamate \ + --set timeZone="America/New York" \ + k8s-at-home/teslamate +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name teslamate -f values.yaml stable/teslamate +``` diff --git a/charts/traefik-forward-auth/README.md b/charts/traefik-forward-auth/README.md index d8dfe4f2..27c67e16 100644 --- a/charts/traefik-forward-auth/README.md +++ b/charts/traefik-forward-auth/README.md @@ -1,21 +1,51 @@ # traefik-forward-auth -![Version: 1.0.5](https://img.shields.io/badge/Version-1.0.5-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.2.0](https://img.shields.io/badge/AppVersion-2.2.0-informational?style=flat-square) +![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![Version: 1.0.5](https://img.shields.io/badge/Version-1.0.5-informational?style=flat-square) ![AppVersion: 2.2.0](https://img.shields.io/badge/AppVersion-2.2.0-informational?style=flat-square) [![ArtifactHub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/traefik-forward-auth)](https://artifacthub.io/packages/helm/k8s-at-home/traefik-forward-auth) A minimal forward authentication service that provides OAuth/SSO login and authentication for the traefik reverse proxy/load balancer -**Homepage:** +The default values and container images used in this chart will allow for running in a multi-arch cluster (amd64, arm, arm64) -## Maintainers +Chart that +* Adds docker image information leveraging the [official image](https://github.com/thomseddon/traefik-forward-auth) +* Deploys [traefik-forward-auth](https://github.com/thomseddon/traefik-forward-auth) -| Name | Email | Url | -| ---- | ------ | --- | -| DirtyCajunRice | nick@cajun.pro | | +## TL;DR +```console +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/traefik-forward-auth +``` -## Source Code +## Installing the Chart +To install the chart with the release name `traefik-forward-auth`: +```console +helm install traefik-forward-auth k8s-at-home/traefik-forward-auth +``` -* -* +## Uninstalling the Chart +To uninstall the `traefik-forward-auth` deployment: +```console +helm uninstall traefik-forward-auth +``` +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/traefik-forward-auth/values.yaml) +file. It has several commented out suggested values. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, +```console +helm install traefik-forward-auth \ + --set env.TZ="America/New York" \ + k8s-at-home/traefik-forward-auth +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. +For example, +```console +helm install traefik-forward-auth k8s-at-home/traefik-forward-auth --values values.yaml +``` ## Values @@ -94,6 +124,3 @@ A minimal forward authentication service that provides OAuth/SSO login and authe | serviceAccount.name | string | `""` | | | tolerations | list | `[]` | | | urlPath | string | `""` | Callback URL Path (default: /_oauth) | - ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) diff --git a/charts/unifi/README.md b/charts/unifi/README.md index dad6ae9e..50ff8561 100644 --- a/charts/unifi/README.md +++ b/charts/unifi/README.md @@ -1,131 +1,225 @@ -# unifi +# Ubiquiti Network's Unifi Controller -![Version: 1.5.1](https://img.shields.io/badge/Version-1.5.1-informational?style=flat-square) ![AppVersion: 5.14.23](https://img.shields.io/badge/AppVersion-5.14.23-informational?style=flat-square) +This is a helm chart for [Ubiquiti Network's][ubnt] [Unifi Controller][ubnt 2]. -Ubiquiti Network's Unifi Controller +## TL;DR; -**Homepage:** +```shell +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/unifi +``` -## Maintainers +## Installing the Chart -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | -| mcronce | mike@quadra-tec.net | | +To install the chart with the release name `my-release`: -## Source Code +```console +helm install --name my-release stable/unifi +``` -* +## Uninstalling the Chart -## Values +To uninstall/delete the `my-release` deployment: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| GID | int | `999` | | -| UID | int | `999` | | -| affinity | object | `{}` | | -| captivePortalService.annotations | object | `{}` | | -| captivePortalService.enabled | bool | `false` | | -| captivePortalService.http | int | `8880` | | -| captivePortalService.https | int | `8843` | | -| captivePortalService.ingress.annotations | object | `{}` | | -| captivePortalService.ingress.enabled | bool | `false` | | -| captivePortalService.ingress.hosts[0] | string | `"chart-example.local"` | | -| captivePortalService.ingress.path | string | `"/"` | | -| captivePortalService.ingress.tls | list | `[]` | | -| captivePortalService.labels | object | `{}` | | -| captivePortalService.loadBalancerIP | string | `nil` | | -| captivePortalService.type | string | `"ClusterIP"` | | -| controllerService.annotations | object | `{}` | | -| controllerService.ingress.annotations | object | `{}` | | -| controllerService.ingress.enabled | bool | `false` | | -| controllerService.ingress.hosts[0] | string | `"chart-example.local"` | | -| controllerService.ingress.path | string | `"/"` | | -| controllerService.ingress.tls | list | `[]` | | -| controllerService.labels | object | `{}` | | -| controllerService.loadBalancerIP | string | `nil` | | -| controllerService.port | int | `8080` | | -| controllerService.type | string | `"NodePort"` | | -| customCert.certName | string | `"tls.crt"` | | -| customCert.enabled | bool | `false` | | -| customCert.isChain | bool | `false` | | -| customCert.keyName | string | `"tls.key"` | | -| deploymentAnnotations | object | `{}` | | -| discoveryService.annotations | object | `{}` | | -| discoveryService.labels | object | `{}` | | -| discoveryService.loadBalancerIP | string | `nil` | | -| discoveryService.port | int | `10001` | | -| discoveryService.type | string | `"NodePort"` | | -| extraConfigFiles | object | `{}` | | -| extraJvmOpts | list | `[]` | | -| extraVolumeMounts | list | `[]` | | -| extraVolumes | list | `[]` | | -| guiService.annotations | object | `{}` | | -| guiService.labels | object | `{}` | | -| guiService.loadBalancerIP | string | `nil` | | -| guiService.port | int | `8443` | | -| guiService.type | string | `"ClusterIP"` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"jacobalberty/unifi"` | | -| image.tag | string | `"5.14.23"` | | -| ingress.annotations | object | `{}` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0] | string | `"chart-example.local"` | | -| ingress.path | string | `"/"` | | -| ingress.tls | list | `[]` | | -| jvmInitHeapSize | string | `nil` | | -| jvmMaxHeapSize | string | `"1024M"` | | -| livenessProbe.enabled | bool | `true` | | -| livenessProbe.failureThreshold | int | `3` | | -| livenessProbe.initialDelaySeconds | int | `30` | | -| livenessProbe.periodSeconds | int | `10` | | -| livenessProbe.successThreshold | int | `1` | | -| livenessProbe.timeoutSeconds | int | `1` | | -| logging.promtail.enabled | bool | `false` | | -| logging.promtail.image.pullPolicy | string | `"IfNotPresent"` | | -| logging.promtail.image.repository | string | `"grafana/promtail"` | | -| logging.promtail.image.tag | string | `"1.6.0"` | | -| logging.promtail.loki.url | string | `"http://loki.logs.svc.cluster.local:3100/loki/api/v1/push"` | | -| mongodb.databaseName | string | `"unifi"` | | -| mongodb.dbUri | string | `"mongodb://mongo/unifi"` | | -| mongodb.enabled | bool | `false` | | -| mongodb.statDbUri | string | `"mongodb://mongo/unifi_stat"` | | -| nodeSelector | object | `{}` | | -| persistence.accessMode | string | `"ReadWriteOnce"` | | -| persistence.enabled | bool | `true` | | -| persistence.size | string | `"5Gi"` | | -| podAnnotations | object | `{}` | | -| readinessProbe.enabled | bool | `true` | | -| readinessProbe.failureThreshold | int | `3` | | -| readinessProbe.initialDelaySeconds | int | `15` | | -| readinessProbe.periodSeconds | int | `10` | | -| readinessProbe.successThreshold | int | `1` | | -| readinessProbe.timeoutSeconds | int | `1` | | -| resources | object | `{}` | | -| runAsRoot | bool | `false` | | -| speedtestService.annotations | object | `{}` | | -| speedtestService.labels | object | `{}` | | -| speedtestService.loadBalancerIP | string | `nil` | | -| speedtestService.port | int | `6789` | | -| speedtestService.type | string | `"ClusterIP"` | | -| strategyType | string | `"Recreate"` | | -| stunService.annotations | object | `{}` | | -| stunService.labels | object | `{}` | | -| stunService.loadBalancerIP | string | `nil` | | -| stunService.port | int | `3478` | | -| stunService.type | string | `"NodePort"` | | -| syslogService.annotations | object | `{}` | | -| syslogService.labels | object | `{}` | | -| syslogService.loadBalancerIP | string | `nil` | | -| syslogService.port | int | `5514` | | -| syslogService.type | string | `"NodePort"` | | -| timezone | string | `"UTC"` | | -| tolerations | list | `[]` | | -| unifiedService.annotations | object | `{}` | | -| unifiedService.enabled | bool | `false` | | -| unifiedService.labels | object | `{}` | | -| unifiedService.loadBalancerIP | string | `nil` | | -| unifiedService.type | string | `"ClusterIP"` | | +```console +helm delete my-release --purge +``` ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the Unifi chart and their default values. + +| 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, + +```console +helm install --name my-release \ + --set timezone="America/New York" \ + stable/unifi +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name my-release -f values.yaml stable/unifi +``` + +Read through the [values.yaml](values.yaml) file. It has several commented out suggested values. + +## 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" +``` + +[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 diff --git a/charts/uptimerobot-prometheus/README.md b/charts/uptimerobot-prometheus/README.md index 07119666..417c98fd 100644 --- a/charts/uptimerobot-prometheus/README.md +++ b/charts/uptimerobot-prometheus/README.md @@ -1,46 +1,52 @@ -# uptimerobot-prometheus +# Prometheus Exporter using the Uptimerobot API -![Version: 2.0.1](https://img.shields.io/badge/Version-2.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.0.1](https://img.shields.io/badge/AppVersion-0.0.1-informational?style=flat-square) +![](https://raw.githubusercontent.com/lekpamartin/uptimerobot_exporter/master/dashboards/dashboard.PNG) -Prometheus Exporter for the official uptimerobot CLI +This is a helm chart providing a prometheus exporter to query the uptimerobot API. Based on the [uptimerobot_exporter](https://github.com/lekpamartin/uptimerobot_exporter) container image. -**Homepage:** +## TL;DR; -## Maintainers +```console +helm repo add k8s-at-home https://k8s-at-home.com/charts/ +helm install k8s-at-home/uptimerobot-prometheus +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Installing the Chart -## Source Code +To install the chart with the release name `uptimerobot-prometheus`: -* -* +```console +helm install --name uptimerobot-prometheus k8s-at-home/uptimerobot-prometheus +``` -## Values +## Uninstalling the Chart -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| affinity | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"billimek/prometheus-uptimerobot-exporter"` | | -| image.tag | string | `"0.0.1"` | | -| imagePullSecrets | list | `[]` | | -| nameOverride | string | `""` | | -| nodeSelector | object | `{}` | | -| podSecurityContext | object | `{}` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | -| securityContext | object | `{}` | | -| service.port | int | `9705` | | -| service.type | string | `"ClusterIP"` | | -| serviceMonitor.additionalLabels | object | `{}` | | -| serviceMonitor.enabled | bool | `false` | | -| serviceMonitor.interval | string | `"5m"` | | -| serviceMonitor.scrapeTimeout | string | `"90s"` | | -| tolerations | list | `[]` | | -| uptimerobotApiKey | string | `""` | | +To uninstall/delete the `uptimerobot-prometheus` deployment: ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +```console +helm delete uptimerobot-prometheus +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/uptimerobot-prometheus/values.yaml) file. It has several commented out suggested values. + +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, + +```console +helm install --name uptimerobot-prometheus \ + --set serviceMonitor.enabled=true \ + k8s-at-home/uptimerobot-prometheus +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```console +helm install --name uptimerobot-prometheus -f values.yaml k8s-at-home/uptimerobot-prometheus +``` + +## Grafana Dashboard + +You can find an [example grafana dashboard](https://github.com/lekpamartin/uptimerobot_exporter/blob/master/dashboards/grafana.json) as shown in the screenshot above. diff --git a/charts/uptimerobot/README.md b/charts/uptimerobot/README.md index 4b67de95..8ea04d2a 100644 --- a/charts/uptimerobot/README.md +++ b/charts/uptimerobot/README.md @@ -1,39 +1,73 @@ -# uptimerobot +# A tool to get statistics from Uptime Robot and log it into InfluxDB -![Version: 3.0.0](https://img.shields.io/badge/Version-3.0.0-informational?style=flat-square) ![AppVersion: 1.1.0](https://img.shields.io/badge/AppVersion-1.1.0-informational?style=flat-square) +![Screenshot](https://raw.githubusercontent.com/billimek/node-influx-uptimerobot/master/docs/dashboard.png) -A tool to get statistics from Uptime Robot and log it into InfluxDB +This tool allows you to run periodic uptimerobot data usage checks and save the results to Influxdb -**Homepage:** +## TL;DR; -## Maintainers +```console +$ helm repo add k8s-at-home https://k8s-at-home.com/charts/ +$ helm install k8s-at-home/uptimerobot +``` -| Name | Email | Url | -| ---- | ------ | --- | -| billimek | jeff@billimek.com | | +## Introduction -## Source Code +This code is adopted from [this original repo](https://github.com/trojanc/node-influx-uptimerobot) -* -* +## Installing the Chart -## Values +To install the chart with the release name `my-release`: -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| config.influxdb.database | string | `"uptimerobot"` | | -| config.influxdb.host | string | `"influxdb-influxdb"` | | -| config.influxdb.port | int | `8086` | | -| config.influxdb.protocol | string | `"http"` | | -| config.uptimerobot.apikey | string | `"someapikey"` | | -| delay | int | `300` | | -| image.pullPolicy | string | `"Always"` | | -| image.repository | string | `"billimek/node-influx-uptimerobot"` | | -| image.tag | string | `"latest"` | | -| nodeSelector | object | `{}` | | -| podAnnotations | object | `{}` | | -| replicaCount | int | `1` | | -| resources | object | `{}` | | +```console +$ helm install --name my-release k8s-at-home/uptimerobot +``` +## Uninstalling the Chart ----------------------------------------------- -Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0) +To uninstall/delete the `my-release` deployment: + +```console +$ helm delete my-release --purge +``` + +The command removes all the Kubernetes components associated with the chart 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. + +## 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, + +```console +$ helm install --name my-release \ + --set config.uptimerobot.apikey=thisismyapikey \ + 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, + +```console +$ helm install --name my-release -f values.yaml k8s-at-home/uptimerobot +``` + +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.