### View All Setup Targets Source: https://cert-manager.io/docs/contributing/e2e Refer to the 'make/e2e-setup.mk' file to see all available targets for installing specific components or managing test dependencies. ```bash # More generally, see make/e2e-setup.mk for different targets! ``` -------------------------------- ### Setup Kind Cluster and Cert-Manager Source: https://cert-manager.io/docs/contributing/kind Use this command to set up a local Kind cluster and install cert-manager. This is the standard approach for local development. ```bash make e2e-setup-kind e2e-setup-certmanager ``` -------------------------------- ### Build and Run Website Development Server Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Navigates to the website directory, installs Node.js dependencies using `npm ci`, and starts the development server. Provides URLs for accessing the site. ```shell cd website # Install dependencies npm ci # Start dev server ./scripts/server # Access at: # http://localhost:8888 (with redirects working) # http://localhost:3000 (direct Next.js) ``` -------------------------------- ### Install Build Tools Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs necessary build tools. Use 'xcode-select --install' on macOS and 'sudo apt-get install build-essential' on Ubuntu/WSL. ```bash # macOS xcode-select --install # Ubuntu/WSL sudo apt-get install build-essential ``` -------------------------------- ### Install release-notes CLI Source: https://cert-manager.io/docs/contributing/release-process Installs the `release-notes` CLI tool from Kubernetes release utilities. Ensure you have Go installed and configured. ```go go install k8s.io/release/cmd/release-notes@v0.13.0 ``` -------------------------------- ### Install cert-manager with Custom Helm Values Source: https://cert-manager.io/docs/installation/helm Installs cert-manager from the OCI registry, demonstrating how to override default Helm values. This example disables Prometheus and sets a custom webhook timeout. Use this to tune the installation to your specific needs. ```bash helm install \ cert-manager oci://quay.io/jetstack/charts/cert-manager:v1.20.3 \ --namespace cert-manager \ --create-namespace \ --set crds.enabled=true \ --set prometheus.enabled=false \ --set webhook.timeoutSeconds=4 ``` -------------------------------- ### Install Flux on a Kind Cluster Source: https://cert-manager.io/docs/installation/continuous-deployment-and-gitops Installs the Flux CLI and a basic Flux setup on a local Kind Kubernetes cluster. Ensure you have the `flux` CLI installed and a Kind cluster running. ```bash kind create cluster flux check --pre flux install flux check ``` -------------------------------- ### Revert to system Go Source: https://cert-manager.io/docs/contributing/building Use this command to remove the vendored Go setup and return to using your system's default Go installation. ```bash # Go back to the system Go $ make unvendor-go rm -rf _bin/tools/go _bin/tools/goroot ``` -------------------------------- ### Install Go on Ubuntu/Debian/WSL Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs a specific version of Go (1.26.1) on Ubuntu, Debian, or WSL by downloading the tarball, removing any existing installation, and extracting the new one to `/usr/local/go`. ```shell # Ubuntu/Debian/WSL (installs Go 1.26.1) wget https://go.dev/dl/go1.26.1.linux-amd64.tar.gz sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf go1.26.1.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/bin ``` -------------------------------- ### Setup Kind Cluster with Specific Kubernetes Version Source: https://cert-manager.io/docs/contributing/kind Use this command to set up a local Kind cluster with a specific Kubernetes version and install cert-manager. Useful when testing against a particular Kubernetes release. ```bash make K8S_VERSION=1.xx e2e-setup-kind e2e-setup-certmanager ``` -------------------------------- ### Install Git on Ubuntu/Debian/WSL Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs Git on Ubuntu, Debian, or Windows Subsystem for Linux using apt-get. ```shell sudo apt-get update sudo apt-get install git ``` -------------------------------- ### Install Go on macOS Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs the latest version of Go on macOS using Homebrew. ```shell # macOS (installs latest version) brew install go ``` -------------------------------- ### Setup Integration Tests Source: https://cert-manager.io/docs/contributing/building Run this command to set up any external tools required for integration tests. ```bash make setup-integration-tests ``` -------------------------------- ### Install All Test Dependencies Source: https://cert-manager.io/docs/contributing/e2e Run this command to install all required dependencies for the end-to-end tests. This includes cert-manager itself and other necessary components. ```bash make e2e-setup ``` -------------------------------- ### Default Static Install using kubectl apply Source: https://cert-manager.io/docs/installation Install cert-manager using the default static configuration with kubectl apply. This method is recommended for new users. ```bash kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.20.3/cert-manager.yaml ``` -------------------------------- ### Controller Configuration File Example Source: https://cert-manager.io/docs/installation/configuring-components Example YAML configuration file for the cert-manager controller component. This is for illustrative purposes and not intended for default settings. ```yaml apiVersion: controller.config.cert-manager.io/v1alpha1 kind: ControllerConfiguration logging: verbosity: 2 format: text leaderElectionConfig: namespace: my-namespace kubernetesAPIQPS: 10 kubernetesAPIBurst: 50 numberOfConcurrentWorkers: 200 enableGatewayAPI: true featureGates: AdditionalCertificateOutputFormats: true ExperimentalCertificateSigningRequestControllers: true ServerSideApply: true LiteralCertificateSubject: true UseCertificateRequestBasicConstraints: true OtherNames: true UseDomainQualifiedFinalizer: true ``` -------------------------------- ### Verify Go Installation Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Checks the installed Go version to ensure it meets the minimum requirement (Go 1.21.x or later, with 1.26.1 recommended). ```shell go version # Should show go1.26.x or go1.21.x+ ``` -------------------------------- ### Install gh CLI on Ubuntu/Debian/WSL Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs the GitHub CLI (gh) on Ubuntu, Debian, or WSL, including adding the repository and installing the package. ```shell # Ubuntu/Debian/WSL: curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null sudo apt update sudo apt install gh ``` -------------------------------- ### Cert-manager as a Helm Subchart Example Source: https://cert-manager.io/docs/contributing/policy This example demonstrates how to include cert-manager as a subchart in your Helm chart. Ensure the 'condition' parameter is used to allow users to disable the subchart installation. ```yaml apiVersion: v2 name: example_chart description: A Helm chart with cert-manager as subchart type: application version: 0.1.0 appVersion: "0.1.0" dependencies: - name: cert-manager version: v1.20.3 repository: oci://quay.io/jetstack/charts alias: cert-manager condition: cert-manager.enabled ``` -------------------------------- ### Install Build Tools on macOS Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs essential build tools on macOS by running the Xcode command-line tools installer. ```shell # macOS xcode-select --install ``` -------------------------------- ### Install Node.js on Ubuntu/Debian/WSL Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs Node.js version 20 on Ubuntu, Debian, or WSL by adding the NodeSource repository and then installing the `nodejs` package. ```shell # Ubuntu/Debian/WSL curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs ``` -------------------------------- ### Install Build Tools on Ubuntu/Debian/WSL Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs essential build tools on Ubuntu, Debian, or WSL using the apt-get package manager. ```shell # Ubuntu/Debian/WSL sudo apt-get install build-essential ``` -------------------------------- ### Improved Release Note Example Source: https://cert-manager.io/docs/contributing/contributing-flow This example demonstrates a more user-friendly release note that clarifies the impact of a change on specific features. ```markdown ```release-note When using the `literalSubject` on a Certificate, the IPs, URIs, DNS names, and email addresses subject segments are now properly compared. ``` ``` -------------------------------- ### Webhook Configuration File Example Source: https://cert-manager.io/docs/installation/configuring-components Example YAML configuration file for the cert-manager webhook component. This is for illustrative purposes and not intended for default settings. ```yaml apiVersion: webhook.config.cert-manager.io/v1alpha1 kind: WebhookConfiguration logging: verbosity: 2 format: text securePort: 6443 healthzPort: 6080 featureGates: AdditionalCertificateOutputFormats: true LiteralCertificateSubject: true OtherNames: true ``` -------------------------------- ### Install Git on macOS Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs Git using Homebrew on macOS. ```shell brew install git ``` -------------------------------- ### Install gh CLI Source: https://cert-manager.io/docs/contributing/release-process Install the GitHub CLI tool using Homebrew. This is a prerequisite for interacting with GitHub from the command line. ```bash brew install gh ``` -------------------------------- ### Install cert-manager from OCI Registry Source: https://cert-manager.io/docs/installation/helm Installs cert-manager using the OCI Helm chart. Ensure Helm v3+ is installed and the Kubernetes cluster is ready. This command directly installs the chart from the specified OCI registry. ```bash helm install \ cert-manager oci://quay.io/jetstack/charts/cert-manager \ --version v1.20.3 \ --namespace cert-manager \ --create-namespace \ --set crds.enabled=true ``` -------------------------------- ### Release Note with List Example Source: https://cert-manager.io/docs/contributing/contributing-flow Demonstrates using new lines within a release note to create a list, suitable for detailing multiple changes or updates. ```markdown ```release-note cainjector: - New flags were added to the cainjector binary. They can be used to modify what injectable kinds are enabled. If cainjector is only used as a cert-manager's internal component it is sufficient to only enable validatingwebhookconfigurations and mutatingwebhookconfigurations injectable resources; disabling the rest can improve memory consumption. By default all are enabled. - The `--watch-certs` flag was renamed to `--enable-certificates-data-source`. ``` ``` -------------------------------- ### Release Note Example Source: https://cert-manager.io/docs/contributing/contributing-flow Use this format for release notes that explain how a change affects end-users, providing context and specific details. ```markdown ```release-note Adds missing comparisons for certain fields which were incorrectly skipped if a LiteralSubject was set ``` ``` -------------------------------- ### Install Node.js on macOS Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs Node.js version 20 using Homebrew on macOS. ```shell # macOS brew install node@20 ``` -------------------------------- ### Example Gateway for HTTP-01 Challenges Source: https://cert-manager.io/docs/configuration/acme/http01 A sample Gateway resource configured with a listener on port 80, which can be used by the cert-manager HTTP-01 solver. ```yaml apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: traefik namespace: traefik spec: gatewayClassName: traefik listeners: - name: http protocol: HTTP port: 80 allowedRoutes: namespaces: from: All ``` -------------------------------- ### Install Helm Chart Locally Source: https://cert-manager.io/docs/contributing/release-process Install the cert-manager Helm chart onto a local Kind cluster for testing. This command assumes the chart tarball has been downloaded. ```bash helm install cert-manager ./cert-manager-v0.15.0.tgz --set crds.enabled=true -n cert-manager ``` -------------------------------- ### RFC2136 Provider Example Configuration Source: https://cert-manager.io/docs/configuration/acme/dns01/rfc2136 An example of the RFC2136 provider configuration within a cert-manager Issuer, showing specific values for nameserver, TSIG key name, algorithm, and secret reference. ```yaml rfc2136: nameserver: 1.2.3.4:53 tsigKeyName: example-com-secret tsigAlgorithm: HMACSHA512 tsigSecretSecretRef: name: tsig-secret key: tsig-secret-key ``` -------------------------------- ### Install cert-manager Subchart with Namespace Override via --set Source: https://cert-manager.io/docs/installation/helm Command to install the Helm chart with cert-manager as a subchart, overriding the cert-manager namespace using the --set flag. This installs cert-manager into the specified 'security' namespace. ```bash helm install example example_chart \ --namespace example \ --create-namespace \ --set cert-manager.namespace=security ``` -------------------------------- ### Install Development Tools on macOS Source: https://cert-manager.io/docs/contributing/building Use Homebrew to install essential development tools for cert-manager on macOS. This includes make, bash, git, jq, and coreutils. ```bash brew install make bash git jq coreutils ``` -------------------------------- ### Define test resources for installation verification Source: https://cert-manager.io/docs/installation/kubectl Create a YAML manifest defining a namespace, a self-signed issuer, and a certificate for end-to-end testing. ```yaml apiVersion: v1 kind: Namespace metadata: name: cert-manager-test --- apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: test-selfsigned namespace: cert-manager-test spec: selfSigned: {} --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: selfsigned-cert namespace: cert-manager-test spec: dnsNames: - example.com secretName: selfsigned-cert-tls issuerRef: name: test-selfsigned ``` -------------------------------- ### Create and Push Release Tag Source: https://cert-manager.io/docs/contributing/release-process Create a local tag for the new release version and push it explicitly to the origin. This starts the cert-manager build. ```bash echo $RELEASE_VERSION git tag -m"$RELEASE_VERSION" $RELEASE_VERSION # be sure to push the named tag explicitly; you don't want to push any other local tags! git push origin $RELEASE_VERSION ``` -------------------------------- ### Certificate Resource Example Source: https://cert-manager.io/docs/configuration/acme/http01 A sample Certificate resource that would trigger the creation of a temporary HTTPRoute by cert-manager when used with the configured Issuer. ```yaml apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: example-tls namespace: default spec: issuerRef: name: letsencrypt dnsNames: - example.net ``` -------------------------------- ### Apply test resources Source: https://cert-manager.io/docs/installation/kubectl Apply the defined test resources to the Kubernetes cluster to verify the installation. ```bash kubectl apply -f test-resources.yaml ``` -------------------------------- ### Certificate Resource Example Source: https://cert-manager.io/docs/configuration/acme/dns01/google A basic Certificate resource manifest that uses the previously configured Issuer to obtain TLS certificates for specified DNS names. ```yaml apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: example-com namespace: default spec: secretName: example-com-tls issuerRef: # The issuer created previously name: example-issuer dnsNames: - example.com - www.example.com ``` -------------------------------- ### startupapicheck CLI Help Source: https://cert-manager.io/docs/cli/startupapicheck Displays the main help information for the startupapicheck CLI, including available commands and global flags. ```bash Check that cert-manager started successfully Usage: startupapicheck [command] Available Commands: check Check cert-manager components completion Generate the autocompletion script for the specified shell help Help about any command Flags: -h, --help help for startupapicheck --log-flush-frequency duration Maximum number of seconds between log flushes (default 5s) --logging-format string Sets the log format. Permitted formats: "json" (gated by LoggingBetaOptions), "text". (default "text") -v, --v Level[=2] number for the log level verbosity --vmodule pattern=N,... The `startupapicheck` CLI is a tool designed to verify the successful startup of cert-manager components. It offers commands to check the status of cert-manager components, generate shell autocompletion scripts, and retrieve help information for various commands. Additionally, it provides flags to customize logging formats and verbosity levels. ``` -------------------------------- ### Change cert-manager webhook port on Helm install Source: https://cert-manager.io/docs/installation/compatibility When using Helm, you can set the `webhook.securePort` parameter to change the webhook's port to avoid clashes, for example, with kubelet on port 10250. ```bash helm install cert-manager oci://quay.io/jetstack/charts/cert-manager \ --namespace cert-manager \ --create-namespace \ --version ${CERT_MANAGER_VERSION} --set webhook.securePort=10259 ``` -------------------------------- ### Vendor Go for cert-manager Source: https://cert-manager.io/docs/contributing/building Use this command to download and set up a specific Go version for cert-manager development. This ensures consistency with CI environments and simplifies setup. ```bash # Use a vendored version of go $ make vendor-go cd _bin/tools/ && ln -f -s ../downloaded/tools/_go-1.XY.Z-linux-amd64/goroot . cd _bin/tools/ && ln -f -s ../downloaded/tools/_go-1.XY.Z-linux-amd64/goroot/bin/go . ``` -------------------------------- ### Configure cert-manager leader election namespace on Helm install Source: https://cert-manager.io/docs/installation/compatibility For GKE Autopilot environments where modifications to the `kube-system` namespace are restricted, configure cert-manager to use a different namespace for leader election. This example sets the leader election namespace to `cert-manager`. ```bash helm install \ cert-manager oci://quay.io/jetstack/charts/cert-manager \ --namespace cert-manager \ --create-namespace \ --version ${CERT_MANAGER_VERSION} --set global.leaderElection.namespace=cert-manager ``` -------------------------------- ### Install cmrel CLI Source: https://cert-manager.io/docs/contributing/release-process Installs the `cmrel` CLI tool, which is specific to cert-manager releases. This command requires Go to be installed. ```go go install github.com/cert-manager/release/cmd/cmrel@latest ``` -------------------------------- ### Install gh CLI on macOS Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Installs the GitHub CLI (gh) on macOS using Homebrew. ```shell # Install gh CLI first # macOS: brew install gh ``` -------------------------------- ### Install Gateway API CRDs Source: https://cert-manager.io/docs/configuration/acme/http01 Installs the v1.4.1 Gateway API bundle (CRDs) using kubectl. ```bash kubectl apply --server-side -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.1/standard-install.yaml ``` -------------------------------- ### Build Containers with Podman Source: https://cert-manager.io/docs/contributing/building Builds all cert-manager container images for every supported architecture using Podman as the container engine. ```bash make CTR=podman all-containers ``` -------------------------------- ### Add Legacy Helm Repository and Install cert-manager Source: https://cert-manager.io/docs/installation/helm Adds the Jetstack Helm repository and installs cert-manager using the legacy HTTP repository. This method is recommended for older versions of cert-manager or if OCI charts are not preferred. Ensure Helm v3+ is installed. ```bash helm repo add jetstack https://charts.jetstack.io --force-update helm install \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.20.3 \ --set crds.enabled=true ``` -------------------------------- ### Build All Containers Source: https://cert-manager.io/docs/contributing/building Builds all cert-manager container images for every supported architecture. Defaults to using Docker. ```bash make all-containers ``` -------------------------------- ### Testing Website and Go Code Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Run tests for the website and cert-manager Go code. ```bash # Website ./scripts/verify # cert-manager Go code make unit-test make verify ``` -------------------------------- ### Build cert-manager Go Project Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Builds the cert-manager project. Includes fetching tags if not already done, installing vendored Go tooling, downloading dependencies, and running linters/checks. ```shell cd cert-manager # ⚠️ If you haven't fetched tags yet, do it now: git fetch --tags https://github.com/cert-manager/cert-manager.git # Install vendored Go tooling (includes specific Go version) make vendor-go # Download dependencies go mod download # Run linters and checks make verify # Run unit tests (quick, no cluster needed) make unit-test ``` -------------------------------- ### View All Make Commands Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/setup Displays all available `make` commands for the cert-manager project, providing an overview of build and test targets. ```shell make # Or: make help ``` -------------------------------- ### Run All Unit and Integration Tests Source: https://cert-manager.io/docs/contributing/building Execute all unit and integration tests using the 'test' make target. ```bash make test ``` -------------------------------- ### Build All kubectl_cert-manager Binaries Source: https://cert-manager.io/docs/contributing/building Builds the kubectl_cert-manager client binary for all supported platforms. Subsequent commands build for specific platforms: Linux, macOS, and Windows. ```bash make kubectl_cert-manager ``` ```bash make kubectl_cert-manager-linux ``` ```bash make kubectl_cert-manager-darwin ``` ```bash make kubectl_cert-manager-windows ``` -------------------------------- ### Create a GitHub Project Source: https://cert-manager.io/docs/contributing/contribfest-kubecon-eu-2026/methods Use this command to create a new GitHub Project under a specified organization. The `--format json` flag outputs the project details in JSON format. ```bash # Create the project under the org gh project create --owner cert-manager --title "ContribFest KubeCon EU 2026" --format json ``` -------------------------------- ### ACME DNS01 Webhook Issuer Configuration Example Source: https://cert-manager.io/docs/configuration/acme/dns01/webhook Example of an ACME Issuer configured for DNS01 challenges using a webhook solver. This requires a `groupName` and `solverName`, along with webhook-specific configuration. ```yaml apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: example-issuer spec: acme: ... solvers: - dns01: webhook: groupName: $WEBHOOK_GROUP_NAME solverName: $WEBHOOK_SOLVER_NAME config: ... ``` -------------------------------- ### Set Release Environment Variables Source: https://cert-manager.io/docs/contributing/release-process Set the necessary environment variables before starting the release process. These variables define the current release version, the starting tag for comparison, and the release branch. ```bash export RELEASE_VERSION="v1.3.0-alpha.0" export START_TAG="v1.2.0" export END_REV="release-1.3" export BRANCH="release-1.3" ``` -------------------------------- ### Generate Go workspace file Source: https://cert-manager.io/docs/contributing/building Create a `go.work` file to help development tools correctly interpret cert-manager's multi-module structure. This is useful for consistent testing and editor integration. ```bash make go-workspace ``` -------------------------------- ### Delete test resources Source: https://cert-manager.io/docs/installation/kubectl Clean up the test resources created for verifying the cert-manager installation. ```bash kubectl delete -f test-resources.yaml ``` -------------------------------- ### View DCO sign-off format Source: https://cert-manager.io/docs/contributing/sign-off Example of the text appended to a commit message after signing off. ```text Signed-off-by: Joe Bloggs ``` -------------------------------- ### Check system Go version Source: https://cert-manager.io/docs/contributing/building After reverting to system Go, use this command to confirm that the system's Go binary is now being used. ```bash # The binary is now "go" which should be found in $PATH $ make which-go go version go1.AB.C linux/amd64 go binary used for above version information: go ``` -------------------------------- ### Get Vault Issuer URL Source: https://cert-manager.io/docs/configuration/vault Fetches the OIDC issuer URL from the Kubernetes cluster configuration. ```bash ISSUER=$(kubectl get --raw /.well-known/openid-configuration | jq -r '.issuer') ``` -------------------------------- ### Uninstall Cert-Manager with Helm Source: https://cert-manager.io/docs/installation/helm Remove cert-manager installed via Helm by running the `helm uninstall` command. ```bash $ helm uninstall cert-manager -n cert-manager ``` -------------------------------- ### Generate Release Notes Source: https://cert-manager.io/docs/contributing/release-process Generate the GitHub release description and website release notes. This requires fetching the latest branch information and calculating the start SHA for the release notes. ```bash # Must be run from the cert-manager folder. export GITHUB_TOKEN=$(gh auth token) git fetch origin $BRANCH export START_SHA="$(git rev-list --reverse --ancestry-path $(git merge-base $START_TAG $BRANCH)..$BRANCH | head -1)" release-notes --debug --repo-path cert-manager \ --org cert-manager --repo cert-manager \ --required-author "cert-manager-prow[bot]" \ --markdown-links=false \ --dependencies=false \ --output github-release-description.md release-notes --debug --repo-path cert-manager \ --org cert-manager --repo cert-manager \ --required-author "cert-manager-prow[bot]" \ --markdown-links=true \ --dependencies=false \ --output website-release-notes.md ``` -------------------------------- ### Create a Full Backup with Exclusions Source: https://cert-manager.io/docs/devops-tips/backup This command creates a full backup of specified namespaces, including cluster resources, while excluding specific cert-manager custom resources. ```bash velero backup create \ full-backup \ --include-namespaces cert-manager,default \ --include-cluster-resources=true \ --exclude-resources challenges.acme.cert-manager.io,orders.acme.cert-manager.io,certificaterequests.cert-manager.io ``` -------------------------------- ### Reinstall a Specific Dependency Source: https://cert-manager.io/docs/contributing/e2e Install or update a specific dependency, such as 'bind', in the test cluster. This is faster than reinstalling all dependencies. ```bash # An example of reinstalling something else; reinstall bind make e2e-setup-bind ``` -------------------------------- ### Upgrade cert-manager using Static Manifests Source: https://cert-manager.io/docs/installation/upgrade Apply the static manifest file to upgrade cert-manager. Replace `` with the desired version number. ```bash kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download//cert-manager.yaml ``` -------------------------------- ### ACMEDNS Registration Response Source: https://cert-manager.io/docs/configuration/acme/dns01/acme-dns Example JSON response received after registering with the ACMEDNS server, containing user credentials. ```json { "username": "eabcdb41-d89f-4580-826f-3e62e9755ef2", "password": "pbAXVjlIOE01xbut7YnAbkhMQIkcwoHO0ek2j4Q0", "fulldomain": "d420c923-bbd7-4056-ab64-c3ca54c9b3cf.auth.example.com", "subdomain": "d420c923-bbd7-4056-ab64-c3ca54c9b3cf", "allowfrom": [] } ``` -------------------------------- ### Build Manifests Source: https://cert-manager.io/docs/contributing/building Generates the Helm chart and static YAML manifests for cert-manager. ```bash make helm-chart ``` ```bash make static-manifests ``` -------------------------------- ### ACME DNS01 Issuer Configuration Source: https://cert-manager.io/docs/configuration/acme/dns01/acme-dns Example of an Issuer resource configured for the ACME DNS01 solver using ACMEDNS. ```yaml apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: example-issuer spec: acme: solvers: - dns01: acmeDNS: host: https://acme.example.com accountSecretRef: name: acme-dns key: acmedns.json ``` -------------------------------- ### Prepare Docs Freeze PR Source: https://cert-manager.io/docs/contributing/release-process Run the freeze-docs script to prepare the documentation for a final release. This step can be performed in advance. ```bash ./scripts/freeze-docs 1.19 ``` -------------------------------- ### CertificateRequestPolicy Match All Namespace Selector Source: https://cert-manager.io/docs/policy/approval/approver-policy Example of a CertificateRequestPolicy selector configured to match all requests by using an empty namespace object. ```yaml apiVersion: policy.cert-manager.io/v1alpha1 kind: CertificateRequestPolicy metadata: name: match-all-requests spec: ... selector: namespace: {} ``` -------------------------------- ### CertificateRequestPolicy Namespace Selector Source: https://cert-manager.io/docs/policy/approval/approver-policy Example of a CertificateRequestPolicy selector that matches requests based on namespace. It uses both matchNames with wildcards and matchLabels. ```yaml apiVersion: policy.cert-manager.io/v1alpha1 kind: CertificateRequestPolicy metadata: name: my-policy spec: ... selector: namespace: matchNames: - "default" - "app-team-*" matchLabels: foo: bar team: dev ``` -------------------------------- ### CertificateRequestPolicy Match All IssuerRef Selector Source: https://cert-manager.io/docs/policy/approval/approver-policy Example of a CertificateRequestPolicy selector configured to match all requests by using an empty issuerRef object. ```yaml apiVersion: policy.cert-manager.io/v1alpha1 kind: CertificateRequestPolicy metadata: name: match-all-requests spec: ... selector: issuerRef: {} ```