Files
helm-charts-hardened/charts/spire
Faisal Memon 06d8cd2ae5 Bump spire Helm Chart version from 0.14.0 to 0.15.0
* 6c0a4fb Auto tornjak url (#89)
* f2758a8 Autogen jwtIssuer (#88)
* 93c20c6 Merge pull request #83 from spiffe/doc-ingress-patch
* c662b0c Merge branch 'main' into doc-ingress-patch
* de8cbc8 Bump github.com/onsi/gomega from 1.29.0 to 1.30.0 in /tests (#90)
* 1de838e Bump helm.sh/helm/v3 from 3.13.1 to 3.13.2 in /tests (#91)
* daf9d55 Merge branch 'main' into doc-ingress-patch
* aaeca00 Fix tests after renaming files
* 0320c3f Cleanup documentation
* 37cd9f2 Update to SPIRE 1.8.4 (#84)
* bd7879a Fix the typo in the production ingress README
* 805d869 spire-controller-manager 0.4.0 support (#60)
* edf2381 Bump sigstore/cosign-installer from 3.1.2 to 3.2.0 (#85)
* 0ed6d92 Bump test chart dependencies
* f7b6140 Fix docs
* a7e8785 Add another missing one
* 3778597 Add missing ClusterSPIFFEID fields
* 9b31f3d Bump helm/chart-testing-action from 2.6.0 to 2.6.1
* d6583be Add missing no cleanup flags to example tests (#79)
* 81cc2dc Ingress type openshift (#52)
* 2dce90f Bump helm/chart-releaser-action from 1.5.0 to 1.6.0 (#75)
* f08ebd3 Patch Tornjak ingress (#74)
* 6a6aa1c Cosign download fix (#72)
* 3b01684 Support Openshift deployment  (#13)
* ed23d8b Simple ingress support (#48)
* b354413 Fix incorrect nesting of priorityClassName (#67)
* 09ebfc9 Bump test chart dependencies (#68)
* d50d78d Fix ingress annotation variable for tornjak server (#66)
* b813807 Update docs to simplify, clarify, and prioritize ease of install/upgrade (#62)
* 5ad35bd Merge pull request #59 from sabre1041/spire-agent-nodename
* 02d445c Update charts/spire/README.md
* 9bd7f43 Added environment variable to spire-agent to inject node name
* fb64f8d Bump github.com/onsi/gomega from 1.28.1 to 1.29.0 in /tests (#61)
* 30d0f59 Update helm-charts repository URL (#58)
* 7924323 Specify ingress controller type (#43)
* 0b17434 Bump test chart dependencies (#54)
* a419903 Bump github.com/onsi/gomega from 1.28.0 to 1.28.1 in /tests (#53)
* 5025025 Fix doc missing end tag (#46)
* cf226a7 Bump actions/checkout from 4.1.0 to 4.1.1 (#42)

Signed-off-by: Faisal Memon <[email protected]>
2023-11-09 13:18:02 -08:00
..
2023-11-09 13:07:52 -08:00
2023-11-09 20:31:48 +00:00
2023-02-18 13:04:15 +01:00
2023-11-09 20:31:48 +00:00

spire

Version: 0.15.0 Type: application AppVersion: 1.7.2 Development Phase

A Helm chart for deploying the complete Spire stack including: spire-server, spire-agent, spiffe-csi-driver, spiffe-oidc-discovery-provider and spire-controller-manager.

Homepage: https://github.com/spiffe/helm-charts/tree/main/charts/spire

Install notes

To do a quick non production install suitable for quick testing in something like minikube:

helm install -n spire-server spire-crds --repo https://spiffe.github.io/helm-charts-hardened/ --create-namespace
helm install -n spire-server spire --repo https://spiffe.github.io/helm-charts-hardened/

To customize, start with a base values file and edit as needed:

curl -o your-values.yaml https://raw.githubusercontent.com/spiffe/helm-charts-hardened/main/examples/production/example-your-values.yaml

Then:

helm install -n spire-server spire --repo https://spiffe.github.io/helm-charts-hardened/ -f your-values.yaml

For production installs, please see the production example.

Upgrade notes

0.15.X

The spire-crds chart has been updated. Please ensure you have upgraded spire-crds before upgrading the spire chart.

The chart now supports multiple parallel installs of spire-controller-manager. Each install will handle all custom resources with a matching className field. By default this is set to Release.Namespace-Release.Name and the controller manager will only pick up custom resources with this className.

If you have not loaded any SPIRE custom resources yourself, the upgrade process will be transparent. If you have loaded your own SPIRE custom resources, set spire-server.controllerManager.watchClassless=true until you can update your SPIRE custom resources to have the className for the instance specified.

0.14.X

If coming from a chart version before 0.15.0, you must relabel your crds to switch to using the new spire-crds chart. To migrate to the spire-crds chart run the following:

Replace the spire-server namespace in the commands below with the namespace you want to install the spire-crds chart in.

kubectl label crd "clusterfederatedtrustdomains.spire.spiffe.io" "app.kubernetes.io/managed-by=Helm"
kubectl annotate crd "clusterfederatedtrustdomains.spire.spiffe.io" "meta.helm.sh/release-name=spire-crds"
kubectl annotate crd "clusterfederatedtrustdomains.spire.spiffe.io" "meta.helm.sh/release-namespace=spire-server"
kubectl label crd "clusterspiffeids.spire.spiffe.io" "app.kubernetes.io/managed-by=Helm"
kubectl annotate crd "clusterspiffeids.spire.spiffe.io" "meta.helm.sh/release-name=spire-crds"
kubectl annotate crd "clusterspiffeids.spire.spiffe.io" "meta.helm.sh/release-namespace=spire-server"
kubectl label crd "controllermanagerconfigs.spire.spiffe.io" "app.kubernetes.io/managed-by=Helm"
kubectl annotate crd "controllermanagerconfigs.spire.spiffe.io" "meta.helm.sh/release-name=spire-crds"
kubectl annotate crd "controllermanagerconfigs.spire.spiffe.io" "meta.helm.sh/release-namespace=spire-server"
helm install -n spire-server spire-crds charts/spire-crds

Version support

Warning

This Chart is still in development and still subject to change the API (values.yaml). Until we reach a 1.0.0 version of the chart we can't guarantee backwards compatibility although we do aim for as much stability as possible.

Dependency Supported Versions
Helm 3.x
Kubernetes 1.22+

Note

For Kubernetes, we will officially support the last 3 versions as described in k8s versioning. Any version before the last 3 we will try to support as long it doesn't bring security issues or any big maintenance burden.

FAQ

For any issues see our FAQ…

Usage

To utilize Spire in your own workloads you should add the following to your workload:

 apiVersion: v1
 kind: Pod
 metadata:
   name: my-app
 spec:
   containers:
     - name: my-app
       image: "my-app:latest"
       imagePullPolicy: Always
+      volumeMounts:
+        - name: spiffe-workload-api
+          mountPath: /spiffe-workload-api
+          readOnly: true
       resources:
         requests:
           cpu: 200m
           memory: 32Mi
         limits:
           cpu: 500m
           memory: 64Mi
+  volumes:
+    - name: spiffe-workload-api
+      csi:
+        driver: "csi.spiffe.io"
+        readOnly: true

Now you can interact with the Spire agent socket from your own application. The socket is mounted on /spiffe-workload-api/spire-agent.sock.

Maintainers

Name Email Url
marcofranssen [email protected] https://marcofranssen.nl
kfox1111 [email protected]
faisal-memon [email protected]
edwbuck [email protected]

Source Code

Requirements

Repository Name Version
file://./charts/spiffe-csi-driver spiffe-csi-driver 0.1.0
file://./charts/spiffe-csi-driver upstream-spiffe-csi-driver(spiffe-csi-driver) 0.1.0
file://./charts/spiffe-oidc-discovery-provider spiffe-oidc-discovery-provider 0.1.0
file://./charts/spire-agent spire-agent 0.1.0
file://./charts/spire-agent upstream-spire-agent(spire-agent) 0.1.0
file://./charts/spire-server spire-server 0.1.0
file://./charts/tornjak-frontend tornjak-frontend 0.1.0

Parameters

Global parameters

Name Description Value
global.k8s.clusterDomain Cluster domain name configured for Spire install cluster.local
global.spire.bundleConfigMap A configmap containing the Spire bundle ""
global.spire.clusterName The name of the k8s cluster for Spire install example-cluster
global.spire.jwtIssuer The issuer for Spire JWT tokens. Defaults to oidc-discovery.$trustDomain if unset ""
global.spire.trustDomain The trust domain for Spire install example.org
global.spire.upstreamServerAddress Set what address to use for the upstream server when using nested spire ""
global.spire.image.registry Override all Spire image registries at once ""
global.spire.strictMode Check values, such as trustDomain, are overridden with a suitable value for production. false
global.spire.ingressControllerType Specify what type of ingress controller you're using to add the necessary annotations accordingly. If blank, autodetection is attempted. If other, no annotations will be added. Must be one of [ingress-nginx, openshift, other, ""]. ""
global.installAndUpgradeHooks.enabled Enable Helm hooks to autofix common install/upgrade issues (should be disabled when using helm template) true
global.deleteHooks.enabled Enable Helm hooks to autofix common delete issues (should be disabled when using helm template) true

Spire server parameters

Name Description Value
spire-server.enabled Flag to enable Spire server true
spire-server.nameOverride Overrides the name of Spire server pods server
spire-server.controllerManager.enabled Enable controller manager and provision CRD's true

Spire agent parameters

Name Description Value
spire-agent.enabled Flag to enable Spire agent true
spire-agent.nameOverride Overrides the name of Spire agent pods agent

Upstream Spire agent and CSI driver configuration

Name Description Value
upstream.enabled Enable upstream agent and driver for use with nested spire false

Upstream Spire agent parameters

Name Description Value
upstream-spire-agent.upstream Flag for enabling upstream Spire agent true
upstream-spire-agent.nameOverride Name override for upstream Spire agent agent-upstream
upstream-spire-agent.bundleConfigMap The configmap name for upstream Spire agent bundle spire-bundle-upstream
upstream-spire-agent.socketPath Socket path where Spire agent socket is mounted /run/spire/agent-sockets-upstream/spire-agent.sock
upstream-spire-agent.serviceAccount.name Service account name for upstream Spire agent spire-agent-upstream
upstream-spire-agent.healthChecks.port Health check port number for upstream Spire agent 9981
upstream-spire-agent.telemetry.prometheus.port The port where prometheus metrics are available 9989

SPIFFE CSI Driver parameters

Name Description Value
spiffe-csi-driver.enabled Flag to enable spiffe-csi-driver for the cluster true

Upstream SPIFFE CSI Driver parameters

Name Description Value
upstream-spiffe-csi-driver.pluginName The plugin name for configuring upstream Spiffe CSI driver upstream.csi.spiffe.io
upstream-spiffe-csi-driver.agentSocketPath The socket path where Spiffe CSI driver mounts agent socket /run/spire/agent-sockets-upstream/spire-agent.sock
upstream-spiffe-csi-driver.healthChecks.port The port where Spiffe CSI driver health checks are exposed 9810

SPIFFE oidc discovery provider parameters

Name Description Value
spiffe-oidc-discovery-provider.enabled Flag to enable spiffe-oidc-discovery-provider for the cluster false

Tornjak frontend parameters

Name Description Value
tornjak-frontend.enabled Enables deployment of Tornjak frontend/UI (Not for production) false