*a01cdc9Production test don't cleanup flag (#44) *56445c4Spire controller manager upgrade (#8) *6635512Fix Tornjak HTTPS ingress port (#39) *78ba615Update to SPIRE 1.8.2 (#40) *2644e4bBump test chart dependencies (#38) *5cb3c6dBump helm.sh/helm/v3 from 3.13.0 to 3.13.1 in /tests (#37) *42bb8cfBump spire Helm Chart version from 0.13.1 to 0.13.2 *dd87bc0Bump spire versions to 1.7.4 (#35) *fdba5d0Bump spire Helm Chart version from 0.13.0 to 0.13.1 *0e41a7dFix failing Tornjak ingress port (#28) *df1abf6Bump to spire 1.7.3 (#31) *69a20e3Merge pull request #29 from spiffe/tornjak-version *3036a41Switch to version v1.4.0 *da49059Update Tornjak image version *0fa43a5Add plugin support to the spire agent (#22) *c5c5320Bump github.com/onsi/ginkgo/v2 from 2.12.1 to 2.13.0 in /tests (#27) *afba33fAdd spire agent experimental flags (#26) *1107278Bump test chart dependencies *03ff618Add Tornjak ingress (#16) *8f1bfc1Merge pull request #23 from spiffe/examples-doc *cd386ebMerge branch 'main' into examples-doc *12937dbUpdate Example README *06d6690Bump test chart dependencies (#20) *8aca48fPush the changes that update-tags creates (#19) *a6cb397Exit code from diff indicating changes should not block commit. (#17) *ebfa518Update FAQ from repo switch (#15) *c23e6cbFix issue with version checker not running *51c20b1Bump actions/checkout from 4.0.0 to 4.1.0 (#9) *21db1e4Add a test to ensure upgrades work (#6) *f86648fBump github.com/onsi/gomega from 1.27.10 to 1.28.0 in /tests *babd677Bump helm.sh/helm/v3 from 3.12.3 to 3.13.0 in /tests *45187feAdd back CODE-OF-CONDUCT *50825d9Deny production runs of example.org trust domains (#229) *712a0f6Bump actions/checkout from 4.0.0 to 4.1.0 *f04bdc3Add support for experimental flags (#492) *7cdae92Bump github.com/onsi/ginkgo/v2 from 2.12.0 to 2.12.1 in /tests (#490) *d3091a8Fix spire-server configmap UpstreamAuthority/aws_pca and KeyManager/a… (#489) *7a96175Remove developer-guy as a CODEOWNER Signed-off-by: Faisal Memon <[email protected]>
spire
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 a1.0.0version 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.3+ |
| 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 | 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 |
Install notes
To do a quick non production install:
kubectl create namespace spire-system
helm install -n spire-system spire-crds charts/spire-crds
helm install -n spire-system spire charts/spire
For production installs, please see [the production example](examples/production/).
## Upgrade notes
0.14.X:
If coming from a chart version before 0.14.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:
```shell
# 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
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 | oidc-discovery.example.org |
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.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 |