{"id":28600879,"url":"https://github.com/labring/labring-envoy-ingress-controller","last_synced_at":"2025-10-12T19:11:44.631Z","repository":{"id":270793844,"uuid":"911475395","full_name":"labring/labring-envoy-ingress-controller","owner":"labring","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-04T05:23:52.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-06-11T14:59:26.321Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/labring.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,"zenodo":null}},"created_at":"2025-01-03T05:29:45.000Z","updated_at":"2025-01-04T05:23:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"c31ba4bf-fca7-44e6-862f-c5d24626e29e","html_url":"https://github.com/labring/labring-envoy-ingress-controller","commit_stats":null,"previous_names":["labring/labring-envoy-ingress-controller"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/labring/labring-envoy-ingress-controller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labring%2Flabring-envoy-ingress-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labring%2Flabring-envoy-ingress-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labring%2Flabring-envoy-ingress-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labring%2Flabring-envoy-ingress-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/labring","download_url":"https://codeload.github.com/labring/labring-envoy-ingress-controller/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labring%2Flabring-envoy-ingress-controller/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279012638,"owners_count":26085158,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-06-11T14:39:12.024Z","updated_at":"2025-10-12T19:11:44.619Z","avatar_url":"https://github.com/labring.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Labring Envoy Ingress Controller\n\nA high-performance Kubernetes ingress controller using Envoy as the data plane, designed for handling large-scale ingress configurations with minimal latency.\n\n## Features\n\n- Fast ingress rule application (\u003c5s with 100k+ rules)\n- Efficient resource utilization\n- High stability with multiple replica support\n- Envoy-based data plane with xDS protocol\n- Optimized for large-scale deployments\n\n## Building the Project\n\n### Prerequisites\n\n- Go 1.21 or later\n- Docker\n- Kubernetes cluster (v1.24+)\n\n### Build Steps\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/labring/labring-envoy-ingress-controller.git\ncd labring-envoy-ingress-controller\n```\n\n2. Build the controller binary:\n```bash\ngo mod download\ngo build -o bin/controller cmd/controller/main.go\n```\n\n3. Build the Docker image:\n```bash\ndocker build -t labring/envoy-ingress-controller:latest .\n```\n\n## Running the Controller\n\n1. Deploy the controller to your Kubernetes cluster:\n```bash\nkubectl apply -f deployments/deployment.yaml\n```\n\n2. Verify the deployment:\n```bash\nkubectl get pods -n kube-system -l app=envoy-ingress-controller\n```\n\n3. Check controller logs:\n```bash\nkubectl logs -n kube-system -l app=envoy-ingress-controller\n```\n\n## Functional Testing\n\n1. Deploy a test application:\n```bash\n# Deploy test application\nkubectl create deployment web --image=nginx\nkubectl expose deployment web --port=80\n\n# Create test ingress\nkubectl create ingress web-ingress --rule=\"example.com/*=web:80\"\n```\n\n2. Verify ingress configuration:\n```bash\n# Check ingress status\nkubectl get ingress web-ingress\n\n# Test access (update hostname as needed)\ncurl -H \"Host: example.com\" http://\u003cingress-ip\u003e/\n```\n\n## Performance Testing\n\nThe project includes tools for performance testing under `test/performance/`:\n\n1. Generate test ingress rules:\n```bash\n# Build the test tool\ngo build -o bin/generate-ingress test/performance/generate_ingress.go\n\n# Generate 100,000 ingress rules across 100 namespaces\n./bin/generate-ingress -count 100000 -namespaces 100\n```\n\n2. Measure ingress application latency:\n```bash\n# Run latency test\n./test/performance/measure_latency.sh\n```\n\n3. Monitor resource usage:\n```bash\n# Check controller resource usage\nkubectl top pod -n kube-system -l app=envoy-ingress-controller\n```\n\n### Performance Test Results\n\nThe controller is designed to:\n- Apply new ingress rules within 5 seconds even with 100,000+ existing rules\n- Maintain low resource usage under high load\n- Support multiple replicas for high availability\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch\n3. Commit your changes\n4. Push to the branch\n5. Create a Pull Request\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the LICENSE file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabring%2Flabring-envoy-ingress-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flabring%2Flabring-envoy-ingress-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabring%2Flabring-envoy-ingress-controller/lists"}