Skip to content

Releases: jetstack/jetstack-secure

v1.6.0

25 Jun 14:37
32d8a81
Compare
Choose a tag to compare
helm show chart oci://quay.io/jetstack/charts/venafi-kubernetes-agent --version 1.6.0

What's Changed

This release contains the following notable bug fixes and dependency updates:

Non user-facing changes

Helm Chart Changes

--- /dev/fd/63  2025-06-25 15:40:20.799993519 +0100
+++ /dev/fd/62  2025-06-25 15:40:20.799993519 +0100
@@ -62,13 +62,6 @@
           resource: deployments
           group: apps
     - kind: "k8s-dynamic"
-      name: "k8s/replicasets"
-      config:
-        resource-type:
-          version: v1
-          resource: replicasets
-          group: apps
-    - kind: "k8s-dynamic"
       name: "k8s/statefulsets"
       config:
         resource-type:
@@ -884,8 +877,25 @@
             runAsNonRoot: true
             seccompProfile:
               type: RuntimeDefault
-          image: "quay.io/jetstack/venafi-agent:v1.5.0"
+          image: "quay.io/jetstack/venafi-agent:v1.6.0"
           imagePullPolicy: IfNotPresent
+          env:
+          - name: POD_NAMESPACE
+            valueFrom:
+              fieldRef:
+                fieldPath: metadata.namespace
+          - name: POD_NAME
+            valueFrom:
+              fieldRef:
+                fieldPath: metadata.name
+          - name: POD_UID
+            valueFrom:
+              fieldRef:
+                fieldPath: metadata.uid
+          - name: POD_NODE
+            valueFrom:
+              fieldRef:
+                fieldPath: spec.nodeName
           args:
             - "agent"
             - "-c"
@@ -909,23 +919,6 @@
             - name: credentials
               mountPath: "/etc/venafi/agent/key"
               readOnly: true
-          env:
-          - name: POD_NAMESPACE
-            valueFrom:
-              fieldRef:
-                fieldPath: metadata.namespace
-          - name: POD_NAME
-            valueFrom:
-              fieldRef:
-                fieldPath: metadata.name
-          - name: POD_UID
-            valueFrom:
-              fieldRef:
-                fieldPath: metadata.uid
-          - name: POD_NODE
-            valueFrom:
-              fieldRef:
-                fieldPath: spec.nodeName
           ports:
             - containerPort: 8081
               name: http-metrics

Docker Image Changes

$ diffoci diff quay.io/jetstack/venafi-agent:v1.5.0 quay.io/jetstack/venafi-agent:v1.6.0 --semantic
INFO[0000] Target platforms: [linux/amd64]
TYPE     NAME                               INPUT-0                                                             INPUT-1
Layer    ctx:/manifests-0/layers-0/layer    length mismatch (666 vs 669)
Layer    ctx:/manifests-0/layers-0/layer    name "lib/apk/db" only appears in input 0
Layer    ctx:/manifests-0/layers-0/layer    name "lib/apk/db/lock" only appears in input 0
Layer    ctx:/manifests-0/layers-0/layer    name "lib/apk/db/scripts.tar" only appears in input 0
Layer    ctx:/manifests-0/layers-0/layer    name "lib/apk/db/installed" only appears in input 0
File     lib/apk                            Linkname                                                            Linkname ../usr/lib/apk
Layer    ctx:/manifests-0/layers-0/layer    name "lib/apk/db/triggers" only appears in input 0
Layer    ctx:/manifests-0/layers-0/layer    name "usr/lib/apk/exec" only appears in input 1
Layer    ctx:/manifests-0/layers-0/layer    name "usr/lib/apk/db/triggers" only appears in input 1
Layer    ctx:/manifests-0/layers-0/layer    name "usr/lib/apk/db" only appears in input 1
Layer    ctx:/manifests-0/layers-0/layer    name "usr/lib" only appears in input 1
Layer    ctx:/manifests-0/layers-0/layer    name "usr/lib/apk" only appears in input 1
Layer    ctx:/manifests-0/layers-0/layer    name "usr/lib/apk/db/installed" only appears in input 1
Layer    ctx:/manifests-0/layers-0/layer    name "usr/lib/apk/db/lock" only appears in input 1
Layer    ctx:/manifests-0/layers-0/layer    name "usr/lib/apk/db/scripts.tar" only appears in input 1
File     ko-app/preflight                   0f9e150ac6eb84d6da1f23e9ab36e10fc923dd728c9ed71ef305030e178477ec    144c10c27ae5fb3dc5974dd4a648d48bd00bf8e29f83fdd3cd95b8093d975b74
File     licenses/LICENSES                  993aa0cd6335911daa13e99056a65a6c431cf6078da800c38ef2fcfcc6219439    a808d2a8c423671bc8be51030969d3fd89915e6097e09c0ffc2896a4c3741dc3
Mani     ctx:/manifests-0/annotations       field "Annotations"
Idx      ctx:/annotations                   field "Annotations"

Full Changelog: v1.5.0...v1.6.0

v1.5.0

06 May 16:59
1bf4bca
Compare
Choose a tag to compare

What's Changed

  • The Kubernetes agent's resource collection capabilities have been extended. It now supports Venafi Connection, Smallstep Issuer, Cloudflare Origin CA, FreeIPA Issuer, and EJBCA Issuer. (#648)

  • The OCI images now contain annotations (#650). These annotations include the Git revision as well as the build date and are used by linters such as Trivy, Snyk, and Harbor when scanning images. You can now look the annotations using the command:

    crane manifest registry.venafi.cloud/venafi-agent/venafi-agent:v1.5.0
  • The Helm chart now adheres to Kyverno's Pod Security Standards rules. (#647)

  • Preliminary work went into this release to let you use Cyberark Secrets Hub for discovering Kubernetes resources. This change introduces a client to fetch the Identity API URL, with future work planned to use this for login. (#646)

  • (non-user-facing) The venafi-connection-lib dependency has been upgraded to the latest version (from cd2301fd4e7c to ec1757b9e01b) (#637). Although this version brings support for loading credentials from disk files in YAML or JSON format, as well as a file-based authentication for non-Kubernetes environments, these features are not yet utilized in the agent. Future updates may incorporate them.

Full Changelog: v1.4.1...v1.5.0

v1.4.1

14 Mar 14:39
fbab5e1
Compare
Choose a tag to compare

What's Changed

  • Suppress the excessive logs from client-go reporting "the server could not find the requested resource" (#639)
  • The client ID is now shown in the logs on startup when using the Venafi Cloud Key Pair Service Account authentication. (#625)
  • You can now debug problems with the data upload using --log-level=6 which now shows the request details in the logs. (#627)
  • The HTTP header User-Agent: venafi-kubernetes-agent/v1.4.1 is now set for all outgoing HTTP requests. Previously, the User-Agent header was only set in VenafiConnection mode. (#631)
  • Fixed CVEs: CVE-2024-51744 (github.com/golang-jwt/jwt/v4), CVE-2024-45338 (x/net), and CVE-2024-45337 (x/crypto) (#636).

Full Changelog: v1.4.0...v1.4.1

v1.4.0

25 Nov 09:32
6a5e097
Compare
Choose a tag to compare

What's Changed

  • The HTTP compression feature has been reverted. We found that compression wasn't supported in Venafi Control Plane's API, and decided to revert the feature until we work on a fix. The flag --disable-compression is still present but no longer has an effect. (#628)
  • Venafi Kubernetes Agent is now able to discover OpenShift Routes objects. Due to a bug with the role-based access control in the Helm chart, Venafi Kubernetes Agent was previously unable to discover OpenShift Routes. (#620)
  • The Helm chart no longer prints an extra newline after the fields exclude-annotation-keys-regex and exclude-label-keys-regex. This extra newline was breaking Octant's and OpenShift object editor's code highlighters. (#622)

Full Changelog: v1.3.0...v1.4.0

v1.3.0

14 Nov 14:10
a8aaf84
Compare
Choose a tag to compare

What's Changed

  • You can now exclude specific labels and annotations from being reported to the Venafi Control Plane API. For more information, see Configuring annotations.
  • You can now configure the Agent to output logs in JSON format using the flag --logging-format=json. By default, the logs in the klog textual format. You can also change the verbosity level using -v.
  • Venafi Kubernetes Agent is now able to discover Firefly and OpenShift Routes objects. Due to a bug with the role-based access control in the Helm chart, Venafi Kubernetes Agent was previously unable to discover these two objects (unlike what the logs were saying).

Note that the logging changes introduced in 1.3.0 changed how logs are printed. Like before, the logs are still shown in a textual format by default. But since 1.3.0, the textual format uses Kubernetes' standard textual format rather than Go's standard logging format.

Before:

2024/11/14 13:53:38 Preflight agent version: development ()
2024/11/14 13:53:38 Using the Venafi Cloud Key Pair Service Account auth mode since --client-id and --private-key-path were specified.
2024/11/14 13:53:38 Using period from config 5m0s
2024/11/14 13:53:38 Loading upload_path from "venafi-cloud" configuration.
2024/11/14 13:53:38 error messages will not show in the pod's events because the POD_NAME environment variable is empty
2024/11/14 13:53:38 starting "k8s/namespaces" datagatherer
2024/11/14 13:53:38 starting "k8s/secrets" datagatherer
2024/11/14 13:54:47 server missing resource for datagatherer of "cert-manager.io/v1, Resource=issuers"
W1114 13:54:47.844087   31016 reflector.go:561] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:243: failed to list networking.istio.io/v1alpha3, Resource=virtualservices: the server could not find the requested resource
2024/11/14 13:54:47 server missing resource for datagatherer of "networking.istio.io/v1alpha3, Resource=virtualservices"
W1114 13:54:48.042893   31016 reflector.go:561] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:243: failed to list jetstack.io/v1alpha1, Resource=venafiissuers: the server could not find the requested resource
2024/11/14 13:53:38 successfully gathered 7 items from "k8s/namespaces" datagatherer
2024/11/14 13:53:38 successfully gathered 5 items from "k8s/secrets" datagatherer
2024/11/14 13:53:38 Posting data to: https://api.venafi.cloud/
2024/11/14 13:53:39 Data sent successfully.

After:

I1114 13:52:48.941205   30246 run.go:59] "Starting" logger="Run" version="development" commit=""
I1114 13:52:48.941655   30246 config.go:404] "Using the Venafi Cloud Key Pair Service Account auth mode since --client-id and --private-key-path were specified." logger="Run"
I1114 13:52:48.941666   30246 config.go:540] "Using period from config" logger="Run" period="5m0s"
I1114 13:52:48.941680   30246 config.go:767] "Loading upload_path from \"venafi-cloud\" configuration." logger="Run"
I1114 13:52:48.941880   30246 run.go:117] "Healthz endpoints enabled" logger="Run.APIServer" addr=":8081" path="/healthz"
I1114 13:52:48.941889   30246 run.go:121] "Readyz endpoints enabled" logger="Run.APIServer" addr=":8081" path="/readyz"
E1114 13:52:48.943810   30246 run.go:269] "Error messages will not show in the pod's events because the POD_NAME environment variable is empty" logger="Run"
W1114 13:54:48.042893   31016 reflector.go:561] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:243: failed to list jetstack.io/v1alpha1, Resource=venafiissuers: the server could not find the requested resource
W1114 13:54:48.042893   31016 reflector.go:561] pkg/mod/k8s.io/[email protected]/tools/cache/reflector.go:243: failed to list jetstack.io/v1alpha1, Resource=venafiissuers: the server could not find the requested resource
I1114 13:52:49.655153   30246 run.go:409] "Data sent successfully" logger="Run.gatherAndOutputData.postData"

Full Changelog: v1.2.0...v1.3.0

v1.2.0

31 Oct 10:04
1f00f09
Compare
Choose a tag to compare

What's Changed

  • You can now better diagnose issues with the Venafi Kubernetes Agent by looking at the Kubernetes events attached to its pod (#589)
  • The Venafi Kubernetes Agent now compresses its requests made to the Venafi Control Plane API, reducing the network traffic by 90% (#594)

Full Changelog: v1.1.0...v1.2.0

v1.1.0

07 Oct 13:56
40224c2
Compare
Choose a tag to compare
  • The agent now reports the annotations and labels of namespaces and secrets. (#581, #582)
  • The agent now exposes readiness and liveness probes. (#580)
  • In Venafi Cloud Key Pair Service Account mode, you can now omit the server field in the configuration file. It defaults to the URL https://api.venafi.cloud. If you are in the european region, you still need to set server: https://api.venafi.eu field in the configuration file. (#575)
  • It is now possible to use the --period flag without also giving the period field. (#575)
  • Helm chart values are now validated to alert you if they contain errors to help you quickly identify typos in fields. (#556)
  • The "unauthenticated mode" has been removed as it made it hard to diagnose mismatched authentication flags. For example, using --venafi-cloud without --credentials-file/-k used to not show any error and the Agent would happily start. Now, if you don't provide the right set of authentication flags, the Agent will show a helpful message explaining how the authentication flags can be used. (#575)
  • The --help has been re-written to help understanding how authentication flags interact with each other. (#575)
  • You can no longer use --private-key-path along with --credentials-path. Previously, --private-key-path would be ignored if --credentials-path was provided. Now, the two options are mutually exclusive and a helpful message is shown when trying to use both. (#575)
  • The flag --private-key-path now defaults to the empty string. It previously defaulted to /etc/venafi/agent/key/privatekey.pem and the flag was omitted from the deployment manifest, which was confusing to users trying to understand how this private key was being configured. A helpful message is now shown when trying to run --client-id without --private-key-path. (#575)
  • The field uploader_id in the configuration file is deprecated. Setting this field will no longer do anything. A warning is now shown when using this field. The reason this field was deprecated is that it was never used by the Venafi Cloud API. Behind the scenes, the uploader_id is arbitrarily set to no so that the API doesn't complain. (#575)
  • The binary's size has been reduced from 72 MB down to 55 MB. (#556)
  • The Docker image is now built using cert-manager's base image based on apko's alpine image using ko. As a result, the binary's location in the image is now located at /ko-app/preflight instead of /bin/preflight. (#556)

v1.1.0-alpha.0

03 Oct 12:21
ca9a620
Compare
Choose a tag to compare
v1.1.0-alpha.0 Pre-release
Pre-release

What's Changed

  • The agent now reports the annotations and labels of namespaces and secrets. (#581, #582)
  • The agent now exposes readiness and liveness probes. (#580)
  • In Venafi Cloud Key Pair Service Account mode, you can now omit the server field in the configuration file. It defaults to the URL https://api.venafi.cloud. If you are in the european region, you still need to set server: https://api.venafi.eu field in the configuration file. (#575)
  • It is now possible to use the --period flag without also giving the period field. (#575)
  • Helm chart values are now validated to alert you if they contain errors to help you quickly identify typos in fields. (#556)
  • The "unauthenticated mode" has been removed as it made it hard to diagnose mismatched authentication flags. For example, using --venafi-cloud without --credentials-file/-k used to not show any error and the Agent would happily start. Now, if you don't provide the right set of authentication flags, the Agent will show a helpful message explaining how the authentication flags can be used. (#575)
  • The --help has been re-written to help understanding how authentication flags interact with each other. (#575)
  • You can no longer use --private-key-path along with --credentials-path. Previously, --private-key-path would be ignored if --credentials-path was provided. Now, the two options are mutually exclusive and a helpful message is shown when trying to use both. (#575)
  • The flag --private-key-path now defaults to the empty string. It previously defaulted to /etc/venafi/agent/key/privatekey.pem and the flag was omitted from the deployment manifest, which was confusing to users trying to understand how this private key was being configured. A helpful message is now shown when trying to run --client-id without --private-key-path. (#575)
  • The field uploader_id in the configuration file is deprecated. Setting this field will no longer do anything. A warning is now shown when using this field. The reason this field was deprecated is that it was never used by the Venafi Cloud API. Behind the scenes, the uploader_id is arbitrarily set to no so that the API doesn't complain. (#575)
  • The binary's size has been reduced from 72 MB down to 55 MB. (#556)
  • The Docker image is now built using cert-manager's base image based on apko's alpine image using ko. As a result, the binary's location in the image is now located at /ko-app/preflight instead of /bin/preflight. (#556)

Full Changelog: v1.0.0...v1.1.0-alpha.0

v1.0.0

03 Sep 12:51
2119b80
Compare
Choose a tag to compare

What's Changed

  • You can now use the VenafiConnection CRD to authenticate to Venafi Control Plane. With the VenafiConnection CRD, you can choose to authenticate using a Workload Identity Federation service account ("secretless"). (#552, #559)
  • The memory usage of Venafi Kubernetes Agent has been reduced by excluding Helm release Secrets and some standard Secret types. You can configure the ignored types with the Helm value config.ignoredSecretTypes. (#554)
  • The configuration manifest is no longer dumped on startup, uncluttering the logs. (#564)

New Contributors

Full Changelog: v0.1.49...v1.0.0

v0.1.49

11 Jul 09:46
23087d9
Compare
Choose a tag to compare

What's Changed

  • An error preventing the Venafi Kubernetes Agent deployment on Red Hat OpenShift clusters has been resolved. The error "runAsUser: Invalid value: 1000" is no longer encountered. By @ThatsMrTalbot in #546
  • You no longer have to scroll up in the logs to find out why the agent pod has crashed. The last log line before the process exits now shows the reason for giving up. By @james-w in #537
  • The Helm chart venafi-kubernetes-agent has been improved:
    • When a proxy for outbound connections to api.venafi.cloud or api.venafi.eu is required, and the proxy uses a certificate issued by a private certificate authority, you can now add the certificate authority to a custom CA bundle that will be trusted by the agent. The Helm chart now supports specifying volumes and volume mounts to streamline this process. By @maelvls in #543
    • The Helm chart has been enhanced to allow users to control the metrics settings. For more information, see the {{ven}} {{k8s}} Agent Helm values reference page. By @wallrj in #544
    • Following best practices, the default CPU limit for the Venafi Kubernetes Agent pod has been removed. This allows for more dynamic resource allocation by Kubernetes. By @wallrj in #539
  • The Helm chart for jetstack-secure has also been improved:
    • You can now set volumes and volumeMounts when using the jetstack-agent Helm chart. By @hawksight in #540
    • The jetstack-secure Helm chart version has been bumped to 0.4.0. By @hawksight in #542

New Contributors

Full Changelog: v0.1.48...v0.1.49