Skip to content

feat: log version information when starting the cert-manager controller, webhook and ca-injector#8072

Merged
cert-manager-prow[bot] merged 3 commits intocert-manager:masterfrom
prasad89:issue#8067
Sep 19, 2025
Merged

feat: log version information when starting the cert-manager controller, webhook and ca-injector#8072
cert-manager-prow[bot] merged 3 commits intocert-manager:masterfrom
prasad89:issue#8067

Conversation

@prasad89
Copy link
Copy Markdown
Contributor

@prasad89 prasad89 commented Sep 13, 2025

Pull Request Motivation

Print util.AppVersion and util.AppGitCommit when the controller, webhook and ca-injector starts.
Previously, these values were present in Short, which never gets printed for the root command removed since they are standalone root commands with no subcommands.
resolves #8067

Kind

/kind feature

Release Note

The controller, webhook and ca-injector now log their version and git commit on startup for easier debugging and support.

CyberArk tracker: VC-45229

@cert-manager-prow cert-manager-prow bot added kind/feature Categorizes issue or PR as related to a new feature. release-note Denotes a PR that will be considered when it comes time to generate release notes. dco-signoff: no Indicates that at least one commit in this pull request is missing the DCO sign-off message. labels Sep 13, 2025
@cert-manager-prow
Copy link
Copy Markdown
Contributor

Hi @prasad89. Thanks for your PR.

I'm waiting for a cert-manager member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@cert-manager-prow cert-manager-prow bot added needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Sep 13, 2025
Signed-off-by: prasad89 <vdbhaleraovb@gmail.com>
@cert-manager-prow cert-manager-prow bot added dco-signoff: yes Indicates that all commits in the pull request have the valid DCO sign-off message. and removed dco-signoff: no Indicates that at least one commit in this pull request is missing the DCO sign-off message. labels Sep 13, 2025
@erikgb erikgb requested a review from Copilot September 13, 2025 14:32
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds version information logging when the cert-manager controller starts up. The change improves debugging and support capabilities by making version details visible in controller logs.

  • Adds logging of version, git commit, Go version, and platform information at controller startup
  • Imports the util package to access version information functions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@erikgb
Copy link
Copy Markdown
Member

erikgb commented Sep 13, 2025

/ok-to-test

@cert-manager-prow cert-manager-prow bot added ok-to-test and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Sep 13, 2025
Copy link
Copy Markdown
Member

@erikgb erikgb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @prasad89! Can you please also fix webhook and ca-injector, which has the same issue. I wonder if we can just remove the Cobra Short description on these root commands, as they are never shown anyway. AFAIK, none of these commands have sub-commands. Correct, @maelvls?

@erikgb erikgb requested a review from maelvls September 13, 2025 14:44
@prasad89
Copy link
Copy Markdown
Contributor Author

Thanks for the review, @erikgb.

You're correct none of these commands call AddCommand(), which confirms they are standalone root commands with no subcommands. As a result, their Short descriptions are never shown to users.

Should we go ahead and remove the Short descriptions from all three commands (controller, webhook, and ca-injector)?

@erikgb
Copy link
Copy Markdown
Member

erikgb commented Sep 15, 2025

Should we go ahead and remove the Short descriptions from all three commands (controller, webhook, and ca-injector)?

I think so. Agree, @maelvls?

@prasad89
Copy link
Copy Markdown
Contributor Author

Should we go ahead and remove the Short descriptions from all three commands (controller, webhook, and ca-injector)?

I think so. Agree, @maelvls?

and what about printing log version information when starting do we still need to do it for each of them, right?

@maelvls
Copy link
Copy Markdown
Member

maelvls commented Sep 15, 2025

Yes, I agree too, Short can go away.

Yes, printing that log line needs to be done for each one

…or commands

Signed-off-by: prasad89 <vdbhaleraovb@gmail.com>
@cert-manager-prow cert-manager-prow bot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Sep 16, 2025
Copy link
Copy Markdown
Member

@erikgb erikgb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@prasad89, I think you need to duplicate what you have done for the controller app to the other apps.

Signed-off-by: prasad89 <vdbhaleraovb@gmail.com>
@prasad89 prasad89 requested a review from erikgb September 16, 2025 06:03
@prasad89 prasad89 changed the title feat: log version information when starting the cert-manager controller feat: log version information when starting the cert-manager controller, webhook and ca-injector Sep 16, 2025
Copy link
Copy Markdown
Member

@erikgb erikgb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

Leaving the approve to @maelvls. 😉

@cert-manager-prow cert-manager-prow bot added the lgtm Indicates that a PR is ready to be merged. label Sep 16, 2025
@maelvls maelvls added the cybr Used by CyberArk-employed maintainers to report to line management what's being worked on. label Sep 16, 2025
@maelvls
Copy link
Copy Markdown
Member

maelvls commented Sep 19, 2025

Hey, just letting you know that I'm trying to test the PR manually, it's taking me a bit of time to remember how to build the images and run them 😅

@maelvls
Copy link
Copy Markdown
Member

maelvls commented Sep 19, 2025

I was able to test the changes locally:

$ make e2e-setup

$ k logs -n cert-manager deployments/cert-manager | head -1
I0919 15:14:22.507912       1 controller.go:74] "starting cert-manager controller" logger="cert-manager.controller" version="v1.18.0-beta.0-304-g50e387d61f6126" git_commit="50e387d61f6126c7a88f20da7f0821a84c04a90e" go_version="go1.25.1" platform="linux/arm64"

$ k logs -n cert-manager deployments/cert-manager-cainjector | head -1
I0919 15:14:22.492525       1 cainjector.go:46] "starting cert-manager ca-injector" logger="cert-manager.cainjector" version="v1.18.0-beta.0-304-g50e387d61f6126" git_commit="50e387d61f6126c7a88f20da7f0821a84c04a90e" go_version="go1.25.1" platform="linux/arm64"

$ k logs -n cert-manager deployments/cert-manager-webhook | head -1
I0919 15:14:22.516405       1 webhook.go:47] "starting cert-manager webhook" logger="cert-manager.webhook.webhook" version="v1.18.0-beta.0-304-g50e387d61f6126" git_commit="50e387d61f6126c7a88f20da7f0821a84c04a90e" go_version="go1.25.1" platform="linux/arm64"

All good, excellent work!

/lgtm
/approve

@cert-manager-prow
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: maelvls

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@cert-manager-prow cert-manager-prow bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Sep 19, 2025
@prasad89
Copy link
Copy Markdown
Contributor Author

I was able to test the changes locally:

$ make e2e-setup

$ k logs -n cert-manager deployments/cert-manager | head -1
I0919 15:14:22.507912       1 controller.go:74] "starting cert-manager controller" logger="cert-manager.controller" version="v1.18.0-beta.0-304-g50e387d61f6126" git_commit="50e387d61f6126c7a88f20da7f0821a84c04a90e" go_version="go1.25.1" platform="linux/arm64"

$ k logs -n cert-manager deployments/cert-manager-cainjector | head -1
I0919 15:14:22.492525       1 cainjector.go:46] "starting cert-manager ca-injector" logger="cert-manager.cainjector" version="v1.18.0-beta.0-304-g50e387d61f6126" git_commit="50e387d61f6126c7a88f20da7f0821a84c04a90e" go_version="go1.25.1" platform="linux/arm64"

$ k logs -n cert-manager deployments/cert-manager-webhook | head -1
I0919 15:14:22.516405       1 webhook.go:47] "starting cert-manager webhook" logger="cert-manager.webhook.webhook" version="v1.18.0-beta.0-304-g50e387d61f6126" git_commit="50e387d61f6126c7a88f20da7f0821a84c04a90e" go_version="go1.25.1" platform="linux/arm64"

All good, excellent work!

/lgtm /approve

thanks @maelvls :)

@cert-manager-prow cert-manager-prow bot merged commit e2aa55c into cert-manager:master Sep 19, 2025
6 checks passed
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Oct 8, 2025
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [cert-manager](https://cert-manager.io) ([source](https://github.com/cert-manager/cert-manager)) | minor | `v1.18.2` -> `v1.19.0` |

---

### Release Notes

<details>
<summary>cert-manager/cert-manager (cert-manager)</summary>

### [`v1.19.0`](https://github.com/cert-manager/cert-manager/releases/tag/v1.19.0)

[Compare Source](cert-manager/cert-manager@v1.18.2...v1.19.0)

cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.

This release focuses on expanding platform compatibility, improving deployment flexibility, enhancing observability, and addressing key reliability issues.

> 📖  Read the full release notes at cert-manager.io: <https://cert-manager.io/docs/releases/release-notes/release-notes-1.19>

Changes since `v1.18.0`:

#### Feature

- Add IPv6 rules to the default network policy ([#&#8203;7726](cert-manager/cert-manager#7726), [@&#8203;jcpunk](https://github.com/jcpunk))
- Add `global.nodeSelector` to helm chart to allow for a single `nodeSelector` to be set across all services. ([#&#8203;7818](cert-manager/cert-manager#7818), [@&#8203;StingRayZA](https://github.com/StingRayZA))
- Add a feature gate to default to Ingress `pathType` `Exact` in ACME HTTP01 Ingress challenge solvers. ([#&#8203;7795](cert-manager/cert-manager#7795), [@&#8203;sspreitzer](https://github.com/sspreitzer))
- Add generated `applyconfigurations` allowing clients to make type-safe server-side apply requests for cert-manager resources. ([#&#8203;7866](cert-manager/cert-manager#7866), [@&#8203;erikgb](https://github.com/erikgb))
- Added API defaults to issuer references group (cert-manager.io) and kind (Issuer). ([#&#8203;7414](cert-manager/cert-manager#7414), [@&#8203;erikgb](https://github.com/erikgb))
- Added `certmanager_certificate_challenge_status` Prometheus metric. ([#&#8203;7736](cert-manager/cert-manager#7736), [@&#8203;hjoshi123](https://github.com/hjoshi123))
- Added `protocol` field for `rfc2136` DNS01 provider ([#&#8203;7881](cert-manager/cert-manager#7881), [@&#8203;hjoshi123](https://github.com/hjoshi123))
- Added experimental field `hostUsers` flag to all pods. Not set by default. ([#&#8203;7973](cert-manager/cert-manager#7973), [@&#8203;hjoshi123](https://github.com/hjoshi123))
- Support configurable resource requests and limits for ACME HTTP01 solver pods through ClusterIssuer and Issuer specifications, allowing granular resource management that overrides global `--acme-http01-solver-resource-*` settings. ([#&#8203;7972](cert-manager/cert-manager#7972), [@&#8203;lunarwhite](https://github.com/lunarwhite))
- The `CAInjectorMerging` feature has been promoted to BETA and is now enabled by default ([#&#8203;8017](cert-manager/cert-manager#8017), [@&#8203;ThatsMrTalbot](https://github.com/ThatsMrTalbot))
- The controller, webhook and ca-injector now log their version and git commit on startup for easier debugging and support. ([#&#8203;8072](cert-manager/cert-manager#8072), [@&#8203;prasad89](https://github.com/prasad89))
- Updated `certificate` metrics to the collector approach. ([#&#8203;7856](cert-manager/cert-manager#7856), [@&#8203;hjoshi123](https://github.com/hjoshi123))

#### Bug or Regression

- ACME: Increased challenge authorization timeout to 2 minutes to fix `error waiting for authorization` ([#&#8203;7796](cert-manager/cert-manager#7796), [@&#8203;hjoshi123](https://github.com/hjoshi123))
- BUGFIX: permitted URI domains were incorrectly used to set the excluded URI domains in the CSR's name constraints ([#&#8203;7816](cert-manager/cert-manager#7816), [@&#8203;kinolaev](https://github.com/kinolaev))
- Enforced ACME HTTP-01 solver validation to properly reject configurations when multiple ingress options (`class`, `ingressClassName`, `name`) are specified simultaneously ([#&#8203;8021](cert-manager/cert-manager#8021), [@&#8203;lunarwhite](https://github.com/lunarwhite))
- Increase maximum sizes of PEM certificates and chains which can be parsed in cert-manager, to handle leaf certificates with large numbers of DNS names or other identities ([#&#8203;7961](cert-manager/cert-manager#7961), [@&#8203;SgtCoDFish](https://github.com/SgtCoDFish))
- Reverted adding the `global.rbac.disableHTTPChallengesRole` Helm option. ([#&#8203;7836](cert-manager/cert-manager#7836), [@&#8203;inteon](https://github.com/inteon))
- This change removes the `path` label of core ACME client metrics and will require users to update their monitoring dashboards and alerting rules if using those metrics. ([#&#8203;8109](cert-manager/cert-manager#8109), [@&#8203;mladen-rusev-cyberark](https://github.com/mladen-rusev-cyberark))
- Use the latest version of `ingress-nginx` in E2E tests to ensure compatibility ([#&#8203;7792](cert-manager/cert-manager#7792), [@&#8203;wallrj](https://github.com/wallrj))

#### Other (Cleanup or Flake)

- Helm: Fix naming template of `tokenrequest` RoleBinding resource to improve consistency ([#&#8203;7761](cert-manager/cert-manager#7761), [@&#8203;lunarwhite](https://github.com/lunarwhite))
- Improve error messages when certificates, CRLs or private keys fail admission due to malformed or missing PEM data ([#&#8203;7928](cert-manager/cert-manager#7928), [@&#8203;SgtCoDFish](https://github.com/SgtCoDFish))
- Major upgrade of Akamai SDK. NOTE: The new version has not been fully tested end-to-end due to the lack of cloud infrastructure. ([#&#8203;8003](cert-manager/cert-manager#8003), [@&#8203;hjoshi123](https://github.com/hjoshi123))
- Update kind images to include the Kubernetes 1.33 node image ([#&#8203;7786](cert-manager/cert-manager#7786), [@&#8203;wallrj](https://github.com/wallrj))
- Use `maps.Copy` for cleaner map handling ([#&#8203;8092](cert-manager/cert-manager#8092), [@&#8203;quantpoet](https://github.com/quantpoet))
- Vault: Migrate Vault E2E add-on tests from deprecated `vault-client-go` to the new `vault/api` client. ([#&#8203;8059](cert-manager/cert-manager#8059), [@&#8203;armagankaratosun](https://github.com/armagankaratosun))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzUuNCIsInVwZGF0ZWRJblZlciI6IjQxLjEzNS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaGFydCJdfQ==-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/1711
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
@wallrj-cyberark
Copy link
Copy Markdown
Member

@prasad89 We have released this. Please test and feedback: https://github.com/cert-manager/cert-manager/releases/tag/v1.19.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cybr Used by CyberArk-employed maintainers to report to line management what's being worked on. dco-signoff: yes Indicates that all commits in the pull request have the valid DCO sign-off message. kind/feature Categorizes issue or PR as related to a new feature. lgtm Indicates that a PR is ready to be merged. ok-to-test release-note Denotes a PR that will be considered when it comes time to generate release notes. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

I cannot check the version of the running binary (controller, cainjector, webhook, acmesolver, and startupapicheck)

5 participants