{"id":25403163,"url":"https://github.com/ikepcampbell/kubemedic","last_synced_at":"2025-04-12T13:45:36.642Z","repository":{"id":275889600,"uuid":"927514916","full_name":"IkePCampbell/kubemedic","owner":"IkePCampbell","description":"Automated Kubernetes Remediation","archived":false,"fork":false,"pushed_at":"2025-02-24T23:23:53.000Z","size":147,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T00:26:29.600Z","etag":null,"topics":["go","golang","k8s","k8s-cluster","kubemedic","kubernetes","kubernetes-cli","kubernetes-cluster"],"latest_commit_sha":null,"homepage":"https://kubemedic.io","language":"Go","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/IkePCampbell.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2025-02-05T04:42:59.000Z","updated_at":"2025-02-24T23:23:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"f4ee928d-60cf-4b98-bb88-486cdd27cedd","html_url":"https://github.com/IkePCampbell/kubemedic","commit_stats":null,"previous_names":["ikepcampbell/kubemedic"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IkePCampbell%2Fkubemedic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IkePCampbell%2Fkubemedic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IkePCampbell%2Fkubemedic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IkePCampbell%2Fkubemedic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IkePCampbell","download_url":"https://codeload.github.com/IkePCampbell/kubemedic/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248574904,"owners_count":21127087,"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":["go","golang","k8s","k8s-cluster","kubemedic","kubernetes","kubernetes-cli","kubernetes-cluster"],"created_at":"2025-02-16T02:28:09.939Z","updated_at":"2025-04-12T13:45:36.637Z","avatar_url":"https://github.com/IkePCampbell.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KubeMedic - Intelligent Kubernetes Auto-Remediation\n\nKubeMedic is an advanced Kubernetes operator that goes beyond traditional autoscaling to provide comprehensive, intelligent, and safe automated remediation for your clusters. Unlike standard autoscalers, KubeMedic can handle complex scenarios through multi-dimensional analysis and varied remediation actions.\n\n## What Makes KubeMedic Different?\n\n### 🎯 Multi-Dimensional Remediation\nUnlike traditional autoscalers that only scale based on single metrics, KubeMedic can:\n- Combine multiple metrics (CPU, Memory, Error Rates, Pod Restarts)\n- Perform varied remediation actions (scaling, restarts, rollbacks)\n- Adjust resource limits and HPA settings dynamically\n- Execute staged responses to escalating issues\n\n### 🧠 Intelligent Policy Engine\n- Combines multiple conditions for smarter decisions\n- Supports duration-based triggers (e.g., high CPU for \u003e5 minutes)\n- Implements cooldown periods to prevent oscillation\n- Provides conflict resolution with other controllers\n\n### 🛡️ Advanced Safety Mechanisms\n- Automatic state preservation before actions\n- Gradual or immediate reversion strategies\n- Resource quota awareness\n- Protected namespaces and resources\n- Audit trail of all actions\n\n### 🔌 Rich Integration Capabilities\n- Native Grafana integration for visualization\n- Pre/post action webhooks for notifications\n- Prometheus metrics integration\n- State backup system\n\n## Prerequisites\n\n### Required\n- Kubernetes cluster (v1.16+)\n- [Metrics Server](https://github.com/kubernetes-sigs/metrics-server)\n- [cert-manager](https://cert-manager.io/docs/installation/) (optional, recommended)\n\n### Optional\n- Prometheus \u0026 Grafana for advanced visualization\n- Webhook endpoints for notifications\n\n## Quick Start\n\n1. **Install Metrics Server** (if not already installed)\n```bash\nkubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml\n```\n\n2. **Install KubeMedic**\n```bash\nkubectl apply -f deploy/components.yaml\n```\n\n3. **Create an Intelligent Remediation Policy**\n```yaml\napiVersion: remediation.kubemedic.io/v1alpha1\nkind: SelfRemediationPolicy\nmetadata:\n  name: advanced-remediation\n  namespace: my-app\nspec:\n  rules:\n    # CPU-based scaling with gradual approach\n    - name: cpu-scaling\n      conditions:\n        - type: CPUUsage\n          threshold: \"80\"\n          duration: \"5m\"\n      actions:\n        - type: ScaleUp\n          target:\n            kind: Deployment\n            name: my-service\n          scalingParams:\n            temporaryMaxReplicas: 5\n            scalingDuration: \"30m\"\n            revertStrategy: \"Gradual\"\n    \n    # Memory leak detection and handling\n    - name: memory-leak-handler\n      conditions:\n        - type: MemoryUsage\n          threshold: \"90\"\n          duration: \"10m\"\n      actions:\n        - type: RestartPod\n          target:\n            kind: Pod\n            name: my-service\n    \n    # Error rate-based remediation\n    - name: error-handler\n      conditions:\n        - type: ErrorRate\n          threshold: \"100\"\n          duration: \"2m\"\n      actions:\n        - type: RollbackDeployment\n          target:\n            kind: Deployment\n            name: my-service\n\n  cooldownPeriod: \"5m\"\n  grafanaIntegration:\n    enabled: true\n    webhookUrl: \"https://grafana.example.com/webhook\"\n```\n\n## Key Features\n\n### 🔄 Intelligent Scaling\n- Dynamic HPA limit adjustments\n- Temporary resource overrides\n- Gradual scaling with automatic revert\n- Multi-metric based decisions\n\n### 🛠️ Advanced Remediation\n- Automatic pod restarts for memory leaks\n- Deployment rollbacks for error spikes\n- Resource limit adjustments\n- Custom webhook integrations\n\n### 📊 Comprehensive Monitoring\n- Real-time metrics analysis\n- Historical data tracking\n- Grafana dashboard integration\n- Prometheus metrics export\n\n### 🔒 Enterprise-Grade Safety\n- Protected system namespaces\n- Resource quotas and limits\n- State preservation and rollback\n- Action audit trail\n\n## Documentation\n\nFor detailed documentation, visit our [Documentation](docs/README.md) section:\n- [Getting Started Guide](docs/getting-started/README.md)\n- [Core Concepts](docs/concepts/README.md)\n- [Advanced Usage](docs/advanced-usage/README.md)\n- [API Reference](docs/reference/api.md)\n\n## Examples\n\nExplore our comprehensive examples:\n- [CPU Scaling](examples/cpu-scaling-with-test.yaml)\n- [Memory Management](examples/memory-scaling-with-test.yaml)\n- [Error Rate Handling](examples/pod-restart-with-test.yaml)\n\nEach example includes both the policy configuration and a test application to demonstrate the functionality.\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n## License\n\nApache License 2.0 - See [LICENSE](LICENSE) for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikepcampbell%2Fkubemedic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fikepcampbell%2Fkubemedic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fikepcampbell%2Fkubemedic/lists"}