{"id":20705741,"url":"https://github.com/sustainable-computing-io/clever","last_synced_at":"2025-04-23T01:36:55.542Z","repository":{"id":104903054,"uuid":"493711617","full_name":"sustainable-computing-io/clever","owner":"sustainable-computing-io","description":"Container Level Energy-efficient VPA Recommender","archived":false,"fork":false,"pushed_at":"2025-04-10T05:28:09.000Z","size":48,"stargazers_count":25,"open_issues_count":20,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-10T06:34:14.597Z","etag":null,"topics":["kubernetes","machine-learning","sustainability","vertical-scaling"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sustainable-computing-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-18T15:03:02.000Z","updated_at":"2024-12-09T15:04:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"2fbb13ec-c3cf-4682-a0d8-643a8bd1dec8","html_url":"https://github.com/sustainable-computing-io/clever","commit_stats":{"total_commits":20,"total_committers":4,"mean_commits":5.0,"dds":0.25,"last_synced_commit":"fc20b3e8947978ec13c744daa4f936d16af4d3fa"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sustainable-computing-io%2Fclever","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sustainable-computing-io%2Fclever/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sustainable-computing-io%2Fclever/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sustainable-computing-io%2Fclever/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sustainable-computing-io","download_url":"https://codeload.github.com/sustainable-computing-io/clever/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250354242,"owners_count":21416747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kubernetes","machine-learning","sustainability","vertical-scaling"],"created_at":"2024-11-17T01:19:32.926Z","updated_at":"2025-04-23T01:36:55.524Z","avatar_url":"https://github.com/sustainable-computing-io.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CLEVER\nContainer Level Energy-efficient VPA Recommender for Kubernetes\n\n## Pre-requisites\n- Baremetal Node OS - RedHat 8\n- Kubernetes 1.22+\n- Kepler v0.2\n- Prometheus release-0.11\n- Kubernetes Vertical Pod Autoscaler (VPA) 0.11\n\n## Installation\n### Install Kepler\n- Follow the instructions in the [Kepler](https://github.com/sustainable-computing-io/kepler) to install Kepler as DaemonSets on nodes of the Kubernetes Cluster.\n\n### Install Prometheus \u0026 Grafana Dashboard\n- Follow the instructions in the [kube-prometheus](https://github.com/prometheus-operator/kube-prometheus) to install both Prometheus and Grafana on the Kubernetes Cluster.\n- Import the [Grafana Dashboard](https://grafana.com/docs/grafana/v9.0/dashboards/export-import/). The dashboard is available in the `dashboards/clever-dashboard.json` folder.\n- Access Prometheus UI and Grafana Dashboard via `kubectl port-forward` command following the [Access UIs tutorial](https://github.com/prometheus-operator/kube-prometheus/blob/main/docs/access-ui.md).\n\n### Install VPA\n- Follow the instructions [here](https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/README.md) to install the VPA on the Kubernetes Cluster.\n\n### Install CLEVER\n- Clone the CLEVER repository\n```bash\ngit clone https://github.com/sustainable-computing-io/clever.git\n```\n\n- Deploy CLEVER Recommender to run as an alternative recommender for VPA.\n```bash\nkubectl apply -f manifests/clever.yaml\n```\n\n## Tutorial\n- Deploy the example application that selects the CLEVER recommender for VPA.\n```bash\nkubectl apply -f manifests/random.yaml\n```\n\n- The example application defines a VPA Custom Resource with the following configuration:\n```yaml\napiVersion: \"autoscaling.k8s.io/v1\"\nkind: VerticalPodAutoscaler\nmetadata:\n  name: random-vpa\nspec:\n  recommenders:\n    - name: clever\n  targetRef:\n    apiVersion: \"apps/v1\"\n    kind: Deployment\n    name: random\n  resourcePolicy:\n    containerPolicies:\n      - containerName: '*'\n        minAllowed:\n          cpu: 100m\n        maxAllowed:\n          cpu: 16\n        controlledResources: [\"cpu\"]\n```\n\n- Monitor the recommended CPU requests for the example application by watching the VPA object.\n```bash\nwatch -n 0.1 ./scripts/vpa.sh random-vpa\n```\n\n- Change the node CPU frequencies to observe the effect on the recommended CPU requests.\n```bash\n./scripts/set_cpu_freq.sh 1GHz\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsustainable-computing-io%2Fclever","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsustainable-computing-io%2Fclever","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsustainable-computing-io%2Fclever/lists"}