A k8s operator to reduce CO2 footprint of your clusters

Go Report Card Test and build Coverage Status

How many of your dev/preview pods stay on during weekends? Or at night? It's a waste of resources! And money! But fear not, kube-green is here to the rescue.

kube-green is a simple k8s addon that automatically shuts down (some of) your resources when you don't need them.

Keep reading to find out how to use it, and if you have ideas on how to improve kube-green, open an issue, we'd love to hear them!

Install

To install kube-green just clone this repository, check out to the latest stable tag, and run:

make deploy

This will create a new namespace, kube-green, which contains the pod of the operator.

For further information about the installation, see here

Usage

The use of this operator is very simple. Once installed on the cluster, configure the desired CRD to make it works.

SleepInfo

In the namespace where you want to enable kube-green, apply the SleepInfo CRD. An example of CRD is accessible at this link

The SleepInfo spec contains:

  • weekdays: day of the week. * is every day, 1 is monday, 1-5 is from monday to friday
  • sleepAt: time in hours and minutes (HH:mm) when namespace will go to sleep. Valid values are, for example, 19:00or *:* for every minute and every hour. Resources sleep will be deployments (setting replicas value to 0) and, if suspendCronjobs option is set to true, cron jobs will be suspended.
  • wakeUpAt (optional): time in hours and minutes (HH:mm) when namespace should be restored to the initial state (before sleep). Valid values are, for example, 19:00or *:* for every minute and every hour. If wake up value is not set, pod in namespace will not be restored. So, you will need to deploy the initial namespace configuration to restore it.
  • timeZone (optional): time zone in IANA specification. For example for italian hour, set Europe/Rome.
  • suspendCronJobs (optional): if set to true, cronjobs will be suspended.
  • excludeRef (optional): an array of object containing the resource to exclude from sleep. It contains:
    • apiVersion: version of the resource. Now it is supported "apps/v1", "batch/v1beta1" and "batch/v1"
    • kind: the kind of resource. Now it is supported "Deployment" and "CronJob"
    • name: the name of the resource

An example of a complete SleepInfo resource:

apiVersion: kube-green.com/v1alpha1
kind: SleepInfo
metadata:
  name: working-hours
spec:
  weekdays: "1-5"
  sleepAt: "20:00"
  wakeUpAt: "08:00"
  timeZone: "Europe/Rome"
  suspendCronJobs: true
  excludeRef:
    - apiVersion: "apps/v1"
      kind:       Deployment
      name:       api-gateway

Lifecycle

TODO

Uninstall

To uninstall the operator from the cluster, run:

make undeploy

⚠️ If you run undeploy command, the namespace of kube-green (by default kube-green), will be deleted.

Versioning

To upgrade the version:

  1. export VERSION=v{{NEW_VERSION_TO_TAG}} where {{NEW_VERSION_TO_TAG}} should be replaced with the next version to upgrade. N.B.: version should include v as first char.
  2. run ./hack/update-version.sh $VERSION
  3. run make
  4. add, commit and push
  5. git tag $VERSION
  6. git push --tags origin $VERSION

API Reference documentation

API reference is automatically generated with this tool. To generate it automatically, are added in api versioned folder a file doc.go with the content of file groupversion_info.go and a comment with +genclient in the sleepinfo_types.go file for the resource type.

Acknowledgement

Special thanks to JGiola for the tech review.

Comments
  • Suspend only cronjobs?

    Suspend only cronjobs?

    is it possible to suspend only cronjobs? I've tested the following template but no luck -

    apiVersion: kube-green.com/v1alpha1
    kind: SleepInfo
    metadata:
      name: working-hours
    spec:
      weekdays: "*"
      sleepAt: "16:30"
      wakeUpAt: "10:00"
      timeZone: "Asia/Jerusalem"
      suspendCronJobs: true
      excludeRef:
        - apiVersion: "apps/v1"
          kind: Deployment
          name: "*"
    
  • Add label selector to exclude deployments and cronjobs

    Add label selector to exclude deployments and cronjobs

    Hello, with this PR we want to fix issue #172. We noticed that the behaviour of the Cronjob selector differs from the deployment. Do you think we can replicate the deployment behaviour in the cronjob? So we can add the matchLabels functionality.

    Open Source Saturday

  • chore(deps): bump k8s.io/api from 0.25.2 to 0.25.4

    chore(deps): bump k8s.io/api from 0.25.2 to 0.25.4

    Bumps k8s.io/api from 0.25.2 to 0.25.4.

    Commits
    • 88912e3 Update dependencies to v0.25.4 tag
    • e7b469b Merge pull request #112808cheftako/automated-cherry-pick-of-#112689
    • 1102e6f Updated vendor to the new preferred versions.
    • 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)
  • end-to-end test fails - failed to pull image

    end-to-end test fails - failed to pull image

    Hi there!

    I'm trying to run the end to end test

    kubectl kuttl test --skip-cluster-delete

    on my mac book with podman and kind but it fails because the image kubegreen/kube-green:e2e-test is not found. Please find below the events of the controller kube-green-controller-manager

    Events:
      Type     Reason          Age                    From     Message
      ----     ------          ----                   ----     -------
      Normal   BackOff         9d (x6507 over 10d)    kubelet  Back-off pulling image "kubegreen/kube-green:e2e-test"
      Warning  FailedMount     27m                    kubelet  MountVolume.SetUp failed for volume "cert" : failed to sync secret cache: timed out waiting for the condition
      Normal   SandboxChanged  27m                    kubelet  Pod sandbox changed, it will be killed and re-created.
      Normal   Pulled          27m                    kubelet  Container image "gcr.io/kubebuilder/kube-rbac-proxy:v0.12.0" already present on machine
      Normal   Created         27m                    kubelet  Created container kube-rbac-proxy
      Normal   Started         27m                    kubelet  Started container kube-rbac-proxy
      Normal   Pulling         27m (x3 over 27m)      kubelet  Pulling image "kubegreen/kube-green:e2e-test"
      Warning  Failed          26m (x3 over 27m)      kubelet  Failed to pull image "kubegreen/kube-green:e2e-test": rpc error: code = NotFound desc = failed to pull and unpack image "docker.io/kubegreen/kube-green:e2e-test": failed to resolve reference "docker.io/kubegreen/kube-green:e2e-test": docker.io/kubegreen/kube-green:e2e-test: not found
      Warning  Failed          26m (x3 over 27m)      kubelet  Error: ErrImagePull
      Warning  Failed          26m (x5 over 27m)      kubelet  Error: ImagePullBackOff
      Normal   BackOff         2m33s (x109 over 27m)  kubelet  Back-off pulling image "kubegreen/kube-green:e2e-test"
    

    I check on https://hub.docker.com/u/kubegreen and the image is not available.

  • chore(deps): bump k8s.io/api from 0.25.2 to 0.25.5

    chore(deps): bump k8s.io/api from 0.25.2 to 0.25.5

    Bumps k8s.io/api from 0.25.2 to 0.25.5.

    Commits
    • dc789cf Update dependencies to v0.25.5 tag
    • be0bf1d Merge pull request #114320 from liggitt/net-1.25
    • 81c9a74 Update golang.org/x/net 1e63c2f
    • 70abe33 Merge pull request #113425aimuz/automated-cherry-pick-of-#112693
    • 8bf119c Fixed (CVE-2022-27664) Bump golang.org/x/net to v0.1.1-0.20221027164007-c6301...
    • e7b469b Merge pull request #112808cheftako/automated-cherry-pick-of-#112689
    • 1102e6f Updated vendor to the new preferred versions.
    • 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)
  • chore(deps): bump k8s.io/client-go from 0.25.2 to 0.25.4

    chore(deps): bump k8s.io/client-go from 0.25.2 to 0.25.4

    Bumps k8s.io/client-go from 0.25.2 to 0.25.4.

    Commits
    • 7226b15 Update dependencies to v0.25.4 tag
    • 166ab05 Merge pull request #112808cheftako/automated-cherry-pick-of-#112689
    • 4b5a638 Updated vendor to the new preferred versions.
    • 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)
  • chore(deps): bump k8s.io/apimachinery from 0.25.2 to 0.25.4

    chore(deps): bump k8s.io/apimachinery from 0.25.2 to 0.25.4

    Bumps k8s.io/apimachinery from 0.25.2 to 0.25.4.

    Commits
    • 4fbe8e4 Merge pull request #112218haoruan/automated-cherry-pick-of-#111936
    • cf171ba Merge pull request #112808cheftako/automated-cherry-pick-of-#112689
    • cb0507f Updated vendor to the new preferred versions.
    • 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)
  • Add new flag for configuring webserver port

    Add new flag for configuring webserver port

    With this PR I'm adding a new server-port flag for being able to change the port where the server is listening instead of having always the 9443 value.

  • chore(deps): bump k8s.io/client-go from 0.25.2 to 0.25.3

    chore(deps): bump k8s.io/client-go from 0.25.2 to 0.25.3

    Bumps k8s.io/client-go from 0.25.2 to 0.25.3.

    Commits
    • 62756ee Update dependencies to v0.25.3 tag
    • 166ab05 Merge pull request #112808cheftako/automated-cherry-pick-of-#112689
    • 4b5a638 Updated vendor to the new preferred versions.
    • 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)
  • chore(deps): bump k8s.io/apimachinery from 0.25.2 to 0.25.3

    chore(deps): bump k8s.io/apimachinery from 0.25.2 to 0.25.3

    Bumps k8s.io/apimachinery from 0.25.2 to 0.25.3.

    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)
  • chore(deps): bump k8s.io/api from 0.25.2 to 0.25.3

    chore(deps): bump k8s.io/api from 0.25.2 to 0.25.3

    Bumps k8s.io/api from 0.25.2 to 0.25.3.

    Commits
    • 8384a1b Update dependencies to v0.25.3 tag
    • e7b469b Merge pull request #112808cheftako/automated-cherry-pick-of-#112689
    • 1102e6f Updated vendor to the new preferred versions.
    • 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)
  • chore(deps): bump sigs.k8s.io/controller-runtime from 0.13.1 to 0.14.1

    chore(deps): 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)
  • chore(deps): bump github.com/onsi/gomega from 1.24.1 to 1.24.2

    chore(deps): bump github.com/onsi/gomega from 1.24.1 to 1.24.2

    Bumps github.com/onsi/gomega from 1.24.1 to 1.24.2.

    Release notes

    Sourced from github.com/onsi/gomega's releases.

    v1.24.2

    1.24.2

    Fixes

    • Correctly handle assertion failure panics for eventually/consistnetly "g Gomega"s in a goroutine [78f1660]
    • docs:Fix typo "you an" -> "you can" (#607) [3187c1f]
    • fixes issue #600 (#606) [808d192]

    Maintenance

    • Bump golang.org/x/net from 0.2.0 to 0.4.0 (#611) [6ebc0bf]
    • Bump nokogiri from 1.13.9 to 1.13.10 in /docs (#612) [258cfc8]
    • Bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1 (#609) [e6c3eb9]
    Changelog

    Sourced from github.com/onsi/gomega's changelog.

    1.24.2

    Fixes

    • Correctly handle assertion failure panics for eventually/consistnetly "g Gomega"s in a goroutine [78f1660]
    • docs:Fix typo "you an" -> "you can" (#607) [3187c1f]
    • fixes issue #600 (#606) [808d192]

    Maintenance

    • Bump golang.org/x/net from 0.2.0 to 0.4.0 (#611) [6ebc0bf]
    • Bump nokogiri from 1.13.9 to 1.13.10 in /docs (#612) [258cfc8]
    • Bump github.com/onsi/ginkgo/v2 from 2.5.0 to 2.5.1 (#609) [e6c3eb9]
    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)
  • chore(deps): bump k8s.io/client-go from 0.25.2 to 0.26.0

    chore(deps): bump k8s.io/client-go from 0.25.2 to 0.26.0

    Bumps k8s.io/client-go from 0.25.2 to 0.26.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)
  • chore(deps): bump k8s.io/apimachinery from 0.25.2 to 0.26.0

    chore(deps): bump k8s.io/apimachinery from 0.25.2 to 0.26.0

    Bumps k8s.io/apimachinery from 0.25.2 to 0.26.0.

    Commits
    • 5d4cdd2 Merge remote-tracking branch 'origin/master' into release-1.26
    • 6cbc4a3 Update golang.org/x/net 1e63c2f
    • 6561235 Merge pull request #113699 from liggitt/manjusaka/fix-107415
    • dad8cd8 Update workload selector validation
    • fe82462 Add extra value validation for matchExpression field in LabelSelector
    • 067949d update k8s.io/utils to fix util tracing panic
    • 0ceff90 Merge pull request #112223 from astraw99/fix-ownerRef-validate
    • 9e85d3a Merge pull request #112649 from howardjohn/set/optimize-everything-nothing
    • 88a1448 Rename and comment on why sharing is safe
    • b03a432 Merge pull request #113367 from pohly/dep-ginkgo-gomega
    • 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)
  • chore(deps): bump k8s.io/api from 0.25.2 to 0.26.0

    chore(deps): bump k8s.io/api from 0.25.2 to 0.26.0

    Bumps k8s.io/api from 0.25.2 to 0.26.0.

    Commits
    • 2ee9a6c Update dependencies to v0.26.0 tag
    • 07ac8fe Merge remote-tracking branch 'origin/master' into release-1.26
    • 566ee01 Update golang.org/x/net 1e63c2f
    • b966dc9 sync: update go.mod
    • 053624e Merge pull request #111023 from pohly/dynamic-resource-allocation
    • 3590eda Merge pull request #113375 from atiratree/PodHealthyPolicy-api
    • 5a4f9a5 generated
    • 5cb3202 Merge pull request #113186 from ttakahashi21/KEP-3294
    • 993c43c api: add UnhealthyPodEvictionPolicy for PDBs
    • dfd6ea2 Generate code
    • 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)
Basic Kubernetes operator that have multiple versions in CRD. This operator can be used to experiment and understand Operator/CRD behaviors.

add-operator Basic Kubernetes operator that have multiple versions in CRD. This operator can be used to experiment and understand Operator/CRD behavio

Dec 15, 2021
An operator which complements grafana-operator for custom features which are not feasible to be merged into core operator

Grafana Complementary Operator A grafana which complements grafana-operator for custom features which are not feasible to be merged into core operator

Aug 16, 2022
K8s-network-config-operator - Kubernetes network config operator to push network config to switches

Kubernetes Network operator Will add more to the readme later :D Operations The

May 16, 2022
a k8s operator 、operator-sdk

helloworld-operator a k8s operator 、operator-sdk Operator 参考 https://jicki.cn/kubernetes-operator/ https://learnku.com/articles/60683 https://opensour

Jan 27, 2022
Pulumi-k8s-operator-example - OpenGitOps Compliant Pulumi Kubernetes Operator Example

Pulumi GitOps Example OpenGitOps Compliant Pulumi Kubernetes Operator Example Pr

May 6, 2022
The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases

The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases. It eliminates the dependency on a human operator or administrator for the majority of database operations.

Dec 14, 2022
A simple prometheus exporter for the EE895-M16HV2 CO2 sensor

EE895-exporter A simple prometheus exporter for reading sensor data from a EE895-M16HV2 module such as this Raspberry PI Board. Based on the ee895 pyt

Oct 30, 2022
API for global CO2 measurements, powered by the Ribbit Network

Ribbit Network API (WIP) This repository contains the backend services supportin

Dec 22, 2022
KinK is a helper CLI that facilitates to manage KinD clusters as Kubernetes pods. Designed to ease clusters up for fast testing with batteries included in mind.
KinK is a helper CLI that facilitates to manage KinD clusters as Kubernetes pods. Designed to ease clusters up for fast testing with batteries included in mind.

kink A helper CLI that facilitates to manage KinD clusters as Kubernetes pods. Table of Contents kink (KinD in Kubernetes) Introduction How it works ?

Dec 10, 2022
An operator for managing ephemeral clusters in GKE

Test Cluster Operator for GKE This operator provides an API-driven cluster provisioning for integration and performance testing of software that integ

Oct 22, 2022
Kubernetes operator to autoscale Google's Cloud Bigtable clusters
Kubernetes operator to autoscale Google's Cloud Bigtable clusters

Bigtable Autoscaler Operator Bigtable Autoscaler Operator is a Kubernetes Operator to autoscale the number of nodes of a Google Cloud Bigtable instanc

Nov 5, 2021
Nebula Operator manages NebulaGraph clusters on Kubernetes and automates tasks related to operating a NebulaGraph cluster

Nebula Operator manages NebulaGraph clusters on Kubernetes and automates tasks related to operating a NebulaGraph cluster. It evolved from NebulaGraph Cloud Service, makes NebulaGraph a truly cloud-native database.

Dec 31, 2022
kcount counts Kubernetes (K8s) objects across clusters.

kcount counts Kubernetes (K8s) objects across clusters. It gets the cluster configuration, including cluster name and namespace, from kubeconfig files

Sep 23, 2022
The Elastalert Operator is an implementation of a Kubernetes Operator, to easily integrate elastalert with gitops.

Elastalert Operator for Kubernetes The Elastalert Operator is an implementation of a Kubernetes Operator. Getting started Firstly, learn How to use el

Jun 28, 2022
Test Operator using operator-sdk 1.15

test-operator Test Operator using operator-sdk 1.15 operator-sdk init --domain rbt.com --repo github.com/ravitri/test-operator Writing kustomize manif

Dec 28, 2021
Minecraft-operator - A Kubernetes operator for Minecraft Java Edition servers

Minecraft Operator A Kubernetes operator for dedicated servers of the video game

Dec 15, 2022
Operator Permissions Advisor is a CLI tool that will take a catalog image and statically parse it to determine what permissions an Operator will request of OLM during an install

Operator Permissions Advisor is a CLI tool that will take a catalog image and statically parse it to determine what permissions an Operator will request of OLM during an install. The permissions are aggregated from the following sources:

Apr 22, 2022
Kubernetes Operator Samples using Go, the Operator SDK and OLM
Kubernetes Operator Samples using Go, the Operator SDK and OLM

Kubernetes Operator Patterns and Best Practises This project contains Kubernetes operator samples that demonstrate best practices how to develop opera

Nov 24, 2022