Files
helm-charts-hardened/charts/spire/README.md
T
Marco Franssen 2a2615b2c6 Bump spire Helm Chart version from 0.5.1 to 0.6.0
* 563e1f7 Add podmonitors (#165)
* 456075f Add hooks to set failurepolicy to ignore on webhook (#128)
* d5dc706 Add Kubernetes 1.21 back (#188)
* daa620b Fix production example test (#183)
* c661d0b Make service dns domain configurable (#164)
* ec236e9 Test for configurable images (#182)
* 280315c Fix namespace-override github test summary (#154)
* 072d952 Switch tests to curl (#178)
* 1b4bfb7 Cleanup old leftover to k8s-workload-registrar
* a770928 Switch busybox image to cgr.dev/chainguard/busybox:latest-glibc (#175)
* 8790416 Enable global config for clusterName, trustDomain, and bundleConfigMap (#156)
* b54c41a Enhance the production example
* dfb32dc Revert adding tornjak to be releasable (#180)
* 059d5fb Bump spire Helm Chart version from 0.5.0 to 0.5.1
* e2ec6ac Add a test to ensure the chart versions match (#163)
* 64585ba Fix formatting issues introduced with #152
* 0dac0db Improve Spire Chart documentation
* f709ed9 Bump actions/checkout from 3.4.0 to 3.5.0
* faef439 Bump helm/chart-testing-action from 2.3.1 to 2.4.0
* ae62dd1 Bump spire version to 1.6.1
* 02fda80 Add Artifact Hub badge to README.md
* 901e670 Disable default Tornjak deployment (#153)
* 05d0f47 Introduction of Tornjak to SPIRE Server helm charts (#144)
* b25dc77 Test fixing the tests (#148)
* b4be9ed Add maturity tag (#138)
* d4fd2ce Extract the namespace override test out of the old lockdown test. (#145)
* 4f85802 Update lockdown test to test the production example
* 04a1305 Fork the lockdown test to two tests as it is doing the work of 2 (#134)
* 64d0107 Resolve issue in prod example on volume mount (#143)
* 5b6708b Remove @dennisgove from CODEOWNERS (#140)
* a516caa Remove k8s 1.21 from test matrix + small syntax error fix (#133)
* 811a2f6 Add option to enable federation on spire-server (#97)

Signed-off-by: Marco Franssen <[email protected]>
2023-04-04 14:25:31 +02:00

4.6 KiB

spire

Version: 0.6.0 Type: application AppVersion: 1.6.1 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

Version support

Note

: 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
SPIRE 1.5.3+, 1.6.x
Helm 3.x
Kubernetes 1.21+

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. The first version we tested this chart with is 1.21.

Prerequisites

Please note this chart requires Projected Service Account Tokens which has to be enabled on your k8s api server.

To enable Projected Service Account Tokens on Docker for Mac/Windows run the following command to SSH into the Docker Desktop K8s VM.

docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -n -i sh

Then add the following to /etc/kubernetes/manifests/kube-apiserver.yaml

spec:
  containers:
    - command:
        - kube-apiserver
        - --api-audiences=api,spire-server
        - --service-account-issuer=api,spire-agent
        - --service-account-key-file=/run/config/pki/sa.pub
        - --service-account-signing-key-file=/run/config/pki/sa.key

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]

Source Code

Requirements

Kubernetes: >=1.21.0-0

Repository Name Version
file://./charts/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-server spire-server 0.1.0

Values

Key Type Default Description
fullnameOverride string ""
global.k8s.clusterDomain string "cluster.local"
global.spire.bundleConfigMap string "" Override all instances of bundleConfigMap
global.spire.clusterName string "example-cluster" Set the name of the Kubernetes cluster
global.spire.trustDomain string "example.org" Set the trust domain to use for the spiffe identifiers
nameOverride string ""
spiffe-csi-driver.enabled bool true
spiffe-oidc-discovery-provider.enabled bool false
spire-agent.enabled bool true
spire-agent.nameOverride string "agent"
spire-server.controllerManager.enabled bool true
spire-server.enabled bool true
spire-server.nameOverride string "server"