├── .github
├── ISSUE_TEMPLATE.md
├── PULL_REQUEST_TEMPLATE.md
├── check-for-chart-changes.sh
├── config.yml
├── ct.yaml
├── deploy-chart.sh
├── kind-config.yaml
├── kubeval.sh
├── lint-scripts.sh
├── stale.yml
└── workflows
│ ├── ci.yaml
│ └── deploy.yaml
├── .gitignore
├── LICENSE
├── README.md
└── charts
├── any-resource
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ └── any-resources.yaml
└── values.yaml
├── ditto-digital-twins
├── .helmignore
├── Chart.yaml
├── README.md
├── nginx-config
│ ├── index.html
│ ├── nginx-cors.conf
│ └── nginx.htpasswd
├── openapi
│ ├── ditto-api-1.yml
│ └── ditto-api-2.yml
├── requirements.yaml
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── concierge-deployment.yaml
│ ├── concierge-networkpolicy.yaml
│ ├── concierge-pdb.yaml
│ ├── connectivity-deployment.yaml
│ ├── connectivity-networkpolicy.yaml
│ ├── connectivity-pdb.yaml
│ ├── gateway-deployment.yaml
│ ├── gateway-networkpolicy.yaml
│ ├── gateway-pdb.yaml
│ ├── gateway-secret.yaml
│ ├── gateway-service.yaml
│ ├── mongodb-secret.yaml
│ ├── nginx-config.yaml
│ ├── nginx-configmap.yaml
│ ├── nginx-deployment.yaml
│ ├── nginx-ingress.yaml
│ ├── nginx-service.yaml
│ ├── policies-deployment.yaml
│ ├── policies-networkpolicy.yaml
│ ├── policies-pdb.yaml
│ ├── role.yaml
│ ├── rolebinding.yaml
│ ├── serviceaccount.yaml
│ ├── swaggerui-config.yaml
│ ├── swaggerui-deployment.yaml
│ ├── swaggerui-networkpolicy.yaml
│ ├── swaggerui-pdb.yaml
│ ├── swaggerui-service.yaml
│ ├── things-deployment.yaml
│ ├── things-networkpolicy.yaml
│ ├── things-pdb.yaml
│ ├── thingssearch-deployment.yaml
│ ├── thingssearch-networkpolicy.yaml
│ └── thingssearch-pdb.yaml
└── values.yaml
├── enmasse-crd
├── .helmignore
├── Chart.yaml
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── addressplans.crd.yaml
│ ├── addressspaceplans.crd.yaml
│ ├── authenticationservices.crd.yaml
│ ├── brokeredinfraconfigs.crd.yaml
│ ├── consoleservices.crd.yaml
│ ├── iotconfigs.crd.yaml
│ ├── iotprojects.crd.yaml
│ └── standardinfraconfigs.crd.yaml
└── values.yaml
├── enmasse
├── .helmignore
├── Chart.yaml
├── ci
│ └── test-values.yaml
├── requirements.yaml
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── api-server-cert-secret.yaml
│ ├── api-service-v1alpha1-enmasse-io.yaml
│ ├── api-service-v1alpha1-user-enmasse-io.yaml
│ ├── api-service-v1beta1-enmasse-io.yaml
│ ├── api-service-v1beta1-user-enmasse-io.yaml
│ ├── cluster-role-api-server.yaml
│ ├── cluster-role-binding-api-server.yaml
│ ├── cluster-role-binding-enmasse-operator.yaml
│ ├── cluster-role-binding-standard-authservice.yaml
│ ├── cluster-role-enmasse-operator.yaml
│ ├── cluster-role-standard-authservice.yaml
│ ├── deployment-address-space-controller.yaml
│ ├── deployment-api-server.yaml
│ ├── deployment-enmasse-operator.yaml
│ ├── role-address-space-admin.yaml
│ ├── role-address-space-controller.yaml
│ ├── role-api-server.yaml
│ ├── role-binding-address-space-admin.yaml
│ ├── role-binding-address-space-controller.yaml
│ ├── role-binding-api-server.yaml
│ ├── role-binding-enmasse-operator.yaml
│ ├── role-enmasse-operator.yaml
│ ├── service-account-address-space-admin.yaml
│ ├── service-account-address-space-controller.yaml
│ ├── service-account-api-server.yaml
│ ├── service-account-enmasse-operator.yaml
│ ├── service-account-standard-authservice.yaml
│ ├── service-address-space-controller.yaml
│ └── service-api-server.yaml
└── values.yaml
├── error-pages
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
└── values.yaml
├── fluentd-elasticsearch
├── Chart.yaml
├── OWNERS
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── clusterrole.yaml
│ ├── clusterrolebinding.yaml
│ ├── configmaps.yaml
│ ├── daemonset.yaml
│ ├── metrics-service.yaml
│ ├── pod-security-policy.yaml
│ ├── prometheusrule.yaml
│ ├── role.yaml
│ ├── rolebinding.yaml
│ ├── service-account.yaml
│ ├── service.yaml
│ └── servicemonitor.yaml
└── values.yaml
├── gcp-serviceaccount-controller
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── gcpnamespacerestriction_crd.yaml
│ ├── gcpserviceaccount_crd.yaml
│ ├── rbac_role.yaml
│ ├── rbac_role_binding.yaml
│ ├── secret.yaml
│ ├── service.yaml
│ └── stateful_set.yaml
└── values.yaml
├── grafana-dashboards
├── .helmignore
├── Chart.yaml
├── README.md
├── dashboards
│ └── grafana-dummy-dashboard.json
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ └── configmap.yaml
└── values.yaml
├── graphite
├── .helmignore
├── Chart.yaml
├── OWNERS
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── configmap-statsd.yaml
│ ├── configmap.yaml
│ ├── ingress.yaml
│ ├── pvc.yaml
│ ├── role.yaml
│ ├── rolebinding.yaml
│ ├── service.yaml
│ ├── serviceaccount.yaml
│ └── statefulset.yaml
└── values.yaml
├── hawkbit-update-server
├── .helmignore
├── Chart.yaml
├── README.md
├── requirements.yaml
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── configmap.yaml
│ ├── deployment.yaml
│ ├── ingress.yaml
│ ├── poddisruptionbudget.yaml
│ ├── secrets.yaml
│ ├── service.yaml
│ └── tests
│ │ └── test-connection.yaml
└── values.yaml
├── influxdb-backup
├── .helmignore
├── Chart.yaml
├── README.md
├── ci
│ └── test-values.yaml
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── configmap.yaml
│ ├── cronjob.yaml
│ ├── pvc.yaml
│ └── secrets.yaml
└── values.yaml
├── ingress-annotator
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── configmap.yaml
│ ├── deployment.yaml
│ ├── rbac_role.yaml
│ ├── rbac_role_binding.yaml
│ └── serviceaccount.yaml
└── values.yaml
├── keycloak-controller
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── configmap.yaml
│ ├── deployment.yaml
│ └── rbac
│ │ ├── role.yaml
│ │ ├── role_binding.yaml
│ │ └── serviceaccount.yaml
└── values.yaml
├── kubernetes-policy-controller
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── clusterrolebinding.yaml
│ ├── deployment.yaml
│ ├── matches-configmap.yaml
│ ├── policymatches-configmap.yaml
│ ├── role.yaml
│ ├── rolebinding.yaml
│ ├── service.yaml
│ └── webhookconfiguration.yaml
└── values.yaml
├── prometheus-pingdom-exporter
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── secret.yaml
│ └── service.yaml
└── values.yaml
├── prometheus-thanos
├── .helmignore
├── Chart.yaml
├── README.md
├── ci
│ └── test-values.yaml
├── requirements.yaml
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── bucket-web
│ │ ├── deployment.yaml
│ │ ├── service.yaml
│ │ └── serviceaccount.yaml
│ ├── compactor
│ │ ├── service.yaml
│ │ ├── serviceaccount.yaml
│ │ └── statefulset.yaml
│ ├── querier
│ │ ├── deployment-hpa.yaml
│ │ ├── deployment.yaml
│ │ ├── service.yaml
│ │ └── serviceaccount.yaml
│ ├── query-frontend
│ │ ├── deployment-hpa.yaml
│ │ ├── deployment.yaml
│ │ ├── service.yaml
│ │ └── serviceaccount.yaml
│ ├── receiver
│ │ ├── hashring-configmap.yaml
│ │ ├── service.yaml
│ │ ├── serviceaccount.yaml
│ │ └── statefulset.yaml
│ ├── ruler
│ │ ├── clusterrole.yaml
│ │ ├── clusterrolebinding.yaml
│ │ ├── configmap.yaml
│ │ ├── service.yaml
│ │ ├── serviceaccount.yaml
│ │ └── statefulset.yaml
│ └── store-gateway
│ │ ├── service.yaml
│ │ ├── serviceaccount.yaml
│ │ ├── statefulset-hpa.yaml
│ │ └── statefulset.yaml
└── values.yaml
├── pull-secret-distributor
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── cluster-role.yaml
│ ├── cluster-rolebinding.yaml
│ ├── deployment.yaml
│ └── serviceaccount.yaml
└── values.yaml
├── secret-replicator
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── cluster-role.yaml
│ ├── cluster-rolebinding.yaml
│ ├── deployment.yaml
│ └── serviceaccount.yaml
└── values.yaml
├── spring-cloud-config-server
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── ingress.yaml
│ ├── secret.yaml
│ └── service.yaml
└── values.yaml
├── stackdriver-exporter
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── gcpserviceaccount.yaml
│ └── secret.yaml
└── values.yaml
└── zipkin-stackdriver-proxy
├── .helmignore
├── Chart.yaml
├── README.md
├── templates
├── NOTES.txt
├── _helpers.tpl
├── deployment.yaml
└── service.yaml
└── values.yaml
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
6 |
7 | **Is this a request for help?**:
8 |
9 | ---
10 |
11 | **Is this a BUG REPORT or FEATURE REQUEST?** (choose one):
12 |
13 |
26 |
27 | **Version of Helm and Kubernetes**:
28 |
29 |
30 | **Which chart in which version**:
31 |
32 |
33 | **What happened**:
34 |
35 |
36 | **What you expected to happen**:
37 |
38 |
39 | **How to reproduce it** (as minimally and precisely as possible):
40 |
41 |
42 | **Anything else we need to know**:
43 |
--------------------------------------------------------------------------------
/.github/check-for-chart-changes.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # check for chart changes to speedup ci
4 | #
5 |
6 | set -x
7 | set -o errexit
8 | set -o pipefail
9 |
10 | echo "Check for chart changes to speedup ci..."
11 |
12 | CHART_CHANGES="$(git diff --find-renames --name-only "$(git rev-parse --abbrev-ref HEAD)" remotes/origin/master -- charts)"
13 |
14 | if [ -z "${CHART_CHANGES}" ]; then
15 | echo -e "\n\n Error! No chart changes detected! Exiting... \n"
16 | exit 1
17 | else
18 | echo -e "\nChanges found in:"
19 | echo "${CHART_CHANGES}"
20 | echo -e "\nContinue with next job... \n"
21 | fi
22 |
--------------------------------------------------------------------------------
/.github/config.yml:
--------------------------------------------------------------------------------
1 | # Configuration for request-info - https://github.com/behaviorbot/request-info
2 |
3 | # *OPTIONAL* Comment to reply with
4 | # Can be either a string :
5 | # requestInfoReplyComment: >
6 | # We would appreciate it if you could provide us with more info about this issue/pr!
7 |
8 | # Or an array:
9 | requestInfoReplyComment:
10 | - Ah no! young blade! That was a trifle short!
11 | - Tell me more !
12 | - I am sure you can be more effusive ;-)
13 |
14 | # *OPTIONAL* default titles to check against for lack of descriptiveness
15 | # MUST BE ALL LOWERCASE
16 | requestInfoDefaultTitles:
17 | - Update README.md
18 |
19 | # *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given
20 | requestInfoLabelToAdd: needs-more-info
21 |
22 | # *OPTIONAL* Require Issues to contain more information than what is provided in the issue templates
23 | # Will fail if the issue's body is equal to a provided template
24 | checkIssueTemplate: true
25 |
26 | # *OPTIONAL* Require Pull Requests to contain more information than what is provided in the PR template
27 | # Will fail if the pull request's body is equal to the provided template
28 | checkPullRequestTemplate: true
29 |
30 | # # *OPTIONAL* Only warn about insufficient information on these events type
31 | # # Keys must be lowercase. Valid values are 'issue' and 'pullRequest'
32 | # requestInfoOn:
33 | # pullRequest: true
34 | # issue: true
35 |
36 | # # *OPTIONAL* Add a list of people whose Issues/PRs will not be commented on
37 | # # keys must be GitHub usernames
38 | # requestInfoUserstoExclude:
39 | # - monotek
40 | # - axdotl
41 |
--------------------------------------------------------------------------------
/.github/ct.yaml:
--------------------------------------------------------------------------------
1 | helm-extra-args: --timeout 1200s
2 | check-version-increment: true
3 | debug: true
4 | chart-repos:
5 | - kiwigrid=https://kiwigrid.github.io/
6 | - minio=https://helm.min.io
7 |
--------------------------------------------------------------------------------
/.github/kind-config.yaml:
--------------------------------------------------------------------------------
1 | kind: Cluster
2 | apiVersion: kind.x-k8s.io/v1alpha4
3 | nodes:
4 | # the control plane node config
5 | - role: control-plane
6 | # the 2 workers
7 | - role: worker
8 | - role: worker
9 |
--------------------------------------------------------------------------------
/.github/kubeval.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # use kubeval to validate helm generated kubernetes manifest
4 | #
5 |
6 | set -x
7 | set -o errexit
8 | set -o pipefail
9 |
10 | CHART_DIRS="$(git diff --find-renames --name-only "$(git rev-parse --abbrev-ref HEAD)" remotes/origin/master -- charts | grep '[cC]hart.yaml' | sed -e 's#/[Cc]hart.yaml##g')"
11 | HELM_VERSION="v3.1.2"
12 | KUBEVAL_VERSION="0.15.0"
13 | SCHEMA_LOCATION="https://raw.githubusercontent.com/instrumenta/kubernetes-json-schema/master/"
14 |
15 | # install helm
16 | curl --silent --show-error --fail --location --output get_helm.sh https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get
17 | chmod 700 get_helm.sh
18 | ./get_helm.sh --version "${HELM_VERSION}"
19 |
20 | # install kubeval
21 | curl --silent --show-error --fail --location --output /tmp/kubeval.tar.gz https://github.com/instrumenta/kubeval/releases/download/"${KUBEVAL_VERSION}"/kubeval-linux-amd64.tar.gz
22 | sudo tar -C /usr/local/bin -xf /tmp/kubeval.tar.gz kubeval
23 |
24 | # validate charts
25 | for CHART_DIR in ${CHART_DIRS};do
26 | echo "helm dependency build..."
27 | helm dependency build "${CHART_DIR}"
28 |
29 | echo "kubeval(idating) ${CHART_DIR##charts/} chart..."
30 | helm template "${CHART_DIR}" | kubeval --strict --ignore-missing-schemas --kubernetes-version "${KUBERNETES_VERSION#v}" --schema-location "${SCHEMA_LOCATION}"
31 | done
32 |
--------------------------------------------------------------------------------
/.github/lint-scripts.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | #
3 | # lint bash scripts
4 | #
5 |
6 | set -x
7 | set -o errexit
8 |
9 | CONFIG_DIR=".github"
10 |
11 | TMP_FILE="$(mktemp)"
12 |
13 | find "${CONFIG_DIR}" -type f -name "*.sh" > "${TMP_FILE}"
14 |
15 | while read -r FILE; do
16 | echo lint "${FILE}"
17 | shellcheck -x "${FILE}"
18 | done < "${TMP_FILE}"
19 |
--------------------------------------------------------------------------------
/.github/stale.yml:
--------------------------------------------------------------------------------
1 | # Number of days of inactivity before an issue becomes stale
2 | daysUntilStale: 60
3 | # Number of days of inactivity before a stale issue is closed
4 | daysUntilClose: 7
5 | # Issues with these labels will never be considered stale
6 | exemptLabels:
7 | - pinned
8 | - security
9 | # Label to use when marking an issue as stale
10 | staleLabel: wontfix
11 | # Comment to post when marking an issue as stale. Set to `false` to disable
12 | markComment: >
13 | This issue has been automatically marked as stale because it has not had
14 | recent activity. It will be closed if no further activity occurs. Thank you
15 | for your contributions.
16 | # Comment to post when closing a stale issue. Set to `false` to disable
17 | closeComment: false
18 |
--------------------------------------------------------------------------------
/.github/workflows/deploy.yaml:
--------------------------------------------------------------------------------
1 | name: deploy
2 |
3 | on:
4 | push:
5 | branches: [master]
6 |
7 | jobs:
8 | deploy-chart:
9 | name: deploy-chart
10 | runs-on: ubuntu-latest
11 | steps:
12 | - name: Checkout
13 | uses: actions/checkout@v2
14 | - name: Fetch history
15 | run: git fetch --prune --unshallow
16 | - name: Lint Bash scripts
17 | uses: docker://koalaman/shellcheck-alpine:v0.7.0
18 | with:
19 | args: /github/workspace/.github/lint-scripts.sh
20 | - name: Set user permissions
21 | run: chmod -R 777 /home/runner/work
22 | - name: Deploy Helm chart
23 | env:
24 | SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY_KIWIGRID_GITHUB_IO }}
25 | uses: docker://kiwigrid/gcloud-kubectl-helm:2.16.1-272.0.0-184
26 | with:
27 | args: /github/workspace/.github/deploy-chart.sh
28 |
29 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.tgz
2 | .ci/test.sh
3 | charts/*/charts
4 | charts/*/requirements.lock
5 | kiwigrid.github.io
6 | tmp
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Kiwigrid GmbH
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Kiwigrid Helm charts
2 |
3 | [](https://github.com/kiwigrid/helm-charts/actions)
4 |
5 | ## Add repo
6 |
7 | ```console
8 | $ helm repo add kiwigrid https://kiwigrid.github.io
9 | ```
10 |
11 | ## Support
12 |
13 | * Please don't write mails directly to the maintainers.
14 | * Use the Github issue tracker instead.
15 |
16 | ## Adding charts
17 |
18 | * Use a fork of this repo
19 | * Always sign your commits (git commit -s -m 'usefull commitmessage')
20 | * Do NOT touch default (master) branch in any forks
21 | * Always create new branches to work on
22 | * Create a Github pull request and fill out the PR template
23 | * Follow Helm best practices: [https://docs.helm.sh/chart_best_practices](https://docs.helm.sh/chart_best_practices)
24 |
--------------------------------------------------------------------------------
/charts/any-resource/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/any-resource/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "0.1.0"
3 | description: A Helm chart to bring any kind of resources in a k8s cluster
4 | name: any-resource
5 | version: 0.1.0
6 | home: https://github.com/kiwigrid/helm-charts
7 | maintainers:
8 | - name: axdotl
9 | email: axel.koehler@kiwigrid.com
10 |
--------------------------------------------------------------------------------
/charts/any-resource/README.md:
--------------------------------------------------------------------------------
1 | # A Helm Chart for any Kind of Resources
2 |
3 | The purpose of this chart is to become able to manage every installed resources in a Kubernetes cluster via HELM.
4 |
5 | For example:
6 | * Global secrets (e.g. TLS certs or `imagePullSecrets`)
7 | * ConfigMaps (e.g. grafana-dashboards, see https://github.com/helm/charts/tree/master/stable/grafana#sidecar-for-dashboards)
8 | * Custom Resources (e.g. `GcpNamespaceRestriction`, see https://github.com/kiwigrid/gcp-serviceaccount-controller)
9 |
10 | ## Example
11 |
12 | Create a file called `custom-values.yaml` with following content:
13 | ```yaml
14 | anyResources:
15 | myPullSecret: |-
16 | apiVersion: v1
17 | data:
18 | .dockercfg: eyJodHRwczovL215LmRvY2tlci5yZWdpc3RyeSI6eyJ1c2VybmFtZSI6ImRvY2tlciIsInBhc3N3b3JkIjoidW5rbm93biIsImF1dGgiOiJFaWsxYWhrdXVzaG9ocGhpdWY5emFocGhlZVRoYXhhPSJ9fQo=
19 | kind: Secret
20 | metadata:
21 | name: my-pull-secret
22 | type: kubernetes.io/dockercfg
23 | ```
24 |
25 | Install
26 | ```console
27 | helm upgrade --install my-pull-secret --values custom-values.yaml kiwigrid/any-resource
28 | ```
29 |
30 | ## Open Issue
31 |
32 | * HELM standard label support
33 |
--------------------------------------------------------------------------------
/charts/any-resource/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Any resources deployed.
2 |
--------------------------------------------------------------------------------
/charts/any-resource/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "any-resource.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "any-resource.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "any-resource.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
--------------------------------------------------------------------------------
/charts/any-resource/templates/any-resources.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.anyResources -}}
2 | {{- range $key, $value := .Values.anyResources -}}
3 | {{ $value }}
4 | ---
5 | {{ end -}}
6 | {{ else }}
7 | apiVersion: v1
8 | kind: ConfigMap
9 | metadata:
10 | name: {{ include "any-resource.fullname" . }}-dummy
11 | labels:
12 | app.kubernetes.io/name: {{ include "any-resource.name" . }}
13 | helm.sh/chart: {{ include "any-resource.chart" . }}
14 | app.kubernetes.io/instance: {{ .Release.Name }}
15 | app.kubernetes.io/managed-by: {{ .Release.Service }}
16 | data:
17 | foo: bar
18 | {{- end -}}
19 |
--------------------------------------------------------------------------------
/charts/any-resource/values.yaml:
--------------------------------------------------------------------------------
1 | anyResources: {}
2 | # exampleResource: |-
3 | # apiVersion: v1
4 | # kind: ConfigMap
5 | # metadata:
6 | # name: example-resource
7 | # data:
8 | # foo: bar
9 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "1.0.0-M3"
3 | description: A Helm chart for Eclipse Ditto
4 | name: ditto-digital-twins
5 | version: 0.7.1
6 | home: www.eclipse.org/ditto
7 | sources:
8 | - https://github.com/eclipse/ditto
9 | - https://github.com/kiwigrid/helm-charts/tree/master/charts/ditto-digital-twins
10 | icon: https://www.eclipse.org/ditto/images/ditto.svg
11 | deprecated: true
12 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/nginx-config/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Welcome to Eclipse Ditto
5 |
37 |
38 |
39 |
40 |
41 | You have started Eclipse Ditto
42 |
43 |
Thank you for trying out Eclipse Ditto!
44 |
In order to get started quickly, you can now have a look at the OpenAPI documentation for
45 |
49 |
Try out the HTTP APIs by using username "ditto" and password "ditto" when asked for by your browser.
50 |
We'll add more documentation and examples soon.
51 |
— the Ditto team
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/nginx-config/nginx-cors.conf:
--------------------------------------------------------------------------------
1 | #
2 | # CORS header support
3 | #
4 | # As of Nginx 1.7.5, add_header supports an "always" parameter which
5 | # allows CORS to work if the backend returns 4xx or 5xx status code.
6 | #
7 | # For more information on CORS, please see: http://enable-cors.org/
8 | # From this Gist: https://gist.github.com/Stanback/7145487
9 | # And this: https://gist.github.com/pauloricardomg/7084524
10 | #
11 |
12 | set $cors '1';
13 |
14 | # OPTIONS indicates a CORS pre-flight request
15 | if ($request_method = 'OPTIONS') {
16 | set $cors "${cors}o";
17 | }
18 |
19 | if ($cors = '1') {
20 | add_header 'Access-Control-Allow-Origin' '*' always;
21 | add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
22 | add_header 'Access-Control-Allow-Credentials' 'true' always;
23 | add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,Content-Length,DNT,If-Match,If-Modified-Since,If-None-Match,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
24 | }
25 |
26 | # OPTIONS (pre-flight) request from allowed CORS domain. return response directly
27 | if ($cors = '1o') {
28 | # Tell client that this pre-flight info is valid for 20 days
29 | add_header 'Access-Control-Max-Age' 1728000;
30 | add_header 'Access-Control-Allow-Origin' '*' always;
31 | add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
32 | add_header 'Access-Control-Allow-Credentials' 'true' always;
33 | add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,Content-Length,DNT,If-Match,If-Modified-Since,If-None-Match,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
34 | add_header 'Content-Type' 'text/plain charset=UTF-8';
35 | add_header 'Content-Length' 0;
36 | return 200;
37 | }
38 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/nginx-config/nginx.htpasswd:
--------------------------------------------------------------------------------
1 | # this file contains sample users and their hashed password
2 | ditto:A6BgmB8IEtPTs
3 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/requirements.yaml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | - name: mongodb
3 | repository: https://kubernetes-charts.storage.googleapis.com
4 | version: 7.4.4
5 | condition: mongodb.enabled
6 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Eclipse Ditto installed!
2 |
3 | Access ditto in your browser (http://localhost:8080) by running:
4 |
5 | kubectl --namespace {{ .Release.Namespace }} port-forward svc/{{ include "ditto-digital-twins.fullname" . }}-nginx 8080:8080
6 |
7 | The /status resource can be accessed by:
8 |
9 | export STATUS_PWD=$(kubectl --namespace {{ .Release.Namespace }} get secret {{ include "ditto-digital-twins.fullname" . }}-gateway-secret -o jsonpath="{.data.status-password}" | base64 --decode)
10 | curl -i -X GET "http://devops:${STATUS_PWD}@localhost:8080/status"
11 |
12 | The /devops resource can be accessed by:
13 |
14 | export DEVOPS_PWD=$(kubectl --namespace {{ .Release.Namespace }} get secret {{ include "ditto-digital-twins.fullname" . }}-gateway-secret -o jsonpath="{.data.devops-password}" | base64 --decode)
15 | curl -i -X GET "http://devops:${DEVOPS_PWD}@localhost:8080/devops"
16 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/concierge-networkpolicy.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.concierge.networkPolicy.enabled }}
2 | kind: NetworkPolicy
3 | apiVersion: networking.k8s.io/v1
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-concierge
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-concierge
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | podSelector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-concierge
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | policyTypes:
15 | - Ingress
16 | - Egress
17 | ingress:
18 | # Allow inner cluster communication
19 | - from:
20 | - podSelector:
21 | matchLabels:
22 | actorSystemName: {{ .Values.akka.actorSystemName }}
23 | ports:
24 | - protocol: TCP
25 | port: {{ .Values.akka.remoting.port }}
26 | - protocol: TCP
27 | port: {{ .Values.akka.mgmthttp.port }}
28 | # Open all egress
29 | egress:
30 | - {}
31 | {{- end }}
32 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/concierge-pdb.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.concierge.podDisruptionBudget.enabled (gt .Values.concierge.replicaCount 1.0) -}}
2 | apiVersion: policy/v1beta1
3 | kind: PodDisruptionBudget
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-concierge
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-concierge
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | selector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-concierge
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | minAvailable: {{ .Values.concierge.podDisruptionBudget.minAvailable }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/connectivity-networkpolicy.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.connectivity.networkPolicy.enabled }}
2 | kind: NetworkPolicy
3 | apiVersion: networking.k8s.io/v1
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-connectivity
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-connectivity
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | podSelector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-connectivity
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | policyTypes:
15 | - Ingress
16 | - Egress
17 | ingress:
18 | # Allow inner cluster communication
19 | - from:
20 | - podSelector:
21 | matchLabels:
22 | actorSystemName: {{ .Values.akka.actorSystemName }}
23 | ports:
24 | - protocol: TCP
25 | port: {{ .Values.akka.remoting.port }}
26 | - protocol: TCP
27 | port: {{ .Values.akka.mgmthttp.port }}
28 | # Open all egress
29 | egress:
30 | - {}
31 | {{- end }}
32 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/connectivity-pdb.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.connectivity.podDisruptionBudget.enabled (gt .Values.connectivity.replicaCount 1.0) -}}
2 | apiVersion: policy/v1beta1
3 | kind: PodDisruptionBudget
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-connectivity
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-connectivity
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | selector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-connectivity
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | minAvailable: {{ .Values.connectivity.podDisruptionBudget.minAvailable }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/gateway-networkpolicy.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.gateway.networkPolicy.enabled }}
2 | kind: NetworkPolicy
3 | apiVersion: networking.k8s.io/v1
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-gateway
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-gateway
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | podSelector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-gateway
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | policyTypes:
15 | - Ingress
16 | - Egress
17 | ingress:
18 | # Allow access from Nginx
19 | - from:
20 | - podSelector:
21 | matchLabels:
22 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-nginx
23 | app.kubernetes.io/instance: {{ .Release.Name }}
24 | ports:
25 | - protocol: TCP
26 | port: http
27 | # Allow inner cluster communication
28 | - from:
29 | - podSelector:
30 | matchLabels:
31 | actorSystemName: {{ .Values.akka.actorSystemName }}
32 | ports:
33 | - protocol: TCP
34 | port: {{ .Values.akka.remoting.port }}
35 | - protocol: TCP
36 | port: {{ .Values.akka.mgmthttp.port }}
37 | # Open all egress
38 | egress:
39 | - {}
40 | {{- end }}
41 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/gateway-pdb.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.gateway.podDisruptionBudget.enabled (gt .Values.gateway.replicaCount 1.0) -}}
2 | apiVersion: policy/v1beta1
3 | kind: PodDisruptionBudget
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-gateway
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-gateway
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | selector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-gateway
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | minAvailable: {{ .Values.gateway.podDisruptionBudget.minAvailable }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/gateway-secret.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Secret
3 | metadata:
4 | name: {{ include "ditto-digital-twins.fullname" . }}-gateway-secret
5 | labels:
6 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-gateway-secret
7 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
8 | type: Opaque
9 | data:
10 | {{- if .Values.gateway.devopsPassword }}
11 | devops-password: {{ .Values.gateway.devopsPassword | b64enc | quote }}
12 | {{- else }}
13 | devops-password: {{ randAlphaNum 12 | b64enc | quote }}
14 | {{- end }}
15 | {{- if .Values.gateway.statusPassword }}
16 | status-password: {{ .Values.gateway.statusPassword | b64enc | quote }}
17 | {{- else }}
18 | status-password: {{ randAlphaNum 12 | b64enc | quote }}
19 | {{- end }}
20 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/gateway-service.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.gateway.enabled -}}
2 | apiVersion: v1
3 | kind: Service
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-gateway
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-gateway
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | {{- with .Values.gateway.service.annotations }}
10 | annotations:
11 | {{- toYaml . | nindent 4 }}
12 | {{- end }}
13 | spec:
14 | ports:
15 | - port: {{ .Values.gateway.service.port }}
16 | targetPort: http
17 | protocol: TCP
18 | name: http
19 | selector:
20 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-gateway
21 | app.kubernetes.io/instance: {{ .Release.Name }}
22 | {{- end }}
23 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/mongodb-secret.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Secret
3 | metadata:
4 | name: {{ include "ditto-digital-twins.fullname" . }}-mongodb-secret
5 | labels:
6 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-mongodb-secret
7 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
8 | type: Opaque
9 | data:
10 | concierge-uri: {{ .Values.dbconfig.concierge.uri | b64enc | quote}}
11 | connectivity-uri: {{ .Values.dbconfig.connectivity.uri | b64enc | quote}}
12 | things-uri: {{ .Values.dbconfig.things.uri | b64enc | quote}}
13 | searchDB-uri: {{ .Values.dbconfig.searchDB.uri | b64enc | quote}}
14 | policies-uri: {{ .Values.dbconfig.policies.uri | b64enc | quote}}
15 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/nginx-config.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.nginx.enabled -}}
2 | {{- $releaseName := .Release.Name -}}
3 | {{- $name := include "ditto-digital-twins.name" . -}}
4 | {{- $labels := include "ditto-digital-twins.labels" . -}}
5 | {{ $root := . }}
6 | {{ range $path, $bytes := .Files.Glob "nginx-config/**" }}
7 | apiVersion: v1
8 | kind: ConfigMap
9 | metadata:
10 | name: {{ $releaseName }}-{{ $path | replace "/" "-" | replace "." "-" }}
11 | labels:
12 | app.kubernetes.io/name: {{ $name }}-nginx-config
13 | {{ $labels | indent 4 }}
14 | data:
15 | {{ $path | replace "nginx-config/" ""}}: |-
16 | {{ $root.Files.Get $path | indent 4 }}
17 | ---
18 | {{- end -}}
19 | {{- end }}
20 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/nginx-ingress.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ingress.enabled -}}
2 | {{- $fullName := include "ditto-digital-twins.fullname" . -}}
3 | {{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
4 | apiVersion: networking.k8s.io/v1beta1
5 | {{- else -}}
6 | apiVersion: extensions/v1beta1
7 | {{- end }}
8 | kind: Ingress
9 | metadata:
10 | name: {{ $fullName }}
11 | labels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-nginx
13 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
14 | {{- with .Values.ingress.annotations }}
15 | annotations:
16 | {{- toYaml . | nindent 4 }}
17 | {{- end }}
18 | spec:
19 | {{- if .Values.ingress.tls }}
20 | tls:
21 | {{- range .Values.ingress.tls }}
22 | - hosts:
23 | {{- range .hosts }}
24 | - {{ . | quote }}
25 | {{- end }}
26 | secretName: {{ .secretName }}
27 | {{- end }}
28 | {{- end }}
29 | rules:
30 | {{- range .Values.ingress.hosts }}
31 | - host: {{ .host | quote }}
32 | http:
33 | paths:
34 | {{- range .paths }}
35 | - path: {{ . }}
36 | backend:
37 | serviceName: {{ $fullName }}-nginx
38 | servicePort: http
39 | {{- end }}
40 | {{- end }}
41 | {{- end }}
42 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/nginx-service.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.nginx.enabled -}}
2 | apiVersion: v1
3 | kind: Service
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-nginx
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-nginx
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | {{- with .Values.nginx.annotations }}
10 | annotations:
11 | {{- toYaml . | nindent 4 }}
12 | {{- end }}
13 | spec:
14 | type: {{ .Values.nginx.service.type }}
15 | ports:
16 | - port: {{ .Values.nginx.service.port }}
17 | targetPort: http
18 | protocol: TCP
19 | name: http
20 | selector:
21 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-nginx
22 | app.kubernetes.io/instance: {{ .Release.Name }}
23 | {{- end }}
24 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/policies-networkpolicy.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.policies.networkPolicy.enabled }}
2 | kind: NetworkPolicy
3 | apiVersion: networking.k8s.io/v1
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-policies
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-policies
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | podSelector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-policies
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | policyTypes:
15 | - Ingress
16 | - Egress
17 | ingress:
18 | # Allow inner cluster communication
19 | - from:
20 | - podSelector:
21 | matchLabels:
22 | actorSystemName: {{ .Values.akka.actorSystemName }}
23 | ports:
24 | - protocol: TCP
25 | port: {{ .Values.akka.remoting.port }}
26 | - protocol: TCP
27 | port: {{ .Values.akka.mgmthttp.port }}
28 | # Open all egress
29 | egress:
30 | - {}
31 | {{- end }}
32 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/policies-pdb.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.policies.podDisruptionBudget.enabled (gt .Values.policies.replicaCount 1.0) -}}
2 | apiVersion: policy/v1beta1
3 | kind: PodDisruptionBudget
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-policies
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-policies
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | selector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-policies
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | minAvailable: {{ .Values.policies.podDisruptionBudget.minAvailable }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/role.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled -}}
2 | kind: Role
3 | apiVersion: rbac.authorization.k8s.io/v1
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | rules:
10 | - apiGroups: [""]
11 | resources: ["pods"]
12 | verbs: ["get", "watch", "list"]
13 | {{- end -}}
14 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/rolebinding.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled -}}
2 | kind: RoleBinding
3 | apiVersion: rbac.authorization.k8s.io/v1
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | roleRef:
10 | kind: Role
11 | name: {{ include "ditto-digital-twins.fullname" . }}
12 | apiGroup: rbac.authorization.k8s.io
13 | subjects:
14 | - kind: ServiceAccount
15 | name: {{ template "ditto-digital-twins.serviceAccountName" . }}
16 | {{- end -}}
17 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.serviceAccount.create -}}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ template "ditto-digital-twins.serviceAccountName" . }}
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | {{- end -}}
10 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/swaggerui-config.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.swaggerui.enabled -}}
2 | apiVersion: v1
3 | kind: ConfigMap
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-swaggerui
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-swaggerui
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | data:
10 | {{ (.Files.Glob "openapi/*").AsConfig | indent 2 }}
11 | {{- end }}
12 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/swaggerui-networkpolicy.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.swaggerui.networkPolicy.enabled }}
2 | kind: NetworkPolicy
3 | apiVersion: networking.k8s.io/v1
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-swaggerui
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-swaggerui
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | podSelector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-swaggerui
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | policyTypes:
15 | - Ingress
16 | - Egress
17 | ingress:
18 | - from:
19 | - podSelector:
20 | matchLabels:
21 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-nginx
22 | app.kubernetes.io/instance: {{ .Release.Name }}
23 | ports:
24 | - protocol: TCP
25 | port: 8080
26 | {{- end }}
27 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/swaggerui-pdb.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.swaggerui.podDisruptionBudget.enabled (gt .Values.swaggerui.replicaCount 1.0) -}}
2 | apiVersion: policy/v1beta1
3 | kind: PodDisruptionBudget
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-swaggerui
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-swaggerui
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | selector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-swaggerui
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | minAvailable: {{ .Values.swaggerui.podDisruptionBudget.minAvailable }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/swaggerui-service.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.swaggerui.enabled -}}
2 | apiVersion: v1
3 | kind: Service
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-swaggerui
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-swaggerui
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | {{- with .Values.swaggerui.annotations }}
10 | annotations:
11 | {{- toYaml . | nindent 4 }}
12 | {{- end }}
13 | spec:
14 | ports:
15 | - port: {{ .Values.swaggerui.service.port }}
16 | targetPort: http
17 | protocol: TCP
18 | name: http
19 | selector:
20 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-swaggerui
21 | app.kubernetes.io/instance: {{ .Release.Name }}
22 | {{- end }}
23 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/things-networkpolicy.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.things.networkPolicy.enabled }}
2 | kind: NetworkPolicy
3 | apiVersion: networking.k8s.io/v1
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-things
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-things
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | podSelector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-things
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | policyTypes:
15 | - Ingress
16 | - Egress
17 | ingress:
18 | # Allow access from concierge
19 | - from:
20 | - podSelector:
21 | matchLabels:
22 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-concierge
23 | app.kubernetes.io/instance: {{ .Release.Name }}
24 | ports:
25 | - protocol: TCP
26 | port: http
27 | # Allow inner cluster communication
28 | - from:
29 | - podSelector:
30 | matchLabels:
31 | actorSystemName: {{ .Values.akka.actorSystemName }}
32 | ports:
33 | - protocol: TCP
34 | port: {{ .Values.akka.remoting.port }}
35 | - protocol: TCP
36 | port: {{ .Values.akka.mgmthttp.port }}
37 | # Open all egress
38 | egress:
39 | - {}
40 | {{- end }}
41 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/things-pdb.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.things.podDisruptionBudget.enabled (gt .Values.things.replicaCount 1.0) -}}
2 | apiVersion: policy/v1beta1
3 | kind: PodDisruptionBudget
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-things
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-things
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | selector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-things
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | minAvailable: {{ .Values.things.podDisruptionBudget.minAvailable }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/thingssearch-networkpolicy.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.thingsSearch.networkPolicy.enabled }}
2 | kind: NetworkPolicy
3 | apiVersion: networking.k8s.io/v1
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-thingssearch
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-thingssearch
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | podSelector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-thingssearch
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | policyTypes:
15 | - Ingress
16 | - Egress
17 | ingress:
18 | # Allow inner cluster communication
19 | - from:
20 | - podSelector:
21 | matchLabels:
22 | actorSystemName: {{ .Values.akka.actorSystemName }}
23 | ports:
24 | - protocol: TCP
25 | port: {{ .Values.akka.remoting.port }}
26 | - protocol: TCP
27 | port: {{ .Values.akka.mgmthttp.port }}
28 | # Open all egress
29 | egress:
30 | - {}
31 | {{- end }}
32 |
--------------------------------------------------------------------------------
/charts/ditto-digital-twins/templates/thingssearch-pdb.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.things.podDisruptionBudget.enabled (gt .Values.things.replicaCount 1.0) -}}
2 | apiVersion: policy/v1beta1
3 | kind: PodDisruptionBudget
4 | metadata:
5 | name: {{ include "ditto-digital-twins.fullname" . }}-thingssearch
6 | labels:
7 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-thingssearch
8 | {{ include "ditto-digital-twins.labels" . | indent 4 }}
9 | spec:
10 | selector:
11 | matchLabels:
12 | app.kubernetes.io/name: {{ include "ditto-digital-twins.name" . }}-thingssearch
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | minAvailable: {{ .Values.things.podDisruptionBudget.minAvailable }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/enmasse-crd/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/enmasse-crd/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "0.30.1"
3 | description: A Helm chart for enmasse CRD's
4 | name: enmasse-crd
5 | version: 0.1.0
6 | home: https://enmasse.io/
7 | sources:
8 | - https://github.com/EnMasseProject/enmasse
9 | - https://github.com/kiwigrid/helm-charts/tree/master/charts/enmasse-crd
10 | maintainers:
11 | - name: rpahli
12 | email: rico.pahlisch@kiwigrid.com
13 |
--------------------------------------------------------------------------------
/charts/enmasse-crd/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Enmasse CRD's successful installed
--------------------------------------------------------------------------------
/charts/enmasse-crd/templates/consoleservices.crd.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apiextensions.k8s.io/v1beta1
2 | kind: CustomResourceDefinition
3 | metadata:
4 | name: consoleservices.admin.enmasse.io
5 | labels:
6 | {{ include "enmasse-crd.labels" . | indent 4 }}
7 | spec:
8 | group: admin.enmasse.io
9 | version: v1beta1
10 | scope: Namespaced
11 | names:
12 | kind: ConsoleService
13 | listKind: ConsoleServiceList
14 | singular: consoleservice
15 | plural: consoleservices
16 | validation:
17 | openAPIV3Schema:
18 | properties:
19 | spec:
20 | type: object
21 | properties:
22 | discoveryMetadataURL:
23 | type: string
24 | certificateSecret:
25 | type: object
26 | properties:
27 | name:
28 | type: string
29 | namespace:
30 | type: string
31 | oauthClientSecret:
32 | type: object
33 | properties:
34 | name:
35 | type: string
36 | namespace:
37 | type: string
38 | ssoCookieSecret:
39 | type: object
40 | properties:
41 | name:
42 | type: string
43 | namespace:
44 | type: string
45 | ssoCookieDomain:
46 | type: string
47 | scope:
48 | type: string
49 | host:
50 | type: string
51 | status:
52 | type: object
53 | properties:
54 | host:
55 | type: string
56 | port:
57 | type: integer
58 | caCertSecret:
59 | type: object
60 | properties:
61 | name:
62 | type: string
63 |
64 |
--------------------------------------------------------------------------------
/charts/enmasse-crd/templates/iotconfigs.crd.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apiextensions.k8s.io/v1beta1
2 | kind: CustomResourceDefinition
3 | metadata:
4 | name: iotconfigs.iot.enmasse.io
5 | labels:
6 | {{ include "enmasse-crd.labels" . | indent 4 }}
7 | spec:
8 | group: iot.enmasse.io
9 | version: v1alpha1
10 | scope: Namespaced
11 | names:
12 | kind: IoTConfig
13 | plural: iotconfigs
14 | singular: iotconfig
15 | shortNames:
16 | - icfg
17 | additionalPrinterColumns:
18 | - name: Phase
19 | type: string
20 | description: Phase of the IoT config
21 | JSONPath: .status.phase
22 | subresources:
23 | status: {}
24 |
--------------------------------------------------------------------------------
/charts/enmasse-crd/templates/iotprojects.crd.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apiextensions.k8s.io/v1beta1
2 | kind: CustomResourceDefinition
3 | metadata:
4 | name: iotprojects.iot.enmasse.io
5 | labels:
6 | {{ include "enmasse-crd.labels" . | indent 4 }}
7 | enmasse-component: iot
8 | spec:
9 | group: iot.enmasse.io
10 | version: v1alpha1
11 | scope: Namespaced
12 | names:
13 | kind: IoTProject
14 | plural: iotprojects
15 | singular: iotproject
16 | shortNames:
17 | - itp
18 | additionalPrinterColumns:
19 | - name: IoT tenant
20 | type: string
21 | description: The name of the IoT tenant
22 | JSONPath: .status.tenantName
23 | - name: Downstream Host
24 | type: string
25 | description: The endpoint host name
26 | JSONPath: .status.downstreamEndpoint.host
27 | - name: Downstream Port
28 | type: integer
29 | description: The endpoint port number
30 | JSONPath: .status.downstreamEndpoint.port
31 | - name: TLS
32 | type: boolean
33 | description: If TLS is enabled
34 | JSONPath: .status.downstreamEndpoint.tls
35 | - name: Phase
36 | type: string
37 | description: Phase of the IoT project
38 | JSONPath: .status.phase
39 | subresources:
40 | status: {}
41 |
--------------------------------------------------------------------------------
/charts/enmasse-crd/values.yaml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiwigrid/helm-charts/01c942ae9f9d1db6722099d655566b7bc4530fa6/charts/enmasse-crd/values.yaml
--------------------------------------------------------------------------------
/charts/enmasse/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/enmasse/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "0.30.1"
3 | description: A Helm chart for enmasse
4 | name: enmasse
5 | version: 0.1.0
6 | home: https://enmasse.io/
7 | sources:
8 | - https://github.com/EnMasseProject/enmasse
9 | - https://github.com/kiwigrid/helm-charts/tree/master/charts/enmasse
10 | maintainers:
11 | - name: rpahli
12 | email: rico.pahlisch@kiwigrid.com
13 |
--------------------------------------------------------------------------------
/charts/enmasse/ci/test-values.yaml:
--------------------------------------------------------------------------------
1 | enmasse-crd:
2 | enabled: true
3 |
--------------------------------------------------------------------------------
/charts/enmasse/requirements.yaml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | - name: enmasse-crd
3 | version: 0.1.0
4 | repository: https://kiwigrid.github.io/
5 | condition: enmasse-crd.enabled
--------------------------------------------------------------------------------
/charts/enmasse/templates/NOTES.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kiwigrid/helm-charts/01c942ae9f9d1db6722099d655566b7bc4530fa6/charts/enmasse/templates/NOTES.txt
--------------------------------------------------------------------------------
/charts/enmasse/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "enmasse.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "enmasse.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "enmasse.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
34 | {{/*
35 | Common labels
36 | */}}
37 | {{- define "enmasse.labels" -}}
38 | app.kubernetes.io/name: {{ include "enmasse.name" . }}
39 | helm.sh/chart: {{ include "enmasse.chart" . }}
40 | app.kubernetes.io/instance: {{ .Release.Name }}
41 | {{- if .Chart.AppVersion }}
42 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
43 | {{- end }}
44 | app.kubernetes.io/managed-by: {{ .Release.Service }}
45 | {{- end -}}
46 |
47 | {{/*
48 | Create the name of the service account to use
49 | */}}
50 | {{- define "enmasse.serviceAccountName" -}}
51 | {{- if .Values.serviceAccount.create -}}
52 | {{ default (include "enmasse.fullname" .) .Values.serviceAccount.name }}
53 | {{- else -}}
54 | {{ default "default" .Values.serviceAccount.name }}
55 | {{- end -}}
56 | {{- end -}}
57 |
--------------------------------------------------------------------------------
/charts/enmasse/templates/api-server-cert-secret.yaml:
--------------------------------------------------------------------------------
1 | {{- $cn := printf "%s.%s.svc.cluster.local" ( include "enmasse.fullname" . ) .Release.Namespace }}
2 | {{- $ca := genCA "enmasse" 3650 -}}
3 | {{- $cert := genSignedCert $cn nil nil 3650 $ca }}
4 | kind: Secret
5 | apiVersion: v1
6 | metadata:
7 | name: {{ include "enmasse.fullname" . }}-api-server-cert
8 | labels:
9 | {{ include "enmasse.labels" . | indent 4 }}
10 | type: kubernetes.io/tls
11 | data:
12 | tls.crt: {{ b64enc $cert.Cert }}
13 | tls.key: {{ b64enc $cert.Key }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/api-service-v1alpha1-enmasse-io.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apiregistration.k8s.io/v1beta1
2 | kind: APIService
3 | metadata:
4 | name: v1alpha1.enmasse.io
5 | labels:
6 | {{ include "enmasse.labels" . | indent 4 }}
7 | name: v1alpha1.enmasse.io
8 | spec:
9 | group: enmasse.io
10 | groupPriorityMinimum: 1000
11 | insecureSkipTLSVerify: true
12 | service:
13 | name: {{ include "enmasse.fullname" . }}-api-server
14 | namespace: {{.Release.Namespace}}
15 | version: v1alpha1
16 | versionPriority: 15
17 |
--------------------------------------------------------------------------------
/charts/enmasse/templates/api-service-v1alpha1-user-enmasse-io.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apiregistration.k8s.io/v1beta1
2 | kind: APIService
3 | metadata:
4 | labels:
5 | {{ include "enmasse.labels" . | indent 4 }}
6 | name: v1alpha1.user.enmasse.io
7 | spec:
8 | group: user.enmasse.io
9 | groupPriorityMinimum: 1000
10 | insecureSkipTLSVerify: true
11 | service:
12 | name: {{ include "enmasse.fullname" . }}-api-server
13 | namespace: {{.Release.Namespace}}
14 | version: v1alpha1
15 | versionPriority: 15
16 |
--------------------------------------------------------------------------------
/charts/enmasse/templates/api-service-v1beta1-enmasse-io.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apiregistration.k8s.io/v1beta1
2 | kind: APIService
3 | metadata:
4 | labels:
5 | {{ include "enmasse.labels" . | indent 4 }}
6 | name: v1beta1.enmasse.io
7 | spec:
8 | group: enmasse.io
9 | groupPriorityMinimum: 1000
10 | insecureSkipTLSVerify: true
11 | service:
12 | name: {{ include "enmasse.fullname" . }}-api-server
13 | namespace: {{.Release.Namespace}}
14 | version: v1beta1
15 | versionPriority: 15
16 |
--------------------------------------------------------------------------------
/charts/enmasse/templates/api-service-v1beta1-user-enmasse-io.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apiregistration.k8s.io/v1beta1
2 | kind: APIService
3 | metadata:
4 | labels:
5 | {{ include "enmasse.labels" . | indent 4 }}
6 | name: v1beta1.user.enmasse.io
7 | spec:
8 | group: user.enmasse.io
9 | groupPriorityMinimum: 1000
10 | insecureSkipTLSVerify: true
11 | service:
12 | name: {{ include "enmasse.fullname" . }}-api-server
13 | namespace: {{.Release.Namespace}}
14 | version: v1beta1
15 | versionPriority: 15
16 |
--------------------------------------------------------------------------------
/charts/enmasse/templates/cluster-role-api-server.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRole
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-api-server
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | rules:
9 | - apiGroups: [ "authentication.k8s.io" ]
10 | resources: [ "tokenreviews" ]
11 | verbs: [ "create" ]
12 | - apiGroups: [ "authorization.k8s.io" ]
13 | resources: [ "subjectaccessreviews" ]
14 | verbs: [ "create" ]
15 | - apiGroups: [ "" ]
16 | resources: [ "configmaps" ]
17 | resourceNames: [ "extension-apiserver-authentication" ]
18 | verbs: [ "get" ]
19 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/cluster-role-binding-api-server.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRoleBinding
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-api-server
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | roleRef:
9 | apiGroup: rbac.authorization.k8s.io
10 | kind: ClusterRole
11 | name: {{ include "enmasse.fullname" . }}-api-server
12 | subjects:
13 | - kind: ServiceAccount
14 | name: {{ include "enmasse.fullname" . }}-api-server
15 | namespace: {{.Release.Namespace}}
16 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/cluster-role-binding-enmasse-operator.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRoleBinding
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-operator
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | roleRef:
9 | apiGroup: rbac.authorization.k8s.io
10 | kind: ClusterRole
11 | name: {{ include "enmasse.fullname" . }}-operator
12 | subjects:
13 | - kind: ServiceAccount
14 | name: {{ include "enmasse.fullname" . }}-operator
15 | namespace: {{.Release.Namespace}}
16 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/cluster-role-binding-standard-authservice.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRoleBinding
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-standard-authservice
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | roleRef:
9 | apiGroup: rbac.authorization.k8s.io
10 | kind: ClusterRole
11 | name: {{ include "enmasse.fullname" . }}-standard-authservice
12 | subjects:
13 | - kind: ServiceAccount
14 | name: {{ include "enmasse.fullname" . }}-standard-authservice
15 | namespace: {{.Release.Namespace}}
16 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/cluster-role-enmasse-operator.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRole
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-operator
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | rules:
9 | - apiGroups: [ "oauth.openshift.io" ]
10 | resources: [ "oauthclients" ]
11 | verbs: [ "create", "get", "update", "list", "watch" ]
12 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/cluster-role-standard-authservice.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRole
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-standard-authservice
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | rules:
9 | - apiGroups: [ "authentication.k8s.io" ]
10 | resources: [ "tokenreviews" ]
11 | verbs: [ "create" ]
12 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/role-address-space-admin.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: Role
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-address-space-admin
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | rules:
9 | - apiGroups: [ "admin.enmasse.io" ]
10 | resources: [ "addressplans", "addressspaceplans", "brokeredinfraconfigs", "standardinfraconfigs", "authenticationservices", "consoleservices"]
11 | verbs: [ "get", "list", "watch" ]
12 | - apiGroups: [ "" ]
13 | resources: [ "pods", "secrets" ]
14 | verbs: [ "get", "list", "watch" ]
15 | - apiGroups: [ "" ]
16 | resources: [ "configmaps", "configmaps/finalizers" ]
17 | verbs: [ "create", "update", "patch", "get", "list", "watch", "delete" ]
18 | - apiGroups: [ "" ]
19 | resources: [ "events" ]
20 | verbs: [ "create", "update", "patch", "get", "list" ]
21 | - apiGroups: [ "" ]
22 | resources: [ "persistentvolumeclaims", "services" ]
23 | verbs: [ "create", "update", "patch", "get", "list", "delete" ]
24 | - apiGroups: [ "apps" ]
25 | resources: [ "statefulsets", "deployments" ]
26 | verbs: [ "create", "update", "patch", "get", "list", "delete" ]
27 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/role-address-space-controller.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: Role
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-address-space-controller
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | rules:
9 | - apiGroups: [ "admin.enmasse.io" ]
10 | resources: [ "addressplans", "addressspaceplans", "brokeredinfraconfigs", "standardinfraconfigs", "authenticationservices", "consoleservices"]
11 | verbs: [ "get", "list", "watch" ]
12 | - apiGroups: [ "" ]
13 | resources: [ "pods" ]
14 | verbs: [ "get", "list", "patch", "update" ]
15 | - apiGroups: [ "" ]
16 | resources: [ "configmaps", "configmaps/finalizers" ]
17 | verbs: [ "create", "update", "patch", "get", "list", "watch", "delete" ]
18 | - apiGroups: [ "" ]
19 | resources: [ "events" ]
20 | verbs: [ "create", "update", "patch", "get", "list" ]
21 | - apiGroups: [ "" ]
22 | resources: [ "services", "secrets", "persistentvolumeclaims" ]
23 | verbs: [ "create", "update", "patch", "get", "list", "delete" ]
24 | - apiGroups: [ "networking.k8s.io", "extensions" ]
25 | resources: [ "networkpolicies" ]
26 | verbs: [ "create", "update", "patch", "get", "list", "delete" ]
27 | - apiGroups: [ "route.openshift.io", "" ]
28 | resources: [ "routes", "routes/custom-host", "routes/status" ]
29 | verbs: [ "create", "update", "patch", "get", "list", "delete" ]
30 | - apiGroups: [ "apps", "extensions" ]
31 | resources: [ "statefulsets", "deployments", "replicasets" ]
32 | verbs: [ "create", "update", "patch", "get", "list", "delete" ]
33 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/role-api-server.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: Role
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-api-server
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | rules:
9 | - apiGroups: [ "" ]
10 | resources: [ "services", "secrets" ]
11 | verbs: [ "get", "list", "watch" ]
12 | - apiGroups: [ "" ]
13 | resources: [ "configmaps", "configmaps/finalizers" ]
14 | verbs: [ "create", "update", "patch", "get", "list", "watch", "delete" ]
15 | - apiGroups: [ "admin.enmasse.io" ]
16 | resources: [ "addressspaceplans", "addressplans", "standardinfraconfigs", "brokeredinfraconfigs", "authenticationservices", "consoleservices"]
17 | verbs: [ "get", "list", "watch" ]
18 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/role-binding-address-space-admin.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: RoleBinding
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-address-space-admin
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | roleRef:
9 | apiGroup: rbac.authorization.k8s.io
10 | kind: Role
11 | name: {{ include "enmasse.fullname" . }}-address-space-admin
12 | subjects:
13 | - kind: ServiceAccount
14 | name: address-space-admin
15 | namespace: {{.Release.Namespace}}
16 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/role-binding-address-space-controller.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: RoleBinding
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-address-space-controller
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | roleRef:
9 | apiGroup: rbac.authorization.k8s.io
10 | kind: Role
11 | name: {{ include "enmasse.fullname" . }}-address-space-controller
12 | subjects:
13 | - kind: ServiceAccount
14 | name: {{ include "enmasse.fullname" . }}-address-space-controller
15 | namespace: {{.Release.Namespace}}
16 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/role-binding-api-server.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: RoleBinding
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-api-server
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | roleRef:
9 | apiGroup: rbac.authorization.k8s.io
10 | kind: Role
11 | name: {{ include "enmasse.fullname" . }}-api-server
12 | subjects:
13 | - kind: ServiceAccount
14 | name: {{ include "enmasse.fullname" . }}-api-server
15 | namespace: {{.Release.Namespace}}
16 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/role-binding-enmasse-operator.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: RoleBinding
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-operator
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | roleRef:
9 | apiGroup: rbac.authorization.k8s.io
10 | kind: Role
11 | name: {{ include "enmasse.fullname" . }}-operator
12 | subjects:
13 | - kind: ServiceAccount
14 | name: {{ include "enmasse.fullname" . }}-operator
15 | namespace: {{.Release.Namespace}}
16 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/role-enmasse-operator.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: Role
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-operator
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | rules:
9 | - apiGroups: [ "apps" ]
10 | resources: [ "deployments" ]
11 | verbs: [ "get", "list", "watch", "update", "create", "patch", "delete" ]
12 | - apiGroups: [ "" ]
13 | resources: [ "configmaps", "secrets", "persistentvolumeclaims", "services" ]
14 | verbs: [ "get", "list", "watch", "update", "create", "patch", "delete" ]
15 | - apiGroups: [ "", "route.openshift.io" ]
16 | resources: [ "routes", "routes/custom-host", "routes/status"]
17 | verbs: [ "create", "update", "patch", "get", "list", "watch", "delete" ]
18 | - apiGroups: [ "apps.openshift.io" ]
19 | resources: [ "deploymentconfigs"]
20 | verbs: [ "get", "list", "watch" ]
21 | - apiGroups: [ "admin.enmasse.io" ]
22 | resources: [ "authenticationservices", "authenticationservices/finalizers", "consoleservices", "consoleservices/finalizers" ]
23 | verbs: [ "get", "list", "watch", "update", "create", "patch" ]
24 | - apiGroups: [ "iot.enmasse.io" ]
25 | resources: [ "iotconfigs", "iotconfigs/finalizers", "iotconfigs/status" ]
26 | verbs: [ "get", "list", "watch", "update", "create", "patch" ]
27 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/service-account-address-space-admin.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: address-space-admin
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/service-account-address-space-controller.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-address-space-controller
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/service-account-api-server.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-api-server
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/service-account-enmasse-operator.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-operator
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/service-account-standard-authservice.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled }}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "enmasse.fullname" . }}-standard-authservice
6 | labels:
7 | {{ include "enmasse.labels" . | indent 4 }}
8 | {{- end }}
--------------------------------------------------------------------------------
/charts/enmasse/templates/service-address-space-controller.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ include "enmasse.fullname" . }}-address-space-controller
5 | labels:
6 | {{ include "enmasse.labels" . | indent 4 }}
7 | {{- with .Values.addressSpaceController.service.annotations }}
8 | annotations:
9 | {{ toYaml . | indent 4 }}
10 | {{- end }}
11 | spec:
12 | ports:
13 | - name: health
14 | port: 8080
15 | protocol: TCP
16 | targetPort: http
17 | selector:
18 | app.kubernetes.io/name: {{ include "enmasse.fullname" . }}-address-space-controller
19 | app.kubernetes.io/instance: {{ .Release.Name }}
20 | type: ClusterIP
21 |
--------------------------------------------------------------------------------
/charts/enmasse/templates/service-api-server.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ include "enmasse.fullname" . }}-api-server
5 | labels:
6 | {{ include "enmasse.labels" . | indent 4 }}
7 | annotations:
8 | service.alpha.openshift.io/serving-cert-secret-name: {{ include "enmasse.fullname" . }}-api-server-cert
9 | {{- with .Values.apiServer.service.annotations }}
10 | {{ toYaml .Values.apiServer.service.annotations | nindent 4 }}
11 | {{- end }}
12 | spec:
13 | ports:
14 | - name: https
15 | port: 443
16 | protocol: TCP
17 | targetPort: https
18 | - name: health
19 | port: 8080
20 | protocol: TCP
21 | targetPort: http
22 | selector:
23 | app.kubernetes.io/name: {{ include "enmasse.fullname" . }}-api-server
24 | app.kubernetes.io/instance: {{ .Release.Name }}
25 | type: ClusterIP
26 |
--------------------------------------------------------------------------------
/charts/error-pages/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/error-pages/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "1.0"
3 | description: A Helm chart for Kubernetes error pages for traefik
4 | name: error-pages
5 | version: 1.0.0
6 | home: https://github.com/kiwigrid/helm-charts
7 | sources:
8 | - https://github.com/kiwigrid/helm-charts
9 | maintainers:
10 | - name: rpahli
11 | email: rico.pahlisch@kiwigrid.com
12 |
--------------------------------------------------------------------------------
/charts/error-pages/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Your error page service is up and running
--------------------------------------------------------------------------------
/charts/error-pages/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "error-pages.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "error-pages.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "error-pages.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
--------------------------------------------------------------------------------
/charts/error-pages/templates/deployment.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apps/v1
2 | kind: Deployment
3 | metadata:
4 | name: {{ include "error-pages.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "error-pages.name" . }}
7 | helm.sh/chart: {{ include "error-pages.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | spec:
11 | replicas: {{ .Values.replicaCount }}
12 | selector:
13 | matchLabels:
14 | app.kubernetes.io/name: {{ include "error-pages.name" . }}
15 | app.kubernetes.io/instance: {{ .Release.Name }}
16 | template:
17 | metadata:
18 | labels:
19 | app.kubernetes.io/name: {{ include "error-pages.name" . }}
20 | app.kubernetes.io/instance: {{ .Release.Name }}
21 | spec:
22 | containers:
23 | - name: {{ .Chart.Name }}
24 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
25 | imagePullPolicy: {{ .Values.image.pullPolicy }}
26 | ports:
27 | - name: http
28 | containerPort: 80
29 | protocol: TCP
30 | resources:
31 | {{- toYaml .Values.resources | nindent 12 }}
32 | {{- with .Values.nodeSelector }}
33 | nodeSelector:
34 | {{- toYaml . | nindent 8 }}
35 | {{- end }}
36 | {{- with .Values.affinity }}
37 | affinity:
38 | {{- toYaml . | nindent 8 }}
39 | {{- end }}
40 | {{- with .Values.tolerations }}
41 | tolerations:
42 | {{- toYaml . | nindent 8 }}
43 | {{- end }}
44 |
--------------------------------------------------------------------------------
/charts/error-pages/templates/ingress.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ingress.enabled -}}
2 | {{- $fullName := include "error-pages.fullname" . -}}
3 | apiVersion: networking.k8s.io/v1
4 | kind: Ingress
5 | metadata:
6 | name: {{ $fullName }}
7 | labels:
8 | app.kubernetes.io/name: {{ include "error-pages.name" . }}
9 | helm.sh/chart: {{ include "error-pages.chart" . }}
10 | app.kubernetes.io/instance: {{ .Release.Name }}
11 | app.kubernetes.io/managed-by: {{ .Release.Service }}
12 | annotations:
13 | traefik.ingress.kubernetes.io/error-pages: |-
14 | foo:
15 | status:
16 | - "404"
17 | - "503"
18 | backend: global-default-backend
19 | query: "/{status}.html"
20 | {{- with .Values.ingress.annotations }}
21 | {{- toYaml . | nindent 4 }}
22 | {{- end }}
23 | spec:
24 | backend:
25 | serviceName: {{ $fullName }}
26 | servicePort: http
27 | {{- end }}
28 |
--------------------------------------------------------------------------------
/charts/error-pages/templates/service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ include "error-pages.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "error-pages.name" . }}
7 | helm.sh/chart: {{ include "error-pages.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | spec:
11 | type: {{ .Values.service.type }}
12 | ports:
13 | - port: {{ .Values.service.port }}
14 | targetPort: http
15 | protocol: TCP
16 | name: http
17 | selector:
18 | app.kubernetes.io/name: {{ include "error-pages.name" . }}
19 | app.kubernetes.io/instance: {{ .Release.Name }}
20 |
--------------------------------------------------------------------------------
/charts/error-pages/values.yaml:
--------------------------------------------------------------------------------
1 | # Default values for error-pages.
2 | # This is a YAML-formatted file.
3 | # Declare variables to be passed into your templates.
4 |
5 | replicaCount: 1
6 |
7 | image:
8 | repository: guillaumebriday/traefik-custom-error-pages
9 | tag: latest
10 | pullPolicy: IfNotPresent
11 |
12 | nameOverride: ""
13 | fullnameOverride: ""
14 |
15 | service:
16 | type: ClusterIP
17 | port: 80
18 |
19 | ingress:
20 | enabled: false
21 | annotations: {}
22 |
23 | resources: {}
24 | # We usually recommend not to specify default resources and to leave this as a conscious
25 | # choice for the user. This also increases chances charts run on environments with little
26 | # resources, such as Minikube. If you do want to specify resources, uncomment the following
27 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
28 | # limits:
29 | # cpu: 100m
30 | # memory: 128Mi
31 | # requests:
32 | # cpu: 100m
33 | # memory: 128Mi
34 |
35 | nodeSelector: {}
36 |
37 | tolerations: []
38 |
39 | affinity: {}
40 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | name: fluentd-elasticsearch
3 | version: 9.6.2
4 | appVersion: 3.0.4
5 | home: https://www.fluentd.org/
6 | description: A Fluentd Helm chart for Kubernetes with Elasticsearch output
7 | icon: https://raw.githubusercontent.com/fluent/fluentd-docs/master/public/logo/Fluentd_square.png
8 | keywords:
9 | - fluentd
10 | - elasticsearch
11 | - multiline
12 | - detect-exceptions
13 | - logging
14 | sources:
15 | - https://github.com/kiwigrid/helm-charts/tree/master/charts/fluentd-elasticsearch
16 | - https://github.com/fluent/fluentd-kubernetes-daemonset
17 | - https://github.com/GoogleCloudPlatform/fluent-plugin-detect-exceptions
18 | - https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch/fluentd-es-image
19 | engine: gotpl
20 | deprecated: true
21 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/OWNERS:
--------------------------------------------------------------------------------
1 | approvers:
2 | - axdotl
3 | - monotek
4 | reviewers:
5 | - axdotl
6 | - monotek
7 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/templates/clusterrole.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.create -}}
2 | {{- $striped_version := (split "-" .Capabilities.KubeVersion.GitVersion)._0 -}}
3 | kind: ClusterRole
4 | apiVersion: rbac.authorization.k8s.io/v1
5 | metadata:
6 | name: {{ include "fluentd-elasticsearch.fullname" . }}
7 | labels:
8 | {{ include "fluentd-elasticsearch.labels" . | indent 4 }}
9 | {{- if semverCompare "< 1.6" $striped_version }}
10 | kubernetes.io/cluster-service: "true"
11 | {{- end }}
12 | addonmanager.kubernetes.io/mode: Reconcile
13 | rules:
14 | - apiGroups:
15 | - ""
16 | resources:
17 | - "namespaces"
18 | - "pods"
19 | verbs:
20 | - "get"
21 | - "watch"
22 | - "list"
23 | {{- end -}}
24 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/templates/clusterrolebinding.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.create -}}
2 | {{- $striped_version := (split "-" .Capabilities.KubeVersion.GitVersion)._0 -}}
3 | kind: ClusterRoleBinding
4 | apiVersion: rbac.authorization.k8s.io/v1
5 | metadata:
6 | name: {{ include "fluentd-elasticsearch.fullname" . }}
7 | labels:
8 | {{ include "fluentd-elasticsearch.labels" . | indent 4 }}
9 | {{- if semverCompare "< 1.6" $striped_version }}
10 | kubernetes.io/cluster-service: "true"
11 | {{- end }}
12 | addonmanager.kubernetes.io/mode: Reconcile
13 | subjects:
14 | - kind: ServiceAccount
15 | name: {{ if .Values.serviceAccount.name }}{{ .Values.serviceAccount.name }}{{ else }}{{ include "fluentd-elasticsearch.fullname" . }}{{ end }}
16 | namespace: {{ .Release.Namespace }}
17 | roleRef:
18 | kind: ClusterRole
19 | name: {{ include "fluentd-elasticsearch.fullname" . }}
20 | apiGroup: rbac.authorization.k8s.io
21 | {{- end -}}
22 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/templates/metrics-service.yaml:
--------------------------------------------------------------------------------
1 | {{- if or (.Values.serviceMonitor.enabled) (.Values.serviceMetric.enabled) }}
2 | {{- $striped_version := (split "-" .Capabilities.KubeVersion.GitVersion)._0 -}}
3 | ---
4 | apiVersion: v1
5 | kind: Service
6 | metadata:
7 | name: {{ include "fluentd-elasticsearch.fullname" $ }}-metrics
8 | labels:
9 | {{ include "fluentd-elasticsearch.labels" . | indent 4 }}
10 | {{- if semverCompare "< 1.6" $striped_version }}
11 | kubernetes.io/cluster-service: "true"
12 | {{- end }}
13 | addonmanager.kubernetes.io/mode: Reconcile
14 | spec:
15 | type: {{ .Values.serviceMonitor.type }}
16 | ports:
17 | - name: metrics
18 | port: {{ .Values.serviceMonitor.port }}
19 | targetPort: {{ .Values.serviceMonitor.port }}
20 | selector:
21 | app.kubernetes.io/name: {{ include "fluentd-elasticsearch.name" . }}
22 | app.kubernetes.io/instance: {{ .Release.Name }}
23 | {{- end }}
24 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/templates/pod-security-policy.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.podSecurityPolicy.enabled }}
2 | {{- $striped_version := (split "-" .Capabilities.KubeVersion.GitVersion)._0 -}}
3 | {{- if semverCompare "> 1.15" $striped_version -}}
4 | apiVersion: policy/v1beta1
5 | {{- else -}}
6 | apiVersion: extensions/v1beta1
7 | {{- end }}
8 | kind: PodSecurityPolicy
9 | metadata:
10 | name: {{ template "fluentd-elasticsearch.fullname" . }}
11 | labels:
12 | {{ include "fluentd-elasticsearch.labels" . | indent 4 }}
13 | {{- if semverCompare "< 1.6" $striped_version }}
14 | kubernetes.io/cluster-service: "true"
15 | {{- end }}
16 | addonmanager.kubernetes.io/mode: Reconcile
17 | annotations:
18 | {{- if .Values.podSecurityPolicy.annotations }}
19 | {{ toYaml .Values.podSecurityPolicy.annotations | indent 4 }}
20 | {{- end }}
21 | spec:
22 | privileged: false
23 | allowPrivilegeEscalation: true
24 | volumes:
25 | - 'configMap'
26 | - 'emptyDir'
27 | - 'hostPath'
28 | - 'secret'
29 | allowedHostPaths:
30 | - pathPrefix: {{ .Values.hostLogDir.varLog}}
31 | readOnly: false
32 | - pathPrefix: {{ .Values.hostLogDir.dockerContainers}}
33 | readOnly: true
34 | - pathPrefix: {{ .Values.hostLogDir.libSystemdDir}}
35 | readOnly: true
36 | hostNetwork: false
37 | hostPID: false
38 | hostIPC: false
39 | runAsUser:
40 | rule: 'RunAsAny'
41 | runAsGroup:
42 | rule: 'RunAsAny'
43 | seLinux:
44 | rule: 'RunAsAny'
45 | supplementalGroups:
46 | rule: 'RunAsAny'
47 | fsGroup:
48 | rule: 'MustRunAs'
49 | ranges:
50 | - min: 1
51 | max: 65535
52 | readOnlyRootFilesystem: false
53 | hostPorts:
54 | - min: 1
55 | max: 65535
56 | {{- end }}
57 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/templates/role.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.podSecurityPolicy.enabled }}
2 | {{- $striped_version := (split "-" .Capabilities.KubeVersion.GitVersion)._0 -}}
3 | apiVersion: rbac.authorization.k8s.io/v1
4 | kind: Role
5 | metadata:
6 | name: {{ template "fluentd-elasticsearch.fullname" . }}
7 | labels:
8 | {{ include "fluentd-elasticsearch.labels" . | indent 4 }}
9 | {{- if semverCompare "< 1.6" $striped_version }}
10 | kubernetes.io/cluster-service: "true"
11 | {{- end }}
12 | addonmanager.kubernetes.io/mode: Reconcile
13 | rules:
14 | {{- if semverCompare "> 1.15" $striped_version }}
15 | - apiGroups: ['policy']
16 | {{- else }}
17 | - apiGroups: ['extensions']
18 | {{- end }}
19 | resources: ['podsecuritypolicies']
20 | verbs: ['use']
21 | resourceNames:
22 | - {{ template "fluentd-elasticsearch.fullname" . }}
23 | {{- end }}
24 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/templates/rolebinding.yaml:
--------------------------------------------------------------------------------
1 |
2 | {{- if .Values.podSecurityPolicy.enabled }}
3 | {{- $striped_version := (split "-" .Capabilities.KubeVersion.GitVersion)._0 -}}
4 | apiVersion: rbac.authorization.k8s.io/v1
5 | kind: RoleBinding
6 | metadata:
7 | name: {{ template "fluentd-elasticsearch.fullname" . }}
8 | labels:
9 | {{ include "fluentd-elasticsearch.labels" . | indent 4 }}
10 | {{- if semverCompare "< 1.6" $striped_version }}
11 | kubernetes.io/cluster-service: "true"
12 | {{- end }}
13 | addonmanager.kubernetes.io/mode: Reconcile
14 | roleRef:
15 | kind: Role
16 | name: {{ template "fluentd-elasticsearch.fullname" . }}
17 | apiGroup: rbac.authorization.k8s.io
18 | subjects:
19 | - kind: ServiceAccount
20 | name: {{ template "fluentd-elasticsearch.fullname" . }}
21 | namespace: {{ .Release.Namespace }}
22 | {{- end }}
23 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/templates/service-account.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.serviceAccount.create -}}
2 | {{- $striped_version := (split "-" .Capabilities.KubeVersion.GitVersion)._0 -}}
3 | apiVersion: v1
4 | kind: ServiceAccount
5 | metadata:
6 | name: {{ if .Values.serviceAccount.name }}{{ .Values.serviceAccount.name }}{{ else }}{{ include "fluentd-elasticsearch.fullname" . }}{{ end }}
7 | labels:
8 | app.kubernetes.io/name: {{ include "fluentd-elasticsearch.name" . }}
9 | helm.sh/chart: {{ include "fluentd-elasticsearch.chart" . }}
10 | app.kubernetes.io/instance: {{ .Release.Name }}
11 | app.kubernetes.io/managed-by: {{ .Release.Service }}
12 | {{- if semverCompare "< 1.6" $striped_version }}
13 | kubernetes.io/cluster-service: "true"
14 | {{- end }}
15 | addonmanager.kubernetes.io/mode: Reconcile
16 | annotations:
17 | {{- if .Values.serviceAccount.annotations }}
18 | {{ toYaml .Values.serviceAccount.annotations | indent 4 }}
19 | {{- end }}
20 | {{- end -}}
21 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/templates/service.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.service }}
2 | {{- range $port := .Values.service.ports }}
3 | {{- $service_type := $port.type | default "ClusterIP" }}
4 | {{- $striped_version := (split "-" $.Capabilities.KubeVersion.GitVersion)._0 -}}
5 | ---
6 | apiVersion: v1
7 | kind: Service
8 | metadata:
9 | name: {{ include "fluentd-elasticsearch.fullname" $ | trunc 50 }}-{{ $port.name | trunc 12 }}
10 | labels:
11 | {{ include "fluentd-elasticsearch.labels" $ | indent 4 }}
12 | {{- if semverCompare "< 1.6" $striped_version }}
13 | kubernetes.io/cluster-service: "true"
14 | {{- end }}
15 | addonmanager.kubernetes.io/mode: Reconcile
16 | spec:
17 | type: {{ $service_type }}
18 | ports:
19 | - name: {{ $port.name }}
20 | port: {{ $port.port }}
21 | targetPort: {{ $port.port }}
22 | {{- if and ($port.nodePort) (eq $service_type "NodePort") }}
23 | nodePort: {{ $port.nodePort }}
24 | {{- end }}
25 | {{- if $port.protocol }}
26 | protocol: {{ $port.protocol }}
27 | {{- end }}
28 | selector:
29 | app.kubernetes.io/name: {{ include "fluentd-elasticsearch.name" $ }}
30 | app.kubernetes.io/instance: {{ $.Release.Name }}
31 | {{- end }}
32 | {{- end }}
33 |
--------------------------------------------------------------------------------
/charts/fluentd-elasticsearch/templates/servicemonitor.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.serviceMonitor.enabled }}
2 | {{- $striped_version := (split "-" .Capabilities.KubeVersion.GitVersion)._0 -}}
3 | apiVersion: monitoring.coreos.com/v1
4 | kind: ServiceMonitor
5 | metadata:
6 | name: {{ template "fluentd-elasticsearch.fullname" . }}
7 | labels:
8 | {{ include "fluentd-elasticsearch.labels" . | indent 4 }}
9 | {{- if semverCompare "< 1.6" $striped_version }}
10 | kubernetes.io/cluster-service: "true"
11 | {{- end }}
12 | addonmanager.kubernetes.io/mode: Reconcile
13 | {{- if .Values.serviceMonitor.labels }}
14 | {{- toYaml .Values.serviceMonitor.labels | nindent 4 }}
15 | {{- end }}
16 | spec:
17 | endpoints:
18 | - interval: {{ .Values.serviceMonitor.interval }}
19 | honorLabels: true
20 | port: metrics
21 | path: {{ .Values.serviceMonitor.path }}
22 | {{- if .Values.serviceMonitor.metricRelabelings }}
23 | metricRelabelings:
24 | {{- toYaml .Values.serviceMonitor.metricRelabelings | nindent 4 }}
25 | {{- end }}
26 | {{- if .Values.serviceMonitor.relabelings }}
27 | relabelings:
28 | {{- toYaml .Values.serviceMonitor.relabelings | nindent 4 }}
29 | {{- end }}
30 | jobLabel: {{ .Values.serviceMonitor.jobLabel }}
31 | selector:
32 | matchLabels:
33 | app.kubernetes.io/name: {{ template "fluentd-elasticsearch.name" . }}
34 | app.kubernetes.io/instance: "{{ .Release.Name }}"
35 | namespaceSelector:
36 | matchNames:
37 | - {{ .Release.Namespace }}
38 | {{- end }}
39 |
--------------------------------------------------------------------------------
/charts/gcp-serviceaccount-controller/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "0.3.0"
3 | description: A Helm chart for a Kubernetes Controller to create secrets for GCP Service Accounts
4 | name: gcp-serviceaccount-controller
5 | version: 0.3.2
6 | home: https://github.com/kiwigrid/gcp-serviceaccount-controller
7 | sources:
8 | - https://github.com/kiwigrid/gcp-serviceaccount-controller
9 | maintainers:
10 | - name: rpahli
11 | email: rico.pahlisch@kiwigrid.com
12 |
--------------------------------------------------------------------------------
/charts/gcp-serviceaccount-controller/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | {{- if and (eq "" .Values.gcpCredentials) (not .Values.existingSecret)}}
2 | No Service Account key or existing secret defined for this release. Please provide either a base64 encoded service account key or an existing secret containing one.
3 | Bash:
4 | $ gcloud iam service-accounts keys create ~/key.json --iam-account SA-NAME@PROJECT-ID.iam.gserviceaccount.com
5 | $ base64 ~/key.json | tr -d '\n'
6 | {{- else}}
7 | {{ .Chart.Name }} successfully installed as {{ .Release.Name }} in {{ .Release.Namespace }}
8 | {{- end}}
9 |
--------------------------------------------------------------------------------
/charts/gcp-serviceaccount-controller/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "gcp-serviceaccount-controller.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "gcp-serviceaccount-controller.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "gcp-serviceaccount-controller.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
--------------------------------------------------------------------------------
/charts/gcp-serviceaccount-controller/templates/rbac_role.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: rbac.authorization.k8s.io/v1
2 | kind: ClusterRole
3 | metadata:
4 | labels:
5 | app.kubernetes.io/name: {{ include "gcp-serviceaccount-controller.name" . }}
6 | helm.sh/chart: {{ include "gcp-serviceaccount-controller.chart" . }}
7 | app.kubernetes.io/instance: {{ .Release.Name }}
8 | app.kubernetes.io/managed-by: {{ .Release.Service }}
9 | name: manager-role
10 | rules:
11 | - apiGroups:
12 | - apps
13 | resources:
14 | - secrets
15 | verbs:
16 | - get
17 | - list
18 | - watch
19 | - create
20 | - update
21 | - patch
22 | - delete
23 | - apiGroups:
24 | - gcp.kiwigrid.com
25 | resources:
26 | - gcpserviceaccounts
27 | - gcpnamespacerestrictions
28 | verbs:
29 | - get
30 | - list
31 | - watch
32 | - create
33 | - update
34 | - patch
35 | - delete
36 | - apiGroups:
37 | - admissionregistration.k8s.io
38 | resources:
39 | - mutatingwebhookconfigurations
40 | - validatingwebhookconfigurations
41 | verbs:
42 | - get
43 | - list
44 | - watch
45 | - create
46 | - update
47 | - patch
48 | - delete
49 | - apiGroups:
50 | - ""
51 | resources:
52 | - secrets
53 | verbs:
54 | - get
55 | - list
56 | - watch
57 | - create
58 | - update
59 | - patch
60 | - delete
61 | - apiGroups:
62 | - ""
63 | resources:
64 | - services
65 | verbs:
66 | - get
67 | - list
68 | - watch
69 | - create
70 | - update
71 | - patch
72 | - delete
73 |
--------------------------------------------------------------------------------
/charts/gcp-serviceaccount-controller/templates/rbac_role_binding.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: rbac.authorization.k8s.io/v1
2 | kind: ClusterRoleBinding
3 | metadata:
4 | name: manager-rolebinding
5 | labels:
6 | app.kubernetes.io/name: {{ include "gcp-serviceaccount-controller.name" . }}
7 | helm.sh/chart: {{ include "gcp-serviceaccount-controller.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | roleRef:
11 | apiGroup: rbac.authorization.k8s.io
12 | kind: ClusterRole
13 | name: manager-role
14 | subjects:
15 | - kind: ServiceAccount
16 | name: default
17 | namespace: {{ .Release.Namespace }}
18 |
--------------------------------------------------------------------------------
/charts/gcp-serviceaccount-controller/templates/secret.yaml:
--------------------------------------------------------------------------------
1 | {{- if not .Values.existingSecret }}
2 | apiVersion: v1
3 | kind: Secret
4 | metadata:
5 | name: {{ include "gcp-serviceaccount-controller.fullname" . }}
6 | labels:
7 | app.kubernetes.io/name: {{ include "gcp-serviceaccount-controller.name" . }}
8 | helm.sh/chart: {{ include "gcp-serviceaccount-controller.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | data:
12 | credentials.json: "{{ .Values.gcpCredentials }}"
13 | {{- end -}}
--------------------------------------------------------------------------------
/charts/gcp-serviceaccount-controller/templates/service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ include "gcp-serviceaccount-controller.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "gcp-serviceaccount-controller.name" . }}
7 | helm.sh/chart: {{ include "gcp-serviceaccount-controller.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | spec:
11 | type: {{ .Values.service.type }}
12 | ports:
13 | - port: {{ .Values.service.port }}
14 | targetPort: http
15 | protocol: TCP
16 | name: http
17 | selector:
18 | app.kubernetes.io/name: {{ include "gcp-serviceaccount-controller.name" . }}
19 | app.kubernetes.io/instance: {{ .Release.Name }}
20 |
--------------------------------------------------------------------------------
/charts/gcp-serviceaccount-controller/values.yaml:
--------------------------------------------------------------------------------
1 | image:
2 | repository: kiwigrid/gcp-serviceaccount-controller
3 | tag: 0.3.0
4 | pullPolicy: IfNotPresent
5 |
6 | nameOverride: ""
7 | fullnameOverride: ""
8 |
9 | gcpCredentials: ""
10 |
11 | # Use a pre-existing secret (ignores gcpCredentials)
12 | # existingSecret:
13 | # The key to use within the existing secret
14 | existingSecretKey: "credentials.json"
15 |
16 | disableRestrictionCheck: false
17 | service:
18 | type: ClusterIP
19 | port: 80
20 |
21 | resources: {}
22 | # limits:
23 | # cpu: 100m
24 | # memory: 30Mi
25 | # requests:
26 | # cpu: 100m
27 | # memory: 20Mi
28 |
29 | nodeSelector: {}
30 |
31 | tolerations: []
32 |
33 | affinity: {}
34 |
--------------------------------------------------------------------------------
/charts/grafana-dashboards/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *.orig
18 | *~
19 | # Various IDEs
20 | .project
21 | .idea/
22 | *.tmproj
23 | .vscode/
24 |
--------------------------------------------------------------------------------
/charts/grafana-dashboards/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | name: grafana-dashboards
3 | description: A Helm chart to import Grafana Dashboards
4 | version: 0.2.0
5 | icon: https://grafana.com/blog/assets/img/blog/timeshift/grafana_release_icon.png
6 | home: https://github.com/kiwigrid/helm-charts
7 | sources:
8 | - https://github.com/kiwigrid/helm-charts/tree/master/charts/grafana-dashboards
9 | maintainers:
10 | - name: monotek
11 | email: andre.bauer@kiwigrid.com
12 |
--------------------------------------------------------------------------------
/charts/grafana-dashboards/README.md:
--------------------------------------------------------------------------------
1 | # grafana-dashboards
2 |
3 | This charts will convert all Grafana dashboards saved as json file in the dashboards directory to a Kubernetes configmap, which can be consumed AUTOMATICALLY by the Grafana dashboard import sidecar.
4 |
5 | See:
6 |
7 | | Parameter | Description | Default |
8 | |----------------------------|----------------------------------------------------------------------|---------|
9 | | `labels.grafana_dashboard` | set grafana_dashboard label | `"1"` |
10 | | `importFromValue` | import dashboard form value string instead from dashboards directory | `{}` |
11 |
--------------------------------------------------------------------------------
/charts/grafana-dashboards/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Following dahsboards will be imported to Grafana (if sidecar import enabled):
2 |
3 | {{- $root := . }}
4 | {{ range $path, $bytes := .Files.Glob "dashboards/**.json" }}
5 | * {{ $path | replace "dashboards/" ""}}
6 | {{- end }}
7 |
--------------------------------------------------------------------------------
/charts/grafana-dashboards/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "grafana-dashboards.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
7 | {{- end }}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "grafana-dashboards.fullname" -}}
15 | {{- if .Values.fullnameOverride }}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
17 | {{- else }}
18 | {{- $name := default .Chart.Name .Values.nameOverride }}
19 | {{- if contains $name .Release.Name }}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" }}
21 | {{- else }}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
23 | {{- end }}
24 | {{- end }}
25 | {{- end }}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "grafana-dashboards.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
32 | {{- end }}
33 |
34 | {{/*
35 | Common labels
36 | */}}
37 | {{- define "grafana-dashboards.labels" -}}
38 | helm.sh/chart: {{ include "grafana-dashboards.chart" . }}
39 | {{ include "grafana-dashboards.selectorLabels" . }}
40 | {{- if .Chart.AppVersion }}
41 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
42 | {{- end }}
43 | app.kubernetes.io/managed-by: {{ .Release.Service }}
44 | {{- end }}
45 |
46 | {{/*
47 | Selector labels
48 | */}}
49 | {{- define "grafana-dashboards.selectorLabels" -}}
50 | app.kubernetes.io/name: {{ include "grafana-dashboards.name" . }}
51 | app.kubernetes.io/instance: {{ .Release.Name }}
52 | {{- end }}
53 |
54 |
--------------------------------------------------------------------------------
/charts/grafana-dashboards/templates/configmap.yaml:
--------------------------------------------------------------------------------
1 | {{ $root := . }}
2 | {{ range $path, $_ := .Files.Glob "dashboards/**.json" }}
3 | {{- with $root }}
4 | apiVersion: v1
5 | kind: ConfigMap
6 | metadata:
7 | name: {{ $path | replace "dashboards/" "" | replace ".json" "" }}
8 | labels:
9 | {{- include "grafana-dashboards.labels" . | nindent 4 }}
10 | {{ toYaml $.Values.labels | indent 4 }}
11 | data:
12 | {{ $path | replace "dashboards/" ""}}: |-
13 | {{ .Files.Get $path | indent 4 }}
14 | ---
15 | {{- end -}}
16 | {{- end -}}
17 | {{- range $key, $value := .Values.importFromValue }}
18 | apiVersion: v1
19 | kind: ConfigMap
20 | metadata:
21 | name: {{ $key }}
22 | labels:
23 | {{- include "grafana-dashboards.labels" $ | nindent 4 }}
24 | {{ toYaml $.Values.labels | indent 4 }}
25 | data:
26 | {{ $key }}.json: |-
27 | {{ $value }}
28 | ---
29 | {{- end }}
30 |
31 |
--------------------------------------------------------------------------------
/charts/grafana-dashboards/values.yaml:
--------------------------------------------------------------------------------
1 | ## labels to be added to the config maps
2 | labels:
3 | ## grafana_dashboard Enables dashboard import via Grafana sidecar
4 | ## ref: https://github.com/helm/charts/tree/master/stable/grafana#sidecar-for-dashboards
5 | grafana_dashboard: "1"
6 |
7 | importFromValue:
8 | # dashboardName: |-
9 | # {
10 | # dashboard json
11 | # }
12 |
--------------------------------------------------------------------------------
/charts/graphite/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 |
--------------------------------------------------------------------------------
/charts/graphite/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v2
2 | version: 2.0.0
3 | appVersion: "1.1.10-3"
4 | description: Graphite metrics server
5 | name: graphite
6 | home: https://graphiteapp.org/
7 | keywords:
8 | - metrics
9 | sources:
10 | - https://github.com/graphite-project
11 | - https://github.com/graphite-project/docker-graphite-statsd
12 | maintainers:
13 | - name: fabian-schlegel
14 | email: fabian.schlegel@kiwigrid.com
15 | - name: monotek
16 | email: andre.bauer@kiwigrid.com
17 | icon: https://graphiteapp.org/img/graphite-logo_color.png
18 |
--------------------------------------------------------------------------------
/charts/graphite/OWNERS:
--------------------------------------------------------------------------------
1 | approvers:
2 | - fabian-schlegel
3 | - monotek
4 | reviewers:
5 | - fabian-schlegel
6 | - monotek
7 |
--------------------------------------------------------------------------------
/charts/graphite/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | 1. Get the application URL by running these commands:
2 | {{- if .Values.ingress.enabled }}
3 | {{- range .Values.ingress.hosts }}
4 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }}
5 | {{- end }}
6 | {{- else if contains "NodePort" .Values.service.type }}
7 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "graphite.fullname" . }})
8 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
9 | echo http://$NODE_IP:$NODE_PORT
10 | {{- else if contains "LoadBalancer" .Values.service.type }}
11 | NOTE: It may take a few minutes for the LoadBalancer IP to be available.
12 | You can watch the status of by running 'kubectl get svc -w {{ template "graphite.fullname" . }}'
13 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "graphite.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
14 | echo http://$SERVICE_IP:{{ .Values.service.port }}
15 | {{- else if contains "ClusterIP" .Values.service.type }}
16 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "graphite.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
17 | echo "Visit http://127.0.0.1:8080 to use your application"
18 | kubectl port-forward $POD_NAME 8080:80
19 | {{- end }}
20 |
--------------------------------------------------------------------------------
/charts/graphite/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "graphite.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "graphite.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "graphite.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
34 | {{/*
35 | Define the service Account name
36 | */}}
37 | {{- define "graphite.serviceAccount.name" -}}
38 | {{ default "graphite" .Values.serviceAccount.accountName }}
39 | {{- end -}}
--------------------------------------------------------------------------------
/charts/graphite/templates/configmap-statsd.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: ConfigMap
3 | metadata:
4 | name: {{ template "graphite.fullname" . }}-statsd-configmap
5 | labels:
6 | app.kubernetes.io/name: {{ include "graphite.name" . }}
7 | helm.sh/chart: {{ include "graphite.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | data:
11 | {{- range $key, $value := .Values.statsdConfigMaps }}
12 | {{ $key }}: |-
13 | {{ $value | indent 4 }}
14 | {{- end }}
15 |
--------------------------------------------------------------------------------
/charts/graphite/templates/configmap.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: ConfigMap
3 | metadata:
4 | name: {{ template "graphite.fullname" . }}-configmap
5 | labels:
6 | app: {{ template "graphite.name" . }}
7 | chart: {{ template "graphite.chart" . }}
8 | release: {{ .Release.Name }}
9 | heritage: {{ .Release.Service }}
10 | data:
11 | {{- range $key, $value := .Values.configMaps }}
12 | {{ $key }}: |-
13 | {{ $value | indent 4 }}
14 | {{- end }}
15 |
--------------------------------------------------------------------------------
/charts/graphite/templates/ingress.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ingress.enabled -}}
2 | {{- $fullName := include "graphite.fullname" . -}}
3 | {{- $ingressPath := .Values.ingress.path -}}
4 | apiVersion: networking.k8s.io/v1
5 | kind: Ingress
6 | metadata:
7 | name: {{ $fullName }}
8 | labels:
9 | app.kubernetes.io/name: {{ include "graphite.name" . }}
10 | helm.sh/chart: {{ include "graphite.chart" . }}
11 | app.kubernetes.io/instance: {{ .Release.Name }}
12 | app.kubernetes.io/managed-by: {{ .Release.Service }}
13 | {{- with .Values.ingress.annotations }}
14 | annotations:
15 | {{ toYaml . | indent 4 }}
16 | {{- end }}
17 | spec:
18 | {{- if .Values.ingress.tls }}
19 | tls:
20 | {{- range .Values.ingress.tls }}
21 | - hosts:
22 | {{- range .hosts }}
23 | - {{ . }}
24 | {{- end }}
25 | secretName: {{ .secretName }}
26 | {{- end }}
27 | {{- end }}
28 | rules:
29 | {{- range .Values.ingress.hosts }}
30 | - host: {{ . }}
31 | http:
32 | paths:
33 | - path: {{ $ingressPath }}
34 | pathType: Prefix
35 | backend:
36 | service:
37 | name: {{ $fullName }}
38 | port:
39 | number: {{ $.Values.service.port }}
40 | {{- end }}
41 | {{- end }}
42 |
--------------------------------------------------------------------------------
/charts/graphite/templates/pvc.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.persistence.enabled -}}
2 | {{- if not .Values.persistence.existingClaim -}}
3 | kind: PersistentVolumeClaim
4 | apiVersion: v1
5 | metadata:
6 | name: {{ template "graphite.fullname" . }}-pvc
7 | labels:
8 | app.kubernetes.io/name: {{ include "graphite.name" . }}
9 | helm.sh/chart: {{ include "graphite.chart" . }}
10 | app.kubernetes.io/instance: {{ .Release.Name }}
11 | app.kubernetes.io/managed-by: {{ .Release.Service }}
12 | spec:
13 | accessModes:
14 | - {{ .Values.persistence.accessMode | quote }}
15 | resources:
16 | requests:
17 | storage: {{ .Values.persistence.size | quote }}
18 | {{- if .Values.persistence.storageClass }}
19 | {{- if (eq "-" .Values.persistence.storageClass) }}
20 | storageClassName: ""
21 | {{- else }}
22 | storageClassName: "{{ .Values.persistence.storageClass }}"
23 | {{- end }}
24 | {{- end }}
25 | {{- end }}
26 | {{- end -}}
27 |
--------------------------------------------------------------------------------
/charts/graphite/templates/role.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | {{- if .Values.rbac.create }}
3 | kind: Role
4 | apiVersion: rbac.authorization.k8s.io/v1
5 | metadata:
6 | name: {{ include "graphite.serviceAccount.name" . }}-role
7 | namespace: {{ .Release.Namespace }}
8 | labels:
9 | app.kubernetes.io/name: {{ include "graphite.name" . }}
10 | helm.sh/chart: {{ include "graphite.chart" . }}
11 | app.kubernetes.io/instance: {{ .Release.Name }}
12 | app.kubernetes.io/managed-by: {{ .Release.Service }}
13 | rules:
14 | {{- if .Values.psp.create }}
15 | - apiGroups: ["extensions"]
16 | resources: ["podsecuritypolicies"]
17 | verbs: ["use"]
18 | resourceNames:
19 | - pks-privileged
20 | {{- end }}
21 | {{- end }}
--------------------------------------------------------------------------------
/charts/graphite/templates/rolebinding.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | {{- if .Values.rbac.create }}
3 | kind: RoleBinding
4 | apiVersion: rbac.authorization.k8s.io/v1
5 | metadata:
6 | name: {{ include "graphite.serviceAccount.name" . }}-rb
7 | namespace: {{ .Release.Namespace }}
8 | labels:
9 | app.kubernetes.io/name: {{ include "graphite.name" . }}
10 | helm.sh/chart: {{ include "graphite.chart" . }}
11 | app.kubernetes.io/instance: {{ .Release.Name }}
12 | app.kubernetes.io/managed-by: {{ .Release.Service }}
13 | roleRef:
14 | apiGroup: rbac.authorization.k8s.io
15 | kind: Role
16 | name: {{ default "graphite" .Values.serviceAccount.accountName }}-role
17 | subjects:
18 | - kind: ServiceAccount
19 | name: {{ default "graphite" .Values.serviceAccount.accountName }}
20 | namespace: {{ .Release.Namespace }}
21 | {{- end }}
--------------------------------------------------------------------------------
/charts/graphite/templates/service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ template "graphite.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "graphite.name" . }}
7 | helm.sh/chart: {{ include "graphite.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | {{- if .Values.service.labels }}
11 | {{ toYaml .Values.service.labels | indent 4 }}
12 | {{- end }}
13 | {{- with .Values.service.annotations }}
14 | annotations:
15 | {{ toYaml . | indent 4 }}
16 | {{- end }}
17 | spec:
18 | type: {{ .Values.service.type }}
19 | ports:
20 | - name: graphite-pickle
21 | port: 2004
22 | protocol: TCP
23 | - name: graphite-plain
24 | port: 2003
25 | protocol: TCP
26 | - name: graphite-udp
27 | port: 2003
28 | protocol: UDP
29 | - name: graphite-gui
30 | port: {{ .Values.service.port }}
31 | protocol: TCP
32 | - name: aggregate-plain
33 | port: 2023
34 | protocol: TCP
35 | - name: aggregate-pickl
36 | port: 2024
37 | protocol: TCP
38 | - name: statsd
39 | port: 8125
40 | protocol: {{ .Values.statsd.interface }}
41 | - name: statsd-admin
42 | port: 8126
43 | protocol: TCP
44 | selector:
45 | app.kubernetes.io/name: {{ include "graphite.name" . }}
46 | app.kubernetes.io/instance: {{ .Release.Name }}
47 |
--------------------------------------------------------------------------------
/charts/graphite/templates/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if and (.Values.serviceAccount.enabled) (.Values.serviceAccount.create) }}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "graphite.serviceAccount.name" . }}
6 | namespace: {{ .Release.Namespace }}
7 | labels:
8 | app.kubernetes.io/name: {{ include "graphite.name" . }}
9 | helm.sh/chart: {{ include "graphite.chart" . }}
10 | app.kubernetes.io/instance: {{ .Release.Name }}
11 | app.kubernetes.io/managed-by: {{ .Release.Service }}
12 | {{- end }}
13 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | version: 2.1.2
3 | appVersion: "0.3.0M5-mysql"
4 | description: A Helm chart for hawkbit update server
5 | name: hawkbit-update-server
6 | home: https://www.eclipse.org/hawkbit/
7 | sources:
8 | - https://github.com/eclipse/hawkbit
9 | - https://github.com/kiwigrid/helm-charts/tree/master/charts/hawkbit-update-server
10 | icon: https://www.eclipse.org/hawkbit/images/hawkbit_icon.png
11 | deprecated: true
12 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/requirements.yaml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | - name: mysql
3 | version: 1.3.2
4 | repository: https://kubernetes-charts.storage.googleapis.com/
5 | condition: mysql.enabled
6 | - name: rabbitmq
7 | repository: https://kubernetes-charts.storage.googleapis.com/
8 | version: 6.7.4
9 | condition: rabbitmq.enabled
10 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | 1. Get the application URL by running these commands:
2 | {{- if .Values.ingress.enabled }}
3 | {{- range $host := .Values.ingress.hosts }}
4 | {{- range .paths }}
5 | http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}
6 | {{- end }}
7 | {{- end }}
8 | {{- else if contains "NodePort" .Values.service.type }}
9 | export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "hawkbit-update-server.fullname" . }})
10 | export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
11 | echo http://$NODE_IP:$NODE_PORT
12 | {{- else if contains "LoadBalancer" .Values.service.type }}
13 | NOTE: It may take a few minutes for the LoadBalancer IP to be available.
14 | You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "hawkbit-update-server.fullname" . }}'
15 | export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "hawkbit-update-server.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
16 | echo http://$SERVICE_IP:{{ .Values.service.port }}
17 | {{- else if contains "ClusterIP" .Values.service.type }}
18 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "hawkbit-update-server.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
19 | echo "Visit http://127.0.0.1:8080 to use your application"
20 | kubectl port-forward $POD_NAME 8080:{{ .Values.service.port}}
21 | {{- end }}
22 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "hawkbit-update-server.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "hawkbit-update-server.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "hawkbit-update-server.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
34 | {{/*
35 | Common labels
36 | */}}
37 | {{- define "hawkbit-update-server.labels" -}}
38 | app.kubernetes.io/name: {{ include "hawkbit-update-server.name" . }}
39 | helm.sh/chart: {{ include "hawkbit-update-server.chart" . }}
40 | app.kubernetes.io/instance: {{ .Release.Name }}
41 | {{- if .Chart.AppVersion }}
42 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
43 | {{- end }}
44 | app.kubernetes.io/managed-by: {{ .Release.Service }}
45 | {{- end -}}
46 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/templates/configmap.yaml:
--------------------------------------------------------------------------------
1 | kind: ConfigMap
2 | apiVersion: v1
3 | metadata:
4 | name: {{ include "hawkbit-update-server.fullname" . }}
5 | labels:
6 | {{ include "hawkbit-update-server.labels" . | indent 4 }}
7 | data:
8 | application.yaml: |-
9 | {{ toYaml .Values.config.application | indent 4}}
10 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/templates/ingress.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ingress.enabled -}}
2 | {{- $fullName := include "hawkbit-update-server.fullname" . -}}
3 | apiVersion: extensions/v1beta1
4 | kind: Ingress
5 | metadata:
6 | name: {{ $fullName }}
7 | labels:
8 | {{ include "hawkbit-update-server.labels" . | indent 4 }}
9 | {{- with .Values.ingress.annotations }}
10 | annotations:
11 | {{- toYaml . | nindent 4 }}
12 | {{- end }}
13 | spec:
14 | {{- if .Values.ingress.tls }}
15 | tls:
16 | {{- range .Values.ingress.tls }}
17 | - hosts:
18 | {{- range .hosts }}
19 | - {{ . | quote }}
20 | {{- end }}
21 | secretName: {{ .secretName }}
22 | {{- end }}
23 | {{- end }}
24 | rules:
25 | {{- range .Values.ingress.hosts }}
26 | - host: {{ .host | quote }}
27 | http:
28 | paths:
29 | {{- range .paths }}
30 | - path: {{ . }}
31 | backend:
32 | serviceName: {{ $fullName }}
33 | servicePort: http
34 | {{- end }}
35 | {{- end }}
36 | {{- end }}
37 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/templates/poddisruptionbudget.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.podDisruptionBudget.enabled (gt .Values.replicaCount 1.0) -}}
2 | apiVersion: policy/v1beta1
3 | kind: PodDisruptionBudget
4 | metadata:
5 | name: {{ include "hawkbit-update-server.fullname" . }}
6 | labels:
7 | {{ include "hawkbit-update-server.labels" . | indent 4 }}
8 | spec:
9 | selector:
10 | matchLabels:
11 | app.kubernetes.io/name: {{ include "hawkbit-update-server.name" . }}
12 | app.kubernetes.io/instance: {{ .Release.Name }}
13 | minAvailable: {{ .Values.podDisruptionBudget.minAvailable }}
14 | {{- end }}
15 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/templates/secrets.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Secret
3 | metadata:
4 | name: {{ template "hawkbit-update-server.fullname" . }}
5 | labels:
6 | {{ include "hawkbit-update-server.labels" . | indent 4 }}
7 | type: Opaque
8 | data:
9 | SPRING_APPLICATION_JSON: {{ .Values.config.secrets | toJson | b64enc }}
10 | ---
11 | apiVersion: v1
12 | kind: Secret
13 | metadata:
14 | name: {{ template "hawkbit-update-server.fullname" . }}-rabbitmq-pass
15 | labels:
16 | app.kubernetes.io/name: {{ include "hawkbit-update-server.name" . }}
17 | helm.sh/chart: {{ include "hawkbit-update-server.chart" . }}
18 | app.kubernetes.io/instance: {{ .Release.Name }}
19 | app.kubernetes.io/managed-by: {{ .Release.Service }}
20 | type: Opaque
21 | data:
22 | rabbitmq-pass: {{ .Values.env.springRabbitmqPassword | b64enc | quote }}
23 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/templates/service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ include "hawkbit-update-server.fullname" . }}
5 | labels:
6 | {{ include "hawkbit-update-server.labels" . | indent 4 }}
7 | {{- with .Values.service.annotations }}
8 | annotations:
9 | {{- toYaml . | nindent 4 }}
10 | {{- end }}
11 | spec:
12 | type: {{ .Values.service.type }}
13 | ports:
14 | - port: {{ .Values.service.port }}
15 | targetPort: http
16 | protocol: TCP
17 | name: http
18 | selector:
19 | app.kubernetes.io/name: {{ include "hawkbit-update-server.name" . }}
20 | app.kubernetes.io/instance: {{ .Release.Name }}
21 |
--------------------------------------------------------------------------------
/charts/hawkbit-update-server/templates/tests/test-connection.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Pod
3 | metadata:
4 | name: "{{ include "hawkbit-update-server.fullname" . }}-test-connection"
5 | labels:
6 | app.kubernetes.io/name: {{ include "hawkbit-update-server.name" . }}
7 | helm.sh/chart: {{ include "hawkbit-update-server.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | annotations:
11 | "helm.sh/hook": test-success
12 | spec:
13 | containers:
14 | - name: wget
15 | image: busybox
16 | command: ['wget']
17 | args: ['{{ include "hawkbit-update-server.fullname" . }}:{{ .Values.service.port }}']
18 | restartPolicy: Never
19 |
--------------------------------------------------------------------------------
/charts/influxdb-backup/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *.orig
18 | *~
19 | # Various IDEs
20 | .project
21 | .idea/
22 | *.tmproj
23 | .vscode/
24 |
--------------------------------------------------------------------------------
/charts/influxdb-backup/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | version: 0.2.0
3 | appVersion: 1.7.10
4 | name: influxdb-backup
5 | description: InfluxDB backup Helm chart for Kubernetes
6 | home: https://www.influxdata.com
7 | sources:
8 | - https://github.com/kiwigrid/helm-charts
9 | - https://github.com/influxdata/influxdb
10 | icon: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Influxdb_logo.svg/512px-Influxdb_logo.svg.png
11 | maintainers:
12 | - name: monotek
13 | email: andre.bauer@kiwigrid.com
14 |
--------------------------------------------------------------------------------
/charts/influxdb-backup/ci/test-values.yaml:
--------------------------------------------------------------------------------
1 | backup:
2 | schedule: "* * * * *"
3 |
--------------------------------------------------------------------------------
/charts/influxdb-backup/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | {{- if not .Values.backup.restore.enabled }}
2 | {{- if .Values.backup.instances}}
3 | The following InfluxDB Backups are set up:
4 | {{ range $instances := .Values.backup.instances }}
5 | - {{ $instances.host }}
6 | {{- end }}
7 |
8 | Cronjob will run at: {{ .Values.backup.schedule }}
9 |
10 | If you want to execute a backup run now use this command:
11 |
12 | kubectl -n {{ .Release.Namespace }} create job --from=cronjobs/{{ .Release.Name }} influxdb-backup-$(date +%Y%m%d%H%M%S)
13 |
14 | {{ else }}
15 | InfluxDB backup chart installed but no instances defined for backup!
16 | Without an configured instance housekeeping is still executet with the configured retention of {{ .Values.backup.retentionDays }} days !
17 | {{- end }}
18 | {{- end }}
19 |
20 | {{- if .Values.backup.restore.enabled }}
21 | WARNING! RESTORE IS ENABLED! BACKUPS ARE THEREFORE DISABLED AT THE MOMENT!
22 |
23 | The {{ .Values.backup.restore.db }} database will be restored or recreated from {{ .Values.backup.restore.directory }} on next cronjob run which is set to: {{ .Values.backup.schedule }}!
24 | You can execute the restore now by using the following command:
25 |
26 | kubectl -n {{ .Release.Namespace }} create job --from=cronjobs/{{ .Release.Name }} influxdb-restore-$(date +%Y%m%d%H%M%S)
27 |
28 | Please disable restore afterwards and redeploy this chart.
29 |
30 | {{ end }}
31 |
--------------------------------------------------------------------------------
/charts/influxdb-backup/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "influxdb-backup.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
7 | {{- end }}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "influxdb-backup.fullname" -}}
15 | {{- if .Values.fullnameOverride }}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
17 | {{- else }}
18 | {{- $name := default .Chart.Name .Values.nameOverride }}
19 | {{- if contains $name .Release.Name }}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" }}
21 | {{- else }}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
23 | {{- end }}
24 | {{- end }}
25 | {{- end }}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "influxdb-backup.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
32 | {{- end }}
33 |
34 | {{/*
35 | Common labels
36 | */}}
37 | {{- define "influxdb-backup.labels" -}}
38 | helm.sh/chart: {{ include "influxdb-backup.chart" . }}
39 | {{ include "influxdb-backup.selectorLabels" . }}
40 | {{- if .Chart.AppVersion }}
41 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
42 | {{- end }}
43 | app.kubernetes.io/managed-by: {{ .Release.Service }}
44 | {{- end }}
45 |
46 | {{/*
47 | Selector labels
48 | */}}
49 | {{- define "influxdb-backup.selectorLabels" -}}
50 | app.kubernetes.io/name: {{ include "influxdb-backup.name" . }}
51 | app.kubernetes.io/instance: {{ .Release.Name }}
52 | {{- end }}
53 |
--------------------------------------------------------------------------------
/charts/influxdb-backup/templates/pvc.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
2 | kind: PersistentVolumeClaim
3 | apiVersion: v1
4 | metadata:
5 | name: "{{ template "influxdb-backup.fullname" . }}"
6 | labels:
7 | {{- include "influxdb-backup.labels" . | nindent 4 }}
8 | spec:
9 | accessModes:
10 | - {{ .Values.persistence.accessMode | quote }}
11 | resources:
12 | requests:
13 | storage: {{ .Values.persistence.size | quote }}
14 | {{- if .Values.persistence.storageClass }}
15 | {{- if (eq "-" .Values.persistence.storageClass) }}
16 | storageClassName: ""
17 | {{- else }}
18 | storageClassName: "{{ .Values.persistence.storageClass }}"
19 | {{- end }}
20 | {{- end }}
21 | {{- end }}
22 |
--------------------------------------------------------------------------------
/charts/influxdb-backup/templates/secrets.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Secret
3 | metadata:
4 | name: {{ include "influxdb-backup.fullname" . }}
5 | labels:
6 | {{- include "influxdb-backup.labels" . | nindent 4 }}
7 | type: Opaque
8 | data:
9 | {{ range $instances := .Values.backup.instances }}
10 | {{- if (not $instances.existingSecret) }}
11 | {{ $instances.name }}-admin-password: {{ $instances.pass | b64enc | quote }}
12 | {{ end }}
13 | {{- end }}
14 | {{- if and (.Values.backup.uploadProviders.google.enabled) (not .Values.backup.uploadProviders.google.existingSecret) -}}
15 | {{ .Values.backup.uploadProviders.google.secretKey }}: {{ .Values.backup.uploadProviders.google.secret | b64enc | quote }}
16 | {{- end }}
17 | {{ if and (.Values.backup.uploadProviders.azure.enabled) (not .Values.backup.uploadProviders.azure.existingSecret) -}}
18 | {{ .Values.backup.uploadProviders.azure.secretKey }}: {{ .Values.backup.uploadProviders.azure.secret | b64enc | quote }}
19 | {{- end }}
20 |
--------------------------------------------------------------------------------
/charts/ingress-annotator/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/ingress-annotator/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "0.1.0"
3 | description: A Helm chart for ingress annotator controller
4 | name: ingress-annotator
5 | version: 0.2.0
6 | home: https://github.com/kiwigrid/ingress-annotator
7 | sources:
8 | - https://github.com/kiwigrid/ingress-annotator
9 | maintainers:
10 | - name: rpahli
11 | email: rico.pahlisch@kiwigrid.com
12 |
--------------------------------------------------------------------------------
/charts/ingress-annotator/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | The ingress annotator is now running.
2 |
--------------------------------------------------------------------------------
/charts/ingress-annotator/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "ingress-annotator.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "ingress-annotator.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "ingress-annotator.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
--------------------------------------------------------------------------------
/charts/ingress-annotator/templates/configmap.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: ConfigMap
3 | metadata:
4 | name: {{ include "ingress-annotator.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "ingress-annotator.name" . }}
7 | helm.sh/chart: {{ include "ingress-annotator.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | data:
11 | config.yaml: |-
12 | annotations:
13 | {{- range $key, $val := .Values.config }}
14 | {{ $key }}:
15 | {{ toYaml $val | indent 8 }}
16 | {{- end}}
17 |
--------------------------------------------------------------------------------
/charts/ingress-annotator/templates/deployment.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apps/v1
2 | kind: Deployment
3 | metadata:
4 | name: {{ include "ingress-annotator.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "ingress-annotator.name" . }}
7 | helm.sh/chart: {{ include "ingress-annotator.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | spec:
11 | replicas: 1
12 | selector:
13 | matchLabels:
14 | app.kubernetes.io/name: {{ include "ingress-annotator.name" . }}
15 | app.kubernetes.io/instance: {{ .Release.Name }}
16 | template:
17 | metadata:
18 | labels:
19 | app.kubernetes.io/name: {{ include "ingress-annotator.name" . }}
20 | app.kubernetes.io/instance: {{ .Release.Name }}
21 | spec:
22 | serviceAccountName: {{ include "ingress-annotator.fullname" . }}
23 | containers:
24 | - name: {{ .Chart.Name }}
25 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
26 | imagePullPolicy: {{ .Values.image.pullPolicy }}
27 | env:
28 | - name: CONFIG_PATH
29 | value: /etc/config/config.yaml
30 | volumeMounts:
31 | - mountPath: /etc/config
32 | name: config-volume
33 | resources:
34 | {{- toYaml .Values.resources | nindent 12 }}
35 | {{- with .Values.nodeSelector }}
36 | nodeSelector:
37 | {{- toYaml . | nindent 8 }}
38 | {{- end }}
39 | {{- with .Values.affinity }}
40 | affinity:
41 | {{- toYaml . | nindent 8 }}
42 | {{- end }}
43 | {{- with .Values.tolerations }}
44 | tolerations:
45 | {{- toYaml . | nindent 8 }}
46 | {{- end }}
47 | volumes:
48 | - configMap:
49 | name: {{ include "ingress-annotator.fullname" . }}
50 | name: config-volume
--------------------------------------------------------------------------------
/charts/ingress-annotator/templates/rbac_role.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: rbac.authorization.k8s.io/v1
2 | kind: ClusterRole
3 | metadata:
4 | name: {{ include "ingress-annotator.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "ingress-annotator.name" . }}
7 | helm.sh/chart: {{ include "ingress-annotator.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | rules:
11 | - apiGroups:
12 | - extensions
13 | resources:
14 | - ingresses
15 | verbs:
16 | - get
17 | - list
18 | - watch
19 | - update
20 | - patch
21 |
22 |
--------------------------------------------------------------------------------
/charts/ingress-annotator/templates/rbac_role_binding.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: rbac.authorization.k8s.io/v1
2 | kind: ClusterRoleBinding
3 | metadata:
4 | name: {{ include "ingress-annotator.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "ingress-annotator.name" . }}
7 | helm.sh/chart: {{ include "ingress-annotator.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | roleRef:
11 | apiGroup: rbac.authorization.k8s.io
12 | kind: ClusterRole
13 | name: {{ include "ingress-annotator.fullname" . }}
14 | subjects:
15 | - kind: ServiceAccount
16 | name: {{ include "ingress-annotator.fullname" . }}
17 | namespace: {{ .Release.Namespace }}
18 |
--------------------------------------------------------------------------------
/charts/ingress-annotator/templates/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: ServiceAccount
3 | metadata:
4 | name: {{ include "ingress-annotator.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "ingress-annotator.name" . }}
7 | helm.sh/chart: {{ include "ingress-annotator.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 |
--------------------------------------------------------------------------------
/charts/ingress-annotator/values.yaml:
--------------------------------------------------------------------------------
1 | # Default values for ingress-annotator.
2 | # This is a YAML-formatted file.
3 | # Declare variables to be passed into your templates.
4 |
5 | image:
6 | repository: kiwigrid/ingress-annotator
7 | tag: latest
8 | pullPolicy: IfNotPresent
9 |
10 | nameOverride: ""
11 | fullnameOverride: ""
12 |
13 | resources: {}
14 | # We usually recommend not to specify default resources and to leave this as a conscious
15 | # choice for the user. This also increases chances charts run on environments with little
16 | # resources, such as Minikube. If you do want to specify resources, uncomment the following
17 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
18 | # limits:
19 | # cpu: 100m
20 | # memory: 128Mi
21 | # requests:
22 | # cpu: 100m
23 | # memory: 128Mi
24 |
25 | nodeSelector: {}
26 |
27 | tolerations: []
28 |
29 | affinity: {}
30 |
31 | config: {}
32 | # global: {}
33 | # namespaced: {}
34 |
--------------------------------------------------------------------------------
/charts/keycloak-controller/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/keycloak-controller/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "2.0.0"
3 | description: A Helm chart for a Kubernetes controller to manage Keycloak clients and realms.
4 | name: keycloak-controller
5 | version: 0.6.1
6 | home: https://github.com/kiwigrid/keycloak-controller
7 | sources:
8 | - https://github.com/kiwigrid/keycloak-controller
9 | - https://github.com/kiwigrid/helm-charts/tree/master/charts/keycloak-controller
10 | maintainers:
11 | - name: axdotl
12 | email: axel.koehler@kiwigrid.com
13 | - name: sschnabe
14 | email: stephan.schnabel@kiwigrid.com
15 |
--------------------------------------------------------------------------------
/charts/keycloak-controller/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | keycloak-controller installed.
2 |
3 | For usage instructions, visit: https://github.com/kiwigrid/keycloak-controller
4 |
--------------------------------------------------------------------------------
/charts/keycloak-controller/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "keycloak-controller.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "keycloak-controller.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "keycloak-controller.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
34 | {{/*
35 | Common labels
36 | */}}
37 | {{- define "keycloak-controller.labels" -}}
38 | helm.sh/chart: {{ include "keycloak-controller.chart" . }}
39 | app.kubernetes.io/name: {{ include "keycloak-controller.name" . }}
40 | app.kubernetes.io/instance: {{ .Release.Name }}
41 | {{- if .Chart.AppVersion }}
42 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
43 | {{- end }}
44 | app.kubernetes.io/managed-by: {{ .Release.Service }}
45 | {{- end -}}
46 |
--------------------------------------------------------------------------------
/charts/keycloak-controller/templates/configmap.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: ConfigMap
3 | metadata:
4 | name: {{ include "keycloak-controller.fullname" . }}
5 | labels:
6 | {{ include "keycloak-controller.labels" . | indent 4 }}
7 | data:
8 | application-k8s.yaml: |-
9 | micronaut:
10 | metrics:
11 | export:
12 | prometheus:
13 | enabled: {{ .Values.prometheus.enabled }}
14 | step: {{ .Values.prometheus.step }}
15 | descriptions: {{ .Values.prometheus.descriptions }}
16 | endpoints:
17 | prometheus:
18 | enabled: {{ .Values.prometheus.enabled }}
19 | retry-rate: {{ .Values.retryRate }}
20 |
--------------------------------------------------------------------------------
/charts/keycloak-controller/templates/rbac/role.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled -}}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRole
4 | metadata:
5 | name: {{ include "keycloak-controller.fullname" . }}
6 | labels:
7 | {{ include "keycloak-controller.labels" . | indent 4 }}
8 | rules:
9 | - apiGroups:
10 | - ""
11 | resources:
12 | - secrets
13 | verbs:
14 | - get
15 | - create
16 | - apiGroups:
17 | - k8s.kiwigrid.com
18 | resources:
19 | - keycloaks
20 | - keycloakrealms
21 | - keycloakclients
22 | - keycloakclientscopes
23 | verbs:
24 | - get
25 | - list
26 | - watch
27 | - update
28 | {{- end -}}
29 |
--------------------------------------------------------------------------------
/charts/keycloak-controller/templates/rbac/role_binding.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled -}}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRoleBinding
4 | metadata:
5 | name: {{ include "keycloak-controller.fullname" . }}
6 | labels:
7 | {{ include "keycloak-controller.labels" . | indent 4 }}
8 | roleRef:
9 | apiGroup: rbac.authorization.k8s.io
10 | kind: ClusterRole
11 | name: {{ include "keycloak-controller.fullname" . }}
12 | subjects:
13 | - kind: ServiceAccount
14 | name: {{ include "keycloak-controller.fullname" . }}
15 | namespace: {{ .Release.Namespace }}
16 | {{- end -}}
17 |
--------------------------------------------------------------------------------
/charts/keycloak-controller/templates/rbac/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.rbac.enabled -}}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "keycloak-controller.fullname" . }}
6 | labels:
7 | {{ include "keycloak-controller.labels" . | indent 4 }}
8 | {{- end -}}
9 |
--------------------------------------------------------------------------------
/charts/keycloak-controller/values.yaml:
--------------------------------------------------------------------------------
1 | # Default values for keycloak-controller.
2 | # This is a YAML-formatted file.
3 | # Declare variables to be passed into your templates.
4 |
5 | replicaCount: 1
6 |
7 | image:
8 | repository: kiwigrid/keycloak-controller
9 | tag: 2.0.0
10 | pullPolicy: IfNotPresent
11 |
12 | nameOverride: ""
13 | fullnameOverride: ""
14 |
15 | rbac:
16 | enabled: true
17 |
18 | ## retryRate for retrying failed resources
19 | retryRate: 60s
20 |
21 | prometheus:
22 | enabled: false
23 | port: 8080
24 | path: /endpoints/prometheus
25 | step: PT5s
26 | descriptions: false
27 |
28 | readinessProbe:
29 | timeoutSeconds: 1
30 | initialDelaySeconds: 10
31 | periodSeconds: 2
32 | failureThreshold: 55
33 | livenessProbe:
34 | timeoutSeconds: 1
35 | initialDelaySeconds: 120
36 | periodSeconds: 30
37 | failureThreshold: 3
38 |
39 | javaToolOptions: "-Xms48m -Xmx48m -XX:MetaspaceSize=56m -XX:MaxMetaspaceSize=56m -XX:ReservedCodeCacheSize=8m -XX:CompressedClassSpaceSize=12m -XX:MaxDirectMemorySize=1m"
40 |
41 | gcpLogging: true
42 |
43 | ## Controls whether watching only for events in its namespace
44 | namespaced: true
45 |
46 | resources: {}
47 | # We usually recommend not to specify default resources and to leave this as a conscious
48 | # choice for the user. This also increases chances charts run on environments with little
49 | # resources, such as Minikube. If you do want to specify resources, uncomment the following
50 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
51 | # limits:
52 | # cpu: 200m
53 | # memory: 256Mi
54 | # requests:
55 | # cpu: 100m
56 | # memory: 192Mi
57 |
58 | nodeSelector: {}
59 |
60 | tolerations: []
61 |
62 | affinity: {}
63 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "1.2"
3 | description: A Helm chart for Kubernetes Policy Controller and the open policy agent to manage your cluster policies
4 | name: kubernetes-policy-controller
5 | version: 0.1.2
6 | home: https://github.com/kiwigrid/helm-charts
7 | icon: https://www.openpolicyagent.org/img/opa-logo.svg
8 | sources:
9 | - https://github.com/open-policy-agent/kubernetes-policy-controller
10 | - https://github.com/open-policy-agent/opa
11 | maintainers:
12 | - name: rpahli
13 | email: rico.pahlisch@kiwigrid.com
14 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | successful setup opa in your cluster.
2 | Please see https://www.openpolicyagent.org/ for more infos an how to create policies inside your cluster.
3 |
4 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "kubernetes-policy-controller.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "kubernetes-policy-controller.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "kubernetes-policy-controller.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/templates/clusterrolebinding.yaml:
--------------------------------------------------------------------------------
1 |
2 | kind: ClusterRoleBinding
3 | apiVersion: rbac.authorization.k8s.io/v1
4 | metadata:
5 | name: {{ .Release.Name }}-opa-viewer
6 | labels:
7 | app.kubernetes.io/name: {{ include "kubernetes-policy-controller.name" . }}
8 | helm.sh/chart: {{ include "kubernetes-policy-controller.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | roleRef:
12 | kind: ClusterRole
13 | name: view
14 | apiGroup: rbac.authorization.k8s.io
15 | subjects:
16 | - kind: Group
17 | name: system:serviceaccounts:{{ .Release.Namespace }}
18 | apiGroup: rbac.authorization.k8s.io
19 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/templates/matches-configmap.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: ConfigMap
3 | metadata:
4 | name: {{ .Release.Name }}-kubernetes-matches
5 | namespace: {{ .Release.Namespace }}
6 | labels:
7 | app.kubernetes.io/name: {{ include "kubernetes-policy-controller.name" . }}
8 | helm.sh/chart: {{ include "kubernetes-policy-controller.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | data:
12 | matches.rego: |-
13 | package k8s
14 | import data.kubernetes
15 |
16 | matches[[kind, namespace, name, resource]] {
17 | resource := kubernetes[kind][namespace][name].object
18 | }
19 |
20 | matches[[kind, namespace, name, resource]] {
21 | resource := kubernetes[kind][namespace][name]
22 | }
23 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/templates/policymatches-configmap.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: ConfigMap
3 | metadata:
4 | name: {{ .Release.Name }}-kubernetes-policymatches
5 | namespace: {{ .Release.Namespace }}
6 | labels:
7 | app.kubernetes.io/name: {{ include "kubernetes-policy-controller.name" . }}
8 | helm.sh/chart: {{ include "kubernetes-policy-controller.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | data:
12 | matches.rego: |-
13 | package k8s
14 | import data.kubernetes.policies
15 |
16 | # Matches provides an abstraction to find policies that match the (name).
17 | policymatches[[name, policy]] {
18 | policy := policies[name]
19 | }
20 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/templates/role.yaml:
--------------------------------------------------------------------------------
1 | kind: Role
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | metadata:
4 | namespace: {{ .Release.Namespace }}
5 | name: {{ .Release.Name }}-configmap-modifier
6 | labels:
7 | app.kubernetes.io/name: {{ include "kubernetes-policy-controller.name" . }}
8 | helm.sh/chart: {{ include "kubernetes-policy-controller.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | rules:
12 | - apiGroups: [""]
13 | resources: ["configmaps"]
14 | verbs: ["update", "patch"]
15 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/templates/rolebinding.yaml:
--------------------------------------------------------------------------------
1 | kind: RoleBinding
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | metadata:
4 | namespace: {{ .Release.Namespace }}
5 | name: {{ .Release.Name }}-configmap-modifier
6 | labels:
7 | app.kubernetes.io/name: {{ include "kubernetes-policy-controller.name" . }}
8 | helm.sh/chart: {{ include "kubernetes-policy-controller.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | roleRef:
12 | kind: Role
13 | name: {{ .Release.Name }}-configmap-modifier
14 | apiGroup: rbac.authorization.k8s.io
15 | subjects:
16 | - kind: Group
17 | name: system:serviceaccounts:{{ .Release.Namespace }}
18 | apiGroup: rbac.authorization.k8s.io
19 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/templates/service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ include "kubernetes-policy-controller.fullname" . }}
5 | namespace: {{ .Release.Namespace }}
6 | labels:
7 | app.kubernetes.io/name: {{ include "kubernetes-policy-controller.name" . }}
8 | helm.sh/chart: {{ include "kubernetes-policy-controller.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | spec:
12 | type: {{ .Values.service.type }}
13 | ports:
14 | - name: https
15 | protocol: TCP
16 | port: 443
17 | targetPort: 443
18 | selector:
19 | app.kubernetes.io/name: {{ include "kubernetes-policy-controller.name" . }}
20 | app.kubernetes.io/instance: {{ .Release.Name }}
21 |
--------------------------------------------------------------------------------
/charts/kubernetes-policy-controller/values.yaml:
--------------------------------------------------------------------------------
1 | # Default values for kubernetes-policy-controller.
2 | # This is a YAML-formatted file.
3 | # Declare variables to be passed into your templates.
4 |
5 | replicaCount: 1
6 |
7 | image:
8 | opa:
9 | repository: openpolicyagent/opa
10 | tag: 0.10.1
11 | pullPolicy: IfNotPresent
12 | kubeMgmt:
13 | repository: openpolicyagent/kube-mgmt
14 | tag: 0.6
15 | pullPolicy: IfNotPresent
16 | kubernetesPolicyController:
17 | repository: nikhilbh/kubernetes-policy-controller
18 | tag: 1.2
19 | pullPolicy: IfNotPresent
20 |
21 | nameOverride: ""
22 | fullnameOverride: ""
23 |
24 | service:
25 | type: ClusterIP
26 | port: 443
27 |
28 | resources: {}
29 | # We usually recommend not to specify default resources and to leave this as a conscious
30 | # choice for the user. This also increases chances charts run on environments with little
31 | # resources, such as Minikube. If you do want to specify resources, uncomment the following
32 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
33 | # limits:
34 | # cpu: 100m
35 | # memory: 128Mi
36 | # requests:
37 | # cpu: 100m
38 | # memory: 128Mi
39 |
40 | nodeSelector: {}
41 |
42 | tolerations: []
43 |
44 | affinity: {}
45 |
46 | # To enforce mutating policies, change to MutatingWebhookConfiguration, ValidatingWebhookConfiguration
47 | admissionControllerKind: MutatingWebhookConfiguration
48 | admissionControllerFailurePolicy: Ignore
49 |
50 | generateAdmissionControllerCerts: true
51 | admissionControllerCA: ""
52 | admissionControllerCert: ""
53 | admissionControllerKey: ""
54 |
55 | admissionControllerRules:
56 | - operations: ["CREATE", "UPDATE"]
57 | apiGroups: ["*"]
58 | apiVersions: ["*"]
59 | resources: ["*"]
60 |
--------------------------------------------------------------------------------
/charts/prometheus-pingdom-exporter/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/prometheus-pingdom-exporter/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | name: prometheus-pingdom-exporter
3 | version: 2.2.1
4 | appVersion: 20180821-1
5 | home: https://github.com/giantswarm/prometheus-pingdom-exporter
6 | description: DEPRECATED ! - A Helm chart for Prometheus Pingdom Exporter
7 | keywords:
8 | - prometheus
9 | - pingdom
10 | sources:
11 | - https://github.com/giantswarm/prometheus-pingdom-exporter
12 | - https://github.com/camptocamp/prometheus-pingdom-exporter
13 | icon: https://raw.githubusercontent.com/cncf/artwork/master/prometheus/icon/color/prometheus-icon-color.svg
14 | deprecated: true
15 |
--------------------------------------------------------------------------------
/charts/prometheus-pingdom-exporter/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | !! CHART HAS BEEN DEPRECATED AND MOVED TO https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-pingdom-exporter> !!
2 |
3 | {{/* vim: set filetype=mustache: */}}
4 | {{/*
5 | Expand the name of the chart.
6 | */}}
7 | {{- define "prometheus-pingdom-exporter.name" -}}
8 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
9 | {{- end -}}
10 |
11 | {{/*
12 | Create a default fully qualified app name.
13 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
14 | If release name contains chart name it will be used as a full name.
15 | */}}
16 | {{- define "prometheus-pingdom-exporter.fullname" -}}
17 | {{- if .Values.fullnameOverride -}}
18 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
19 | {{- else -}}
20 | {{- $name := default .Chart.Name .Values.nameOverride -}}
21 | {{- if contains $name .Release.Name -}}
22 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
23 | {{- else -}}
24 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
25 | {{- end -}}
26 | {{- end -}}
27 | {{- end -}}
28 |
29 | {{/*
30 | Create chart name and version as used by the chart label.
31 | */}}
32 | {{- define "prometheus-pingdom-exporter.chart" -}}
33 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
34 | {{- end -}}
35 |
--------------------------------------------------------------------------------
/charts/prometheus-pingdom-exporter/templates/secret.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Secret
3 | metadata:
4 | name: {{ include "prometheus-pingdom-exporter.name" . }}
5 | {{- if .Values.secret.annotations }}
6 | annotations:
7 | {{- toYaml .Values.secret.annotations | nindent 4 }}
8 | {{- end }}
9 | labels:
10 | app.kubernetes.io/name: {{ include "prometheus-pingdom-exporter.name" . }}
11 | helm.sh/chart: {{ include "prometheus-pingdom-exporter.name" . }}
12 | app.kubernetes.io/instance: {{ .Release.Name }}
13 | app.kubernetes.io/managed-by: {{ .Release.Service }}
14 | type: Opaque
15 | data:
16 | user: {{ .Values.pingdom.user | b64enc }}
17 | password: {{ .Values.pingdom.password | b64enc }}
18 | appId: {{ .Values.pingdom.appId | b64enc }}
19 | accountEmail: {{ .Values.pingdom.accountEmail | b64enc }}
20 |
--------------------------------------------------------------------------------
/charts/prometheus-pingdom-exporter/templates/service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ include "prometheus-pingdom-exporter.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "prometheus-pingdom-exporter.name" . }}
7 | helm.sh/chart: {{ include "prometheus-pingdom-exporter.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | {{- if .Values.service.annotations }}
11 | annotations:
12 | {{ toYaml .Values.service.annotations | indent 4 }}
13 | {{- end }}
14 | spec:
15 | type: {{ .Values.service.type }}
16 | ports:
17 | - port: {{ .Values.service.port }}
18 | targetPort: http
19 | protocol: TCP
20 | name: http
21 | selector:
22 | app.kubernetes.io/name: {{ include "prometheus-pingdom-exporter.name" . }}
23 | app.kubernetes.io/instance: {{ .Release.Name }}
24 |
--------------------------------------------------------------------------------
/charts/prometheus-pingdom-exporter/values.yaml:
--------------------------------------------------------------------------------
1 | # Default values for prometheus-pingdom-exporter.
2 | # This is a YAML-formatted file.
3 | # Declare variables to be passed into your templates.
4 |
5 | replicaCount: 1
6 |
7 | image:
8 | # we use camptocamp/prometheus-pingdom-exporter image as giantswarm did not publish recent versions after 0.1.1
9 | repository: camptocamp/prometheus-pingdom-exporter
10 | tag: 20180821-1
11 | pullPolicy: IfNotPresent
12 |
13 | nameOverride: ""
14 | fullnameOverride: ""
15 |
16 | service:
17 | type: ClusterIP
18 | port: 9100
19 | annotations: {}
20 | # prometheus.io/scrape: "true"
21 | # prometheus.io/port: "9100"
22 |
23 | resources: {}
24 | # We usually recommend not to specify default resources and to leave this as a conscious
25 | # choice for the user. This also increases chances charts run on environments with little
26 | # resources, such as Minikube. If you do want to specify resources, uncomment the following
27 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
28 | # limits:
29 | # cpu: 100m
30 | # memory: 128Mi
31 | # requests:
32 | # cpu: 100m
33 | # memory: 128Mi
34 |
35 | nodeSelector: {}
36 |
37 | tolerations: []
38 |
39 | affinity: {}
40 |
41 | # configuration of the pingdom credentials
42 | pingdom:
43 | # username of the pingdom account
44 | user: somebody@invalid
45 | # password of the pingdom account
46 | password: totallysecret
47 | # application id / api secret can be created on the pingdom website
48 | appId: alsototallysecret
49 | # account email of the account owner if using multiaccount / team accounts
50 | accountEmail: somebodyorelse@invalid
51 | # time (in seconds) between accessing the Pingdom API
52 | wait: 10
53 |
54 | pod:
55 | annotations: {}
56 | # key: "true"
57 | # example: "false"
58 |
59 | secret:
60 | annotations: {}
61 | # key: "true"
62 | # example: "false"
63 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "0.32.4"
3 | description: A Helm chart for thanos monitoring components
4 | name: prometheus-thanos
5 | version: 5.0.0
6 | home: https://github.com/thanos-io/thanos
7 | sources:
8 | - https://github.com/thanos-io/thanos
9 | - https://github.com/kiwigrid/helm-charts/tree/master/charts/prometheus-thanos
10 | icon: https://raw.githubusercontent.com/thanos-io/thanos/master/docs/img/Thanos-logo_fullmedium.png
11 | maintainers:
12 | - name: rpahli
13 | email: rico.pahlisch@kiwigrid.com
14 | - name: axdotl
15 | email: axel.koehler@kiwigrid.com
16 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/requirements.yaml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | - name: minio
3 | version: 7.0.2
4 | repository: https://helm.min.io/
5 | condition: minio.enabled
6 | - name: any-resource
7 | version: 0.1.0
8 | repository: https://kiwigrid.github.io/
9 | condition: any-resource.enabled
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Store gateway and querier now running.
2 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "prometheus-thanos.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "prometheus-thanos.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "prometheus-thanos.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
34 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/bucket-web/service.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.bucketWebInterface.enabled -}}
2 | apiVersion: v1
3 | kind: Service
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-bucket-web-interface
6 | {{- if .Values.service.bucketWebInterface.annotations }}
7 | annotations:
8 | {{ toYaml .Values.service.bucketWebInterface.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-bucket-web-interface
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | spec:
16 | type: {{ .Values.service.bucketWebInterface.type }}
17 | ports:
18 | - port: {{ .Values.service.bucketWebInterface.http.port }}
19 | targetPort: http
20 | protocol: TCP
21 | name: http
22 | selector:
23 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-bucket-web-interface
24 | app.kubernetes.io/instance: {{ .Release.Name }}
25 | {{- end }}
26 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/bucket-web/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.bucketWebInterface.enabled .Values.bucketWebInterface.serviceAccount.create -}}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-bucket-web-interface
6 | {{- if .Values.bucketWebInterface.serviceAccount.annotations }}
7 | annotations:
8 | {{ toYaml .Values.bucketWebInterface.serviceAccount.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-bucket-web-interface
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/compactor/service.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.compact.enabled -}}
2 | apiVersion: v1
3 | kind: Service
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-compact
6 | {{- if .Values.service.compact.annotations }}
7 | annotations:
8 | {{ toYaml .Values.service.compact.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-compact
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | spec:
16 | type: {{ .Values.service.compact.type }}
17 | ports:
18 | - port: {{ .Values.service.compact.http.port }}
19 | targetPort: monitoring
20 | protocol: TCP
21 | name: http
22 | selector:
23 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-compact
24 | app.kubernetes.io/instance: {{ .Release.Name }}
25 | {{- end }}
26 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/compactor/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.compact.enabled .Values.compact.serviceAccount.create -}}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-compact
6 | {{- if .Values.compact.serviceAccount.annotations }}
7 | annotations:
8 | {{ toYaml .Values.compact.serviceAccount.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-compact
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/querier/deployment-hpa.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.querier.enabled .Values.querier.autoscaling.enabled -}}
2 | apiVersion: autoscaling/v1
3 | kind: HorizontalPodAutoscaler
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-querier
6 | labels:
7 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-querier
8 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | spec:
12 | scaleTargetRef:
13 | apiVersion: apps/v1
14 | kind: Deployment
15 | name: {{ include "prometheus-thanos.fullname" . }}-querier
16 | minReplicas: {{ .Values.querier.autoscaling.minReplicas }}
17 | maxReplicas: {{ .Values.querier.autoscaling.maxReplicas }}
18 | {{- with .Values.querier.autoscaling.metrics }}
19 | metrics:
20 | {{- toYaml . | nindent 4 }}
21 | {{- end }}
22 | {{- end }}
23 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/querier/service.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.querier.enabled -}}
2 | apiVersion: v1
3 | kind: Service
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-querier
6 | {{- if .Values.service.querier.annotations }}
7 | annotations:
8 | {{ toYaml .Values.service.querier.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-querier
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | spec:
16 | type: {{ .Values.service.querier.type }}
17 | ports:
18 | - port: {{ .Values.service.querier.http.port }}
19 | targetPort: http
20 | protocol: TCP
21 | name: http
22 | - port: {{ .Values.service.querier.grpc.port }}
23 | targetPort: grpc
24 | protocol: TCP
25 | name: grpc
26 | selector:
27 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-querier
28 | app.kubernetes.io/instance: {{ .Release.Name }}
29 | {{- end }}
30 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/querier/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.querier.enabled .Values.querier.serviceAccount.create -}}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-querier
6 | {{- if .Values.querier.serviceAccount.annotations }}
7 | annotations:
8 | {{ toYaml .Values.querier.serviceAccount.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-querier
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/query-frontend/deployment-hpa.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.queryFrontend.enabled .Values.queryFrontend.autoscaling.enabled -}}
2 | apiVersion: autoscaling/v1
3 | kind: HorizontalPodAutoscaler
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-query-frontend
6 | labels:
7 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-query-frontend
8 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | spec:
12 | scaleTargetRef:
13 | apiVersion: apps/v1
14 | kind: Deployment
15 | name: {{ include "prometheus-thanos.fullname" . }}-query-frontend
16 | minReplicas: {{ .Values.queryFrontend.autoscaling.minReplicas }}
17 | maxReplicas: {{ .Values.queryFrontend.autoscaling.maxReplicas }}
18 | {{- with .Values.querier.autoscaling.metrics }}
19 | metrics:
20 | {{- toYaml . | nindent 4 }}
21 | {{- end }}
22 | {{- end }}
23 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/query-frontend/service.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.queryFrontend.enabled -}}
2 | apiVersion: v1
3 | kind: Service
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-query-frontend
6 | {{- if .Values.service.queryFrontend.annotations }}
7 | annotations:
8 | {{ toYaml .Values.service.queryFrontend.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-query-frontend
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | spec:
16 | type: {{ .Values.service.queryFrontend.type }}
17 | ports:
18 | - port: {{ .Values.service.queryFrontend.http.port }}
19 | targetPort: http
20 | protocol: TCP
21 | name: http
22 | selector:
23 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-query-frontend
24 | app.kubernetes.io/instance: {{ .Release.Name }}
25 | {{- end }}
26 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/query-frontend/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.queryFrontend.enabled .Values.queryFrontend.serviceAccount.create -}}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-query-frontend
6 | {{- if .Values.queryFrontend.serviceAccount.annotations }}
7 | annotations:
8 | {{ toYaml .Values.queryFrontend.serviceAccount.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-query-frontend
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/receiver/hashring-configmap.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.receiver.enabled -}}
2 | apiVersion: v1
3 | kind: ConfigMap
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-receiver-hashring
6 | data:
7 | hashrings.json: |
8 | [
9 | {
10 | "endpoints": [
11 | {{- range $i, $e := until (int .Values.receiver.replicaCount) }}
12 | "{{ include "prometheus-thanos.fullname" $ }}-receiver-{{ $i }}.{{ include "prometheus-thanos.fullname" $ }}-receiver.{{ $.Release.Namespace }}.svc.cluster.local:{{ $.Values.service.receiver.grpc.port }}"
13 |
14 | {{- if lt $i (sub (int $.Values.receiver.replicaCount) 1) -}}
15 | ,
16 | {{- end -}}
17 | {{- end }}
18 | ]
19 | }
20 | ]
21 | {{- end }}
22 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/receiver/service.yaml:
--------------------------------------------------------------------------------
1 | {{- /*
2 | See comments in ./statefulset.yaml about why this is headless
3 | */}}
4 |
5 | {{- if .Values.receiver.enabled -}}
6 | apiVersion: v1
7 | kind: Service
8 | metadata:
9 | name: {{ include "prometheus-thanos.fullname" . }}-receiver
10 | {{- if .Values.service.receiver.annotations }}
11 | annotations:
12 | {{ toYaml .Values.service.receiver.annotations | indent 4 }}
13 | {{- end }}
14 | labels:
15 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-receiver
16 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
17 | app.kubernetes.io/instance: {{ .Release.Name }}
18 | app.kubernetes.io/managed-by: {{ .Release.Service }}
19 | spec:
20 | clusterIP: None
21 | ports:
22 | - port: {{ .Values.service.receiver.http.port }}
23 | targetPort: http
24 | protocol: TCP
25 | name: http
26 | - port: {{ .Values.service.receiver.httpRemoteWrite.port }}
27 | targetPort: http-rw
28 | protocol: TCP
29 | name: http-rw
30 | - port: {{ .Values.service.receiver.grpc.port }}
31 | targetPort: grpc
32 | protocol: TCP
33 | name: grpc
34 | selector:
35 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-receiver
36 | app.kubernetes.io/instance: {{ .Release.Name }}
37 | {{- end }}
38 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/receiver/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.receiver.enabled .Values.receiver.serviceAccount.create -}}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-receiver
6 | {{- if .Values.receiver.serviceAccount.annotations }}
7 | annotations:
8 | {{ toYaml .Values.receiver.serviceAccount.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-receiver
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/ruler/clusterrole.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ruler.sidecar.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRole
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-ruler
6 | labels:
7 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-ruler
8 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | rules:
12 | - apiGroups:
13 | - ""
14 | resources:
15 | - configmaps
16 | verbs:
17 | - get
18 | - list
19 | - watch
20 | {{- end }}
21 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/ruler/clusterrolebinding.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ruler.sidecar.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRoleBinding
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-ruler
6 | labels:
7 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-ruler
8 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | roleRef:
12 | apiGroup: rbac.authorization.k8s.io
13 | kind: ClusterRole
14 | name: {{ include "prometheus-thanos.fullname" . }}-ruler
15 | subjects:
16 | - kind: ServiceAccount
17 | name: {{ include "prometheus-thanos.fullname" . }}-ruler
18 | namespace: {{ .Release.Namespace }}
19 | {{- end }}
20 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/ruler/configmap.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ruler.enabled -}}
2 | apiVersion: v1
3 | kind: ConfigMap
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-ruler
6 | labels:
7 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-ruler
8 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | data:
12 | default.rules.yaml: |
13 | {{- if .Values.ruler.config }}
14 | {{- .Values.ruler.config | toYaml | nindent 4 }}
15 | {{- end }}
16 | {{- end }}
17 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/ruler/service.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ruler.enabled -}}
2 | apiVersion: v1
3 | kind: Service
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-ruler
6 | {{- if .Values.service.ruler.annotations }}
7 | annotations:
8 | {{ toYaml .Values.service.ruler.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-ruler
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | spec:
16 | type: {{ .Values.service.ruler.type }}
17 | ports:
18 | - port: {{ .Values.service.ruler.http.port }}
19 | targetPort: http
20 | protocol: TCP
21 | name: http
22 | - port: {{ .Values.service.ruler.grpc.port }}
23 | targetPort: grpc
24 | protocol: TCP
25 | name: grpc
26 | selector:
27 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-ruler
28 | app.kubernetes.io/instance: {{ .Release.Name }}
29 | {{- end }}
30 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/ruler/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ruler.enabled -}}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-ruler
6 | {{- if .Values.ruler.serviceAccount.annotations }}
7 | annotations:
8 | {{ toYaml .Values.ruler.serviceAccount.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-ruler
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/store-gateway/service.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.storeGateway.enabled -}}
2 | apiVersion: v1
3 | kind: Service
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-store-gateway
6 | {{- if .Values.service.storeGateway.annotations }}
7 | annotations:
8 | {{ toYaml .Values.service.storeGateway.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-store-gateway
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | spec:
16 | type: {{ .Values.service.storeGateway.type }}
17 | ports:
18 | - port: {{ .Values.service.storeGateway.http.port }}
19 | targetPort: http
20 | protocol: TCP
21 | name: http
22 | - port: {{ .Values.service.storeGateway.grpc.port }}
23 | targetPort: grpc
24 | protocol: TCP
25 | name: grpc
26 | selector:
27 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-store-gateway
28 | app.kubernetes.io/instance: {{ .Release.Name }}
29 | {{- end }}
30 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/store-gateway/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.storeGateway.enabled .Values.storeGateway.serviceAccount.create -}}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-store-gateway
6 | {{- if .Values.storeGateway.serviceAccount.annotations }}
7 | annotations:
8 | {{ toYaml .Values.storeGateway.serviceAccount.annotations | indent 4 }}
9 | {{- end }}
10 | labels:
11 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-store-gateway
12 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
13 | app.kubernetes.io/instance: {{ .Release.Name }}
14 | app.kubernetes.io/managed-by: {{ .Release.Service }}
15 | {{- end }}
16 |
--------------------------------------------------------------------------------
/charts/prometheus-thanos/templates/store-gateway/statefulset-hpa.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.storeGateway.enabled .Values.storeGateway.autoscaling.enabled -}}
2 | apiVersion: autoscaling/v1
3 | kind: HorizontalPodAutoscaler
4 | metadata:
5 | name: {{ include "prometheus-thanos.fullname" . }}-store-gateway
6 | labels:
7 | app.kubernetes.io/name: {{ include "prometheus-thanos.name" . }}-store-gateway
8 | helm.sh/chart: {{ include "prometheus-thanos.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | spec:
12 | scaleTargetRef:
13 | apiVersion: apps/v1
14 | kind: StatefulSet
15 | name: {{ include "prometheus-thanos.fullname" . }}-store-gateway
16 | minReplicas: {{ .Values.storeGateway.autoscaling.minReplicas }}
17 | maxReplicas: {{ .Values.storeGateway.autoscaling.maxReplicas }}
18 | {{ with .Values.storeGateway.autoscaling.metrics }}
19 | metrics:
20 | {{- toYaml . | nindent 4 }}
21 | {{- end }}
22 | {{- end }}
23 |
--------------------------------------------------------------------------------
/charts/pull-secret-distributor/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 |
--------------------------------------------------------------------------------
/charts/pull-secret-distributor/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "25"
3 | description: A Helm chart to distribute pull secret across namespaces
4 | name: pull-secret-distributor
5 | version: 0.3.1
6 | home: https://github.com/kiwigrid/pull-secret-distributor
7 | sources:
8 | - https://github.com/kiwigrid/pull-secret-distributor
9 | deprecated: true
10 |
--------------------------------------------------------------------------------
/charts/pull-secret-distributor/README.md:
--------------------------------------------------------------------------------
1 | # Pull secret distributor
2 |
3 | This chart was renamed and is therefore deprecated.
4 |
5 | Please use [secret-replicator](https://github.com/kiwigrid/helm-charts/tree/master/charts/secret-replicator) instead.
6 |
7 |
--------------------------------------------------------------------------------
/charts/pull-secret-distributor/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Deployments successful installed.
2 |
3 | you can check if it's working by creating a new namespace. The pull secrets should be populated to the new namespace.
4 |
--------------------------------------------------------------------------------
/charts/pull-secret-distributor/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "pull-secret-distributor.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "pull-secret-distributor.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "pull-secret-distributor.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
--------------------------------------------------------------------------------
/charts/pull-secret-distributor/templates/cluster-role.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRole
4 | metadata:
5 | name: {{ template "pull-secret-distributor.fullname" . }}-ca
6 | labels:
7 | app.kubernetes.io/name: {{ include "pull-secret-distributor.name" . }}
8 | helm.sh/chart: {{ include "pull-secret-distributor.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | rules:
12 | - apiGroups:
13 | - ""
14 | resources:
15 | - "secrets"
16 | - "namespaces"
17 | verbs:
18 | - "*"
19 | {{- end -}}
20 |
--------------------------------------------------------------------------------
/charts/pull-secret-distributor/templates/cluster-rolebinding.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRoleBinding
4 | metadata:
5 | name: {{ template "pull-secret-distributor.fullname" . }}-crb
6 | labels:
7 | app.kubernetes.io/name: {{ include "pull-secret-distributor.name" . }}
8 | helm.sh/chart: {{ include "pull-secret-distributor.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | roleRef:
12 | apiGroup: rbac.authorization.k8s.io
13 | kind: ClusterRole
14 | name: {{ template "pull-secret-distributor.fullname" . }}-ca
15 | subjects:
16 | - kind: ServiceAccount
17 | name: {{ template "pull-secret-distributor.fullname" . }}-sa
18 | namespace: {{ .Release.Namespace }}
19 | {{- end }}
20 |
--------------------------------------------------------------------------------
/charts/pull-secret-distributor/templates/deployment.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apps/v1
2 | kind: Deployment
3 | metadata:
4 | name: {{ include "pull-secret-distributor.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "pull-secret-distributor.name" . }}
7 | helm.sh/chart: {{ include "pull-secret-distributor.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | spec:
11 | replicas: 1
12 | selector:
13 | matchLabels:
14 | app.kubernetes.io/name: {{ include "pull-secret-distributor.name" . }}
15 | app.kubernetes.io/instance: {{ .Release.Name }}
16 | template:
17 | metadata:
18 | labels:
19 | app.kubernetes.io/name: {{ include "pull-secret-distributor.name" . }}
20 | app.kubernetes.io/instance: {{ .Release.Name }}
21 | spec:
22 | serviceAccountName: {{ template "pull-secret-distributor.fullname" . }}-sa
23 | containers:
24 | - name: {{ .Chart.Name }}
25 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
26 | imagePullPolicy: {{ .Values.image.pullPolicy }}
27 | env:
28 | - name: PULL_SECRETS
29 | value: {{ .Values.pullSecrets }}
30 | - name: IGNORE_NAMESPACES
31 | value: {{ .Values.ignoreNamespaces }}
32 | resources:
33 | {{ toYaml .Values.resources | indent 12 }}
34 | imagePullSecrets:
35 | - name: registry-secret
36 | {{- with .Values.nodeSelector }}
37 | nodeSelector:
38 | {{ toYaml . | indent 8 }}
39 | {{- end }}
40 | {{- with .Values.affinity }}
41 | affinity:
42 | {{ toYaml . | indent 8 }}
43 | {{- end }}
44 | {{- with .Values.tolerations }}
45 | tolerations:
46 | {{ toYaml . | indent 8 }}
47 | {{- end }}
48 |
--------------------------------------------------------------------------------
/charts/pull-secret-distributor/templates/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.rbac.enabled }}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ template "pull-secret-distributor.fullname" . }}-sa
6 | labels:
7 | app.kubernetes.io/name: {{ include "pull-secret-distributor.name" . }}
8 | helm.sh/chart: {{ include "pull-secret-distributor.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | {{- end }}
12 |
--------------------------------------------------------------------------------
/charts/pull-secret-distributor/values.yaml:
--------------------------------------------------------------------------------
1 | # Default values for pull-secret-distributor.
2 | # This is a YAML-formatted file.
3 | # Declare variables to be passed into your templates.
4 |
5 | image:
6 | repository: kiwigrid/pull-secret-distributor
7 | tag: 25
8 | pullPolicy: IfNotPresent
9 | # csv list of secrets
10 | pullSecrets: ""
11 | # pullSecrets: "secret1,secret2
12 |
13 | ignoreNamespaces: "kube-system,kube-public"
14 | rbac:
15 | enabled: true
16 |
17 | resources: {}
18 | # limits:
19 | # cpu: 50m
20 | # memory: 20Mi
21 | # requests:
22 | # cpu: 20m
23 | # memory: 20Mi
24 |
25 | nodeSelector: {}
26 |
27 | tolerations: []
28 |
29 | affinity: {}
30 |
--------------------------------------------------------------------------------
/charts/secret-replicator/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 |
--------------------------------------------------------------------------------
/charts/secret-replicator/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "0.2.0"
3 | description: A Helm chart to replicate secret across namespaces
4 | name: secret-replicator
5 | version: 0.6.0
6 | home: https://github.com/kiwigrid/secret-replicator
7 | sources:
8 | - https://github.com/kiwigrid/secret-replicator
9 | maintainers:
10 | - name: rpahli
11 | email: rico.pahlisch@kiwigrid.com
12 |
--------------------------------------------------------------------------------
/charts/secret-replicator/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Deployments successful installed.
2 |
3 | you can check if it's working by creating a new namespace. The pull secrets should be populated to the new namespace.
4 |
--------------------------------------------------------------------------------
/charts/secret-replicator/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "secret-replicator.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "secret-replicator.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "secret-replicator.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
--------------------------------------------------------------------------------
/charts/secret-replicator/templates/cluster-role.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRole
4 | metadata:
5 | name: {{ template "secret-replicator.fullname" . }}-ca
6 | labels:
7 | app.kubernetes.io/name: {{ include "secret-replicator.name" . }}
8 | helm.sh/chart: {{ include "secret-replicator.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | rules:
12 | - apiGroups:
13 | - ""
14 | resources:
15 | - "secrets"
16 | - "namespaces"
17 | verbs:
18 | - "*"
19 | {{- end -}}
20 |
--------------------------------------------------------------------------------
/charts/secret-replicator/templates/cluster-rolebinding.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.rbac.enabled }}
2 | apiVersion: rbac.authorization.k8s.io/v1
3 | kind: ClusterRoleBinding
4 | metadata:
5 | name: {{ template "secret-replicator.fullname" . }}-crb
6 | labels:
7 | app.kubernetes.io/name: {{ include "secret-replicator.name" . }}
8 | helm.sh/chart: {{ include "secret-replicator.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | roleRef:
12 | apiGroup: rbac.authorization.k8s.io
13 | kind: ClusterRole
14 | name: {{ template "secret-replicator.fullname" . }}-ca
15 | subjects:
16 | - kind: ServiceAccount
17 | name: {{ template "secret-replicator.fullname" . }}-sa
18 | namespace: {{ .Release.Namespace }}
19 | {{- end }}
20 |
--------------------------------------------------------------------------------
/charts/secret-replicator/templates/serviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if and .Values.rbac.enabled }}
2 | apiVersion: v1
3 | kind: ServiceAccount
4 | metadata:
5 | name: {{ template "secret-replicator.fullname" . }}-sa
6 | labels:
7 | app.kubernetes.io/name: {{ include "secret-replicator.name" . }}
8 | helm.sh/chart: {{ include "secret-replicator.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | {{- end }}
12 |
--------------------------------------------------------------------------------
/charts/secret-replicator/values.yaml:
--------------------------------------------------------------------------------
1 | # Default values for secret-replicator.
2 | # This is a YAML-formatted file.
3 | # Declare variables to be passed into your templates.
4 |
5 | image:
6 | repository: kiwigrid/secret-replicator
7 | tag: 0.2.0
8 | pullPolicy: IfNotPresent
9 | ## Specify ImagePullSecrets for Pods
10 | ## ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
11 | # pullSecrets: myregistrykey
12 |
13 | # csv list of secrets
14 | secretList: ""
15 | # secretList: "secret1,secret2
16 |
17 | ignoreNamespaces: "kube-system,kube-public"
18 |
19 | # If defined, allow secret-replicator to watch for secrets in _another_ namespace
20 | secretNamespace:
21 |
22 | rbac:
23 | enabled: true
24 |
25 | resources: {}
26 | # limits:
27 | # cpu: 50m
28 | # memory: 20Mi
29 | # requests:
30 | # cpu: 20m
31 | # memory: 20Mi
32 |
33 | nodeSelector: {}
34 |
35 | tolerations: []
36 |
37 | affinity: {}
38 |
--------------------------------------------------------------------------------
/charts/spring-cloud-config-server/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/spring-cloud-config-server/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "2.1.3.RELEASE"
3 | description: A Helm chart for Spring Cloud Config Server
4 | name: spring-cloud-config-server
5 | version: 0.1.3
6 | home: https://github.com/hyness/spring-cloud-config-server
7 | sources:
8 | - https://github.com/hyness/spring-cloud-config-server
9 | - https://github.com/kiwigrid/helm-charts/tree/master/charts/spring-cloud-config-server
10 | maintainers:
11 | - name: rpahli
12 | email: rico.pahlisch@kiwigrid.com
13 |
--------------------------------------------------------------------------------
/charts/spring-cloud-config-server/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Spring cloud config server is now running
2 |
--------------------------------------------------------------------------------
/charts/spring-cloud-config-server/templates/ingress.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.ingress.enabled -}}
2 | {{- $fullName := include "spring-cloud-config-server.fullname" . -}}
3 | apiVersion: networking.k8s.io/v1beta1
4 | kind: Ingress
5 | metadata:
6 | name: {{ $fullName }}
7 | labels:
8 | {{- include "spring-cloud-config-server.labels" . | nindent 4 }}
9 | {{- with .Values.ingress.annotations }}
10 | annotations:
11 | {{- toYaml . | nindent 4 }}
12 | {{- end }}
13 | spec:
14 | {{- if .Values.ingress.tls }}
15 | tls:
16 | {{- range .Values.ingress.tls }}
17 | - hosts:
18 | {{- range .hosts }}
19 | - {{ . | quote }}
20 | {{- end }}
21 | secretName: {{ .secretName }}
22 | {{- end }}
23 | {{- end }}
24 | rules:
25 | {{- range .Values.ingress.hosts }}
26 | - host: {{ .host | quote }}
27 | http:
28 | paths:
29 | {{- range .paths }}
30 | - path: {{ . }}
31 | backend:
32 | serviceName: {{ $fullName }}
33 | servicePort: http
34 | {{- end }}
35 | {{- end }}
36 | {{- end }}
37 |
--------------------------------------------------------------------------------
/charts/spring-cloud-config-server/templates/secret.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Secret
3 | type: Opaque
4 | metadata:
5 | name: {{ include "spring-cloud-config-server.fullname" . }}
6 | labels:
7 | {{ include "spring-cloud-config-server.labels" . | indent 4 }}
8 | data:
9 | {{- if .Values.secrets.gitUsername }}
10 | gitUsername: {{ .Values.secrets.gitUsername | b64enc | quote }}
11 | {{- else }}
12 | gitUsername: {{ randAlphaNum 20 | b64enc | quote }}
13 | {{- end }}
14 | {{- if .Values.secrets.gitPassword }}
15 | gitPassword: {{ .Values.secrets.gitPassword | b64enc | quote }}
16 | {{- else }}
17 | gitPassword: {{ randAlphaNum 20 | b64enc | quote }}
18 | {{- end }}
19 | ---
20 | {{- if .Values.secrets.githubPrivateKey }}
21 | apiVersion: v1
22 | kind: Secret
23 | type: Opaque
24 | metadata:
25 | name: {{ include "spring-cloud-config-server.fullname" . }}-githubprivatekey
26 | labels:
27 | {{ include "spring-cloud-config-server.labels" . | indent 4 }}
28 | data:
29 | id_rsa: {{ .Values.secrets.githubPrivateKey }}
30 | known_hosts: {{ .Values.secrets.githubKnownHosts }}
31 | {{- end }}
32 |
--------------------------------------------------------------------------------
/charts/spring-cloud-config-server/templates/service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ include "spring-cloud-config-server.fullname" . }}
5 | labels:
6 | {{- include "spring-cloud-config-server.labels" . | nindent 4 }}
7 | spec:
8 | type: {{ .Values.service.type }}
9 | ports:
10 | - port: {{ .Values.service.port }}
11 | targetPort: http
12 | protocol: TCP
13 | name: http
14 | selector:
15 | {{- include "spring-cloud-config-server.selectorLabels" . | nindent 4 }}
16 |
17 |
--------------------------------------------------------------------------------
/charts/spring-cloud-config-server/values.yaml:
--------------------------------------------------------------------------------
1 | # Default values for spring-cloud-config-server.
2 | # This is a YAML-formatted file.
3 | # Declare variables to be passed into your templates.
4 |
5 | replicaCount: 1
6 |
7 | image:
8 | repository: hyness/spring-cloud-config-server
9 | tag: 2.1.3.RELEASE
10 | pullPolicy: IfNotPresent
11 |
12 | imagePullSecrets: []
13 | nameOverride: ""
14 | fullnameOverride: ""
15 |
16 | service:
17 | type: ClusterIP
18 | port: 80
19 |
20 | ingress:
21 | enabled: false
22 | annotations: {}
23 | # kubernetes.io/ingress.class: nginx
24 | # kubernetes.io/tls-acme: "true"
25 | hosts:
26 | - host: chart-example.local
27 | paths: []
28 |
29 | tls: []
30 | # - secretName: chart-example-tls
31 | # hosts:
32 | # - chart-example.local
33 |
34 | resources: {}
35 | # We usually recommend not to specify default resources and to leave this as a conscious
36 | # choice for the user. This also increases chances charts run on environments with little
37 | # resources, such as Minikube. If you do want to specify resources, uncomment the following
38 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
39 | # limits:
40 | # cpu: 100m
41 | # memory: 128Mi
42 | # requests:
43 | # cpu: 100m
44 | # memory: 128Mi
45 |
46 | nodeSelector: {}
47 |
48 | tolerations: []
49 |
50 | affinity: {}
51 |
52 | podTemplate:
53 | annotations: {}
54 |
55 | extraEnv: []
56 | config:
57 | gitUri: ""
58 | gitSearchpath: "{application}"
59 |
60 | secrets:
61 | gitUsername: ""
62 | gitPassword: ""
63 | # Github deploy key auth method. Base64 coded known_hosts and private key.
64 | # githubKnownHosts: ""
65 | # githubPrivateKey: ""
66 |
67 |
--------------------------------------------------------------------------------
/charts/stackdriver-exporter/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/stackdriver-exporter/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "0.6.0"
3 | description: A Helm chart for exporting stackdriver metrics to prometheus
4 | name: stackdriver-exporter
5 | version: 0.2.0
6 | home: https://github.com/frodenas/stackdriver_exporter
7 | sources:
8 | - https://github.com/frodenas/stackdriver_exporter
9 | maintainers:
10 | - name: rpahli
11 | email: rico.pahlisch@kiwigrid.com
12 |
--------------------------------------------------------------------------------
/charts/stackdriver-exporter/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Deployments successful installed.
2 |
3 | you can check if it's working by forwarding the port 9255 and visit localhost:9255/metrics
4 |
5 | export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "stackdriver-exporter.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
6 | echo "Visit http://127.0.0.1:9255/metrics to use your application"
7 | kubectl port-forward $POD_NAME 9255
8 |
--------------------------------------------------------------------------------
/charts/stackdriver-exporter/templates/gcpserviceaccount.yaml:
--------------------------------------------------------------------------------
1 | {{- if .Values.usingGCPController }}
2 | apiVersion: gcp.kiwigrid.com/v1beta1
3 | kind: GcpServiceAccount
4 | metadata:
5 | labels:
6 | app.kubernetes.io/name: {{ include "stackdriver-exporter.name" . }}
7 | helm.sh/chart: {{ include "stackdriver-exporter.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | name: {{ template "stackdriver-exporter.fullname" . }}
11 | spec:
12 | serviceAccountIdentifier: {{ template "stackdriver-exporter.serviceAccountName" . }}
13 | serviceAccountDescription: Service account for accessing stackdriver metrics for prometheus
14 | secretName: {{ template "stackdriver-exporter.gcpsecretName" . }}
15 | bindings:
16 | - resource: "//cloudresourcemanager.googleapis.com/projects/{{required "gcp.projectId has to be set" .Values.gcp.projectId }}"
17 | roles:
18 | - roles/monitoring.viewer
19 | {{ end }}
20 |
--------------------------------------------------------------------------------
/charts/stackdriver-exporter/templates/secret.yaml:
--------------------------------------------------------------------------------
1 | {{- if not .Values.usingGCPController }}
2 | apiVersion: v1
3 | kind: Secret
4 | metadata:
5 | name: {{ template "stackdriver-exporter.gcpsecretName" . }}
6 | labels:
7 | app.kubernetes.io/name: {{ include "stackdriver-exporter.name" . }}
8 | helm.sh/chart: {{ include "stackdriver-exporter.chart" . }}
9 | app.kubernetes.io/instance: {{ .Release.Name }}
10 | app.kubernetes.io/managed-by: {{ .Release.Service }}
11 | data:
12 | credentials.json: "{{ required "gcpCredentials has to be set if usingGCPController is false" .Values.gcpCredentials }}"
13 | {{ end }}
14 |
--------------------------------------------------------------------------------
/charts/zipkin-stackdriver-proxy/.helmignore:
--------------------------------------------------------------------------------
1 | # Patterns to ignore when building packages.
2 | # This supports shell glob matching, relative path matching, and
3 | # negation (prefixed with !). Only one pattern per line.
4 | .DS_Store
5 | # Common VCS dirs
6 | .git/
7 | .gitignore
8 | .bzr/
9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *~
18 | # Various IDEs
19 | .project
20 | .idea/
21 | *.tmproj
22 | .vscode/
23 |
--------------------------------------------------------------------------------
/charts/zipkin-stackdriver-proxy/Chart.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | appVersion: "v0.6.0"
3 | description: A Helm chart for Zipkin Stackdriver proxy
4 | name: zipkin-stackdriver-proxy
5 | version: 0.1.0
6 | home: https://github.com/openzipkin/zipkin-gcp
7 | sources:
8 | - https://github.com/openzipkin/zipkin-gcp
9 | maintainers:
10 | - name: rpahli
11 | email: rico.pahlisch@kiwigrid.com
12 |
--------------------------------------------------------------------------------
/charts/zipkin-stackdriver-proxy/templates/NOTES.txt:
--------------------------------------------------------------------------------
1 | Your Zipkin proxy is now running and can collect traces from your apps
2 |
--------------------------------------------------------------------------------
/charts/zipkin-stackdriver-proxy/templates/_helpers.tpl:
--------------------------------------------------------------------------------
1 | {{/* vim: set filetype=mustache: */}}
2 | {{/*
3 | Expand the name of the chart.
4 | */}}
5 | {{- define "zipkin-stackdriver-proxy.name" -}}
6 | {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
7 | {{- end -}}
8 |
9 | {{/*
10 | Create a default fully qualified app name.
11 | We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
12 | If release name contains chart name it will be used as a full name.
13 | */}}
14 | {{- define "zipkin-stackdriver-proxy.fullname" -}}
15 | {{- if .Values.fullnameOverride -}}
16 | {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
17 | {{- else -}}
18 | {{- $name := default .Chart.Name .Values.nameOverride -}}
19 | {{- if contains $name .Release.Name -}}
20 | {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
21 | {{- else -}}
22 | {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
23 | {{- end -}}
24 | {{- end -}}
25 | {{- end -}}
26 |
27 | {{/*
28 | Create chart name and version as used by the chart label.
29 | */}}
30 | {{- define "zipkin-stackdriver-proxy.chart" -}}
31 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
32 | {{- end -}}
33 |
--------------------------------------------------------------------------------
/charts/zipkin-stackdriver-proxy/templates/deployment.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: apps/v1
2 | kind: Deployment
3 | metadata:
4 | name: {{ include "zipkin-stackdriver-proxy.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "zipkin-stackdriver-proxy.name" . }}
7 | helm.sh/chart: {{ include "zipkin-stackdriver-proxy.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | spec:
11 | replicas: {{ .Values.replicaCount }}
12 | selector:
13 | matchLabels:
14 | app.kubernetes.io/name: {{ include "zipkin-stackdriver-proxy.name" . }}
15 | app.kubernetes.io/instance: {{ .Release.Name }}
16 | template:
17 | metadata:
18 | labels:
19 | app.kubernetes.io/name: {{ include "zipkin-stackdriver-proxy.name" . }}
20 | app.kubernetes.io/instance: {{ .Release.Name }}
21 | spec:
22 | containers:
23 | - name: {{ .Chart.Name }}
24 | image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
25 | imagePullPolicy: {{ .Values.image.pullPolicy }}
26 | ports:
27 | - name: http
28 | containerPort: 9411
29 | protocol: TCP
30 | livenessProbe:
31 | httpGet:
32 | path: /health
33 | port: http
34 | readinessProbe:
35 | httpGet:
36 | path: /health
37 | port: http
38 | resources:
39 | {{- toYaml .Values.resources | nindent 12 }}
40 | {{- with .Values.nodeSelector }}
41 | nodeSelector:
42 | {{- toYaml . | nindent 8 }}
43 | {{- end }}
44 | {{- with .Values.affinity }}
45 | affinity:
46 | {{- toYaml . | nindent 8 }}
47 | {{- end }}
48 | {{- with .Values.tolerations }}
49 | tolerations:
50 | {{- toYaml . | nindent 8 }}
51 | {{- end }}
52 |
--------------------------------------------------------------------------------
/charts/zipkin-stackdriver-proxy/templates/service.yaml:
--------------------------------------------------------------------------------
1 | apiVersion: v1
2 | kind: Service
3 | metadata:
4 | name: {{ include "zipkin-stackdriver-proxy.fullname" . }}
5 | labels:
6 | app.kubernetes.io/name: {{ include "zipkin-stackdriver-proxy.name" . }}
7 | helm.sh/chart: {{ include "zipkin-stackdriver-proxy.chart" . }}
8 | app.kubernetes.io/instance: {{ .Release.Name }}
9 | app.kubernetes.io/managed-by: {{ .Release.Service }}
10 | spec:
11 | type: {{ .Values.service.type }}
12 | ports:
13 | - port: {{ .Values.service.port }}
14 | targetPort: http
15 | protocol: TCP
16 | name: http
17 | selector:
18 | app.kubernetes.io/name: {{ include "zipkin-stackdriver-proxy.name" . }}
19 | app.kubernetes.io/instance: {{ .Release.Name }}
20 |
--------------------------------------------------------------------------------
/charts/zipkin-stackdriver-proxy/values.yaml:
--------------------------------------------------------------------------------
1 | # Default values for zipkin-stackdriver-proxy.
2 | # This is a YAML-formatted file.
3 | # Declare variables to be passed into your templates.
4 |
5 | replicaCount: 1
6 |
7 | image:
8 | repository: gcr.io/stackdriver-trace-docker/zipkin-collector
9 | tag: v0.6.0
10 | pullPolicy: IfNotPresent
11 |
12 | nameOverride: ""
13 | fullnameOverride: ""
14 |
15 | service:
16 | type: ClusterIP
17 | port: 9411
18 |
19 | resources: {}
20 | # We usually recommend not to specify default resources and to leave this as a conscious
21 | # choice for the user. This also increases chances charts run on environments with little
22 | # resources, such as Minikube. If you do want to specify resources, uncomment the following
23 | # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
24 | # limits:
25 | # cpu: 100m
26 | # memory: 128Mi
27 | # requests:
28 | # cpu: 100m
29 | # memory: 128Mi
30 |
31 | nodeSelector: {}
32 |
33 | tolerations: []
34 |
35 | affinity: {}
36 |
--------------------------------------------------------------------------------