Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gardener-attic/aws-lb-readvertiser
Reacts on changes of the underlying ip addresses of AWS elastic load balancers.
https://github.com/gardener-attic/aws-lb-readvertiser
Last synced: 3 months ago
JSON representation
Reacts on changes of the underlying ip addresses of AWS elastic load balancers.
- Host: GitHub
- URL: https://github.com/gardener-attic/aws-lb-readvertiser
- Owner: gardener-attic
- License: other
- Archived: true
- Created: 2017-12-04T13:58:30.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-12-08T13:26:43.000Z (11 months ago)
- Last Synced: 2024-04-23T16:32:16.419Z (7 months ago)
- Language: Go
- Homepage:
- Size: 14.7 MB
- Stars: 4
- Watchers: 23
- Forks: 11
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# AWS Load Balancer Readvertiser
[![reuse compliant](https://reuse.software/badge/reuse-compliant.svg)](https://reuse.software/)
The AWS Load Balancer Readvertiser is a tool that is used for AWS [Shoot clusters](https://github.com/gardener/documentation/wiki/Architecture). The `kube-apiserver` of a Shoot cluster must be reachable by the `kubernetes` service in the `default` namespace (usually created with service ip `100.64.0.1`). In order to enable that, the apiserver must expose its public ip address. In the Shoot setup, the only way to reach it is via a public load balancer. However, in AWS you don't get an IP address for your load balancers, but only a hostname. The underlying IP address can change at any time. The detection of those changes is exactly the purpose of the Readvertiser. It will watch for the ELB record changes and update the `kubernetes` endpoint of the shoot-cluster with the correct IP(s) properly.
## Constraints
The `kube-apiserver` deployment must reside in the same namespace as the Readvertiser has been deployed to.
## How to build it?
:warning: Please don't forget to update the content of the `VERSION` file before creating a new release:
```bash
$ make release
```This will build a Go binary, create a new Docker image with the tag you specified in the `Makefile`, push it to our image registry, and clean up afterwards.
## Example manifests
Please find an example Kubernetes manifest within the [`/example`](example) directory.