Skip to content

Releases: cert-manager/istio-csr

v0.13.0-alpha.0

08 Nov 23:41
v0.13.0-alpha.0
b31dedb
Compare
Choose a tag to compare
v0.13.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.13.0-alpha.0 is a prerelease for testing changes to istio-csr with the new Istio 1.24. Specifically, the new version of istio requires that ALPN be set by clients, which istio-csr didn't previously set.

If you're having issues with istio-csr and Istio 1.24, try this prerelease and please let us know if it works for you!

IMPORTANT: The chart for this release might not be visible in the charts.jetstack.io repository as of when this release is published. You can use the chart attached to this release until it becomes visible.

What's Changed

New Contributors

Full Changelog: v0.12.0...v0.13.0-alpha.0

v0.12.0

04 Sep 13:45
v0.12.0
13f57d6
Compare
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.12.0 introduces support for Istio Ambient Mode, expands upon the runtime configuration functionality introduced in previous releases, and includes various other improvements.

Features

Istio Ambient Mode Support

Istio Ambient Mode allows the use of Istio without requiring sidecar containers to run in your pods. This is powerful, but functions slightly differently and istio-csr previously didn't support this mode of operation.

Thanks to @paulwilljones istio-csr can now handle this mode of operation!

Istio Ambient Mode is enabled by setting the app.server.caTrustedNodeAccounts Helm value to a comma-separated list of namespace/service-accounts values indicating which service accounts are permitted to use node authentication, such as istio-system/ztunnel.

As this is a new feature, we'd be keen to hear your feedback and learn how this can be improved!

Runtime Configuration Improvements

Provisioning Resources

Runtime configuration allows istio-csr to be installed at the same time as cert-manager itself, which can simplify the cluster setup process. It also enables issuers to be changed on the fly, which makes rotation of CA certificates simpler and reduces the risk of downtime.

An issue we noticed was that istio-csr would always report as unhealthy until runtime configuration was available. On the face of it, this seems like expected behavior - without a configured issuer, istio-csr can't issue workload certs or provision the istio serving cert / istiod cert. The issue we found was that this causes the Helm install of istio-csr to hang until the runtime configuration ConfigMap was provided, forcing the need to handle runtime configuration then and there.

To make this process simpler, we've made a few Helm chart changes:

  1. It's now possible to pass extraObjects as a Helm value specifying arbitrary resources to create alongside the istio-csr install. This enables creating an issuer during the Helm install, if desired.
  2. There's a new .app.runtimeConfiguration.create value which, if set, will create a runtime configuration ConfigMap with the values specified in app.runtimeConfiguration.issuer.

Health Checks

In addition, we've changed how health checks work for istio-csr with runtime configuration. If using pure runtime configuration (app.certmanager.issuer is blank), the istio-csr health checks will report healthy until runtime configuration is available for the first time. After runtime configuration is first detected, the health checks will return to normal.

Other Fixes

We now also propagate annotations onto the dynamic istiod cert which is used with runtime configuration, and a few roles have been fixed to ensure that installing into different namespaces works as expected.

What's Changed

Istio Ambient Mode

Runtime Configuration

Test Improvements / Other

New Contributors

Full Changelog: v0.11.0...v0.12.0

v0.12.0-alpha.1

03 Sep 17:23
v0.12.0-alpha.1
6cfff77
Compare
Choose a tag to compare
v0.12.0-alpha.1 Pre-release
Pre-release

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

v0.12.0-alpha.1 is an initial pre-release of v0.12.0 to test new changes.

More complete release notes will be added with official release of v0.12.0

What's Changed

New Contributors

Full Changelog: v0.12.0-alpha.0...v0.12.0-alpha.1

v0.12.0-alpha.0

15 Aug 10:30
v0.12.0-alpha.0
5362bb6
Compare
Choose a tag to compare
v0.12.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.12.0-alpha.0 is an initial pre-release of v0.12.0 to test new Helm chart changes which help with provisioning resources alongside istio-csr.

More complete release notes will be added with official release of v0.12.0

What's Changed

  • Add security context to istio-csr deployment by @wtzhang23 in #369
  • Add end to end test for client certificate authenticator by @wtzhang23 in #370
  • feat: add ability to create runtime config configmap by @ThatsMrTalbot in #379
  • feat: add ability to specify extra objects to apply along with the chart by @ThatsMrTalbot in #378

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

v0.11.0

02 Aug 14:52
v0.11.0
55d468c
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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