gomods / athens-charts

Helm charts for athens
https://gomods.github.io/athens-charts/
MIT License
10 stars 17 forks source link

Add new standard labels and allow custom labels #45

Closed alex-bezek closed 1 year ago

alex-bezek commented 1 year ago

Resolves #44

Why

This chart appears to have the standard labels used with helm 2. This adds in the new helm 3 standard labels and also allows the user to pass in additional labels that will get applied to all resources.

How

Validation

Run helm template charts/athens-proxy --set extraLabels.athensIs=awesome --set jaeger.enabled=true against main and this branch and diff them

Diff ``` 7a8 > 9c10 < chart: "athens-proxy-0.7.0" --- > chart: athens-proxy-0.7.0 11a13,18 > app.kubernetes.io/name: release-name-athens-proxy > helm.sh/chart: athens-proxy-0.7.0 > app.kubernetes.io/managed-by: "Helm" > app.kubernetes.io/instance: "release-name" > app.kubernetes.io/version: "v0.12.0" > athensIs: awesome 17a25,36 > labels: > > app: release-name-athens-proxy > chart: athens-proxy-0.7.0 > release: "release-name" > heritage: "Helm" > app.kubernetes.io/name: release-name-athens-proxy > helm.sh/chart: athens-proxy-0.7.0 > app.kubernetes.io/managed-by: "Helm" > app.kubernetes.io/instance: "release-name" > app.kubernetes.io/version: "v0.12.0" > athensIs: awesome 26a46 > 28c48 < chart: "athens-proxy-0.7.0" --- > chart: athens-proxy-0.7.0 30a51,56 > app.kubernetes.io/name: release-name-athens-proxy-jaeger > helm.sh/chart: athens-proxy-0.7.0 > app.kubernetes.io/managed-by: "Helm" > app.kubernetes.io/instance: "release-name" > app.kubernetes.io/version: "v0.12.0" > athensIs: awesome 67a94 > 69c96 < chart: "athens-proxy-0.7.0" --- > chart: athens-proxy-0.7.0 71a99,104 > app.kubernetes.io/name: release-name-athens-proxy > helm.sh/chart: athens-proxy-0.7.0 > app.kubernetes.io/managed-by: "Helm" > app.kubernetes.io/instance: "release-name" > app.kubernetes.io/version: "v0.12.0" > athensIs: awesome 88a122 > 90c124 < chart: "athens-proxy-0.7.0" --- > chart: athens-proxy-0.7.0 92a127,132 > app.kubernetes.io/name: release-name-athens-proxy > helm.sh/chart: athens-proxy-0.7.0 > app.kubernetes.io/managed-by: "Helm" > app.kubernetes.io/instance: "release-name" > app.kubernetes.io/version: "v0.12.0" > athensIs: awesome 101a142 > 103c144 < chart: "athens-proxy-0.7.0" --- > chart: athens-proxy-0.7.0 104a146,152 > heritage: "Helm" > app.kubernetes.io/name: release-name-athens-proxy > helm.sh/chart: athens-proxy-0.7.0 > app.kubernetes.io/managed-by: "Helm" > app.kubernetes.io/instance: "release-name" > app.kubernetes.io/version: "v0.12.0" > athensIs: awesome 152a201 > 154c203 < chart: "athens-proxy-0.7.0" --- > chart: athens-proxy-0.7.0 156a206,211 > app.kubernetes.io/name: release-name-athens-proxy-jaeger > helm.sh/chart: athens-proxy-0.7.0 > app.kubernetes.io/managed-by: "Helm" > app.kubernetes.io/instance: "release-name" > app.kubernetes.io/version: "v0.12.0" > athensIs: awesome ```
Example Output from template ``` --- # Source: athens-proxy/templates/service-account.yaml apiVersion: v1 kind: ServiceAccount metadata: name: release-name-athens-proxy labels: app: release-name-athens-proxy chart: athens-proxy-0.7.0 release: "release-name" heritage: "Helm" app.kubernetes.io/name: release-name-athens-proxy helm.sh/chart: athens-proxy-0.7.0 app.kubernetes.io/managed-by: "Helm" app.kubernetes.io/instance: "release-name" app.kubernetes.io/version: "v0.12.0" athensIs: awesome --- # Source: athens-proxy/templates/secret.yaml kind: Secret apiVersion: v1 metadata: name: release-name-athens-proxy-secret labels: app: release-name-athens-proxy chart: athens-proxy-0.7.0 release: "release-name" heritage: "Helm" app.kubernetes.io/name: release-name-athens-proxy helm.sh/chart: athens-proxy-0.7.0 app.kubernetes.io/managed-by: "Helm" app.kubernetes.io/instance: "release-name" app.kubernetes.io/version: "v0.12.0" athensIs: awesome type: Opaque data: --- # Source: athens-proxy/templates/jaeger-svc.yaml apiVersion: v1 kind: Service metadata: name: release-name-athens-proxy-jaeger labels: app: release-name-athens-proxy-jaeger chart: athens-proxy-0.7.0 release: "release-name" heritage: "Helm" app.kubernetes.io/name: release-name-athens-proxy-jaeger helm.sh/chart: athens-proxy-0.7.0 app.kubernetes.io/managed-by: "Helm" app.kubernetes.io/instance: "release-name" app.kubernetes.io/version: "v0.12.0" athensIs: awesome spec: type: ClusterIP ports: - name: jaeger-collector-http port: 14268 protocol: TCP targetPort: 14268 - name: jaeger-zipkin-thrift port: 5775 protocol: UDP targetPort: 5775 - name: jaeger-compact port: 6831 protocol: UDP targetPort: 6831 - name: jaeger-binary port: 6832 protocol: UDP targetPort: 6832 - name: jaeger-configs port: 5778 protocol: TCP targetPort: 5778 - name: jaeger-query-http port: 16686 protocol: TCP targetPort: 16686 selector: app: release-name-athens-proxy-jaeger release: "release-name" --- # Source: athens-proxy/templates/service.yaml apiVersion: v1 kind: Service metadata: name: release-name-athens-proxy labels: app: release-name-athens-proxy chart: athens-proxy-0.7.0 release: "release-name" heritage: "Helm" app.kubernetes.io/name: release-name-athens-proxy helm.sh/chart: athens-proxy-0.7.0 app.kubernetes.io/managed-by: "Helm" app.kubernetes.io/instance: "release-name" app.kubernetes.io/version: "v0.12.0" athensIs: awesome spec: type: ClusterIP ports: - name: http port: 80 targetPort: 3000 protocol: TCP selector: app: release-name-athens-proxy release: "release-name" --- # Source: athens-proxy/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: release-name-athens-proxy labels: app: release-name-athens-proxy chart: athens-proxy-0.7.0 release: "release-name" heritage: "Helm" app.kubernetes.io/name: release-name-athens-proxy helm.sh/chart: athens-proxy-0.7.0 app.kubernetes.io/managed-by: "Helm" app.kubernetes.io/instance: "release-name" app.kubernetes.io/version: "v0.12.0" athensIs: awesome spec: replicas: 1 selector: matchLabels: app: release-name-athens-proxy release: "release-name" template: metadata: labels: app: release-name-athens-proxy chart: athens-proxy-0.7.0 release: "release-name" heritage: "Helm" app.kubernetes.io/name: release-name-athens-proxy helm.sh/chart: athens-proxy-0.7.0 app.kubernetes.io/managed-by: "Helm" app.kubernetes.io/instance: "release-name" app.kubernetes.io/version: "v0.12.0" athensIs: awesome annotations: checksum/upstream: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 checksum/ssh-config: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 checksum/ssh-secret: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 spec: serviceAccount: release-name-athens-proxy containers: - name: release-name-athens-proxy image: "docker.io/gomods/athens:v0.12.0" imagePullPolicy: "IfNotPresent" livenessProbe: failureThreshold: 3 httpGet: path: "/healthz" port: 3000 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 readinessProbe: httpGet: path: "/readyz" port: 3000 env: - name: ATHENS_GOGET_WORKERS value: "3" - name: ATHENS_STORAGE_TYPE value: "disk" - name: ATHENS_DISK_STORAGE_ROOT value: "/var/lib/athens" - name: ATHENS_TRACE_EXPORTER_URL value: "SET THIS ON THE COMMAND LINE" - name: ATHENS_TRACE_EXPORTER value: "jaeger" ports: - containerPort: 3000 volumeMounts: - name: storage-volume mountPath: "/var/lib/athens" volumes: - name: storage-volume emptyDir: {} --- # Source: athens-proxy/templates/jaeger-deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: name: release-name-athens-proxy-jaeger labels: app: release-name-athens-proxy-jaeger chart: athens-proxy-0.7.0 release: "release-name" heritage: "Helm" app.kubernetes.io/name: release-name-athens-proxy-jaeger helm.sh/chart: athens-proxy-0.7.0 app.kubernetes.io/managed-by: "Helm" app.kubernetes.io/instance: "release-name" app.kubernetes.io/version: "v0.12.0" athensIs: awesome spec: replicas: 1 selector: matchLabels: app: release-name-athens-proxy-jaeger release: "release-name" template: metadata: labels: app: release-name-athens-proxy-jaeger chart: "athens-proxy-0.7.0" release: "release-name" spec: containers: - env: - name: COLLECTOR_ZIPKIN_HTTP_PORT value: "9441" image: "jaegertracing/all-in-one:latest" name: release-name-athens-proxy-jaeger ports: - containerPort: 14268 protocol: TCP - containerPort: 5775 protocol: UDP - containerPort: 6831 protocol: UDP - containerPort: 6832 protocol: UDP - containerPort: 5778 protocol: TCP - containerPort: 16686 protocol: TCP - containerPort: 9411 protocol: TCP --- # Source: athens-proxy/templates/test/test-connection.yaml apiVersion: v1 kind: Pod metadata: name: "release-name-athens-proxy-test-connection" labels: app: release-name-athens-proxy annotations: "helm.sh/hook": test spec: containers: - name: wget image: busybox command: ['wget'] args: ['release-name-athens-proxy:80'] restartPolicy: Never ```
DrPsychick commented 1 year ago

Thank you for your contribution and effort put in @alex-bezek, unfortunately I overlooked that this PR did not bump the chart version to trigger a release, so I just merged #46 to take care of that.

alex-bezek commented 1 year ago

thanks @DrPsychick and @michalpristas !