GithubHelp home page GithubHelp logo

kubecost / disk-autoscaler Goto Github PK

View Code? Open in Web Editor NEW
45.0 4.0 1.0 331 KB

Resize Kubernetes PersistentVolumes automatically based on Kubecost recommendations.

License: Apache License 2.0

Just 0.66% Go 99.34%
cost-optimization kubecost kubernetes persistent-storage savings

disk-autoscaler's People

Contributors

avrodrigues5 avatar chipzoller avatar cliffcolvin avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

tty47

disk-autoscaler's Issues

Bump to latest Go

Need to bump up to the latest Go for some vulns that are getting flagged in CI. It'd be best if we can avoid pinning to a specific patch release in go.mod so we're always building with the latest.

Fix issues reported by golangci-lint

Golangci-lint currently reports the following:

cmd/diskautoscaler/main.go:85:18: Error return value of `viper.BindPFlags` is not checked (errcheck)
        viper.BindPFlags(pflag.CommandLine)
                        ^
cmd/diskautoscaler/main.go:89:18: Error return value of `viper.BindPFlags` is not checked (errcheck)
        viper.BindPFlags(pflag.CommandLine)
                        ^
pkg/diskscaler/service.go:123:2: ineffectual assignment to status (ineffassign)
        status := RunStatus{}
        ^
pkg/pvsizingrecommendation/query.go:7:2: SA1019: "io/ioutil" has been deprecated since Go 1.19: As of Go 1.16, the same functionality is now provided by package [io] or package [os], and those implementations should be preferred in new code. See the specific function documentation for details. (staticcheck)
        "io/ioutil"

Code should be up to modern standards and pass all basic linting tests.

[Feature] Audit mode

Problem Statement

Users would like to see the action DAS will take to ensure it will work according to expectations and also to ensure the risks are known.

Solution Description

Enable an audit mode in DAS so users can see, perhaps via log messages, the actions DAS would take without having it actually perform any changes.

Alternatives

No response

Additional Context

No response

Troubleshooting

  • I have searched other issues in this repository and mine is not recorded.

Least-privilege RBAC

Reduce the RBAC privileges to the lowest level following standard least-privilege best practices.

CI process for builds

Need to establish a CI pipeline for builds and releases. ko can be used as an alternative to Docker which is slimmer and uses a minimal base image similar to build packs.

Ex.:

KO_DOCKER_REPO=ko.local ko build ./cmd/diskautoscaler/ --preserve-import-paths --tags=latest --platform=linux/amd64

[Feature] Enable the intermediary Pod data mover to be configurable

Problem Statement

The intermediary Pod responsible for the copy operation in case of scale downs is not currently configurable. Many users will need to configure this Pod according to their needs so it passes security guidelines.

Solution Description

Allow the intermediary Pod copier to be configured in the most common ways including, but not limited to,:

  • image
  • name
  • metadata

Alternatives

No response

Additional Context

No response

Troubleshooting

  • I have searched other issues in this repository and mine is not recorded.

Better defaults for intermediary Pod data mover

Need to beef up the security posture of the internal Pod data mover so it has things like:

  • No use of ubuntu:latest
  • Passes the Pod Security Standards restricted profile
  • Contains basic and standard metadata
    • Standard labels are needed

Log build info at init

DAS needs to log common information upon init including git hash and version at the default log level. This will aid in future troubleshooting based on user-provided logs so we know what version of the image was used.

[Feature] Restrict Pod create and `/exec` permissions

Problem Statement

RBAC permissions are still unnecessarily wide today in that pods and pod/exec are granted too broadly. This isn't necessary as the only Pod which needs to be created and exec'd into is the datamover Pod.

Solution Description

Reduce RBAC permissions for Pod creation and /exec subresource to only the datamover Pod.

Alternatives

No response

Additional Context

No response

Troubleshooting

  • I have searched other issues in this repository and mine is not recorded.

[Bug] Missing license

Kubernetes Version

Description

Repository has no license information

Steps to reproduce

Expected behavior

Screenshots

No response

Logs

No response

Troubleshooting

  • I have searched other issues in this repository and mine is not recorded.

[Feature] Support Helm deployment

Problem Statement

Users who need customization would like to use Helm to deploy DAS.

Solution Description

Support deployment via a Helm chart.

Alternatives

No response

Additional Context

No response

Troubleshooting

  • I have searched other issues in this repository and mine is not recorded.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.