Compare commits
10 Commits
zigbee2mqt
...
dashmachin
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ef7b2b312 | ||
|
|
1d5b7ff5bf | ||
|
|
7fc5825da9 | ||
|
|
e621f470f5 | ||
|
|
23f9c09612 | ||
|
|
5a1ae94997 | ||
|
|
415f618e2b | ||
|
|
118ed4cc26 | ||
|
|
3b0b096427 | ||
|
|
a05b836cd1 |
6
ct.yaml → .github/ct.yaml
vendored
6
ct.yaml → .github/ct.yaml
vendored
@@ -1,8 +1,10 @@
|
||||
remote: origin
|
||||
target-branch: master
|
||||
helm-extra-args: --timeout 600s
|
||||
chart-dirs:
|
||||
- charts
|
||||
excluded-charts:
|
||||
- common
|
||||
chart-repos:
|
||||
- bitnami=https://charts.bitnami.com/bitnami
|
||||
- k8s-at-home=https://k8s-at-home.com/charts
|
||||
excluded-charts:
|
||||
- common
|
||||
26
.github/renovate.json
vendored
Normal file
26
.github/renovate.json
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"enabled": true,
|
||||
"gitAuthor": "Renovate Bot <renovate@whitesourcesoftware.com>",
|
||||
"commitMessagePrefix": "[{{{parentDir}}}]",
|
||||
"branchTopic": "{{{parentDir}}}-{{{depNameSanitized}}}-{{{newMajor}}}{{#if isPatch}}.{{{newMinor}}}{{/if}}.x{{#if isLockfileUpdate}}-lockfile{{/if}}",
|
||||
"assigneesFromCodeOwners": true,
|
||||
"reviewersFromCodeOwners": true,
|
||||
"helm-values": {
|
||||
"enabled": false
|
||||
},
|
||||
"helmv3": {
|
||||
"fileMatch": ["charts/.+/Chart\\.yaml$"]
|
||||
},
|
||||
"packageRules": [
|
||||
{
|
||||
"updateTypes": ["major"],
|
||||
"bumpVersion": "major",
|
||||
"labels": ["dependency/major"]
|
||||
},
|
||||
{
|
||||
"updateTypes": ["minor", "patch"],
|
||||
"bumpVersion": "minor",
|
||||
"labels": ["dependency/minor"]
|
||||
}
|
||||
]
|
||||
}
|
||||
47
.github/workflows/lint-test.yaml
vendored
47
.github/workflows/lint-test.yaml
vendored
@@ -1,28 +1,45 @@
|
||||
name: Lint and Test Charts
|
||||
|
||||
on: pull_request
|
||||
|
||||
jobs:
|
||||
lint-test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Fetch history
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@v1
|
||||
with:
|
||||
version: v3.4.0
|
||||
|
||||
- uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.7
|
||||
|
||||
- name: Set up chart-testing
|
||||
uses: helm/chart-testing-action@v2.0.1
|
||||
|
||||
- name: Run chart-testing (list-changed)
|
||||
id: list-changed
|
||||
run: |
|
||||
git fetch --prune --unshallow;
|
||||
echo "commitmsg=$(git log --format=%B -n 1 ${{ github.event.after }})" >> $GITHUB_ENV
|
||||
changed=$(ct list-changed --config .github/ct.yaml)
|
||||
if [[ -n "$changed" ]]; then
|
||||
echo "::set-output name=changed::true"
|
||||
fi
|
||||
|
||||
- name: Run chart-testing (lint)
|
||||
id: lint
|
||||
uses: helm/chart-testing-action@v1.0.0
|
||||
if: "! contains(env.commitmsg, '[skip lint]')"
|
||||
with:
|
||||
command: lint
|
||||
config: ct.yaml
|
||||
run: ct lint --config .github/ct.yaml
|
||||
if: steps.list-changed.outputs.changed == 'true'
|
||||
|
||||
- name: Create kind cluster
|
||||
uses: helm/kind-action@v1.0.0
|
||||
if: "steps.lint.outputs.changed == 'true' && ! contains(env.commitmsg, '[skip install]')"
|
||||
uses: helm/kind-action@v1.1.0
|
||||
if: steps.list-changed.outputs.changed == 'true'
|
||||
|
||||
- name: Run chart-testing (install)
|
||||
uses: helm/chart-testing-action@v1.0.0
|
||||
if: "steps.lint.outputs.changed == 'true' && ! contains(env.commitmsg, '[skip install]')"
|
||||
with:
|
||||
command: install
|
||||
config: ct.yaml
|
||||
run: ct install --config .github/ct.yaml
|
||||
if: steps.list-changed.outputs.changed == 'true'
|
||||
|
||||
59
.github/workflows/release.yaml
vendored
59
.github/workflows/release.yaml
vendored
@@ -1,10 +1,11 @@
|
||||
|
||||
name: Release Charts
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- "charts/**"
|
||||
|
||||
jobs:
|
||||
release:
|
||||
@@ -13,6 +14,8 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Turnstyle
|
||||
uses: softprops/turnstyle@v1
|
||||
@@ -21,25 +24,47 @@ jobs:
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Fetch history
|
||||
run: git fetch --prune --unshallow
|
||||
- name: Configure Git
|
||||
run: |
|
||||
git config user.name "$GITHUB_ACTOR"
|
||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||
|
||||
- name: Install Helm
|
||||
uses: azure/setup-helm@v1
|
||||
with:
|
||||
version: v3.4.0
|
||||
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.1.0
|
||||
with:
|
||||
charts_repo_url: https://k8s-at-home.com/charts/
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
# Update the generated timestamp in the index.yaml
|
||||
# needed until https://github.com/helm/chart-releaser/issues/90
|
||||
# or helm/chart-releaser-action supports this
|
||||
post-release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: release
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: "gh-pages"
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Configure Git
|
||||
run: |
|
||||
git config user.name "$GITHUB_ACTOR"
|
||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||
# See https://github.com/helm/chart-releaser-action/issues/6
|
||||
- name: Install Helm
|
||||
|
||||
- name: Commit and push timestamp updates
|
||||
run: |
|
||||
curl -fsSLo get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
|
||||
chmod 700 get_helm.sh
|
||||
./get_helm.sh
|
||||
- name: Add dependency chart repos
|
||||
run: |
|
||||
helm repo add stable https://charts.helm.sh/stable
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.0.0
|
||||
with:
|
||||
charts_repo_url: https://k8s-at-home.com/charts/
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
if [[ -f index.yaml ]]; then
|
||||
export generated_date=$(date --utc +%FT%T.%9NZ)
|
||||
sed -i -e "s/^generated:.*/generated: \"$generated_date\"/" index.yaml
|
||||
git add index.yaml
|
||||
git commit -sm "Update generated timestamp [ci-skip]" || exit 0
|
||||
git push
|
||||
fi
|
||||
|
||||
@@ -4,9 +4,13 @@ description: DashMachine is another web application bookmark dashboard, with fun
|
||||
icon: https://github.com/rmountjoy92/DashMachine/raw/master/dashmachine/static/images/logo/logo.png
|
||||
home: https://github.com/rmountjoy92/DashMachine
|
||||
name: dashmachine
|
||||
version: 1.0.0
|
||||
version: 2.0.0
|
||||
sources:
|
||||
- https://github.com/rmountjoy92/DashMachine
|
||||
maintainers:
|
||||
- name: carpenike
|
||||
email: ryan@ryanholt.net
|
||||
dependencies:
|
||||
- name: common
|
||||
version: 1.6.1
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
|
||||
4
charts/dashmachine/OWNERS
Normal file
4
charts/dashmachine/OWNERS
Normal file
@@ -0,0 +1,4 @@
|
||||
approvers:
|
||||
- carpenike
|
||||
reviewers:
|
||||
- carpenike
|
||||
@@ -1,31 +1,69 @@
|
||||
dashmachine
|
||||
===========
|
||||
DashMachine is another web application bookmark dashboard, with fun features.
|
||||
# Dashmachine
|
||||
|
||||
## Chart Values
|
||||
This is a helm chart for [DashMachine](https://github.com/rmountjoy92/DashMachine).
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| affinity | object | `{}` | |
|
||||
| deploymentAnnotations | object | `{}` | |
|
||||
| fullnameOverride | string | `""` | |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| image.repository | string | `"rmountjoy/dashmachine"` | |
|
||||
| image.tag | string | `"latest"` | |
|
||||
| ingress.annotations | object | `{}` | |
|
||||
| ingress.enabled | bool | `false` | |
|
||||
| ingress.hosts[0] | string | `"chart-example.local"` | |
|
||||
| ingress.paths[0] | string | `"/"` | |
|
||||
| ingress.tls | list | `[]` | |
|
||||
| nameOverride | string | `""` | |
|
||||
| nodeSelector | object | `{}` | |
|
||||
| persistence.accessModes[0] | string | `"ReadWriteOnce"` | |
|
||||
| persistence.enabled | bool | `false` | |
|
||||
| persistence.size | string | `"1Gi"` | |
|
||||
| persistence.storageClassName | string | `""` | |
|
||||
| podAnnotations | object | `{}` | |
|
||||
| replicaCount | int | `1` | |
|
||||
| resources | object | `{}` | |
|
||||
| service.port | int | `5000` | |
|
||||
| service.type | string | `"ClusterIP"` | |
|
||||
| tolerations | list | `[]` | |
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
|
||||
|
||||
## TL;DR;
|
||||
|
||||
```shell
|
||||
$ helm repo add k8s-at-home https://k8s-at-home.com/charts/
|
||||
$ helm install k8s-at-home/dashmachine
|
||||
```
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `my-release`:
|
||||
|
||||
```console
|
||||
helm install --name my-release k8s-at-home/dashmachine
|
||||
```
|
||||
|
||||
## 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
|
||||
Read through the charts [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/dashmachine/values.yaml)
|
||||
file. It has several commented out suggested values.
|
||||
Additionally you can take a look at the common library [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/common/values.yaml) for more (advanced) configuration options.
|
||||
|
||||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
|
||||
```console
|
||||
helm install dashmachine \
|
||||
--set env.TZ="America/New_York" \
|
||||
k8s-at-home/dashmachine
|
||||
```
|
||||
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the
|
||||
chart. For example,
|
||||
```console
|
||||
helm install dashmachine k8s-at-home/dashmachine --values values.yaml
|
||||
```
|
||||
|
||||
```yaml
|
||||
image:
|
||||
tag: ...
|
||||
```
|
||||
|
||||
---
|
||||
**NOTE**
|
||||
|
||||
If you get
|
||||
```console
|
||||
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`.
|
||||
|
||||
---
|
||||
|
||||
## Upgrading an existing Release to a new major version
|
||||
|
||||
A major chart version change (like 4.0.1 -> 5.0.0) indicates that there is an incompatible breaking change potentially needing manual actions.
|
||||
|
||||
Refer to the library values.yaml for more configuration options.
|
||||
|
||||
2
charts/dashmachine/ci/ct-values.yaml
Normal file
2
charts/dashmachine/ci/ct-values.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
ingress:
|
||||
enabled: true
|
||||
@@ -1,21 +0,0 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range $host := .Values.ingress.hosts }}
|
||||
{{- range $.Values.ingress.paths }}
|
||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host }}{{ . }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "dashmachine.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ include "dashmachine.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "dashmachine.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "dashmachine.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:80
|
||||
{{- end }}
|
||||
@@ -1,32 +0,0 @@
|
||||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "dashmachine.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "dashmachine.fullname" -}}
|
||||
{{- if .Values.fullnameOverride -}}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- if contains $name .Release.Name -}}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- else -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "dashmachine.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
1
charts/dashmachine/templates/common.yaml
Normal file
1
charts/dashmachine/templates/common.yaml
Normal file
@@ -0,0 +1 @@
|
||||
{{ include "common.all" . }}
|
||||
@@ -1,78 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "dashmachine.fullname" . }}
|
||||
{{- if .Values.deploymentAnnotations }}
|
||||
annotations:
|
||||
{{- range $key, $value := .Values.deploymentAnnotations }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "dashmachine.name" . }}
|
||||
helm.sh/chart: {{ include "dashmachine.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: {{ include "dashmachine.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "dashmachine.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- if .Values.podAnnotations }}
|
||||
annotations:
|
||||
{{- range $key, $value := .Values.podAnnotations }}
|
||||
{{ $key }}: {{ $value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.dnsConfig }}
|
||||
dnsConfig:
|
||||
{{- toYaml .Values.dnsConfig | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 5000
|
||||
protocol: TCP
|
||||
# livenessProbe:
|
||||
# httpGet:
|
||||
# path: /notifications
|
||||
# port: http
|
||||
# readinessProbe:
|
||||
# httpGet:
|
||||
# path: /notifications
|
||||
# port: http
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /dashmachine/dashmachine/user_data
|
||||
volumes:
|
||||
- name: config
|
||||
{{- if .Values.persistence.enabled }}
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ template "dashmachine.fullname" . }}
|
||||
{{- else }}
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
@@ -1,40 +0,0 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "dashmachine.fullname" . -}}
|
||||
{{- $ingressPaths := .Values.ingress.paths -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "dashmachine.name" . }}
|
||||
helm.sh/chart: {{ include "dashmachine.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ . | quote }}
|
||||
http:
|
||||
paths:
|
||||
{{- range $ingressPaths }}
|
||||
- path: {{ . }}
|
||||
backend:
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: http
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
@@ -1,24 +0,0 @@
|
||||
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ template "dashmachine.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "dashmachine.name" . }}
|
||||
helm.sh/chart: {{ include "dashmachine.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- with .Values.persistence.annotations }}
|
||||
annotations:
|
||||
{{ toYaml . | indent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
accessModes:
|
||||
{{- range .Values.persistence.accessModes }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.persistence.size | quote }}
|
||||
storageClassName: {{ .Values.persistence.storageClass }}
|
||||
{{- end -}}
|
||||
@@ -1,19 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "dashmachine.fullname" . }}
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "dashmachine.name" . }}
|
||||
helm.sh/chart: {{ include "dashmachine.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "dashmachine.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
@@ -1,18 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: "{{ include "dashmachine.fullname" . }}-test-connection"
|
||||
labels:
|
||||
app.kubernetes.io/name: {{ include "dashmachine.name" . }}
|
||||
helm.sh/chart: {{ include "dashmachine.chart" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
annotations:
|
||||
"helm.sh/hook": test-success
|
||||
spec:
|
||||
containers:
|
||||
- name: wget
|
||||
image: busybox
|
||||
command: ['wget']
|
||||
args: ['{{ include "dashmachine.fullname" . }}:{{ .Values.service.port }}']
|
||||
restartPolicy: Never
|
||||
@@ -1,65 +1,22 @@
|
||||
# Default values for dashmachine.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: rmountjoy/dashmachine
|
||||
tag: v0.5-4
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
strategy:
|
||||
type: Recreate
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
port: 5000
|
||||
port:
|
||||
port: 5000
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
annotations: {}
|
||||
# kubernetes.io/ingress.class: nginx
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
paths: ["/"]
|
||||
hosts:
|
||||
- chart-example.local
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
# - chart-example.local
|
||||
|
||||
resources: {}
|
||||
# We usually recommend not to specify default resources and to leave this as a conscious
|
||||
# choice for the user. This also increases chances charts run on environments with little
|
||||
# resources, such as Minikube. If you do want to specify resources, uncomment the following
|
||||
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
env: {}
|
||||
# TZ: UTC
|
||||
|
||||
persistence:
|
||||
enabled: false
|
||||
## If defined, storageClassName: <storageClass>
|
||||
## If set to "-", storageClassName: "", which disables dynamic provisioning
|
||||
## If undefined (the default) or set to null, no storageClassName spec is
|
||||
## set, choosing the default provisioner. (gp2 on AWS, standard on
|
||||
## GKE, AWS & OpenStack)
|
||||
##
|
||||
storageClass: ""
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
size: 1Gi
|
||||
|
||||
podAnnotations: {}
|
||||
|
||||
deploymentAnnotations: {}
|
||||
config:
|
||||
enabled: false
|
||||
emptyDir: false
|
||||
mountPath: /dashmachine/dashmachine/user_data
|
||||
|
||||
34
charts/home-assistant/CHANGELOG.md
Normal file
34
charts/home-assistant/CHANGELOG.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [3.0.0]
|
||||
|
||||
### Changed
|
||||
|
||||
- The default `home-assistant` image has been updated to v0.118.3.
|
||||
- The default `vscode` image has been updated to 3.7.2
|
||||
- :warning: Upgraded `influxdb` subchart from version 0.6.7 to version 1.0.0.
|
||||
- :warning: Upgraded `postgresql` subchart from version 9.1.2 to version 10.1.0.
|
||||
This is a major version update, [requiring changes](https://github.com/bitnami/charts/tree/master/bitnami/postgresql#to-1000) in your `values.yaml` if you use it!
|
||||
- :warning: Upgraded `mariadb` subchart from version 7.7.1 to version 9.0.1.
|
||||
This is a major version update, [requiring changes](https://github.com/bitnami/charts/tree/master/bitnami/mariadb#to-900) in your `values.yaml` if you use it!
|
||||
|
||||
### Removed
|
||||
|
||||
- Subchart support for `esphome` was removed as it is really a separate application and integration was only limited to sharing a secrets file.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed some formatting errors that were causing the pipeline to fail.
|
||||
|
||||
## [2.7.0]
|
||||
|
||||
This is the last version before starting this changelog. All sorts of cool stuff was changed, but only `git log` remembers what that was :slightly_frowning_face:
|
||||
|
||||
|
||||
[3.0.0]: https://github.com/k8s-at-home/charts/tree/home-assistant-3.0.0/charts/home-assistant
|
||||
|
||||
[2.7.0]: https://github.com/k8s-at-home/charts/tree/home-assistant-2.7.0/charts/home-assistant
|
||||
@@ -1,8 +1,8 @@
|
||||
apiVersion: v2
|
||||
appVersion: 0.116.1
|
||||
appVersion: 0.118.3
|
||||
description: Home Assistant
|
||||
name: home-assistant
|
||||
version: 2.7.0
|
||||
version: 3.0.0
|
||||
keywords:
|
||||
- home-assistant
|
||||
- hass
|
||||
@@ -20,19 +20,15 @@ maintainers:
|
||||
- name: runningman84
|
||||
email: phil@hellmi.de
|
||||
dependencies:
|
||||
- name: esphome
|
||||
repository: https://k8s-at-home.com/charts/
|
||||
version: ~2.2.0
|
||||
condition: esphome.enabled
|
||||
- name: postgresql
|
||||
version: 9.1.2
|
||||
version: 10.1.0
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: postgresql.enabled
|
||||
- name: mariadb
|
||||
version: 7.7.1
|
||||
version: 9.0.1
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: mariadb.enabled
|
||||
- name: influxdb
|
||||
version: 0.6.7
|
||||
version: 1.0.0
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: influxdb.enabled
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
This is a helm chart for [Home Assistant](https://www.home-assistant.io/)
|
||||
|
||||
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
|
||||
|
||||
## TL;DR;
|
||||
|
||||
```shell
|
||||
@@ -9,6 +11,10 @@ helm repo add k8s-at-home https://k8s-at-home.com/charts/
|
||||
helm install k8s-at-home/home-assistant
|
||||
```
|
||||
|
||||
## :star2: Changelog
|
||||
|
||||
Please refer to [CHANGELOG.md](CHANGELOG.md) for an overview of notable changes to the chart. **This is especially important for major version updates!**
|
||||
|
||||
## Introduction
|
||||
|
||||
This code is adapted for [the official home assistant docker image](https://hub.docker.com/r/homeassistant/home-assistant/)
|
||||
@@ -38,7 +44,7 @@ The following tables lists the configurable parameters of the Home Assistant cha
|
||||
| Parameter | Description | Default |
|
||||
|-------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
|
||||
| `image.repository` | Image repository | `homeassistant/home-assistant` |
|
||||
| `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/homeassistant/home-assistant/tags/). | `0.114.0` |
|
||||
| `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/homeassistant/home-assistant/tags/). | `0.118.3` |
|
||||
| `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` |
|
||||
@@ -130,7 +136,7 @@ The following tables lists the configurable parameters of the Home Assistant cha
|
||||
| `configurator.service.loadBalancerSourceRanges` | Loadbalancer client IP restriction range for the configurator UI | `[]` |
|
||||
| `vscode.enabled` | Enable the optional [VS Code Server Sidecar](https://github.com/cdr/code-server) | `false` |
|
||||
| `vscode.image.repository` | Image repository | `codercom/code-server` |
|
||||
| `vscode.image.tag` | Image tag | `3.4.1` |
|
||||
| `vscode.image.tag` | Image tag | `3.7.2` |
|
||||
| `vscode.image.pullPolicy` | Image pull policy | `IfNotPresent` |
|
||||
| `vscode.hassConfig` | Base path of the home assistant configuration files | `/config` |
|
||||
| `vscode.vscodePath` | Base path of the VS Code configuration files | `/config/.vscode` |
|
||||
@@ -174,7 +180,6 @@ The following tables lists the configurable parameters of the Home Assistant cha
|
||||
| `appdaemon.service.externalIPs` | External IPs for the AppDaemon UI | `[]` |
|
||||
| `appdaemon.service.loadBalancerIP` | Loadbalancer IP for the AppDaemon UI | `` |
|
||||
| `appdaemon.service.loadBalancerSourceRanges` | Loadbalancer client IP restriction range for the VS Code UI | `[]` |
|
||||
| `esphome.enabled` | Enable the optional [ESPHome](https://esphome.io) deployment | `false` |
|
||||
| `mariadb.enabled` | Enable the optional [Mariadb](https://github.com/bitnami/charts) deployment | `false` |
|
||||
| `postgresql.enabled` | Enable the optional [Postgres](https://github.com/bitnami/charts) deployment | `false` |
|
||||
| `influxdb.enabled` | Enable the optional [Influxdb](https://github.com/bitnami/charts) deployment | `false` |
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
{{- if .Values.configurator.enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
@@ -20,8 +21,9 @@ data:
|
||||
password: {{ .Values.configurator.password | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
---
|
||||
|
||||
{{- if .Values.vscode.enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
@@ -37,8 +39,9 @@ data:
|
||||
password: {{ .Values.vscode.password | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
---
|
||||
|
||||
{{- if .Values.appdaemon.enabled }}
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
image:
|
||||
repository: homeassistant/home-assistant
|
||||
tag: 0.116.1
|
||||
tag: 0.118.3
|
||||
pullPolicy: IfNotPresent
|
||||
pullSecrets: []
|
||||
|
||||
@@ -252,7 +252,7 @@ vscode:
|
||||
##
|
||||
image:
|
||||
repository: codercom/code-server
|
||||
tag: 3.4.1
|
||||
tag: 3.7.2
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
## VSCode password
|
||||
@@ -350,31 +350,17 @@ appdaemon:
|
||||
loadBalancerSourceRanges: []
|
||||
# nodePort: 30000
|
||||
|
||||
esphome:
|
||||
enabled: false
|
||||
# Mount home-assistant's secrets.yaml into the esphome container.
|
||||
extraVolumes:
|
||||
- name: ha-config
|
||||
persistentVolumeClaim:
|
||||
claimName: home-assistant
|
||||
extraVolumeMounts:
|
||||
- name: ha-config
|
||||
mountPath: /config/secrets.yaml
|
||||
subPath: secrets.yaml
|
||||
|
||||
# Enabled mariadb
|
||||
# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb
|
||||
mariadb:
|
||||
enabled: false
|
||||
db:
|
||||
name: home-assistant
|
||||
user: home-assistant
|
||||
architecture: standalone
|
||||
auth:
|
||||
database: home-assistant
|
||||
username: home-assistant
|
||||
password: home-assistant-pass
|
||||
replication:
|
||||
enabled: false
|
||||
rootUser:
|
||||
password: home-assistantrootpass
|
||||
master:
|
||||
rootPassword: home-assistantrootpass
|
||||
primary:
|
||||
persistence:
|
||||
enabled: false
|
||||
# storageClass: ""
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v4.3.0
|
||||
description: 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.
|
||||
name: powerdns
|
||||
version: 2.0.1
|
||||
version: 2.2.0
|
||||
home: https://www.powerdns.com/
|
||||
sources:
|
||||
- http://www.github.com/PowerDNS/
|
||||
@@ -12,10 +12,10 @@ maintainers:
|
||||
email: ryan@ryanholt.net
|
||||
dependencies:
|
||||
- name: postgresql
|
||||
version: 9.1.2
|
||||
version: 9.8.12
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: postgres.enabled
|
||||
- name: mariadb
|
||||
version: 7.7.1
|
||||
version: 7.10.4
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: mariadb.enabled
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
name: statping
|
||||
description: Status page for monitoring your websites and applications
|
||||
type: application
|
||||
version: 1.0.1
|
||||
version: 1.1.1
|
||||
appVersion: v0.90.65
|
||||
keywords:
|
||||
- statping
|
||||
@@ -18,5 +18,5 @@ icon: https://github.com/statping/statping/blob/dev/frontend/src/assets/logo.png
|
||||
dependencies:
|
||||
- name: postgresql
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 9.4.0
|
||||
version: 10.1.0
|
||||
condition: postgres.posgresql.enabled
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
appVersion: v1.20.0
|
||||
description: A self-hosted data logger for your Tesla 🚘
|
||||
name: teslamate
|
||||
version: 3.0.2
|
||||
version: 3.0.3
|
||||
keywords:
|
||||
- teslamate
|
||||
- tesla
|
||||
@@ -12,7 +12,7 @@ sources:
|
||||
- https://github.com/adriankumpf/teslamate
|
||||
dependencies:
|
||||
- name: postgresql
|
||||
version: 9.1.2
|
||||
version: 10.1.0
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: postgresql.enabled
|
||||
maintainers:
|
||||
|
||||
@@ -2,7 +2,7 @@ apiVersion: v2
|
||||
name: traefik-forward-auth
|
||||
description: A minimal forward authentication service that provides OAuth/SSO login and authentication for the traefik reverse proxy/load balancer
|
||||
type: application
|
||||
version: 1.0.2
|
||||
version: 1.0.3
|
||||
appVersion: 2.2.0
|
||||
keywords:
|
||||
- traefik
|
||||
|
||||
@@ -61,6 +61,7 @@ helm install traefik-forward-auth k8s-at-home/traefik-forward-auth --values valu
|
||||
| cookie.domain | string | `""` | Domain(s) to set auth cookie on. (Comma delimited) |
|
||||
| cookie.insecure | string | `""` | Use insecure cookies |
|
||||
| cookie.name | string | `""` | Cookie Name (default: _forward_auth) |
|
||||
| cookie.secret | string| `""` | Cookie Secret - useful when running multiple instances |
|
||||
| default.action | string | `""` | [auth|allow] Default action (default: auth) |
|
||||
| default.provider | string | `""` | [google|oidc|generic-oauth] Default provider (default: google) |
|
||||
| env | list | `[]` | |
|
||||
|
||||
@@ -95,6 +95,13 @@ spec:
|
||||
- name: URL_PATH
|
||||
value: {{ .Values.urlPath | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.cookie.secret }}
|
||||
- name: COOKIE_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ $fullName }}
|
||||
key: cookie-secret
|
||||
{{- end }}
|
||||
{{- if ne .Values.secret "-" }}
|
||||
- name: SECRET
|
||||
{{- if .Values.secret }}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{- if and (ne .Values.secret "-") (not .Values.secret) }}
|
||||
{{- if or (and (ne .Values.secret "-") (not .Values.secret)) .Values.cookie.secret }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
@@ -7,5 +7,10 @@ metadata:
|
||||
{{- include "traefik-forward-auth.labels" . | nindent 4 }}
|
||||
type: Opaque
|
||||
data:
|
||||
{{- if not .Values.secret }}
|
||||
secret: {{ randAlphaNum 16 | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.cookie.secret }}
|
||||
cookie-secret: {{ .Values.cookie.secret | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -35,6 +35,8 @@ cookie:
|
||||
name: ""
|
||||
# cookie.csrfName -- CSRF Cookie Name (default: _forward_auth_csrf)
|
||||
csrfName: ""
|
||||
# cookie.secret -- Cookie Secret used for authentication across multiple instances / clusters (default: randomly generated)
|
||||
secret: ""
|
||||
default:
|
||||
# default.action -- [auth|allow] Default action (default: auth)
|
||||
action: ""
|
||||
|
||||
Reference in New Issue
Block a user