Releases: jetstack/jetstack-secure
v1.6.0
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:
- Reduce memory usage by removing the Replicaset data gatherer from the default config by @wallrj in #658
- Fix a bug that caused proxy settings to be ignored by @hawksight in #669
golang.org/x/net
was upgraded to address: CVE-2025-22872 by @wallrj in #675- Go was upgraded to v1.24.4 to address: CVE-2025-22874, CVE-2025-0913, and CVE-2025-4673
Non user-facing changes
- make upgrade-klone upgrade-base generate-govulncheck by @wallrj in #657
- feat: Initial work on CyberArk Identity client by @SgtCoDFish in #655
- VC-41203: Allow users to select the Machine Hub mode by @maelvls in #653
- golangci-lint spelling linter fixes by @inteon in #659
- Linter fixes (part 2) by @inteon in #660
- Cleanup: config.go by @inteon in #661
- Cleanup client interface by @inteon in #662
- Use new client-go functions for contextual logging by @inteon in #663
- Quick README cleanup, removing a lot of out of date information by @inteon in #665
- Drop unused Delete() function by @inteon in #667
- Remove parts of API that are not used by @inteon in #666
- Remove unnecessary go dependencies by @inteon in #668
- Add CyberArk client and mock server by @inteon in #664
- chore: manually upgrade makefile-modules by @SgtCoDFish in #671
- Go module upgrades to fix CVE-2025-22872 by @wallrj in #675
- Update Go modules in preparation for releasing 1.6.0 by @wallrj in #676
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
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
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
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
andexclude-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
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 Routesobjects. 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
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
- 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 URLhttps://api.venafi.cloud
. If you are in the european region, you still need to setserver: https://api.venafi.eu
field in the configuration file. (#575)
- It is now possible to use the
--period
flag without also giving theperiod
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, theuploader_id
is arbitrarily set tono
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
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 URLhttps://api.venafi.cloud
. If you are in the european region, you still need to setserver: https://api.venafi.eu
field in the configuration file. (#575)
- It is now possible to use the
--period
flag without also giving theperiod
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, theuploader_id
is arbitrarily set tono
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
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
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
orapi.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
- When a proxy for outbound connections to
- The Helm chart for
jetstack-secure
has also been improved:- You can now set
volumes
andvolumeMounts
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
- You can now set
New Contributors
- @james-w made their first contribution in #537
- @ThatsMrTalbot made their first contribution in #546
Full Changelog: v0.1.48...v0.1.49