Skip to content

Releases: cert-manager/istio-csr

v0.11.0

02 Aug 14:52
v0.11.0
55d468c

Choose a tag to compare

istio-csr integrates cert-manager into Istio, allowing you to issue workload certificates using the power of cert-manager.

v0.11.0 further enhances support for runtime configuration, enabling "pure" runtime configuration where istio-csr can be installed at the same time as cert-manager. It also enables client cert auth via a great contribution from @wtzhang23, which provides an alternative method for workloads to renew their certificates.

JSON logging is also added for the first time, with some caveats!

Feature Overview

Pure Runtime Configuration

istio-csr v0.10.0 added initial support for runtime configuration, allowing the issuer to be changed easily after istio-csr starts. That release still, in practice, needed an issuer to be configured before istio-csr was installed, in order to provision the istiod cert and for initial configuration of istio serving certs.

v0.11.0 adds "pure" runtime configuration, allowing istio-csr and cert-manager to be installed entirely concurrently. To achieve this, istio-csr gains the ability to dynamically provision an istiod cert, and now waits for issuer configuration before any attempts to issue serving certs.

An example of runtime-configured istio-csr would use the following values.yaml:

app:
  runtimeIssuanceConfigMap: runtime-config-map
  certmanager:
    issuer:
      # explicitly blank these values out, since they're defaulted
      name: ""
      kind: ""
      group: ""
  tls:
    istiodCertificateEnable: "dynamic" # new in v0.11.0!

Note that istio-csr pods won't report as "ready" until an issuer is configured, so a Helm install won't complete until you've created a ConfigMap specifying an issuer!

$ kubectl create configmap runtime-config-map -n cert-manager \
        --from-literal=issuer-name=istio-ca \
        --from-literal=issuer-kind=Issuer \
        --from-literal=issuer-group=cert-manager.io

Client Cert Auth

Previously, workloads attempting to renew their serving certs with istio-csr were required to present their Kubernetes JWT for validatio. Istio (when used without istio-csr) allows for several auth methods, including client cert auth where the already-provisioned mTLS certificate can be used as auth.

Now, istio-csr has gained support for client cert auth, using the trusted CA bundle already supported in istio-csr. The functionality is behind a flag, and can be enabled with a Helm value: --set app.server.authenticators.enableClientCert=true.

JSON Logging

Thanks to the new logFormat Helm value, JSON logging can be enabled for istio-csr: --set app.logFormat=json.

JSON logs are now used by default in several istio-csr tests, and are very useful for parseable structured logs. The caveats are twofold:

  • First, there's no guarantee that all output will be in JSON format. In testing, logging seemed to consistently in JSON but it's possible that there could be some text output
  • Second, log formats are not currently consistent - different log lines may have different keys.

We'd appreciate contributions if anyone is willing to work on these caveats!

What's Changed

Runtime Configuration

JSON Logs

Other

New Contributors

Full Changelog: v0.10.0...v0.11.0

v0.11.0-alpha.0

01 Aug 14:58
v0.11.0-alpha.0
37512b4

Choose a tag to compare

v0.11.0-alpha.0 Pre-release
Pre-release

istio-csr integrates cert-manager into Istio, allowing you to issue workload certificates using the power of cert-manager.

v0.11.0-alpha.0 is a prerelease for testing of "pure" runtime configuration, topologySpreadConstraints support, JSON logs and client cert auth.

Full release notes will be provided when v0.11.0 is released!

What's Changed

Runtime Configuration

JSON Logs

Other

New Contributors

Full Changelog: v0.10.0...v0.11.0-alpha.0

v0.10.0

18 Jul 13:32
v0.10.0
b5bf28b

Choose a tag to compare

istio-csr integrates cert-manager into Istio, allowing you to issue workload certificates using the power of cert-manager.

v0.10.0 provides some cool new features - initial support for easier runtime configuration, support for the s390x architecture and dependency updates!

Initial Runtime Configuration Support

istio-csr requires cert-manager to be installed to be able to issue certificates; using cert-manager to issue istio certificates is the whole reason to use istio-csr!

More subtly, istio-csr actually requires a cert-manager issuer to be created before istio-csr is installed. This issuer is used to issue the istiod certificate, the istio serving certificate and workload certificates.

This dependency means that it's not possible to install istio-csr and cert-manager at the same time, which can be a problem for some users and some installation methods. Runtime configuration aims to solve that problem, by allowing the issuer to be defined at runtime through a ConfigMap resource in the same namespace as the istio-csr pods.

Plus, since the issuer is defined at pod startup time (via the Helm chart) it's not possible to swap out an issuer on the fly while istio-csr pods are running. Runtime configuration changes this:

$ kubectl create configmap -n cert-manager istio-issuer \
  --from-literal=issuer-name=my-issuer-name \
  --from-literal=issuer-kind=ClusterIssuer \
  --from-literal=issuer-group=cert-manager.io

$ cat values.yaml
app:
  runtimeIssuanceConfigMap: istio-issuer
  certmanager:
    issuer:
      name: ""
      kind: ""
      group: ""
  tls:
    rootCAFile: "/var/run/secrets/istio-csr/ca.pem"
    istiodCertificateEnable: false
volumeMounts:
- name: root-ca
  mountPath: /var/run/secrets/istio-csr
volumes:
- name: root-ca
  secret:
    secretName: istio-root-ca

$ helm upgrade cert-manager-istio-csr jetstack/cert-manager-istio-csr \
  --install \
  --namespace cert-manager \
  --wait \
  --values values.yaml

This initial support does require that the istiod certificate is disabled, which means there's a need to provision that certificate ahead of installing istio-csr.

Alternatively,istiodCertificateEnable can be left as true and app.certmanager.issuer can be provided. This will still require cert-manager to be installed and configured before istio-csr, but this will enable being able to change certificates on the fly.

A future release of istio-csr should help with provisioning the istiod certificate dynamically, allowing for true runtime configuration.

s390x Support

Thanks to @rishikakedia istio-csr now supports the s390x architecture! While the cert-manager's project to test on s390x is limited, we hope this support is useful and we'd be happy to action any bugs you find!

What's Changed

Features

Testing / Documentation

New Contributors

Full Changelog: v0.9.0...v0.10.0

v0.9.0

13 May 13:04
2a87707

Choose a tag to compare

istio-csr integrates cert-manager into Istio, allowing you to issue workload certificates using the power of cert-manager.

This release upgrades the Go version used to build to 1.22.3 and bumps all Go dependency versions.

Additionally, this PR contains small bug fixes ands tests for istio 1.20. Lastly, this PR adds json-schema validation to the Helm chart.

What's Changed

Version bumps

Full Changelog: v0.8.1...v0.9.0

v0.8.1

06 Feb 15:24
ec39a5d

Choose a tag to compare

istio-csr integrates cert-manager into Istio, allowing you to issue workload certificates using the power of cert-manager.

What's Changed

  • add ability to provide additional DNS names to istiod certificate by @apsega in #262
  • Update Chart.yaml properties by @inteon in #263
  • [CI] Merge self-upgrade into main by @github-actions in #264
  • Bump the all group with 1 update by @dependabot in #265
  • Bump the all group with 1 update by @dependabot in #261

New Contributors

Full Changelog: v0.8.0...v0.8.1

v0.8.0

29 Jan 15:05
7a424c2

Choose a tag to compare

istio-csr integrates cert-manager into Istio, allowing you to issue workload certificates using the power of cert-manager.

Breaking Changes

This release of istio-csr changes how containers are built, which in turn changes the path at which the binary can be found inside the container.

This means that new container images cannot be used with older Helm charts, or with any software which expects the old path.

For the simplest upgrade experience, use the latest helm chart with the latest image.

What's Changed

Dependabot updates

Makefile updates

  • Migrate makefiles and CI/CD by @inteon in #221
  • Use upstream images instead of custom built images by @inteon in #226
  • Upload junit and coverage results to ARTIFACTS folder by @inteon in #229
  • Upgrade repository-base module by @inteon in #237
  • Upgrade oci-image module by @inteon in #245
  • Preload images used in e2e tests by @inteon in #230
  • Use standardised release process by @inteon in #252
  • Fix typo which defines unused variable by @SgtCoDFish in #253
  • [CI] Merge self-upgrade into main by @github-actions in #259

New Contributors

Full Changelog: v0.7.1...v0.8.0

v0.8.0-alpha.0

24 Jan 14:54
b66d620

Choose a tag to compare

v0.8.0-alpha.0 Pre-release
Pre-release

What's Changed

Dependabot updates:

Makefile updates:

  • Migrate makefiles and CI/CD by @inteon in #221
  • Upgrade ginkgo to v2 by @inteon in #225
  • Upgrade oci-image module by @inteon in #245
  • Preload images used in e2e tests by @inteon in #230
  • Use standardised release process by @inteon in #252
  • Upload junit and coverage results to ARTIFACTS folder by @inteon in #229
  • Upgrade repository-base module by @inteon in #237
  • Use upstream images instead of custom built images by @inteon in #226
  • [CI] Merge self-upgrade into main by @github-actions in #228
  • [CI] Merge self-upgrade into main by @github-actions in #232
  • [CI] Merge self-upgrade into main by @github-actions in #234
  • [CI] Merge self-upgrade into main by @github-actions in #235
  • [CI] Merge self-upgrade into main by @github-actions in #236
  • [CI] Merge self-upgrade into main by @github-actions in #239
  • [CI] Merge self-upgrade into main by @github-actions in #240
  • [CI] Merge self-upgrade into main by @github-actions in #242
  • [CI] Merge self-upgrade into main by @github-actions in #243

New Contributors

Full Changelog: v0.7.1...v0.8.0-alpha.0

v0.7.1

25 Oct 09:04
v0.7.1
fcd9a11

Choose a tag to compare

istio-csr secures Istio workloads and control plane components using cert-manager.

v0.7.1 is a patch release updating some dependencies to fix publicly known CVEs - specifically the HTTP/2 stream cancellation / rapid reset bug (CVE-2023-44487 and CVE-2023-39325), although some other upgrades are included too.

What's Changed

Full Changelog: v0.7.0...v0.7.1

v0.7.0

28 Jun 12:49
d6908d9

Choose a tag to compare

istio-csr secures Istio workloads and control plane components using cert-manager.

What's Changed

New Contributors

Full Changelog: v0.6.0...v0.7.0

v0.6.0

20 Mar 16:14
e8156ce

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.6.0