mirror of
https://github.com/gethomepage/homepage.git
synced 2025-12-05 21:47:48 +01:00
Run pre-commit hooks over existing codebase
Co-Authored-By: Ben Phelps <ben@phelps.io>
This commit is contained in:
@@ -5,15 +5,15 @@ description: Kubernetes Configuration
|
||||
|
||||
The Kubernetes connectivity has the following requirements:
|
||||
|
||||
- Kubernetes 1.19+
|
||||
- Metrics Service
|
||||
- An Ingress controller
|
||||
- Kubernetes 1.19+
|
||||
- Metrics Service
|
||||
- An Ingress controller
|
||||
|
||||
The Kubernetes connection is configured in the `kubernetes.yaml` file. There are 3 modes to choose from:
|
||||
|
||||
- **disabled** - disables kubernetes connectivity
|
||||
- **default** - uses the default kubeconfig [resolution](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
|
||||
- **cluster** - uses a service account inside the cluster
|
||||
- **disabled** - disables kubernetes connectivity
|
||||
- **default** - uses the default kubeconfig [resolution](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
|
||||
- **cluster** - uses a service account inside the cluster
|
||||
|
||||
```yaml
|
||||
mode: default
|
||||
@@ -42,18 +42,18 @@ For instance, it can be utilized to roll multiple underlying deployments under o
|
||||
|
||||
```yaml
|
||||
- Element Chat:
|
||||
icon: matrix-light.png
|
||||
href: https://chat.example.com
|
||||
description: Matrix Synapse Powered Chat
|
||||
app: matrix-element
|
||||
namespace: comms
|
||||
pod-selector: >-
|
||||
app.kubernetes.io/instance in (
|
||||
matrix-element,
|
||||
matrix-media-repo,
|
||||
matrix-media-repo-postgresql,
|
||||
matrix-synapse
|
||||
)
|
||||
icon: matrix-light.png
|
||||
href: https://chat.example.com
|
||||
description: Matrix Synapse Powered Chat
|
||||
app: matrix-element
|
||||
namespace: comms
|
||||
pod-selector: >-
|
||||
app.kubernetes.io/instance in (
|
||||
matrix-element,
|
||||
matrix-media-repo,
|
||||
matrix-media-repo-postgresql,
|
||||
matrix-synapse
|
||||
)
|
||||
```
|
||||
|
||||
!!! note
|
||||
@@ -68,29 +68,29 @@ Homepage features automatic service discovery by Ingress annotations. All config
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: emby
|
||||
annotations:
|
||||
gethomepage.dev/enabled: "true"
|
||||
gethomepage.dev/description: Media Server
|
||||
gethomepage.dev/group: Media
|
||||
gethomepage.dev/icon: emby.png
|
||||
gethomepage.dev/name: Emby
|
||||
gethomepage.dev/widget.type: "emby"
|
||||
gethomepage.dev/widget.url: "https://emby.example.com"
|
||||
gethomepage.dev/pod-selector: ""
|
||||
gethomepage.dev/weight: 10 # optional
|
||||
name: emby
|
||||
annotations:
|
||||
gethomepage.dev/enabled: "true"
|
||||
gethomepage.dev/description: Media Server
|
||||
gethomepage.dev/group: Media
|
||||
gethomepage.dev/icon: emby.png
|
||||
gethomepage.dev/name: Emby
|
||||
gethomepage.dev/widget.type: "emby"
|
||||
gethomepage.dev/widget.url: "https://emby.example.com"
|
||||
gethomepage.dev/pod-selector: ""
|
||||
gethomepage.dev/weight: 10 # optional
|
||||
spec:
|
||||
rules:
|
||||
- host: emby.example.com
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: emby
|
||||
port:
|
||||
number: 8080
|
||||
path: /
|
||||
pathType: Prefix
|
||||
rules:
|
||||
- host: emby.example.com
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: emby
|
||||
port:
|
||||
number: 8080
|
||||
path: /
|
||||
pathType: Prefix
|
||||
```
|
||||
|
||||
When the Kubernetes cluster connection has been properly configured, this service will be automatically discovered and added to your Homepage. **You do not need to specify the `namespace` or `app` values, as they will be automatically inferred.**
|
||||
@@ -103,33 +103,33 @@ Homepage can also read ingresses defined using the Traefik IngressRoute custom r
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: emby
|
||||
annotations:
|
||||
gethomepage.dev/href: "https://emby.example.com"
|
||||
gethomepage.dev/enabled: "true"
|
||||
gethomepage.dev/description: Media Server
|
||||
gethomepage.dev/group: Media
|
||||
gethomepage.dev/icon: emby.png
|
||||
gethomepage.dev/app: emby-app # optional, may be needed if app.kubernetes.io/name != ingress metadata.name
|
||||
gethomepage.dev/name: Emby
|
||||
gethomepage.dev/widget.type: "emby"
|
||||
gethomepage.dev/widget.url: "https://emby.example.com"
|
||||
gethomepage.dev/pod-selector: ""
|
||||
gethomepage.dev/weight: 10 # optional
|
||||
name: emby
|
||||
annotations:
|
||||
gethomepage.dev/href: "https://emby.example.com"
|
||||
gethomepage.dev/enabled: "true"
|
||||
gethomepage.dev/description: Media Server
|
||||
gethomepage.dev/group: Media
|
||||
gethomepage.dev/icon: emby.png
|
||||
gethomepage.dev/app: emby-app # optional, may be needed if app.kubernetes.io/name != ingress metadata.name
|
||||
gethomepage.dev/name: Emby
|
||||
gethomepage.dev/widget.type: "emby"
|
||||
gethomepage.dev/widget.url: "https://emby.example.com"
|
||||
gethomepage.dev/pod-selector: ""
|
||||
gethomepage.dev/weight: 10 # optional
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- kind: Rule
|
||||
match: Host(`emby.example.com`)
|
||||
services:
|
||||
- kind: Service
|
||||
name: emby
|
||||
namespace: emby
|
||||
port: 8080
|
||||
scheme: http
|
||||
strategy: RoundRobin
|
||||
weight: 10
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- kind: Rule
|
||||
match: Host(`emby.example.com`)
|
||||
services:
|
||||
- kind: Service
|
||||
name: emby
|
||||
namespace: emby
|
||||
port: 8080
|
||||
scheme: http
|
||||
strategy: RoundRobin
|
||||
weight: 10
|
||||
```
|
||||
|
||||
If the `href` attribute is not present, Homepage will ignore the specific IngressRoute.
|
||||
|
||||
Reference in New Issue
Block a user