Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/plane-ce/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Meet Plane. An open-source software development tool to manage issu

type: application

version: 1.7.0
version: 1.8.0
appVersion: "1.4.1"

home: https://plane.so
Expand Down
38 changes: 38 additions & 0 deletions charts/plane-ce/templates/extra-objects.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{{/*
Arbitrary extra objects, supplied by the operator through values.

The reason this exists: everything a Plane environment needs to STOP holding credentials --
an ESO SecretStore, the ExternalSecrets that produce the Secrets this chart reads by name --
is not part of this chart and never should be, but it also has nowhere else to live when the
release is delivered by a GitOps tool that treats one directory as one unit. Without this,
those objects need a second bundle purely to exist, and a second bundle is a second thing to
order correctly.

Rendered with toYaml and NOT tpl, deliberately. The objects people put here are usually
ExternalSecrets whose `target.template` contains ESO's own {{ }} placeholders; tpl would try
to evaluate those as Helm expressions and fail, or worse, silently resolve them to empty.
Values are not templated by Helm, so writing them here passes them through untouched.

Ordering: give an object the standard Helm hook annotations to have it applied before the
workloads, which is what an ExternalSecret wants -- the chart's Secret references are
optional: false, so a pod that starts before its Secret exists sits in
CreateContainerConfigError until it appears.

extraObjects:
- apiVersion: external-secrets.io/v1
kind: SecretStore
metadata:
name: aws-secrets-manager
annotations:
helm.sh/hook: pre-install,pre-upgrade
helm.sh/hook-weight: "-10"
helm.sh/hook-delete-policy: before-hook-creation
spec: { ... }

Namespace is left to the object: most callers want the release namespace, which is the
default when it is omitted, and a few legitimately want another.
*/}}
{{- range .Values.extraObjects }}
---
{{ toYaml . }}
{{- end }}
13 changes: 13 additions & 0 deletions charts/plane-ce/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -347,3 +347,16 @@ env:
default_cluster_domain: cluster.local

api_key_rate_limit: "60/minute"

# Arbitrary extra Kubernetes objects rendered as part of this release. Intended for the
# things that let an environment hold no credentials -- an ESO SecretStore and the
# ExternalSecrets producing the Secrets referenced by external_secrets.* above -- which
# belong to the operator rather than to this chart, but have nowhere to live when a GitOps
# tool treats one directory as one unit.
#
# Passed through verbatim (toYaml, not tpl) so that ESO's own {{ }} placeholders inside a
# target.template survive. Add the standard Helm hook annotations to have an object applied
# BEFORE the workloads; the Secret references in this chart are optional: false, so a pod
# that starts before its Secret exists waits in CreateContainerConfigError until it appears.
extraObjects: []