Skip to content

Commit d0b5472

Browse files
committed
Initial commit
0 parents  commit d0b5472

File tree

9 files changed

+270
-0
lines changed

9 files changed

+270
-0
lines changed

.github/workflows/ci.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: CI
2+
3+
on: [ push ]
4+
5+
jobs:
6+
check:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Checkout
10+
uses: actions/checkout@v4
11+
12+
- name: Setup Helm
13+
uses: azure/setup-helm@v4
14+
id: install
15+
with:
16+
version: "latest"
17+
18+
- name: Lint Helm
19+
id: lint
20+
run: helm lint .

.github/workflows/release.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types: [ published ]
6+
7+
env:
8+
CHART_NAME: "grafana-pdc-agent"
9+
OCI_URL: "oci://ghcr.io/smartsquaregmbh/helm"
10+
VERSION: ${{ github.event.release.tag_name }}
11+
12+
permissions:
13+
packages: write
14+
15+
jobs:
16+
publish:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v4
21+
22+
- name: Setup Helm
23+
uses: azure/setup-helm@v4
24+
id: install
25+
with:
26+
version: "latest"
27+
28+
- name: Registry-Login Helm
29+
run: |
30+
helm registry login $REGISTRY -u $USERNAME -p $PASSWORD
31+
env:
32+
REGISTRY: ghcr.io
33+
USERNAME: ${{ github.actor }}
34+
PASSWORD: ${{ secrets.GITHUB_TOKEN }}
35+
36+
- name: Package Helm
37+
id: package
38+
run: |
39+
helm package . --version $VERSION
40+
echo "package=${CHART_NAME}-${VERSION}.tgz" >> "$GITHUB_OUTPUT"
41+
42+
- name: Push Helm
43+
id: push
44+
run: |
45+
helm push $PACKAGE $OCI_URL
46+
env:
47+
PACKAGE: ${{ steps.package.outputs.package }}

.helmignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.helmignore
2+
.git
3+
.github

Chart.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: v2
2+
name: grafana-pdc-agent
3+
description: Grafana Private Datasource Connect Agent
4+
5+
type: application
6+
version: 0.1.0
7+
appVersion: "0.0.31"

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2024 Leon Brandt
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.

README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Grafana pdc-agent Helm
2+
3+
A Helm chart for Grafana's [pdc-agent](https://github.com/grafana/pdc-agent).
4+
5+
If you know what your doing just start using this chart from our OCI-registry:
6+
### `oci://ghcr.io/smartsquaregmbh/helm/grafana-pdc-agent`
7+
8+
# Usage
9+
10+
This chart is stored in a OCI-based registry. Please either use Helm v3.8.0+ or consult the [Helm documentation](https://helm.sh/docs/topics/registries) for how to use OCI-registries in older versions.
11+
12+
Helm currently does not support adding OCI-registries as Helm-repositories. So use this chart like this:
13+
14+
```
15+
$ helm install <release> oci://ghcr.io/smartsquaregmbh/helm/grafana-pdc-agent --version 0.1.0 -f path/to/values.yaml
16+
```
17+
18+
Minimal required values.yaml (for all possible values see [values.yaml](./values.yaml)):
19+
20+
```yaml
21+
secret:
22+
values:
23+
token: "<YOUR-GRAFANA-TOKEN>"
24+
hostedgrafanaid: "<YOUR-HOSTED-GRAFANA-ID>"
25+
cluster: "<YOUR-GRAFANA-CLUSTER>"
26+
```
27+
28+
# Chart compability
29+
30+
This chart is confirmed to work with grafana-pdc-versions `v0.0.30` and `v0.0.31` but every version prior should work too.
31+

templates/deployment.yaml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: grafana-pdc-agent
5+
labels:
6+
{{- $deploymentLabels := dict "app" "grafana-pdc-agent" "name" "grafana-pdc-agent" }}
7+
{{- if .Values.agent }}
8+
{{- $deploymentLabels := .Values.agent | dig "deployment" "extraLabels" dict | merge $deploymentLabels }}
9+
{{- end }}
10+
{{- $deploymentLabels | toYaml | nindent 4 }}
11+
spec:
12+
{{- if .Values.agent }}
13+
replicas: {{ .Values.agent | dig "replicaCount" 1 }}
14+
{{- else }}
15+
replicas: 1
16+
{{- end }}
17+
selector:
18+
matchLabels:
19+
name: grafana-pdc-agent
20+
strategy:
21+
type: RollingUpdate
22+
rollingUpdate:
23+
maxSurge: 1
24+
maxUnavailable: 0
25+
template:
26+
metadata:
27+
labels:
28+
{{- $podLabels := dict "name" "grafana-pdc-agent" }}
29+
{{- if .Values.agent }}
30+
{{- $podLabels := .Values.agent | dig "pod" "extraLabels" dict | merge $podLabels }}
31+
{{- end }}
32+
{{- $podLabels | toYaml | nindent 8 }}
33+
spec:
34+
containers:
35+
- name: grafana-pdc-agent
36+
env:
37+
- name: TOKEN
38+
valueFrom:
39+
secretKeyRef:
40+
key: token
41+
name: {{ .Values.secret.name | default "grafana-pdc-agent" }}
42+
- name: CLUSTER
43+
valueFrom:
44+
secretKeyRef:
45+
key: cluster
46+
name: {{ .Values.secret.name | default "grafana-pdc-agent" }}
47+
- name: HOSTED_GRAFANA_ID
48+
valueFrom:
49+
secretKeyRef:
50+
key: hosted-grafana-id
51+
name: {{ .Values.secret.name | default "grafana-pdc-agent" }}
52+
args:
53+
- -cluster
54+
- $(CLUSTER)
55+
- -token
56+
- $(TOKEN)
57+
- -gcloud-hosted-grafana-id
58+
- "$(HOSTED_GRAFANA_ID)"
59+
{{- if .Values.agent }}
60+
image: "grafana/pdc-agent:{{ .Values.agent | dig "image" "tag" .Chart.AppVersion }}"
61+
imagePullPolicy: {{ .Values.agent | dig "image" "pullPolicy" "Always" }}
62+
{{- else}}
63+
image: "grafana/pdc-agent:{{ .Chart.AppVersion }}"
64+
imagePullPolicy: Always
65+
{{- end}}
66+
{{- with .Values.agent }}
67+
{{- with .resources }}
68+
resources:
69+
{{- toYaml . | nindent 12 }}
70+
{{- end }}
71+
{{- end }}
72+
securityContext:
73+
allowPrivilegeEscalation: false
74+
privileged: false
75+
runAsNonRoot: true
76+
capabilities:
77+
drop:
78+
- all
79+
securityContext:
80+
runAsUser: 30000
81+
runAsGroup: 30000
82+
fsGroup: 30000
83+
{{- with .Values.agent }}
84+
{{- with .nodeSelector}}
85+
nodeSelector:
86+
{{- toYaml . | nindent 8 }}
87+
{{- end }}
88+
{{- end }}
89+
{{- with .Values.agent }}
90+
{{- with .affinity }}
91+
affinity:
92+
{{- toYaml . | nindent 8 }}
93+
{{- end }}
94+
{{- end }}
95+
{{- with .Values.agent }}
96+
{{- with .tolerations }}
97+
tolerations:
98+
{{- toYaml . | nindent 8 }}
99+
{{- end }}
100+
{{- end }}

templates/secret.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: {{ .Values.secret.name | default "grafana-pdc-agent" }}
5+
type: Opaque
6+
data:
7+
"token": {{ .Values.secret.values.token | required "secret-value missing: token" }}
8+
"hosted-grafana-id": {{ .Values.secret.values.hostedgrafanaid | required "secret-value missing: hostedgrafanaid" }}
9+
"cluster": {{ .Values.secret.values.cluster | required "secret-value missing: cluster" }}

values.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# The minimal values-file looks like this - everything else can be omitted:
2+
#
3+
# secret:
4+
# values:
5+
# token: "<YOUR-GRAFANA-TOKEN>"
6+
# hostedgrafanaid: "<YOUR-HOSTED-GRAFANA-ID>"
7+
# cluster: "<YOUR-GRAFANA-CLUSTER>"
8+
9+
agent:
10+
replicaCount: 1
11+
image:
12+
pullPolicy: Always
13+
tag: ""
14+
resources:
15+
limits:
16+
memory: 1Gi
17+
requests:
18+
cpu: 1
19+
memory: 1Gi
20+
nodeSelector: {}
21+
tolerations: []
22+
affinity: {}
23+
deployment:
24+
extraLabels: {}
25+
pod:
26+
extraLabels: {}
27+
secret:
28+
name: ""
29+
values:
30+
token: "CHANGEME"
31+
hostedgrafanaid: "CHANGEME"
32+
cluster: "CHANGEME"

0 commit comments

Comments
 (0)