Conventions provide a mechanism for platform operators to define cross cutting behavior that is applied to Kubernetes resources by understanding the developers intent and the semantics of the resources being advised.

  • By VMware Tanzu
  • Last update: Dec 15, 2022
  • Comments: 16

Cartographer Conventions

Conventions allow an operator to define cross cutting behavior that are directly relevant to the developer's intent. Conventions reduce the amount of manual configuration required to run applications on Kubernetes effectively.

Pre-requisites

This project requires access to a container registry for fetching image metadata. It will not work for images that have bypassed a registry by loading directly into a local daemon.

Install

From Source

We use Golang 1.18+ and ko to build the controller, and recommend kapp to deploy.

  1. Install cert-manager

    kapp deploy -n kube-system -a cert-manager -f dist/third-party/cert-manager.yaml
  2. Create a namespace to deploy components, if it doesn't already exist

    kubectl create ns cartographer-system
  3. Optional: Trust additional certificate authorities certificate

    If a PodIntent references an image in a registry whose certificate was not signed by a Public Certificate Authority (CA), a certificate error x509: certificate signed by unknown authority will occur while applying conventions. To trust additional certificate authorities include the PEM encoded CA certificates in a file and set following environment variable to the location of that file.

    CA_DATA=path/to/certfile # a PEM-encoded CA certificate
  4. Build and install Cartographer Conventions

    kapp deploy -n cartographer-system -a conventions \
      -f <( \
        ko resolve -f <( \
          ytt \
            -f dist/cartographer-conventions.yaml \
            -f dist/ca-overlay.yaml \
            --data-value-file ca_cert_data=${CA_DATA:-dist/ca.pem} \
          ) \
      )

    Note: you'll need to export KO_DOCKER_REPO=<ACCESSIBLE_DOCKER_REPO> such that ko can push to the repository and your cluster can pull from it. Visit the ko README for more information.

Samples

  • Convention Server

    Apply custom conventions to workloads with a ClusterPodConvention pointing at a webhook convention server.

  • Spring Boot Conventions

    Apply custom conventions for Spring Boot workloads. This convention can detect if the workload is built from Spring Boot adding a label to the workload indicating the framework is spring-boot, and an annotation indicating the version of Spring Boot used.

  • Dumper Server

    Log the content of the webhook request to stdout. Useful for capturing the image metadata available to conventions.

Contributing

The Cartographer project team welcomes contributions from the community. If you wish to contribute code and you have not signed our contributor license agreement (CLA), our bot will update the issue when you open a Pull Request. For any questions about the CLA process, please refer to our FAQ. For more detailed information, refer to CONTRIBUTING.md.

License

Refer to LICENSE for details.

Download

cartographer-conventions.zip

Comments(16)

  • 1

    Bump k8s.io/apimachinery from 0.25.3 to 0.25.4 in /webhook

    Bumps k8s.io/apimachinery from 0.25.3 to 0.25.4.

    Commits
    • 4fbe8e4 Merge pull request #112218haoruan/automated-cherry-pick-of-#111936
    • b4db414 Marshal MicroTime to json and proto at the same precision
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 2

    Should containers without images be disallowed?

    Today it's possible for a PodIntent resource to define a container within the template that doesn't include an image. Since there's no image, we can't lookup metadata or SBOMs. This is an edge case convention servers would need to be aware of and handle gracefully.

    Should we require that all containers in a PodIntent have an image defined? Is there value in a convention being able to default the image? Other conventions that come before the convention that sets the image would be unable to participate in advising based on the content of the image.

  • 3

    chore: use updatecli to keep the base image up to date

    What this PR does / why we need it

    This tool introduces a tool called updatecli that can be used to automatically bump an image digest inside a .ko.yaml file. This will allow us to produce repeatable builds

    The cron is set to trigger every hour (or on demand)

    You can test this locally with:

    act workflow_dispatch -j update
    
  • 4

    Bump sigs.k8s.io/controller-tools from 0.8.0 to 0.10.0 in /hack

    Bumps sigs.k8s.io/controller-tools from 0.8.0 to 0.10.0.

    Release notes

    Sourced from sigs.k8s.io/controller-tools's releases.

    Release v0.10.0

    changes since v0.9.2

    :sparkles: New Features

    :bug: Bug Fixes

    :seedling: Others

    New Contributors

    Full Changelog: https://github.com/kubernetes-sigs/controller-tools/compare/v0.9.2...v0.10.0

    v0.9.2

    changes since v0.9.1

    :bug: Bug Fixes

    • Fix crd flattening for structType marker to not create duplicate entries for XMapType (#698)

    Thanks to all our contributors!

    v0.9.1

    ... (truncated)

    Commits
    • 24d788a Merge pull request #724 from JoelSpeed/ignore-non-crd-yaml
    • 9928e69 Ensure schemapatcher does not error when non CRD yaml files are present
    • f69ced4 Merge pull request #712 from padlar/add-multiplepaths-ex-2help
    • 3379659 Merge pull request #722 from Jefftree/119
    • 3c6df4c Upgrade to go 1.19
    • 40db495 Merge pull request #717 from laxmikantbpandhare/master
    • afb4be3 bump k8s to v1.25.0
    • 755906c Update controller-gen CLI documentation for paths argument
    • 8a80a3b Merge pull request #710 from mythi/use-revive-linter
    • ebdf517 Merge pull request #709 from mythi/reinvocationPolicy
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 5

    Bump github.com/vmware-tanzu/carvel-ytt from 0.43.0 to 0.44.0 in /hack

    Bumps github.com/vmware-tanzu/carvel-ytt from 0.43.0 to 0.44.0.

    Release notes

    Sourced from github.com/vmware-tanzu/carvel-ytt's releases.

    v0.44.0

    :sparkles: What's new

    • Store the replace and insert annotations' "via" kwarg as callable
    • Optionally, overlay/insert via function #742.
    • Document ytt overlay/insert via #553
    • Allow FileTests to have trailing empty lines
    • Document ytt overlay/insert via #553
    • Another feature overlay/insert

    :speaker: Callouts

    Thanks to

    :open_file_folder: Files Checksum

    30ba799b1ba4843e08c801d50aa01fac8bcfc497687157c675ab6a9712251885  ./ytt-darwin-arm64
    4d36b859c01d9899e87a65e5533cb37ab62b17ee8120dd0454b417608130e431  ./ytt-linux-arm64
    984b1a05456712e979dfdd11cf12fc88539ea084c74b3316ef00ec408d37ab01  ./ytt-windows-arm64.exe
    a50a8065c6d80226aa979bb708992ca4da9dd2ec2df2c6c4d5c6e9b4b9f3e6f8  ./ytt-darwin-amd64
    b186ed56460183726d2a1615eedddf3cb329db54aca0e83eb004ea297d654383  ./ytt-windows-amd64.exe
    b3fbce9c6828c7eea09491c24fe49ddba7afe09e4405db33373d2776c91b1e6c  ./ytt-linux-amd64
    

    Changelog

    cecc394 Add example to FileTests doc 1382156 Add linter-required package documentation 46dfd50 Add required license header d267887 Allow FileTests to have trailing empty lines e27c6be Build(deps): Bump github.com/BurntSushi/toml from 1.1.0 to 1.2.0 3720454 Build(deps): Bump github.com/BurntSushi/toml from 1.2.0 to 1.2.1 (#754) 5bc1d94 Build(deps): Bump github.com/aws/aws-lambda-go from 1.32.1 to 1.34.1 4909392 Build(deps): Bump github.com/aws/aws-lambda-go from 1.34.1 to 1.35.0 (#767) 18530fe Build(deps): Bump github.com/hashicorp/go-version from 1.4.0 to 1.6.0 ea52e9d Build(deps): Bump github.com/spf13/cobra from 1.5.0 to 1.6.1 (#757) e9c2b3e Build(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#755) 4298169 Ensure "contract test" updates dependencies 7c8390e Merge pull request #699 from vmware-tanzu/dependabot/go_modules/github.com/hashicorp/go-version-1.6.0 ccfae42 Merge pull request #708 from vmware-tanzu/dependabot/go_modules/github.com/BurntSushi/toml-1.2.0 e1e9a82 Merge pull request #713 from vmware-tanzu/dependabot/go_modules/github.com/aws/aws-lambda-go-1.34.1 edd111f Merge pull request #742 from mamachanko/insert-via bfc92d2 Merge pull request #745 from mamachanko/filetest-err-trim 486de37 Optionally overlay/insert via function d413e22 Store the replace and insert annotations' "via" kwarg as callable 09be3d5 update go mod (#768)

    Commits
    • 09be3d5 update go mod (#768)
    • 4909392 Build(deps): Bump github.com/aws/aws-lambda-go from 1.34.1 to 1.35.0 (#767)
    • ea52e9d Build(deps): Bump github.com/spf13/cobra from 1.5.0 to 1.6.1 (#757)
    • e9c2b3e Build(deps): Bump github.com/stretchr/testify from 1.8.0 to 1.8.1 (#755)
    • 3720454 Build(deps): Bump github.com/BurntSushi/toml from 1.2.0 to 1.2.1 (#754)
    • 7c8390e Merge pull request #699 from vmware-tanzu/dependabot/go_modules/github.com/ha...
    • 18530fe Build(deps): Bump github.com/hashicorp/go-version from 1.4.0 to 1.6.0
    • 4298169 Ensure "contract test" updates dependencies
    • e1e9a82 Merge pull request #713 from vmware-tanzu/dependabot/go_modules/github.com/aw...
    • 5bc1d94 Build(deps): Bump github.com/aws/aws-lambda-go from 1.32.1 to 1.34.1
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 6

    Bump github.com/google/go-containerregistry from 0.12.0 to 0.12.1 in /webhook

    Bumps github.com/google/go-containerregistry from 0.12.0 to 0.12.1.

    Release notes

    Sourced from github.com/google/go-containerregistry's releases.

    v0.12.1

    Changelog

    • 426de7d4 Bump golangci/golangci-lint-action from 3.2.0 to 3.3.0 (#1475)
    • 6442b027 Bump goreleaser/goreleaser-action from 3.1.0 to 3.2.0 (#1476)
    • 76ae8192 Fix context.DeadlineExceeded comparison (#1488)
    • 1711cefd Fix missing body.Close() in bearer auth (#1482)
    • 02f47e13 bump version of slsa generator (#1468)
    • 353a1176 crane: add catalog argument use annotation (#1473)
    • a0cca8a0 k8schain: Log and proceed if secret or SA are not found (#1472)

    Container Images

    https://gcr.io/go-containerregistry/crane:v0.12.1 https://gcr.io/go-containerregistry/gcrane:v0.12.1

    For example:

    docker pull gcr.io/go-containerregistry/crane:v0.12.1
    docker pull gcr.io/go-containerregistry/gcrane:v0.12.1
    
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 7

    Bump sigs.k8s.io/kustomize/kustomize/v4 from 4.5.2 to 4.5.3 in /hack

    Bumps sigs.k8s.io/kustomize/kustomize/v4 from 4.5.2 to 4.5.3.

    Release notes

    Sourced from sigs.k8s.io/kustomize/kustomize/v4's releases.

    kustomize/v4.5.3

    Enhancements

    97de780fe Support expanding anchor tags (#4383) 26b9af037 Allow setting every array element in replacements (kubernetes-sigs/kustomize#4424) d1d578c39 Support for multiple replacements in a single file (kubernetes-sigs/kustomize#4485)

    Bug Fixes

    7b0ec99d9 Retain quotes in namespace transformer filter (#4421) cb80659c2 Preserve scalar types when using the replacement filter (kubernetes-sigs/kustomize#4494) 7a3c42689 Fix image name parsing with tag and digest (kubernetes-sigs/kustomize#4406) 3421fcf81 bump dependency cobra to pick up latest vulnerability solution

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    Dependabot will merge this PR once it's up-to-date and CI passes on it, as requested by @scothis.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 8

    Bump golang.org/x/tools from 0.2.0 to 0.3.0 in /hack

    Bumps golang.org/x/tools from 0.2.0 to 0.3.0.

    Release notes

    Sourced from golang.org/x/tools's releases.

    gopls/v0.3.0

    Note: gopls now loads your entire workspace, where “workspace” is directory you opened in your editor.

    In module mode, you must open your module root (directory containing the go.mod file) or a subdirectory.

    In GOPATH mode, you must open your GOPATH/src or a directory within it. If you have a large GOPATH and you open your GOPATH as your workspace root, gopls may be very slow to load. Please see #36899 for further information.

    • Autocompletion from unimported packages is on by default. You will get completions for something like fmt.Printf even if “fmt” isn’t imported yet. (@​heschik)
    • Workspace-scoped references, rename, and go to implementation. These features use your workspace root as the search scope, so behavior will vary based on the directory you open in your editor. This may result in unexpected behavior. (@​muirdm, @​matloob)
    • Workspace-wide diagnostics. You will now see errors in your entire workspace, rather than just in your currently open files. Analysis errors will only be shown for packages with currently open files.
    • Watch file changes on disk. This allows users to switch branches without reloading their editors. Also, changing configurations no longer requires an editor reload.
    • GOPATH vendoring is fully supported. Previously, some features would ignore vendor directories, causing errors if packages weren't in GOPATH. (@​heschik)
    • New autocompletion suggestions for type conversions. Improved completions for literal candidates and variadic functions. Better rankings, including rankings for builtin functions and keywords. (@​muirdm)
    • Highlighting improvements: Highlighting now applies not only to variables, but also to fields, methods, types, and imports. Additional highlighting helps visualize control flow in loops and functions. Highlighting of single character variables has better support. (@​ridersofrohan)
    • Documentation on hover includes links to pkg.go.dev for exported symbols. (@​Southclaws)
    • Improved support for cgo dependencies. All features now work for packages that have cgo dependencies. Authoring cgo packages is still not supported, but improvements are scheduled for Go 1.15 (see #35721). (@​heschik)
    • Deep completions are now on by default. This feature of completion will search the fields and methods of all available candidates to see if there are any more candidates with the expected type. As an example, say you have imported the context package and are calling a function that takes a context.Context as a parameter. In the case that you don’t have a variable of that type in scope, deep completions will suggest context.Background() and context.TODO(). (@​muirdm)

    Opt-in:

    • staticcheck analyses remain opt-in and can be enabled by setting "staticcheck": true in your gopls settings.
    • Go 1.14 will support running the go command without modifying the user’s go.mod file. This new feature is used in gopls to show diagnostics and suggest edits in a user’s go.mod file rather than change the file without the user noticing. Currently, gopls will suggest removing unused dependencies and warn the user if there is a parse error in the go.mod file. Enable this behavior by using the go1.14 beta and setting "tempModfile": true in your gopls settings. (@​ridersofrohan)

    gopls/v0.2.2

    • Fix concurrent map read and write when a file is created (CL 210199).
    • Fix issue that caused errors to show up when a new file was created (CL 209978).

    gopls/v0.2.1

    • Fix for parse errors showing up as errors on the whole package (CL 206597).
    Commits
    • 502c634 go.mod: update golang.org/x dependencies
    • bd04e32 internal/jsonrpc2_v2: eliminate a potential Accept/Dial race in TestIdleTimeout
    • d41a43b internal/jsonrpc2_v2: fix a potential deadlock when (*Conn).Close is invoked ...
    • 3057465 gopls/doc: Add plugin for Lapce to gopls documentation
    • ba92ae1 internal/persistent: avoid incorrect map validation due to multiple keys
    • 9474ca3 gopls/doc: clarify go work use
    • 003fde1 internal/gcimporter: use nondeprecated go/packages mode bits
    • 5050657 gopls/fake: add semantic token modifiers to fake editor
    • 88a3548 gopls/coverage: repair coverage.go
    • 8e0240a internal/regtest/workspace: permanently skip TestDeleteModule_Interdependent
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 9

    Bump sigs.k8s.io/controller-runtime from 0.13.0 to 0.13.1

    Bumps sigs.k8s.io/controller-runtime from 0.13.0 to 0.13.1.

    Release notes

    Sourced from sigs.k8s.io/controller-runtime's releases.

    v0.13.1

    What's Changed

    Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.13.0...v0.13.1

    Commits
    • 44c5d50 Merge pull request #2028 from k8s-infra-cherrypick-robot/cherry-pick-2023-to-...
    • 271f9e6 Add tls options to manager.Options
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 10

    Bump sigs.k8s.io/controller-runtime from 0.12.2 to 0.12.3

    Bumps sigs.k8s.io/controller-runtime from 0.12.2 to 0.12.3.

    Release notes

    Sourced from sigs.k8s.io/controller-runtime's releases.

    v0.12.3

    What's Changed

    Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.12.2...v0.12.3

    Commits
    • cd0058a Merge pull request #1952 from k8s-infra-cherrypick-robot/cherry-pick-1950-to-...
    • b698f2b Provide access to admission.Request in custom validator/defaulter
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 11

    Bump github.com/vmware-labs/reconciler-runtime from 0.4.0 to 0.5.0

    Bumps github.com/vmware-labs/reconciler-runtime from 0.4.0 to 0.5.0.

    Release notes

    Sourced from github.com/vmware-labs/reconciler-runtime's releases.

    Release v0.5.0

    Breaking Changes

    Highlights

    What's Changed

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 12

    Update controller runtime reconciler runtime and controller tools dependencies

    Pull request details

    • Update controller runtime, reconciler runtime and controller tools dependencies in a single PR

    What this PR does / why we need it

    • Allow us to have a cleaner merge.

    Which issue(s) this PR fixes

    Attempts to close PRs

    • #303,
    • #304
    • #304
    • #305
    • #306
    • #307
    • #308
    • #309
    • #310
    • #311
    • #312
    • #313
    • #314
    • #315
    • #316
    • #317
    • #318
    • #319
    • #320
  • 13

    Bump github.com/vmware-labs/reconciler-runtime from 0.10.0 to 0.11.0

    Bumps github.com/vmware-labs/reconciler-runtime from 0.10.0 to 0.11.0.

    Release notes

    Sourced from github.com/vmware-labs/reconciler-runtime's releases.

    v0.11.0

    Breaking Changes

    Upstream breaking changes introduced by Kubernetes 1.26 and Controller Runtime 0.14 are embraced in this release.

    What's Changed

    Full Changelog: https://github.com/vmware-labs/reconciler-runtime/compare/v0.10.0...v0.11.0

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 14

    Bump golang.org/x/tools from 0.3.0 to 0.5.0 in /hack

    Bumps golang.org/x/tools from 0.3.0 to 0.5.0.

    Release notes

    Sourced from golang.org/x/tools's releases.

    gopls/v0.5.0

    A full list of issues closed can be found in the gopls/v0.5.0 milestone.

    Memory usage

    • Rewrite of caching model, resulting in significant memory usage improvements (@​heschik).

    New features

    • Extract to function: Support for extracting code blocks that contain return statements (@​joshbaum).
    • Workspace symbols: Support for fzf-style search syntax (@​findleyr). The following syntax is supported:
      • ' for exact matching
      • ^ for prefix matching
      • $ for suffix matching

    Note: This feature does not yet work in VS Code. See golang/vscode-go#647 and microsoft/vscode#106788.

    • An experimental new code lens to view GC optimization details (@​pjweinb). Once the code lens is enabled, you will see a Toggle gc details annotation at the top of your file. Clicking it will show optimization diagnostics produced by the Go compiler, and clicking it once again will hide these diagnostics. Enable the code lens by adding the following to your settings:
      "codelens": {
      	"gc_details": true
      }
      
    • go mod tidy and go mod vendor code lenses for go.mod files (@​dandua98).
    • Support for filling in matching in-scope variables instead of just empty values in fillstruct and fillreturns (@​joshbaum).
    • Autocompletion within import statements (@​dandua98).
    • Autocompletion within package declarations (@​dandua98).

    Improvements

    • Improvements to workspace symbols ranking and fuzzy matching (@​findleyr, @​myitcv).
    • Better completion suggestions in type switch case clauses and for calls to append, function literals, and unnamed types (@​muirdm).

    Thank you

    Thank you to everyone who contributed to this release!

    @​heschik @​findleyr @​pjweinb @​joshbaum @​mcjcloud @​dandua98 @​muirdm @​leitzler @​myitcv @​matloob @​tennashi @​ainar-g @​hasheddan

    ... (truncated)

    Commits
    • 7db99dd go.mod: update golang.org/x dependencies
    • 1e0dff2 gopls/internal/regtest: avoid race in TestSwitchFromGOPATHToModuleMode
    • 0441b43 gopls/internal/lsp/cache: use specific mutexes for module data
    • 33071fb internal/robustio: move robustio
    • b01e7a4 gopls/internal/regtest/watch: don't run TestSwitchFromGOPATHToModuleMode
    • e417ea3 gopls: remove dead analysis code
    • 1a08d01 gopls/internal/lsp: update replace directives in go.mod for package renaming
    • eac36cb gopls/internal/regtest: port experimental workspace tests to go.work
    • 224a61b gopls/internal/lsp/source: delete Snapshot.WriteEnv method
    • 81e741e gopls/internal/lsp/safetoken: funnel more calls through this package
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 15

    Bump sigs.k8s.io/controller-tools from 0.10.0 to 0.11.1 in /hack

    Bumps sigs.k8s.io/controller-tools from 0.10.0 to 0.11.1.

    Release notes

    Sourced from sigs.k8s.io/controller-tools's releases.

    v0.11.1

    What's Changed

    Full Changelog: https://github.com/kubernetes-sigs/controller-tools/compare/v0.11.0...v0.11.1

    v0.11.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/kubernetes-sigs/controller-tools/compare/v0.10.0...v0.11.0

    Commits
    • 9d91b25 Merge pull request #755 from k8s-infra-cherrypick-robot/cherry-pick-754-to-re...
    • d4ef1b3 Revert ":bug: Fix the generation of listType=set"
    • cce03d2 Merge pull request #753 from kubernetes-sigs/fix-generation-of-sets
    • 521024d Merge pull request #750 from kubernetes-sigs/dependabot/go_modules/github.com...
    • 82a53e3 :bug: Fix the generation of listType=set
    • 309e03b :seedling: Bump github.com/onsi/gomega from 1.24.1 to 1.24.2
    • 68d9d38 Merge pull request #748 from kubernetes-sigs/dependabot/go_modules/golang.org...
    • dae3016 :seedling: Bump golang.org/x/tools from 0.3.0 to 0.4.0
    • 31118e3 Merge pull request #749 from JoelSpeed/bump-1.26
    • dfc0dc5 Bump Kubernetes deps to v1.26.0
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • 16

    Bump sigs.k8s.io/controller-runtime from 0.13.1 to 0.14.1

    Bumps sigs.k8s.io/controller-runtime from 0.13.1 to 0.14.1.

    Release notes

    Sourced from sigs.k8s.io/controller-runtime's releases.

    v0.14.1

    Changes since v0.14.0

    :bug: Bug Fixes

    Full Changelog: https://github.com/kubernetes-sigs/controller-runtime/compare/v0.14.0...v0.14.1

    v0.14.0

    Changes since v0.13.1

    :warning: Breaking Changes

    • Add Get functionality to SubResourceClient (#2094)
    • Allow configuring RecoverPanic for controllers globally (#2093)
    • Add client.SubResourceWriter (#2072)
    • Support registration and removal of event handler (#2046)
    • Update Kubernetes dependencies to v0.26 (#2043, #2087)
    • Zap log: Default to RFC3339 time encoding (#2029)
    • cache.BuilderWithOptions inherit options from caller (#1980)

    :sparkles: New Features

    • Builder: Do not require For (#2091)
    • support disable deepcopy on list funcion (#2076)
    • Add cluster.NewClientFunc with options (#2054)
    • Tidy up startup logging of kindWithCache source (#2057)
    • Add function to get reconcileID from context (#2056)
    • feat: add NOT predicate (#2031)
    • Allow to provide a custom lock interface to manager (#2027)
    • Add tls options to manager.Options (#2023)
    • Update Go version to 1.19 (#1986)

    :bug: Bug Fixes

    • Prevent manager from getting started a second time (#2090)
    • Missing error log for in-cluster config (#2051)
    • Skip custom mutation handler when delete a CR (#2049)
    • fix: improve semantics of combining cache selectorsByObject (#2039)
    • Conversion webhook should not panic when conversion request is nil (#1970)

    :seedling: Others

    • Prepare for release 0.14 (#2100)
    • Generate files and update modules (#2096)
    • Bump github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0 (#2097)
    • Bump golang.org/x/time (#2089)
    • Update OWNERS: remove inactive members, promote fillzpp sbueringer (#2088, #2092)
    • Default ENVTEST version to a working one (1.24.2) (#2081)
    • Update golangci-lint to v1.50.1 (#2080)
    • Bump go.uber.org/zap from 1.23.0 to 1.24.0 (#2077)
    • Bump golang.org/x/sys from 0.2.0 to 0.3.0 (#2078)
    • Ignore Kubernetes Dependencies in Dependabot (#2071)

    ... (truncated)

    Commits
    • 84c5c9f 🐛 controllers without For() fail to start (#2108)
    • ddcb99d Merge pull request #2100 from vincepri/release-0.14
    • 69f0938 Merge pull request #2094 from alvaroaleman/subresoruce-get
    • 8738e91 Merge pull request #2091 from alvaroaleman/no-for
    • ca4b4de Merge pull request #2096 from lucacome/generate
    • 5673341 Merge pull request #2097 from kubernetes-sigs/dependabot/go_modules/github.co...
    • 7333aed :seedling: Bump github.com/onsi/ginkgo/v2 from 2.5.1 to 2.6.0
    • d4f1e82 Generate files and update modules
    • a387bf4 Merge pull request #2093 from alvaroaleman/recover-panic-globally
    • da7dd5d :warning: Allow configuring RecoverPanic for controllers globally
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)