{"id":18469953,"url":"https://github.com/civo/civo-cloud-controller-manager","last_synced_at":"2025-04-08T10:32:57.873Z","repository":{"id":40653300,"uuid":"446372165","full_name":"civo/civo-cloud-controller-manager","owner":"civo","description":"Kubernetes cloud-controller-manager for Civo","archived":false,"fork":false,"pushed_at":"2025-04-07T11:58:19.000Z","size":9343,"stargazers_count":4,"open_issues_count":4,"forks_count":7,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-07T12:22:19.373Z","etag":null,"topics":["civo","cloud","cloud-controller-manager","controller-manager","kubernetes"],"latest_commit_sha":null,"homepage":"","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/civo.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":"2022-01-10T10:13:46.000Z","updated_at":"2025-03-31T05:57:19.000Z","dependencies_parsed_at":"2023-11-13T12:27:42.894Z","dependency_job_id":"fad0fec9-caad-4d45-bbc4-97315ed88623","html_url":"https://github.com/civo/civo-cloud-controller-manager","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/civo%2Fcivo-cloud-controller-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/civo%2Fcivo-cloud-controller-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/civo%2Fcivo-cloud-controller-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/civo%2Fcivo-cloud-controller-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/civo","download_url":"https://codeload.github.com/civo/civo-cloud-controller-manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247824309,"owners_count":21002248,"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":["civo","cloud","cloud-controller-manager","controller-manager","kubernetes"],"created_at":"2024-11-06T10:12:14.136Z","updated_at":"2025-04-08T10:32:56.200Z","avatar_url":"https://github.com/civo.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Civo Kubernetes Cloud Controller Manager\n\nThis controller is the Kubernetes cloud controller manager implementation for Civo. This controller is installed in to Civo K3s client clusters and handles the all operations related to Civo LoadBalancer.\n\n## Getting Started\n\nHow do I run the `civo-cloud-controller-manager` [here!](https://github.com/civo/civo-cloud-controller-manager/blob/master/doc/getting-started.md)\n\n## Load Balancers\n\nThe CCM will listen for Services with a type `LoadBalancer` set and provision an external load balancer within the Civo platform. \n\nOnce the Load Balancer is provisioned, a public DNS entry will be added mapping to the id of the load balancer. e.g. 92f8162c-c23c-4019-b6a0-2c18b8363f50.lb.civo.com.\n\nRead More: https://www.civo.com/learn/managing-external-load-balancers-on-civo\n\n### Load Balancer Customisation\n\n| Annotation | Description | Example Values |\n|------------|-------------|----------------|\n| kubernetes.civo.com/firewall-id | If provided, an existing Firewall will be used. | 03093EF6-31E6-48B1-AB1D-152AC3A8C90A |\n| kubernetes.civo.com/max-concurrent-requests | If provided, the user can specify the max number of concurrent requests a loadbalancer could afford. Note: Defaults to 10000. Whenever user updates this value, there will be a downtime for the loadbalancer (usually \u003c 1 minute)  | 10000, 20000, 30000, 40000, 50000 |\n| kubernetes.civo.com/loadbalancer-enable-proxy-protocol | If set, a proxy-protocol header will be sent via the load balancer. \u003cbr /\u003e\u003cbr /\u003eNB: This requires support from the Service End Points within the cluster. | send-proxy\u003cbr /\u003esend-proxy-v2 |\n| kubernetes.civo.com/loadbalancer-algorithm | Custom the algorithm the external load balancer uses | round_robin\u003cbr /\u003eleast_connections |\n| kubernetes.civo.com/ipv4-address | If set, LoadBalancer will have the mentioned IP as the public IP. Please note: the reserved IP should be present in the account before claiming it. | 10.0.0.20\u003cbr/\u003e my-reserved-ip |\n| kubernetes.civo.com/protocol | If set, this will override the protocol set on the svc with this | http\u003cbr /\u003etcp |\n| kubernetes.civo.com/server-timeout| server timeout determines how long the load balancer will wait for a response from the server/upstream. Defaults to 60s | 60s\u003cbr /\u003e 120m |\n| kubernetes.civo.com/client-timeout| client timeout determines how long the load balancer will wait for any activity from the client/downstream. Defaults to 60s | 60s\u003cbr /\u003e 120m |\n\n### Load Balancer Status Annotations\n\n| Annotation                            | Description                                            | Sample Value                         |\n| ------------------------------------- | ------------------------------------------------------ | ------------------------------------ |\n| kubernetes.civo.com/cluster-id        | The ID of the cluster the load balancer is assigned to | 05CE1CA2-067F-42F0-9BAA-17A6A800EFBB |\n| kubernetes.civo.com/loadbalancer-id   | The ID of the Load Balancer within Civo.               | 92F8162C-C23C-4019-B6A0-2C18B8363F50 |\n| kubernetes.civo.com/loadbalancer-name | The name of the Load Balancer                          | Lb-test                              |\n\n\n\n### Proxy Protocol\n\nWhen the proxy protocol annotation (`kubernetes.civo.com/loadbalancer-enable-proxy-protocol`) is set, the IP of the LoadBalancer is not set, only the Hostname. This will mean that all traffic local to the cluster to the LoadBalancer end point is now sent via the LoadBalancer. This allows services like CertManager to work correctly.\n\nThis option is currently a workaround for the issue https://github.com/kubernetes/ingress-nginx/issues/3996, should be removed or refactored after the Kubernetes [KEP-1860]\n\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/civo/civo-cloud-controller-manager","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcivo%2Fcivo-cloud-controller-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcivo%2Fcivo-cloud-controller-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcivo%2Fcivo-cloud-controller-manager/lists"}