mirror of
https://github.com/gethomepage/homepage.git
synced 2026-04-07 02:31:23 -07:00
Added gateway-api functionality.
This commit is contained in:
@@ -8,6 +8,7 @@ The Kubernetes connectivity has the following requirements:
|
||||
- Kubernetes 1.19+
|
||||
- Metrics Service
|
||||
- An Ingress controller
|
||||
- Optionally: Gateway-API
|
||||
|
||||
The Kubernetes connection is configured in the `kubernetes.yaml` file. There are 3 modes to choose from:
|
||||
|
||||
@@ -19,6 +20,12 @@ The Kubernetes connection is configured in the `kubernetes.yaml` file. There are
|
||||
mode: default
|
||||
```
|
||||
|
||||
To enable Kubernetes gateway-api compatibility, add the following setting:
|
||||
|
||||
```yaml
|
||||
route: gateway
|
||||
```
|
||||
|
||||
## Services
|
||||
|
||||
Once the Kubernetes connection is configured, individual services can be configured to pull statistics. Only CPU and Memory are currently supported.
|
||||
@@ -100,6 +107,8 @@ If you are using multiple instances of homepage, an `instance` annotation can be
|
||||
|
||||
If you have a single service that needs to be shown on multiple specific instances of homepage (but not on all of them), the service can be annotated by multiple `instance.name` annotations, where `name` can be the names of your specific multiple homepage instances. For example, a service that is annotated with `gethomepage.dev/instance.public: ""` and `gethomepage.dev/instance.internal: ""` will be shown on `public` and `internal` homepage instances.
|
||||
|
||||
Use the `gethomepage.dev/pod-selector` selector to specify the pod used for the health check. For example, a service that is annotated with `gethomepage.dev/pod-selector: app.kubernetes.io/name=deployment` would link to a pod with the label `app.kubernetes.io/name: deployment`.
|
||||
|
||||
### Traefik IngressRoute support
|
||||
|
||||
Homepage can also read ingresses defined using the Traefik IngressRoute custom resource definition. Due to the complex nature of Traefik routing rules, it is required for the `gethomepage.dev/href` annotation to be set:
|
||||
@@ -140,6 +149,10 @@ spec:
|
||||
|
||||
If the `href` attribute is not present, Homepage will ignore the specific IngressRoute.
|
||||
|
||||
### Gateway API HttpRoute support
|
||||
|
||||
Homepage also features automatic service discovery for gateway-api. Service definitions are read by annotating the HttpRoute custom resource definition and are indentical to the Ingress example as defined in [Automatic Service Discovery](#automatic-service-discovery).
|
||||
|
||||
## Caveats
|
||||
|
||||
Similarly to Docker service discovery, there currently is no rigid ordering to discovered services and discovered services will be displayed above those specified in the `services.yaml`.
|
||||
|
||||
@@ -215,6 +215,15 @@ rules:
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
# if using gateway api add the following:
|
||||
# - apiGroups:
|
||||
# - gateway.networking.k8s.io
|
||||
# resources:
|
||||
# - httproutes
|
||||
# - gateways
|
||||
# verbs:
|
||||
# - get
|
||||
# - list
|
||||
- apiGroups:
|
||||
- metrics.k8s.io
|
||||
resources:
|
||||
@@ -370,7 +379,7 @@ prevent unnecessary re-renders on page loads and window / tab focusing. The
|
||||
procedure for enabling sticky sessions depends on your Ingress controller. Below
|
||||
is an example using Traefik as the Ingress controller.
|
||||
|
||||
```
|
||||
```yaml
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
|
||||
Reference in New Issue
Block a user