{"id":13509929,"url":"https://github.com/jcmoraisjr/haproxy-ingress","last_synced_at":"2026-01-04T17:17:51.949Z","repository":{"id":37318487,"uuid":"81008374","full_name":"jcmoraisjr/haproxy-ingress","owner":"jcmoraisjr","description":"HAProxy Ingress","archived":false,"fork":false,"pushed_at":"2025-04-16T23:18:43.000Z","size":14364,"stargazers_count":1072,"open_issues_count":70,"forks_count":272,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-04-25T15:48:34.123Z","etag":null,"topics":["hacktoberfest","haproxy","ingress-controller","kubernetes"],"latest_commit_sha":null,"homepage":"https://haproxy-ingress.github.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/jcmoraisjr.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,"zenodo":null}},"created_at":"2017-02-05T17:20:55.000Z","updated_at":"2025-04-21T21:30:04.000Z","dependencies_parsed_at":"2022-07-12T12:24:54.790Z","dependency_job_id":"a21ea049-b190-4cb0-b883-986a34192f9d","html_url":"https://github.com/jcmoraisjr/haproxy-ingress","commit_stats":null,"previous_names":[],"tags_count":199,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcmoraisjr%2Fhaproxy-ingress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcmoraisjr%2Fhaproxy-ingress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcmoraisjr%2Fhaproxy-ingress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jcmoraisjr%2Fhaproxy-ingress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jcmoraisjr","download_url":"https://codeload.github.com/jcmoraisjr/haproxy-ingress/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254000851,"owners_count":21997441,"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":["hacktoberfest","haproxy","ingress-controller","kubernetes"],"created_at":"2024-08-01T02:01:17.453Z","updated_at":"2026-01-04T17:17:51.938Z","avatar_url":"https://github.com/jcmoraisjr.png","language":"Go","funding_links":[],"categories":["Load balancing","Go","\u003ca id=\"d03d494700077f6a65092985c06bf8e8\"\u003e\u003c/a\u003e工具","kubernetes","API Gateways \u0026 Proxies"],"sub_categories":["[Jenkins](#jenkins)","\u003ca id=\"d3069cac6097830d12f5933c9c8b7a77\"\u003e\u003c/a\u003eHAProxy"],"readme":"# HAProxy Ingress controller\n\n[Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) controller\nimplementation for [HAProxy](http://www.haproxy.org/) loadbalancer.\n\n[![build](https://img.shields.io/github/actions/workflow/status/jcmoraisjr/haproxy-ingress/build.yaml?branch=master\u0026logo=github)](https://github.com/jcmoraisjr/haproxy-ingress/actions/workflows/build.yaml) [![helm](https://img.shields.io/badge/helm%20chart-ready-blue?logo=helm)](https://artifacthub.io/packages/helm/haproxy-ingress/haproxy-ingress)\n\nHAProxy Ingress is a Kubernetes ingress controller: it configures a HAProxy instance\nto route incoming requests from an external network to the in-cluster applications.\nThe routing configurations are built reading specs from the Kubernetes cluster.\nUpdates made to the cluster are applied on the fly to the HAProxy instance.\n\n## Use HAProxy Ingress\n\n**Documentation:**\n\n* Getting started guide: [/docs/getting-started/](https://haproxy-ingress.github.io/docs/getting-started/)\n* Global and per ingress/service configuration keys: [/docs/configuration/keys/](https://haproxy-ingress.github.io/docs/configuration/keys/)\n* Command-line options: [/docs/configuration/command-line/](https://haproxy-ingress.github.io/docs/configuration/command-line/)\n\n**Supported versions:**\n\n| HAProxy Ingress                                      | Embedded\u003cbr/\u003eHAProxy | Supported\u003cbr/\u003eKubernetes | External\u003cbr/\u003eHAProxy (*) |\n|------------------------------------------------------|----------------------|--------------------------|--------------------------|\n| [`v0.16`](CHANGELOG/CHANGELOG-v0.16.md) (beta)       | `2.8`                | `1.21+`                  | `2.4+`                   |\n| [`v0.15`](CHANGELOG/CHANGELOG-v0.15.md) **(latest)** | `2.6`                | `1.21+`                  | `2.2+`                   |\n| [`v0.14`](CHANGELOG/CHANGELOG-v0.14.md)              | `2.4`                | `1.19+`                  | `2.2+`                   |\n| [`v0.13`](CHANGELOG/CHANGELOG-v0.13.md) (critical fixes) | `2.3` up to `v0.13.10`\u003cbr/\u003e`2.4` on `v0.13.11`+   | `1.19+`   | `2.2+`     |\n\n* Beta quality versions (`beta` / `canary` tags) has some new, but battle tested features, usually running on some of our production clusters\n* Development versions (`alpha` / `snapshot` tags) has major changes with few tests, usually not recommended for production\n* (*) Minimum supported HAProxy version if using an [external HAProxy](https://haproxy-ingress.github.io/docs/examples/external-haproxy/) instance\n\n**Community:**\n\n* [Slack](https://kubernetes.slack.com/channels/haproxy-ingress): We're in the [#haproxy-ingress](https://kubernetes.slack.com/channels/haproxy-ingress) channel on Kubernetes Slack. Take an [invite](https://slack.k8s.io) if not subscribed yet\n* [Users mailing list](https://groups.google.com/forum/#!forum/haproxy-ingress): Announcements and discussion on a mailing list\n* [Stack Overflow](https://stackoverflow.com/questions/tagged/haproxy-ingress): Practical questions and curated answers\n\n## Develop HAProxy Ingress\n\nThe instructions below are valid for v0.14 and newer. See [v0.13](https://github.com/jcmoraisjr/haproxy-ingress/blob/release-0.13/README.md#develop-haproxy-ingress) branch for older versions.\n\n**Building and running locally:**\n\n```\nmkdir -p $GOPATH/src/github.com/jcmoraisjr\ncd $GOPATH/src/github.com/jcmoraisjr\ngit clone https://github.com/jcmoraisjr/haproxy-ingress.git\ncd haproxy-ingress\nmake run\n```\n\nDependencies to run locally:\n\n* Golang\n* HAProxy compiled with `USE_OPENSSL=1` and `USE_LUA=1`\n* Lua with `lua-json` (`luarocks install lua-json`) if using Auth External or OAuth\n* Kubernetes network should be reachable from the local machine for a proper e2e test\n\n**Building container image:**\n\nFast build - cross compile for linux (locally) and generate `localhost/haproxy-ingress:latest`:\n\n```\nmake image\n```\n\nOfficial image - build in a multi-stage Dockerfile and generate `localhost/haproxy-ingress:latest`:\n\n```\nmake docker-build\n```\n\nDeploy local image using Helm:\n\n```\nhelm repo add haproxy-ingress https://haproxy-ingress.github.io/charts\nhelm install haproxy-ingress haproxy-ingress/haproxy-ingress\\\n  --create-namespace --namespace=ingress-controller\\\n  --set controller.image.repository=localhost/haproxy-ingress\\\n  --set controller.image.tag=latest\\\n  --set controller.image.pullPolicy=Never\n```\n\n**make options:**\n\nThe following `make` variables are supported:\n\n* `CONTROLLER_TAG` (defaults to `localhost/haproxy-ingress:latest`): tag name for `make image` and `make docker-build`.\n* `LOCAL_FS_PREFIX` (defaults to `/tmp/haproxy-ingress`): temporary directory for `make run`.\n* `KUBECONFIG` (defaults to `$KUBECONFIG`, or `$(HOME)/.kube/config` if the former is empty): Kubernetes from where to read Ingress configurations.\n* `CONTROLLER_CONFIGMAP`: `\u003cnamespace\u003e/\u003cname\u003e` of the ConfigMap with global configurations.\n* `CONTROLLER_ARGS`: space separated list of additional command-line arguments.\n\nThe following `make` targets are supported:\n\n* `build` (default): Compiles HAProxy Ingress using the default OS and arch, and generates an executable at `bin/controller`.\n* `run`: Runs HAProxy Ingress locally.\n* `lint`: Runs [`golangci-lint`](https://golangci-lint.run/)\n* `test`: Runs unit tests.\n* `test-integration`: Runs integration tests, needs haproxy 2.2+ in the path.\n* `linux-build`: Compiles HAProxy Ingress and generates an ELF (Linux) executable despite the source platform at `rootfs/haproxy-ingress-controller`. Used by `image` step.\n* `image`: Compiles HAProxy Ingress locally and generates a Docker image.\n* `docker-build`: Compiles HAProxy Ingress and generates a Docker image using a multi-stage Dockerfile.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcmoraisjr%2Fhaproxy-ingress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcmoraisjr%2Fhaproxy-ingress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcmoraisjr%2Fhaproxy-ingress/lists"}