feat(deps): update helm release cert-manager to v1.17.1
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| cert-manager (source) | minor | v1.9.1 -> v1.17.1 |
[!WARNING] Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
cert-manager/cert-manager (cert-manager)
v1.17.1
v1.17.0
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
v1.17.0 is a feature release with several improvements, including:
- A helpful compliance change to RSA signatures on certificates
- An easier way to specify passwords for PKCS#12 and JKS keystores
- A few feature flag promotions (and a deprecation)
- Dependency bumps and other smaller improvements
Major Themes
RSA Certificate Compliance
The United States Department of Defense published a memo in 2022 which introduced some requirements on the kinds of cryptography they require to be supported in software they use.
In effect, the memo requires that software be able to support larger RSA keys (3072-bit and 4096-bit) and hashing algorithms (SHA-384 at a minimum).
cert-manager supported large RSA keys long before the memo was published, but a quirk in implementation meant that cert-manager always used SHA-256 when signing with RSA.
In v1.17.0, cert-manager will choose a hash algorithm based on the RSA key length: 3072-bit keys will use SHA-384, and 4096-bit keys will use SHA-512. This matches similar behavior already present for ECDSA signatures.
Our expectation is that this change will have minimal impact beyond a slight increase to security and better compliance; we're not aware of Kubernetes based environments which support RSA 2048 with SHA-256 but fail with RSA 4096 and SHA-512. However, if you're using larger RSA keys, you should be aware of the change.
Easier Keystore Passwords for PKCS#12 and JKS
Specifying passwords on PKCS#12 and JKS keystores is supported in cert-manager for compatibility reasons with software which expects or requires passwords to be set; however, these passwords are not relevant to security and never have been in cert-manager.
The initial implementation of the keystores feature required these "passwords" to be stored in a Kubernetes secret, which would then be read by cert-manager when creating the keystore after a certificate was issued. This is cumbersome, especially when many passwords are set to default values such as changeit or password.
In cert-manager v1.17, it's now possible to set a keystore password using a literal string value inside the Certificate resource itself, making this process much easier with no change to security.
For example:
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: my-cert-password
spec:
secretName: my-cert-password
issuerRef:
name: my-issuer
kind: ClusterIssuer
keystores:
jks:
create: true
password: "abc123"
pkcs12:
create: true
password: "password"
dnsNames:
- example.com
The new password field is mutually exclusive with the passwordSecretRef field, so be sure to only set one.
Feature Flag Promotions / Deprecations
cert-manager's feature flags allow for easier testing and adoption of new features with a reduced risk of breaking changes. In cert-manager v1.17, two feature gates have been promoted to "beta", and as such are now enabled by default in all installations:
-
NameConstraints, allowing users to specify the name constraints extension which can be helpful when creating CA certificates for private PKI -
UseDomainQualifiedFinalizer, which stops a Kubernetes warning from being printed in logs
In addition, we added a new feature gate: CAInjectorMerging, which intelligently combines certificates used by the CAInjector component, making it safer to use when issuing certificates are rotated. If you're making heavy use of the CA injector, you should consider enabling this feature gate.
Finally, we deprecated the ValidateCAA feature gate which will be removed entirely in cert-manager v1.18.0. This feature gate aimed to validate the CAA DNS record during ACME issuance, but has seen low adoption and limited testing since its introduction back in 2019.
Other Changes
There are many other PRs which were merged in this release cycle and we'd encourage you to read the release notes below. One PR that's worth highlighting is a change to add more structured logging information to certain log lines.
If you were previously filtering logs using grep or similar tools (which is highly discouraged!) be aware that some log lines have changed format.
Community
As always, we'd like to thank all of the community members who helped in this release cycle, including all below who merged a PR and anyone that helped by commenting on issues, testing, or getting involved in cert-manager meetings. We're lucky to have you involved.
A special thanks to:
for their contributions, comments and support!
Also, thanks to the cert-manager maintainer team for their help in this release:
And finally, thanks to the cert-manager steering committee for their feedback in this release cycle:
Changes by Kind
Feature
- Potentially BREAKING: The CA and SelfSigned issuers now use SHA-512 when signing with RSA keys 4096 bits and above, and SHA-384 when signing with RSA keys 3072 bits and above. If you were previously using a larger RSA key as a CA, be sure to check that your systems support the new hash algorithms. (#7368, @SgtCoDFish)
- Add CAInjectorMerging feature gate to the ca-injector, enabling this will change the behaviour of the ca-injector to merge in new CA certificates instead of outright replacing the existing one. (#7469, @ThatsMrTalbot)
- Added image pull secrets to deployments when service accounts aren't created (#7411, @TheHenrick)
- Added the ability to customize client ID when using username/password authentication for Venafi client (#7484, @ilyesAj)
- Helm: New value
webhook.extraEnvallows you to set custom environment variables in the webhook Pod. Helm: New valuecainjector.extraEnvallows you to set custom environment variables in the cainjector Pod. Helm: New valuestartupapicheck.extraEnvallows you to set custom environment variables in the startupapicheck Pod. (#7317, @wallrj) - Increase the amount of PEM data
pki.DecodeX509CertificateSetBytesis able to parse, to enable reading larger TLS trust bundles (#7464, @SgtCoDFish) - New configuration option tenantID for the AzureDNS provider when using managed identities with service principals. This enhancement allows users to specify the tenant ID when using managed identities, offering better flexibility in multi-tenant environments. (#7376, @jochenrichter)
- Promote the
UseDomainQualifiedFinalizerfeature to Beta. (#7488, @jsoref) - Allow JKS/PKCS12 keystore passwords to be set as literal values in Certificate resources, mutually exclusive with the existing passwordSecretRef field (#6657, @rquinio1A)
- Allow templating ServiceAccount annotations by running the built-in Helm
tplfunction on keys and values, to aid with workload identity configuration (#7501, @fcrespofastly) - Promote CA NameConstraints feature gate to Beta (enabled by default) (#7494, @tanujd11)
Documentation
- Add example for IPv6 in
--dns01-recursive-nameservers(#7367, @SgtCoDFish) - Updated the chart documentation to show
enableGatewayAPIin the config example. (#7354, @puerco)
Bug or Regression
- BUGFIX: A change in v1.16.0 caused cert-manager's ACME ClusterIssuer to look in the wrong namespace for resources required for the issuance (eg. credential Secrets). This is now fixed in v1.16.1+ and v1.17.0+ (#7339, @inteon)
- BUGFIX: Helm will now accept percentages for the
podDisruptionBudget.minAvailableandpodDisruptionBudget.maxAvailablevalues. (#7343, @inteon) - Fix ACME HTTP-01 solver for IPv6 endpoints (#7391, @Peac36)
- Fix the behavior of
renewBeforePercentageto comply with its spec (#7421, @adam-sroka) - Helm: allow
enabledto be set as a value to toggle cert-manager as a dependency. (#7350, @inteon) - SECURITY (low risk): Limit maximum allowed PEM size to prevent potential DoS in cert-manager controller from attacker-controlled PEM. See GHSA-r4pg-vg54-wxx4 (#7400, @SgtCoDFish)
- The Certificate object will no longer create CertificateRequest or Secret objects while being deleted (#7361, @ThatsMrTalbot)
- The issuer will now more quickly retry when its linked Secret is updated to fix an issue that caused a high back-off timeout. (#7455, @inteon)
- Upgrades Venafi vCert library fixing a bug which caused the RSA 3072 bit key size for TPP certificate enrollment to not work. (#7498, @inteon)
Other (Cleanup or Flake)
- ⚠️ Potentially BREAKING: Log messages that were not structured have now been replaced with structured logs. If you were matching on specific log strings, this could break your setup. (#7461, @inteon)
- DEPRECATION: The
ValidateCAAfeature gate is now deprecated, with removal scheduled for cert-manager 1.18. In 1.17, enabling this feature gate will print a warning. (#7491, @jsoref) - Remove
Neither --kubeconfig nor --master was specifiedwarning message when the controller and the webhook services boot (#7457, @Peac36) - Move 'live' DNS tests into a separate package to contain test flakiness and improve developer UX (#7530, @SgtCoDFish)
v1.16.4
v1.16.3
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
v1.16.3 is a patch release mainly focused around bumping dependencies to address reported CVEs: CVE-2024-45337 and CVE-2024-45338.
We don't believe that cert-manager is actually vulnerable; this release is instead intended to satisfy vulnerability scanners.
It also includes a bug fix to the new renewBeforePercentage field. If you were using renewBeforePercentage, see PR #7421 for more information.
Changes
Bug
- Bump
golang.org/x/netandgolang.org/x/cryptoto address CVE-2024-45337 and CVE-2024-45338 (#7485, @erikgb) - Fix the behaviour of
renewBeforePercentageto comply with its spec (#7441, @cert-manager-bot)
Other
- Bump go to 1.23.4 (#7489, @erikgb)
- Bump base images to latest available (#7508, @SgtCoDFish)
v1.16.2
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
This patch release of cert-manager 1.16 makes several changes to how PEM input is validated, adding maximum sizes appropriate to the type of PEM data which is being parsed.
This is to prevent an unacceptable slow-down in parsing specially crafted PEM data. The issue was found by Google's OSS-Fuzz project.
The issue is low severity; to exploit the PEM issue would require privileged access which would likely allow Denial-of-Service through other methods.
Note also that since most PEM data parsed by cert-manager comes from ConfigMap or Secret resources which have a max size limit of approximately 1MB, it's difficult to force cert-manager to parse large amounts of PEM data.
Further information is available in https://github.com/cert-manager/cert-manager/security/advisories/GHSA-r4pg-vg54-wxx4
In addition, the version of Go used to build cert-manager 1.16 was updated along with the base images.
Changes by Kind
Bug or Regression
- Set a maximum size for PEM inputs which cert-manager will accept to remove possibility of taking a long time to process an input (#7401, @SgtCoDFish)
Other (Cleanup or Flake)
- Bump go to 1.23.3 and bump base images to latest available (#7431, @SgtCoDFish)
v1.16.1
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
The cert-manager 1.16 release includes: new Helm chart features, more Prometheus metrics, memory optimizations, and various improvements and bug fixes for the ACME issuer and Venafi Issuer.
📖 Read the complete 1.16 release notes before upgrading.
📜Changes since v1.16.0
Bug or Regression
- BUGFIX: Helm schema validation: the new schema validation was too strict for the "global" section. Since the global section is shared across all charts and sub-charts, we must also allow unknown fields. (#7348,
@inteon) - BUGFIX: Helm will now accept percentages for the
podDisruptionBudget.minAvailableandpodDisruptionBudget.maxAvailablevalues. (#7345,@inteon) - Helm: allow
enabledto be set as a value to toggle cert-manager as a dependency. (#7356,@inteon) - BUGFIX: A change in
v1.16.0caused cert-manager's ACME ClusterIssuer to look in the wrong namespace for resources required for the issuance (e.g. credential Secrets). This is now fixed inv1.16.1. (#7342,@inteon)
v1.16.0
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
The cert-manager 1.16 release includes: new Helm chart features, more Prometheus metrics, memory optimizations, and various improvements and bug fixes for the ACME issuer and Venafi Issuer.
📖 Read the complete 1.16 release notes at cert-manager.io.
⚠️ Known issues
- Helm Chart: JSON schema prevents the chart being used as a sub-chart on Rancher RKE.
- ACME DNS01 ClusterIssuer fail while loading credentials from Secret resources.
❗ Breaking changes
- Helm schema validation may reject your existing Helm values files if they contain typos or unrecognized fields.
- Venafi Issuer may fail to renew certificates if the requested duration conflicts with the CA’s minimum or maximum policy settings in Venafi.
- Venafi Issuer may fail to renew Certificates if the issuer has been configured for TPP with username-password authentication.
📖 Read the complete 1.16 release notes at cert-manager.io.
📜 Changes since v1.15.0
📖 Read the complete 1.16 release notes at cert-manager.io.
Feature
- Add
SecretRefsupport for Venafi TPP issuer CA Bundle (#7036,@sankalp-at-gh) - Add
renewBeforePercentagealternative torenewBefore(#6987,@cbroglie) - Add a metrics server to the cainjector (#7194,
@wallrj) - Add a metrics server to the webhook (#7182,
@wallrj) - Add client certificate auth method for Vault issuer (#4330,
@joshmue) - Add process and go runtime metrics for controller (#6966,
@mindw) - Added
app.kubernetes.io/managed-by: cert-managerlabel to the cert-manager-webhook-ca Secret (#7154,@jrcichra) - Allow the user to specify a Pod template when using GatewayAPI HTTP01 solver, this mirrors the behavior when using the Ingress HTTP01 solver. (#7211,
@ThatsMrTalbot) - Create token request RBAC for the cert-manager ServiceAccount by default (#7213,
@Jasper-Ben) - Feature: Append cert-manager user-agent string to all AWS API requests, including IMDS and STS requests. (#7295,
@wallrj) - Feature: Log AWS SDK warnings and API requests at cert-manager debug level to help debug AWS Route53 problems in the field. (#7292,
@wallrj) - Feature: The Route53 DNS solver of the ACME Issuer will now use regional STS endpoints computed from the region that is supplied in the Issuer spec or in the
AWS_REGIONenvironment variable. Feature: The Route53 DNS solver of the ACME Issuer now uses the "ambient" region (AWS_REGIONorAWS_DEFAULT_REGION) ifissuer.spec.acme.solvers.dns01.route53.regionis empty; regardless of the flags--issuer-ambient-credentialsand--cluster-issuer-ambient-credentials. (#7299,@wallrj) - Helm: adds JSON schema validation for the Helm values. (#7069,
@inteon) - If the
--controllersflag only specifies disabled controllers, the default controllers are now enabled implicitly. AddeddisableAutoApprovalandapproveSignerNamesHelm chart options. (#7049,@inteon) - Make it easier to configure cert-manager using Helm by defaulting
config.apiVersionandconfig.kindwithin the Helm chart. (#7126,@ThatsMrTalbot) - Now passes down specified duration to Venafi client instead of using the CA default only. (#7104,
@Guitarkalle) - Reduce the memory usage of
cainjector, by only caching the metadata of Secret resources. Reduce the load on the K8S API server whencainjectorstarts up, by only listing the metadata of Secret resources. (#7161,@wallrj) - The Route53 DNS01 solver of the ACME Issuer can now detect the AWS region from the
AWS_REGIONandAWS_DEFAULT_REGIONenvironment variables, which is set by the IAM for Service Accounts (IRSA) webhook and by the Pod Identity webhook. Theissuer.spec.acme.solvers.dns01.route53.regionfield is now optional. The API documentation of theregionfield has been updated to explain when and how the region value is used. (#7287,@wallrj) - Venafi TPP issuer can now be used with a username & password combination with OAuth. Fixes #4653.
Breaking: cert-manager will no longer use the API Key authentication method which was deprecated in 20.2 and since removed in 24.1 of TPP. (#7084,
@hawksight) - You can now configure the pod security context of HTTP-01 solver pods. (#5373,
@aidy) - Helm: New value
webhook.extraEnv, allows you to set custom environment variables in the webhook Pod. Helm: New valuecainjector.extraEnv, allows you to set custom environment variables in the cainjector Pod. Helm: New valuestartupapicheck.extraEnv, allows you to set custom environment variables in the startupapicheck Pod. (#7319,@wallrj)
Bug or Regression
- Adds support (behind a flag) to use a domain qualified finalizer. If the feature is enabled (which is not by default), it should prevent Kubernetes from reporting:
metadata.finalizers: "finalizer.acme.cert-manager.io": prefer a domain-qualified finalizer name to avoid accidental conflicts with other finalizer writers(#7273,@jsoref) - BUGFIX Route53: explicitly set the
aws-globalSTS region which is now required by thegithub.com/aws/aws-sdk-go-v2library. (#7108,@inteon) - BUGFIX: fix issue that caused Vault issuer to not retry signing when an error was encountered. (#7105,
@inteon) - BUGFIX: the dynamic certificate source used by the webhook TLS server failed to detect a root CA approaching expiration, due to a calculation error. This will cause the webhook TLS server to fail renewing its CA certificate. Please upgrade before the expiration of this CA certificate is reached. (#7230,
@inteon) - Bugfix: Prevent aggressive Route53 retries caused by IRSA authentication failures by removing the Amazon Request ID from errors wrapped by the default credential cache. (#7291,
@wallrj) - Bugfix: Prevent aggressive Route53 retries caused by STS authentication failures by removing the Amazon Request ID from STS errors. (#7259,
@wallrj) - Bump
grpc-goto fixGHSA-xr7q-jx4m-x55m(#7164,@SgtCoDFish) - Bump the
go-retryablehttpdependency to fixCVE-2024-6104(#7125,@SgtCoDFish) - Fix Azure DNS causing panics whenever authentication error happens (#7177,
@eplightning) - Fix incorrect indentation of
endpointAdditionalPropertiesin thePodMonitortemplate of the Helm chart (#7190,@wallrj) - Fixes ACME HTTP01 challenge behavior when using Gateway API to prevent unbounded creation of HTTPRoute resources (#7178,
@miguelvr) - Handle errors arising from challenges missing from the ACME server (#7202,
@bdols) - Helm BUGFIX: the cainjector ConfigMap was not mounted in the cainjector deployment. (#7052,
@inteon) - Improve the startupapicheck: validate that the validating and mutating webhooks are doing their job. (#7057,
@inteon) - The
KeyUsagesX.509 extension is no longer added when there are no key usages set (in accordance to RFC 5280 Section 4.2.1.3) (#7250,@inteon) - Update
github.com/Azure/azure-sdk-for-go/sdk/azidentityto addressCVE-2024-35255(#7087,@dependabot[bot])
Other (Cleanup or Flake)
- Old API versions were removed from the codebase.
Removed:
(acme.)cert-manager.io/v1alpha2
(acme.)cert-manager.io/v1alpha3
(acme.)cert-manager.io/v1beta1 (#7278,
@inteon) - Upgrading to client-go
v0.31.0removes a lot of noisyreflector.go: unable to sync list result: internal error: cannot cast object DeletedFinalStateUnknownerrors from logs. (#7237,@inteon) - Bump Go to
v1.23.2(#7324,@cert-manager-bot)
v1.15.5
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
cert-manager v1.15.5 contains simple dependency bumps to address reported CVEs (CVE-2024-45337 and CVE-2024-45338).
We don't believe that cert-manager is actually vulnerable; this release is instead intended to satisfy vulnerability scanners.
Changes
Bug or Regression
Other (Cleanup or Flake)
- Bump to go 1.22.10 (#7507, @SgtCoDFish)
v1.15.4
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
This patch release of cert-manager 1.15 makes several changes to how PEM input is validated, adding maximum sizes appropriate to the type of PEM data which is being parsed.
This is to prevent an unacceptable slow-down in parsing specially crafted PEM data. The issue was found by Google's OSS-Fuzz project.
The issue is low severity; to exploit the PEM issue would require privileged access which would likely allow Denial-of-Service through other methods.
Note also that since most PEM data parsed by cert-manager comes from ConfigMap or Secret resources which have a max size limit of approximately 1MB, it's difficult to force cert-manager to parse large amounts of PEM data.
Further information is available in https://github.com/cert-manager/cert-manager/security/advisories/GHSA-r4pg-vg54-wxx4
In addition, the version of Go used to build cert-manager 1.15 was updated along with the base images, and a Route53 bug fix was backported.
Changes by Kind
Bug or Regression
- Bugfix: Prevent aggressive Route53 retries caused by STS authentication failures by removing the Amazon Request ID from STS errors. (#7261, @cert-manager-bot)
- Set a maximum size for PEM inputs which cert-manager will accept to remove possibility of taking a long time to process an input (#7402, @SgtCoDFish)
Other (Cleanup or Flake)
- Bump go to 1.22.9 (#7424, @SgtCoDFish)
- Upgrade Go to 1.22.8, the latest available patch release (#7406, @SgtCoDFish)
v1.15.3
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
🔗 See v1.15.0 for more information about cert-manager 1.15 and read-before-upgrade info.
📜 Changes since v1.15.2
Bug or Regression
- BUGFIX: the dynamic certificate source used by the webhook TLS server failed to detect a root CA approaching expiration, due to a calculation error. This will cause the webhook TLS server to fail renewing its CA certificate. Please upgrade before the expiration of this CA certificate is reached. (#7232, @cert-manager-bot)
v1.15.2
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
🔗 See v1.15.0 for more information about cert-manager 1.15 and read-before-upgrade info.
📜 Changes since v1.15.1
Bug or Regression
- BUGFIX
route53: explicitly set theaws-globalSTS region which is now required by thegithub.com/aws/aws-sdk-go-v2library. (#7189,@cert-manager-bot) - Bump
grpc-goto fixGHSA-xr7q-jx4m-x55m(#7167,@SgtCoDFish) - Fix Azure DNS causing panics whenever authentication error happens (#7188,
@cert-manager-bot) - Fix incorrect value and indentation of
endpointAdditionalPropertiesin thePodMonitortemplate of the Helm chart (#7191,@inteon) - Fixes ACME HTTP01 challenge behavior when using Gateway API to prevent unbounded creation of
HTTPRouteresources (#7186,@cert-manager-bot) - Upgrade
golangfrom1.22.3to1.22.5(#7165,@github-actions)
v1.15.1
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
🔗 See v1.15.0 for more information about cert-manager 1.15 and read-before-upgrade info.
📜 Changes since v1.15.0
Bug or Regression
- BUGFIX: fix issue that caused Vault issuer to not retry signing when an error was encountered. (#7111, @inteon)
Other (Cleanup or Flake)
- Update github.com/Azure/azure-sdk-for-go/sdk/azidentity to address CVE-2024-35255 (#7092, @ThatsMrTalbot)
- Bump the go-retryablehttp dependency to fix CVE-2024-6104 (#7130, @SgtCoDFish)
v1.15.0
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
cert-manager 1.15 promotes several features to beta, including GatewayAPI support (ExperimentalGatewayAPISupport), the ability to provide a subject in the Certificate that will be used literally in the CertificateSigningRequest (LiteralCertificateSubject) and the outputting of additional certificate formats (AdditionalCertificateOutputFormats).
[!NOTE]
The
cmctlbinary have been moved to https://github.com/cert-manager/cmctl/releases. For the startupapicheck Job you should update references to point atquay.io/jetstack/cert-manager-startupapicheck
[!NOTE]
From this release, the Helm chart will no longer uninstall the CRDs when the chart is uninstalled. If you want the CRDs to be removed on uninstall use
crds.keep=falsewhen installing the Helm chart.
Community
Thanks again to all open-source contributors with commits in this release, including: @Pionerd, @SgtCoDFish, @ThatsMrTalbot, @andrey-dubnik, @bwaldrep, @eplightning, @erikgb, @findnature, @gplessis, @import-shiburin, @inteon, @jkroepke, @lunarwhite, @mangeshhambarde, @pwhitehead-splunk & @rodrigorfk, @wallrj.
Thanks also to the following cert-manager maintainers for their contributions during this release: @SgtCoDFish, @SpectralHiss, @ThatsMrTalbot, @hawksight, @inteon, @maelvls & @wallrj.
Equally thanks to everyone who provided feedback, helped users and raised issues on GitHub and Slack and joined our meetings!
Thanks also to the CNCF, which provides resources and support, and to the AWS open source team for being good community members and for their maintenance of the PrivateCA Issuer.
In addition, massive thanks to Venafi for contributing developer time and resources towards the continued maintenance of cert-manager projects.
Changes by Kind
Feature
- GatewayAPI support has graduated to Beta. Add the
--enable-gateway-apiflag to enable the integration. (#6961, @ThatsMrTalbot) - Add support to specify a custom key alias in a JKS Keystore (#6807, @bwaldrep)
- Add the ability to communicate with Vault via mTLS when strict client certificates is enabled at Vault server side (#6614, @rodrigorfk)
- Added option to provide additional audiences in the service account auth section for vault (#6718, @andrey-dubnik)
- Venafi Issuer now sends a cert-manager HTTP User-Agent header in all Venafi Rest API requests.
For example:
cert-manager-certificaterequests-issuer-venafi/v1.15.0+(linux/amd64)+cert-manager/ef068a59008f6ed919b98a7177921ddc9e297200. (#6865, @wallrj) - Add hint to validation error message to help users of external issuers more easily fix the issue if they specify a Kind but forget the Group (#6913, @SgtCoDFish)
- Add support for numeric OID types in LiteralSubject. Eg. "1.2.3.4=String Value" (#6775, @inteon)
- Promote the
LiteralCertificateSubjectfeature to Beta. (#7030, @inteon) - Promoted the AdditionalCertificateOutputFormats feature gate to Beta (enabled by default). (#6970, @erikgb)
- The Helm chart now allows you to supply
extraObjects; a list of yaml manifests which will helm will install and uninstall with the cert-manager manifests. (#6424, @gplessis) - Update the Route53 provider to support fetching credentials using AssumeRoleWithWebIdentity (#6878, @pwhitehead-splunk)
- Helm can now add optional hostAliases to cert-manager Pod to allow the DNS self-check to pass in custom scenarios. (#6456, @Pionerd)
- Added a new Ingress annotation for copying specific Ingress annotations to Certificate's secretTemplate (#6839, @mangeshhambarde)
- Added option to define additional token audiences for the Vault Kubernetes auth (#6744, @andrey-dubnik)
- Allow
cert-manager.io/allow-direct-injectionin annotations (#6801, @jkroepke)
Design
- Remove repetitive words (#6949, @findnature)
Bug or Regression
- BUGFIX: Fixes issue with JSON-logging, where only a subset of the log messages were output as JSON. (#6779, @inteon)
- BUGFIX: JKS and PKCS12 stores now contain the full set of CAs specified by an issuer (#6806, @bwaldrep)
- BUGFIX: cainjector leaderelection flag/config option defaults are missing (#6816, @inteon)
- BUGFIX: cert-manager issuers incorrectly copied the critical flag from the CSR instead of re-calculating that field themselves. (#6724, @inteon)
- Breaking Change: Fixed unintended certificate chain is used if
preferredChainis configured. (#6755, @import-shiburin) - Bugfix: LiteralSubjects with a #= value can result in memory issues due to faulty BER parser (github.com/go-asn1-ber/asn1-ber). (#6770, @inteon)
- DigitalOcean: Ensure that only TXT records are considered for deletion when cleaning up after an ACME challenge (#6875, @SgtCoDFish)
- Fix backwards incompatible removal of default prometheus Service resource. (#6699, @inteon)
- Fix broken cainjector image value in Helm chart (#6692, @SgtCoDFish)
- Helm: Fix a bug in the logic that differentiates between 0 and an empty value. (#6713, @inteon)
- Make sure the Azure SDK error messages are stable. (#6676, @inteon)
- When using the literalSubject on a Certificate, the webhook validation for the common name now also points to the literalSubject. (#6767, @lunarwhite)
- Bump golang.org/x/net to fix CVE-2023-45288 (#6929, @SgtCoDFish)
- Fix ACME issuer being stuck waiting for DNS propagation when using Azure DNS with multiple instances issuing for the same FQDN (#6351, @eplightning)
- Fix cainjector ConfigMap not mounted in the cainjector deployment. (#7055, @inteon)
- Added
disableAutoApprovalandapproveSignerNamesHelm chart options. (#7054, @inteon)
Other (Cleanup or Flake)
- ⚠️ Possibly breaking: Helm will now keep the CRDs when you uninstall cert-manager by default to prevent accidental data loss. (#6760, @inteon)
- New
crds.keepandcrds.enabledHelm options can now be used instead of theinstallCRDsoption. (#6760, @inteon) - Bump base images (#6840, @inteon)
- Bump github.com/go-jose/go-jose to v3.0.3 to fix CVE-2024-28180 (#6854, @wallrj)
- Removed deprecated util functions that have been replaced by the
slicesandk8s.io/apimachinery/pkg/utilpackages. Removed deprecated CSR functions which have been replaced with other functions in thepkg/util/pkipackage. (#6730, @inteon) - Upgrade go to 1.21.8: fixes CVE-2024-24783 (#6823, @inteon)
- Upgrade go to latest version 1.22.1 (#6831, @inteon)
- Upgrade google.golang.org/protobuf: fixing GO-2024-2611 (#6827, @inteon)
-
cmctlandkubectl cert-mangerhave been moved to the https://github.com/cert-manager/cmctl repo and will be versioned separately starting with cmctl v2.0.0 (#6663, @inteon) - Graduate the 'DisallowInsecureCSRUsageDefinition' feature gate to GA. (part 2) (#6963, @inteon)
- Remove deprecated
pkg/util/pki/ParseSubjectStringToRawDERBytesfunction. (#6994, @inteon) - Upgrade Kind to v0.23.0 and update supported node image digests (#7020, @github-actions[bot])
- If the
--controllersflag only specifies disabled controllers, the default controllers are now enabled implicitly. (#7054, @inteon) - Upgrade to Go 1.22.3, fixing
GO-2024-2824. (#6996, @github-actions[bot])
v1.14.7
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
📜 Changes since v1.14.6
Bugfixes
- BUGFIX: fix issue that caused Vault issuer to not retry signing when an error was encountered. (#7113, @cert-manager-bot)
Other (Cleanup or Flake)
- Update github.com/Azure/azure-sdk-for-go/sdk/azidentity to address CVE-2024-35255 (#7093, @ThatsMrTalbot)
v1.14.6
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
📜 Changes since v1.14.5
Other (Cleanup or Flake)
- Upgrade Go to 1.21.10, fixing GO-2024-2824 (https://github.com/advisories/GHSA-2jwv-jmq4-4j3r). (#7008, @inteon)
- Helm: the cainjector ConfigMap was not mounted in the cainjector deployment. (#7053, @cert-manager-bot)
- Updated Go to 1.21.11 bringing in security fixes for archive/zip and net/netip. (#7076, @ThatsMrTalbot)
v1.14.5
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
v1.14.5 fixes a bug in the DigitalOcean DNS-01 provider which could cause incorrect DNS records to be deleted when using a domain with a CNAME. Special thanks to @BobyMCbobs for reporting this issue and testing the fix!
It also patches CVE-2023-45288.
📜 Changes since v1.14.4
- ACME Issuer (Let's Encrypt): wrong certificate chain may be used if
preferredChainis configured: see 1.14 release notes for more information.
Changes
Bug or Regression
- DigitalOcean: Ensure that only TXT records are considered for deletion when cleaning up after an ACME challenge (#6893 , @SgtCoDFish)
- Bump golang.org/x/net to address CVE-2023-45288 (#6931 , @SgtCoDFish)
v1.14.4
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
cert-manager 1.14 brings a variety of features, security improvements and bug fixes, including: support fo
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 becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.10.0
@@ -836,9 +836,11 @@
serviceAccountName: cert-manager-cainjector
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.10.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +852,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -888,9 +893,11 @@
serviceAccountName: cert-manager
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.10.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -904,6 +911,9 @@
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -956,20 +966,27 @@
serviceAccountName: cert-manager-webhook
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.10.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1009,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1187,9 +1207,11 @@
serviceAccountName: cert-manager-startupapicheck
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.10.0"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1219,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.10.1
@@ -836,9 +836,11 @@
serviceAccountName: cert-manager-cainjector
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.10.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +852,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -888,9 +893,11 @@
serviceAccountName: cert-manager
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.10.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -904,6 +911,9 @@
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -956,20 +966,27 @@
serviceAccountName: cert-manager-webhook
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.10.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1009,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1187,9 +1207,11 @@
serviceAccountName: cert-manager-startupapicheck
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.10.1"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1219,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.10.2
@@ -836,9 +836,11 @@
serviceAccountName: cert-manager-cainjector
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.10.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +852,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -888,9 +893,11 @@
serviceAccountName: cert-manager
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.10.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -904,6 +911,9 @@
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -956,20 +966,27 @@
serviceAccountName: cert-manager-webhook
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.10.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1009,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1187,9 +1207,11 @@
serviceAccountName: cert-manager-startupapicheck
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.10.2"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1219,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.11.0
@@ -51,6 +51,7 @@
app.kubernetes.io/name: webhook
app.kubernetes.io/instance: cert-manager
app.kubernetes.io/component: "webhook"
+ app.kubernetes.io/managed-by: Helm
data:
---
# Source: cert-manager/templates/cainjector-rbac.yaml
@@ -836,9 +837,11 @@
serviceAccountName: cert-manager-cainjector
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.11.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +853,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -888,22 +894,29 @@
serviceAccountName: cert-manager
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.11.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.11.0
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -956,20 +969,27 @@
serviceAccountName: cert-manager-webhook
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.11.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1012,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1187,9 +1210,11 @@
serviceAccountName: cert-manager-startupapicheck
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.11.0"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1222,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.12.1
@@ -51,6 +51,7 @@
app.kubernetes.io/name: webhook
app.kubernetes.io/instance: cert-manager
app.kubernetes.io/component: "webhook"
+ app.kubernetes.io/managed-by: Helm
data:
---
# Source: cert-manager/templates/cainjector-rbac.yaml
@@ -76,13 +77,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -836,9 +837,11 @@
serviceAccountName: cert-manager-cainjector
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.12.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +853,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -888,22 +894,32 @@
serviceAccountName: cert-manager
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.12.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.12.1
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -956,20 +972,27 @@
serviceAccountName: cert-manager-webhook
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.12.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1015,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1187,9 +1213,11 @@
serviceAccountName: cert-manager-startupapicheck
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.12.1"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1225,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.12.2
@@ -51,6 +51,7 @@
app.kubernetes.io/name: webhook
app.kubernetes.io/instance: cert-manager
app.kubernetes.io/component: "webhook"
+ app.kubernetes.io/managed-by: Helm
data:
---
# Source: cert-manager/templates/cainjector-rbac.yaml
@@ -76,13 +77,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -836,9 +837,11 @@
serviceAccountName: cert-manager-cainjector
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.12.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +853,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -888,22 +894,32 @@
serviceAccountName: cert-manager
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.12.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.12.2
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -956,20 +972,27 @@
serviceAccountName: cert-manager-webhook
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.12.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1015,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1187,9 +1213,11 @@
serviceAccountName: cert-manager-startupapicheck
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.12.2"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1225,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.12.3
@@ -51,6 +51,7 @@
app.kubernetes.io/name: webhook
app.kubernetes.io/instance: cert-manager
app.kubernetes.io/component: "webhook"
+ app.kubernetes.io/managed-by: Helm
data:
---
# Source: cert-manager/templates/cainjector-rbac.yaml
@@ -76,13 +77,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -836,9 +837,11 @@
serviceAccountName: cert-manager-cainjector
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.12.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +853,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -888,22 +894,32 @@
serviceAccountName: cert-manager
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.12.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.12.3
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -956,20 +972,27 @@
serviceAccountName: cert-manager-webhook
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.12.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1015,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1187,9 +1213,11 @@
serviceAccountName: cert-manager-startupapicheck
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.12.3"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1225,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.12.4
@@ -51,6 +51,7 @@
app.kubernetes.io/name: webhook
app.kubernetes.io/instance: cert-manager
app.kubernetes.io/component: "webhook"
+ app.kubernetes.io/managed-by: Helm
data:
---
# Source: cert-manager/templates/cainjector-rbac.yaml
@@ -76,13 +77,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -836,9 +837,11 @@
serviceAccountName: cert-manager-cainjector
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.12.4"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +853,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -888,22 +894,32 @@
serviceAccountName: cert-manager
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.12.4"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.12.4
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -956,20 +972,27 @@
serviceAccountName: cert-manager-webhook
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.12.4"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1015,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1187,9 +1213,11 @@
serviceAccountName: cert-manager-startupapicheck
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.12.4"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1225,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.13.0
@@ -40,6 +40,20 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
+# Source: cert-manager/templates/controller-config.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: cert-manager
+ namespace: default
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+data:
+---
# Source: cert-manager/templates/webhook-config.yaml
apiVersion: v1
kind: ConfigMap
@@ -51,6 +65,7 @@
app.kubernetes.io/name: webhook
app.kubernetes.io/instance: cert-manager
app.kubernetes.io/component: "webhook"
+ app.kubernetes.io/managed-by: Helm
data:
---
# Source: cert-manager/templates/cainjector-rbac.yaml
@@ -76,13 +91,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +326,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +353,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -834,11 +867,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.13.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +886,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +925,35 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.13.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.13.0
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -954,22 +1004,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.13.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1050,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1062,10 +1123,6 @@
operator: "NotIn"
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1185,11 +1242,14 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.13.0"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1257,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.13.1
@@ -40,6 +40,20 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
+# Source: cert-manager/templates/controller-config.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: cert-manager
+ namespace: default
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+data:
+---
# Source: cert-manager/templates/webhook-config.yaml
apiVersion: v1
kind: ConfigMap
@@ -51,6 +65,7 @@
app.kubernetes.io/name: webhook
app.kubernetes.io/instance: cert-manager
app.kubernetes.io/component: "webhook"
+ app.kubernetes.io/managed-by: Helm
data:
---
# Source: cert-manager/templates/cainjector-rbac.yaml
@@ -76,13 +91,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +326,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +353,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -834,11 +867,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.13.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +886,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +925,35 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.13.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.13.1
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -954,22 +1004,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.13.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1050,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1062,10 +1123,6 @@
operator: "NotIn"
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1185,11 +1242,14 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.13.1"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1257,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.13.2
@@ -40,6 +40,20 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
+# Source: cert-manager/templates/controller-config.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: cert-manager
+ namespace: default
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+data:
+---
# Source: cert-manager/templates/webhook-config.yaml
apiVersion: v1
kind: ConfigMap
@@ -51,6 +65,7 @@
app.kubernetes.io/name: webhook
app.kubernetes.io/instance: cert-manager
app.kubernetes.io/component: "webhook"
+ app.kubernetes.io/managed-by: Helm
data:
---
# Source: cert-manager/templates/cainjector-rbac.yaml
@@ -76,13 +91,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +326,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +353,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -834,11 +867,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.13.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +886,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +925,35 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.13.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.13.2
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -954,22 +1004,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.13.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1050,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1062,10 +1123,6 @@
operator: "NotIn"
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1185,11 +1242,14 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.13.2"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1257,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.13.3
@@ -40,6 +40,20 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
+# Source: cert-manager/templates/controller-config.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: cert-manager
+ namespace: default
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+data:
+---
# Source: cert-manager/templates/webhook-config.yaml
apiVersion: v1
kind: ConfigMap
@@ -51,6 +65,7 @@
app.kubernetes.io/name: webhook
app.kubernetes.io/instance: cert-manager
app.kubernetes.io/component: "webhook"
+ app.kubernetes.io/managed-by: Helm
data:
---
# Source: cert-manager/templates/cainjector-rbac.yaml
@@ -76,13 +91,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +326,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +353,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -834,11 +867,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.13.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +886,9 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +925,35 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.13.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.13.3
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -954,22 +1004,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.13.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1050,9 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1062,10 +1123,6 @@
operator: "NotIn"
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1185,11 +1242,14 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-ctl:v1.13.3"
imagePullPolicy: IfNotPresent
args:
- check
@@ -1197,5 +1257,8 @@
- --wait=1m
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.14.1
@@ -40,19 +40,6 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
-# Source: cert-manager/templates/webhook-config.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cert-manager-webhook
- namespace: default
- labels:
- app: webhook
- app.kubernetes.io/name: webhook
- app.kubernetes.io/instance: cert-manager
- app.kubernetes.io/component: "webhook"
-data:
----
# Source: cert-manager/templates/cainjector-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -76,13 +63,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +298,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +325,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -819,6 +824,7 @@
app.kubernetes.io/managed-by: Helm
spec:
replicas: 1
+ revisionHistoryLimit:
selector:
matchLabels:
app.kubernetes.io/name: cainjector
@@ -834,11 +840,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.14.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +859,10 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
---
@@ -867,6 +880,7 @@
app.kubernetes.io/managed-by: Helm
spec:
replicas: 1
+ revisionHistoryLimit:
selector:
matchLabels:
app.kubernetes.io/name: cert-manager
@@ -886,24 +900,36 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.14.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.14.1
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -916,6 +942,19 @@
requests:
cpu: 25m
memory: 263M
+ # LivenessProbe settings are based on those used for the Kubernetes
+ # controller-manager. See:
+ # https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245
+ livenessProbe:
+ httpGet:
+ port: http-healthz
+ path: /livez
+ scheme: HTTP
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ timeoutSeconds: 15
+ successThreshold: 1
+ failureThreshold: 8
nodeSelector:
kubernetes.io/os: linux
worker: true
@@ -939,6 +978,7 @@
app.kubernetes.io/managed-by: Helm
spec:
replicas: 1
+ revisionHistoryLimit:
selector:
matchLabels:
app.kubernetes.io/name: webhook
@@ -954,22 +994,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.14.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1040,10 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1018,20 +1070,18 @@
rules:
- apiGroups:
- "cert-manager.io"
- - "acme.cert-manager.io"
apiVersions:
- "v1"
operations:
- CREATE
- - UPDATE
resources:
- - "*/*"
+ - "certificaterequests"
admissionReviewVersions: ["v1"]
# This webhook only accepts v1 cert-manager resources.
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
# Only include 'sideEffects' field in Kubernetes 1.12+
sideEffects: None
@@ -1058,14 +1108,10 @@
- name: webhook.cert-manager.io
namespaceSelector:
matchExpressions:
- - key: "cert-manager.io/disable-validation"
- operator: "NotIn"
+ - key: cert-manager.io/disable-validation
+ operator: NotIn
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1082,7 +1128,7 @@
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
sideEffects: None
clientConfig:
@@ -1185,17 +1231,25 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-startupapicheck:v1.14.1"
imagePullPolicy: IfNotPresent
args:
- check
- api
- --wait=1m
+ - -v
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.14.2
@@ -40,19 +40,6 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
-# Source: cert-manager/templates/webhook-config.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cert-manager-webhook
- namespace: default
- labels:
- app: webhook
- app.kubernetes.io/name: webhook
- app.kubernetes.io/instance: cert-manager
- app.kubernetes.io/component: "webhook"
-data:
----
# Source: cert-manager/templates/cainjector-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -76,13 +63,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +298,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +325,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -834,11 +839,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.14.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +858,10 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +898,36 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.14.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.14.2
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -916,6 +940,19 @@
requests:
cpu: 25m
memory: 263M
+ # LivenessProbe settings are based on those used for the Kubernetes
+ # controller-manager. See:
+ # https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245
+ livenessProbe:
+ httpGet:
+ port: http-healthz
+ path: /livez
+ scheme: HTTP
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ timeoutSeconds: 15
+ successThreshold: 1
+ failureThreshold: 8
nodeSelector:
kubernetes.io/os: linux
worker: true
@@ -954,22 +991,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.14.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1037,10 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1018,20 +1067,18 @@
rules:
- apiGroups:
- "cert-manager.io"
- - "acme.cert-manager.io"
apiVersions:
- "v1"
operations:
- CREATE
- - UPDATE
resources:
- - "*/*"
+ - "certificaterequests"
admissionReviewVersions: ["v1"]
# This webhook only accepts v1 cert-manager resources.
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
# Only include 'sideEffects' field in Kubernetes 1.12+
sideEffects: None
@@ -1058,14 +1105,10 @@
- name: webhook.cert-manager.io
namespaceSelector:
matchExpressions:
- - key: "cert-manager.io/disable-validation"
- operator: "NotIn"
+ - key: cert-manager.io/disable-validation
+ operator: NotIn
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1082,7 +1125,7 @@
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
sideEffects: None
clientConfig:
@@ -1185,17 +1228,25 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-startupapicheck:v1.14.2"
imagePullPolicy: IfNotPresent
args:
- check
- api
- --wait=1m
+ - -v
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.14.3
@@ -40,19 +40,6 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
-# Source: cert-manager/templates/webhook-config.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cert-manager-webhook
- namespace: default
- labels:
- app: webhook
- app.kubernetes.io/name: webhook
- app.kubernetes.io/instance: cert-manager
- app.kubernetes.io/component: "webhook"
-data:
----
# Source: cert-manager/templates/cainjector-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -76,13 +63,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +298,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +325,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -834,11 +839,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.14.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +858,10 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +898,36 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.14.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.14.3
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -916,6 +940,19 @@
requests:
cpu: 25m
memory: 263M
+ # LivenessProbe settings are based on those used for the Kubernetes
+ # controller-manager. See:
+ # https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245
+ livenessProbe:
+ httpGet:
+ port: http-healthz
+ path: /livez
+ scheme: HTTP
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ timeoutSeconds: 15
+ successThreshold: 1
+ failureThreshold: 8
nodeSelector:
kubernetes.io/os: linux
worker: true
@@ -954,22 +991,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.14.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1037,10 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1018,20 +1067,18 @@
rules:
- apiGroups:
- "cert-manager.io"
- - "acme.cert-manager.io"
apiVersions:
- "v1"
operations:
- CREATE
- - UPDATE
resources:
- - "*/*"
+ - "certificaterequests"
admissionReviewVersions: ["v1"]
# This webhook only accepts v1 cert-manager resources.
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
# Only include 'sideEffects' field in Kubernetes 1.12+
sideEffects: None
@@ -1058,14 +1105,10 @@
- name: webhook.cert-manager.io
namespaceSelector:
matchExpressions:
- - key: "cert-manager.io/disable-validation"
- operator: "NotIn"
+ - key: cert-manager.io/disable-validation
+ operator: NotIn
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1082,7 +1125,7 @@
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
sideEffects: None
clientConfig:
@@ -1185,17 +1228,25 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-startupapicheck:v1.14.3"
imagePullPolicy: IfNotPresent
args:
- check
- api
- --wait=1m
+ - -v
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.14.4
@@ -40,19 +40,6 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
-# Source: cert-manager/templates/webhook-config.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cert-manager-webhook
- namespace: default
- labels:
- app: webhook
- app.kubernetes.io/name: webhook
- app.kubernetes.io/instance: cert-manager
- app.kubernetes.io/component: "webhook"
-data:
----
# Source: cert-manager/templates/cainjector-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -76,13 +63,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +298,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +325,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -834,11 +839,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.14.4"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +858,10 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +898,36 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.14.4"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.14.4
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -916,6 +940,19 @@
requests:
cpu: 25m
memory: 263M
+ # LivenessProbe settings are based on those used for the Kubernetes
+ # controller-manager. See:
+ # https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245
+ livenessProbe:
+ httpGet:
+ port: http-healthz
+ path: /livez
+ scheme: HTTP
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ timeoutSeconds: 15
+ successThreshold: 1
+ failureThreshold: 8
nodeSelector:
kubernetes.io/os: linux
worker: true
@@ -954,22 +991,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.14.4"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1037,10 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1018,20 +1067,18 @@
rules:
- apiGroups:
- "cert-manager.io"
- - "acme.cert-manager.io"
apiVersions:
- "v1"
operations:
- CREATE
- - UPDATE
resources:
- - "*/*"
+ - "certificaterequests"
admissionReviewVersions: ["v1"]
# This webhook only accepts v1 cert-manager resources.
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
# Only include 'sideEffects' field in Kubernetes 1.12+
sideEffects: None
@@ -1058,14 +1105,10 @@
- name: webhook.cert-manager.io
namespaceSelector:
matchExpressions:
- - key: "cert-manager.io/disable-validation"
- operator: "NotIn"
+ - key: cert-manager.io/disable-validation
+ operator: NotIn
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1082,7 +1125,7 @@
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
sideEffects: None
clientConfig:
@@ -1185,17 +1228,25 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-startupapicheck:v1.14.4"
imagePullPolicy: IfNotPresent
args:
- check
- api
- --wait=1m
+ - -v
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.14.5
@@ -40,19 +40,6 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
-# Source: cert-manager/templates/webhook-config.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cert-manager-webhook
- namespace: default
- labels:
- app: webhook
- app.kubernetes.io/name: webhook
- app.kubernetes.io/instance: cert-manager
- app.kubernetes.io/component: "webhook"
-data:
----
# Source: cert-manager/templates/cainjector-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -76,13 +63,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +298,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +325,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -834,11 +839,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.14.5"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +858,10 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +898,36 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.14.5"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.14.5
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -916,6 +940,19 @@
requests:
cpu: 25m
memory: 263M
+ # LivenessProbe settings are based on those used for the Kubernetes
+ # controller-manager. See:
+ # https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245
+ livenessProbe:
+ httpGet:
+ port: http-healthz
+ path: /livez
+ scheme: HTTP
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ timeoutSeconds: 15
+ successThreshold: 1
+ failureThreshold: 8
nodeSelector:
kubernetes.io/os: linux
worker: true
@@ -954,22 +991,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.14.5"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1037,10 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1018,20 +1067,18 @@
rules:
- apiGroups:
- "cert-manager.io"
- - "acme.cert-manager.io"
apiVersions:
- "v1"
operations:
- CREATE
- - UPDATE
resources:
- - "*/*"
+ - "certificaterequests"
admissionReviewVersions: ["v1"]
# This webhook only accepts v1 cert-manager resources.
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
# Only include 'sideEffects' field in Kubernetes 1.12+
sideEffects: None
@@ -1058,14 +1105,10 @@
- name: webhook.cert-manager.io
namespaceSelector:
matchExpressions:
- - key: "cert-manager.io/disable-validation"
- operator: "NotIn"
+ - key: cert-manager.io/disable-validation
+ operator: NotIn
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1082,7 +1125,7 @@
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
sideEffects: None
clientConfig:
@@ -1185,17 +1228,25 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-startupapicheck:v1.14.5"
imagePullPolicy: IfNotPresent
args:
- check
- api
- --wait=1m
+ - -v
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.15.0
@@ -40,19 +40,6 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
-# Source: cert-manager/templates/webhook-config.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cert-manager-webhook
- namespace: default
- labels:
- app: webhook
- app.kubernetes.io/name: webhook
- app.kubernetes.io/instance: cert-manager
- app.kubernetes.io/component: "webhook"
-data:
----
# Source: cert-manager/templates/cainjector-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -76,13 +63,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +298,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +325,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -369,7 +374,9 @@
- apiGroups: ["cert-manager.io"]
resources: ["signers"]
verbs: ["approve"]
- resourceNames: ["issuers.cert-manager.io/*", "clusterissuers.cert-manager.io/*"]
+ resourceNames:
+ - "issuers.cert-manager.io/*"
+ - "clusterissuers.cert-manager.io/*"
---
# Source: cert-manager/templates/rbac.yaml
# Permission to:
@@ -834,11 +841,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.15.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +860,10 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +900,36 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.15.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.15.0
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -916,6 +942,19 @@
requests:
cpu: 25m
memory: 263M
+ # LivenessProbe settings are based on those used for the Kubernetes
+ # controller-manager. See:
+ # https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245
+ livenessProbe:
+ httpGet:
+ port: http-healthz
+ path: /livez
+ scheme: HTTP
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ timeoutSeconds: 15
+ successThreshold: 1
+ failureThreshold: 8
nodeSelector:
kubernetes.io/os: linux
worker: true
@@ -954,22 +993,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.15.0"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1039,10 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1000,6 +1051,37 @@
nodeSelector:
kubernetes.io/os: linux
---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+#
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
# Source: cert-manager/templates/webhook-mutating-webhook.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
@@ -1018,20 +1100,18 @@
rules:
- apiGroups:
- "cert-manager.io"
- - "acme.cert-manager.io"
apiVersions:
- "v1"
operations:
- CREATE
- - UPDATE
resources:
- - "*/*"
+ - "certificaterequests"
admissionReviewVersions: ["v1"]
# This webhook only accepts v1 cert-manager resources.
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
# Only include 'sideEffects' field in Kubernetes 1.12+
sideEffects: None
@@ -1058,14 +1138,10 @@
- name: webhook.cert-manager.io
namespaceSelector:
matchExpressions:
- - key: "cert-manager.io/disable-validation"
- operator: "NotIn"
+ - key: cert-manager.io/disable-validation
+ operator: NotIn
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1082,7 +1158,7 @@
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
sideEffects: None
clientConfig:
@@ -1185,17 +1261,25 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-startupapicheck:v1.15.0"
imagePullPolicy: IfNotPresent
args:
- check
- api
- --wait=1m
+ - -v
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.15.1
@@ -40,19 +40,6 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
-# Source: cert-manager/templates/webhook-config.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cert-manager-webhook
- namespace: default
- labels:
- app: webhook
- app.kubernetes.io/name: webhook
- app.kubernetes.io/instance: cert-manager
- app.kubernetes.io/component: "webhook"
-data:
----
# Source: cert-manager/templates/cainjector-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -76,13 +63,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +298,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +325,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -369,7 +374,9 @@
- apiGroups: ["cert-manager.io"]
resources: ["signers"]
verbs: ["approve"]
- resourceNames: ["issuers.cert-manager.io/*", "clusterissuers.cert-manager.io/*"]
+ resourceNames:
+ - "issuers.cert-manager.io/*"
+ - "clusterissuers.cert-manager.io/*"
---
# Source: cert-manager/templates/rbac.yaml
# Permission to:
@@ -834,11 +841,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.15.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +860,10 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +900,36 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.15.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.15.1
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -916,6 +942,19 @@
requests:
cpu: 25m
memory: 263M
+ # LivenessProbe settings are based on those used for the Kubernetes
+ # controller-manager. See:
+ # https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245
+ livenessProbe:
+ httpGet:
+ port: http-healthz
+ path: /livez
+ scheme: HTTP
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ timeoutSeconds: 15
+ successThreshold: 1
+ failureThreshold: 8
nodeSelector:
kubernetes.io/os: linux
worker: true
@@ -954,22 +993,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.15.1"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1039,10 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1000,6 +1051,37 @@
nodeSelector:
kubernetes.io/os: linux
---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+#
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
# Source: cert-manager/templates/webhook-mutating-webhook.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
@@ -1018,20 +1100,18 @@
rules:
- apiGroups:
- "cert-manager.io"
- - "acme.cert-manager.io"
apiVersions:
- "v1"
operations:
- CREATE
- - UPDATE
resources:
- - "*/*"
+ - "certificaterequests"
admissionReviewVersions: ["v1"]
# This webhook only accepts v1 cert-manager resources.
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
# Only include 'sideEffects' field in Kubernetes 1.12+
sideEffects: None
@@ -1058,14 +1138,10 @@
- name: webhook.cert-manager.io
namespaceSelector:
matchExpressions:
- - key: "cert-manager.io/disable-validation"
- operator: "NotIn"
+ - key: cert-manager.io/disable-validation
+ operator: NotIn
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1082,7 +1158,7 @@
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
sideEffects: None
clientConfig:
@@ -1185,17 +1261,25 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-startupapicheck:v1.15.1"
imagePullPolicy: IfNotPresent
args:
- check
- api
- --wait=1m
+ - -v
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.15.2
@@ -40,19 +40,6 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
-# Source: cert-manager/templates/webhook-config.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cert-manager-webhook
- namespace: default
- labels:
- app: webhook
- app.kubernetes.io/name: webhook
- app.kubernetes.io/instance: cert-manager
- app.kubernetes.io/component: "webhook"
-data:
----
# Source: cert-manager/templates/cainjector-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -76,13 +63,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +298,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +325,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -369,7 +374,9 @@
- apiGroups: ["cert-manager.io"]
resources: ["signers"]
verbs: ["approve"]
- resourceNames: ["issuers.cert-manager.io/*", "clusterissuers.cert-manager.io/*"]
+ resourceNames:
+ - "issuers.cert-manager.io/*"
+ - "clusterissuers.cert-manager.io/*"
---
# Source: cert-manager/templates/rbac.yaml
# Permission to:
@@ -834,11 +841,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.15.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +860,10 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +900,36 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.15.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.15.2
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -916,6 +942,19 @@
requests:
cpu: 25m
memory: 263M
+ # LivenessProbe settings are based on those used for the Kubernetes
+ # controller-manager. See:
+ # https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245
+ livenessProbe:
+ httpGet:
+ port: http-healthz
+ path: /livez
+ scheme: HTTP
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ timeoutSeconds: 15
+ successThreshold: 1
+ failureThreshold: 8
nodeSelector:
kubernetes.io/os: linux
worker: true
@@ -954,22 +993,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.15.2"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1039,10 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1000,6 +1051,37 @@
nodeSelector:
kubernetes.io/os: linux
---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+#
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
# Source: cert-manager/templates/webhook-mutating-webhook.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
@@ -1018,20 +1100,18 @@
rules:
- apiGroups:
- "cert-manager.io"
- - "acme.cert-manager.io"
apiVersions:
- "v1"
operations:
- CREATE
- - UPDATE
resources:
- - "*/*"
+ - "certificaterequests"
admissionReviewVersions: ["v1"]
# This webhook only accepts v1 cert-manager resources.
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
# Only include 'sideEffects' field in Kubernetes 1.12+
sideEffects: None
@@ -1058,14 +1138,10 @@
- name: webhook.cert-manager.io
namespaceSelector:
matchExpressions:
- - key: "cert-manager.io/disable-validation"
- operator: "NotIn"
+ - key: cert-manager.io/disable-validation
+ operator: NotIn
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1082,7 +1158,7 @@
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
sideEffects: None
clientConfig:
@@ -1185,17 +1261,25 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-startupapicheck:v1.15.2"
imagePullPolicy: IfNotPresent
args:
- check
- api
- --wait=1m
+ - -v
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
Path: cluster/core/networking/cert-manager/helm-release.yaml
Version: v1.9.1 -> v1.15.3
@@ -40,19 +40,6 @@
app.kubernetes.io/component: "webhook"
app.kubernetes.io/managed-by: Helm
---
-# Source: cert-manager/templates/webhook-config.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: cert-manager-webhook
- namespace: default
- labels:
- app: webhook
- app.kubernetes.io/name: webhook
- app.kubernetes.io/instance: cert-manager
- app.kubernetes.io/component: "webhook"
-data:
----
# Source: cert-manager/templates/cainjector-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -76,13 +63,13 @@
verbs: ["get", "create", "update", "patch"]
- apiGroups: ["admissionregistration.k8s.io"]
resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiregistration.k8s.io"]
resources: ["apiservices"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["apiextensions.k8s.io"]
resources: ["customresourcedefinitions"]
- verbs: ["get", "list", "watch", "update"]
+ verbs: ["get", "list", "watch", "update", "patch"]
---
# Source: cert-manager/templates/rbac.yaml
# Issuer controller role
@@ -311,6 +298,23 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
+ name: cert-manager-cluster-view
+ labels:
+ app: cert-manager
+ app.kubernetes.io/name: cert-manager
+ app.kubernetes.io/instance: cert-manager
+ app.kubernetes.io/component: "controller"
+ app.kubernetes.io/managed-by: Helm
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
+rules:
+ - apiGroups: ["cert-manager.io"]
+ resources: ["clusterissuers"]
+ verbs: ["get", "list", "watch"]
+---
+# Source: cert-manager/templates/rbac.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
name: cert-manager-view
labels:
app: cert-manager
@@ -321,6 +325,7 @@
rbac.authorization.k8s.io/aggregate-to-view: "true"
rbac.authorization.k8s.io/aggregate-to-edit: "true"
rbac.authorization.k8s.io/aggregate-to-admin: "true"
+ rbac.authorization.k8s.io/aggregate-to-cluster-reader: "true"
rules:
- apiGroups: ["cert-manager.io"]
resources: ["certificates", "certificaterequests", "issuers"]
@@ -369,7 +374,9 @@
- apiGroups: ["cert-manager.io"]
resources: ["signers"]
verbs: ["approve"]
- resourceNames: ["issuers.cert-manager.io/*", "clusterissuers.cert-manager.io/*"]
+ resourceNames:
+ - "issuers.cert-manager.io/*"
+ - "clusterissuers.cert-manager.io/*"
---
# Source: cert-manager/templates/rbac.yaml
# Permission to:
@@ -834,11 +841,14 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-cainjector
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-cainjector:v1.9.1"
+ - name: cert-manager-cainjector
+ image: "quay.io/jetstack/cert-manager-cainjector:v1.15.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
@@ -850,6 +860,10 @@
fieldPath: metadata.namespace
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux
---
@@ -886,24 +900,36 @@
prometheus.io/port: '9402'
spec:
serviceAccountName: cert-manager
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-controller:v1.9.1"
+ - name: cert-manager-controller
+ image: "quay.io/jetstack/cert-manager-controller:v1.15.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --cluster-resource-namespace=$(POD_NAMESPACE)
- --leader-election-namespace=kube-system
+ - --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.15.3
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
+ - --max-concurrent-challenges=60
ports:
- containerPort: 9402
name: http-metrics
protocol: TCP
+ - containerPort: 9403
+ name: http-healthz
+ protocol: TCP
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -916,6 +942,19 @@
requests:
cpu: 25m
memory: 263M
+ # LivenessProbe settings are based on those used for the Kubernetes
+ # controller-manager. See:
+ # https://github.com/kubernetes/kubernetes/blob/806b30170c61a38fedd54cc9ede4cd6275a1ad3b/cmd/kubeadm/app/util/staticpod/utils.go#L241-L245
+ livenessProbe:
+ httpGet:
+ port: http-healthz
+ path: /livez
+ scheme: HTTP
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ timeoutSeconds: 15
+ successThreshold: 1
+ failureThreshold: 8
nodeSelector:
kubernetes.io/os: linux
worker: true
@@ -954,22 +993,30 @@
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: cert-manager-webhook
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-webhook:v1.9.1"
+ - name: cert-manager-webhook
+ image: "quay.io/jetstack/cert-manager-webhook:v1.15.3"
imagePullPolicy: IfNotPresent
args:
- --v=2
- --secure-port=10250
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
- - --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.default,cert-manager-webhook.default.svc
+ - --dynamic-serving-dns-names=cert-manager-webhook
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
+ - --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
ports:
- name: https
protocol: TCP
containerPort: 10250
+ - name: healthcheck
+ protocol: TCP
+ containerPort: 6080
livenessProbe:
httpGet:
path: /livez
@@ -992,6 +1039,10 @@
failureThreshold: 3
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
@@ -1000,6 +1051,37 @@
nodeSelector:
kubernetes.io/os: linux
---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+#
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
+{}
+
+# Source: cert-manager/templates/crds.yaml
+# START crd
+---
# Source: cert-manager/templates/webhook-mutating-webhook.yaml
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
@@ -1018,20 +1100,18 @@
rules:
- apiGroups:
- "cert-manager.io"
- - "acme.cert-manager.io"
apiVersions:
- "v1"
operations:
- CREATE
- - UPDATE
resources:
- - "*/*"
+ - "certificaterequests"
admissionReviewVersions: ["v1"]
# This webhook only accepts v1 cert-manager resources.
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
# Only include 'sideEffects' field in Kubernetes 1.12+
sideEffects: None
@@ -1058,14 +1138,10 @@
- name: webhook.cert-manager.io
namespaceSelector:
matchExpressions:
- - key: "cert-manager.io/disable-validation"
- operator: "NotIn"
+ - key: cert-manager.io/disable-validation
+ operator: NotIn
values:
- "true"
- - key: "name"
- operator: "NotIn"
- values:
- - default
rules:
- apiGroups:
- "cert-manager.io"
@@ -1082,7 +1158,7 @@
# Equivalent matchPolicy ensures that non-v1 resource requests are sent to
# this webhook (after the resources have been converted to v1).
matchPolicy: Equivalent
- timeoutSeconds: 10
+ timeoutSeconds: 30
failurePolicy: Fail
sideEffects: None
clientConfig:
@@ -1185,17 +1261,25 @@
spec:
restartPolicy: OnFailure
serviceAccountName: cert-manager-startupapicheck
+ enableServiceLinks: false
securityContext:
runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
containers:
- - name: cert-manager
- image: "quay.io/jetstack/cert-manager-ctl:v1.9.1"
+ - name: cert-manager-startupapicheck
+ image: "quay.io/jetstack/cert-manager-startupapicheck:v1.15.3"
imagePullPolicy: IfNotPresent
args:
- check
- api
- --wait=1m
+ - -v
securityContext:
allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
nodeSelector:
kubernetes.io/os: linux