diff --git a/bootstrap/helmrepositories/helmrepository-homepage.yaml b/bootstrap/helmrepositories/helmrepository-homepage.yaml new file mode 100644 index 0000000..7ec16da --- /dev/null +++ b/bootstrap/helmrepositories/helmrepository-homepage.yaml @@ -0,0 +1,8 @@ +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: homepage + namespace: flux-system +spec: + interval: 15m + url: http://jameswynn.github.io/helm-charts diff --git a/bootstrap/kustomizations/kustomization-homepage.yaml b/bootstrap/kustomizations/kustomization-homepage.yaml new file mode 100644 index 0000000..6af2b97 --- /dev/null +++ b/bootstrap/kustomizations/kustomization-homepage.yaml @@ -0,0 +1,18 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: homepage + namespace: flux-system +spec: + interval: 15m + path: ./homepage + prune: true # remove any elements later removed from the above path + timeout: 2m # if not set, this defaults to interval duration, which is 1h + sourceRef: + kind: GitRepository + name: flux-system + healthChecks: + - apiVersion: helm.toolkit.fluxcd.io/v2beta2 + kind: HelmRelease + name: homepage + namespace: homepage diff --git a/bootstrap/namespaces/namespace-homepage.yaml b/bootstrap/namespaces/namespace-homepage.yaml new file mode 100644 index 0000000..19d1b55 --- /dev/null +++ b/bootstrap/namespaces/namespace-homepage.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: homepage diff --git a/homepage/dns-endpoint.yaml b/homepage/dns-endpoint.yaml new file mode 100644 index 0000000..fbc1ab7 --- /dev/null +++ b/homepage/dns-endpoint.yaml @@ -0,0 +1,12 @@ +apiVersion: externaldns.k8s.io/v1alpha1 +kind: DNSEndpoint +metadata: + name: home.michaelthomson.dev + namespace: home +spec: + endpoints: + - dnsName: home.michaelthomson.dev + recordTTL: 180 + recordType: CNAME + targets: + - server.michaelthomson.dev diff --git a/homepage/helmrelease-homepage.yaml b/homepage/helmrelease-homepage.yaml new file mode 100644 index 0000000..c4feca2 --- /dev/null +++ b/homepage/helmrelease-homepage.yaml @@ -0,0 +1,86 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta2 +kind: HelmRelease +metadata: + name: homepage + namespace: homepage +spec: + chart: + spec: + chart: homepage + version: 2.x + sourceRef: + kind: HelmRepository + name: homepage + namespace: flux-system + interval: 15m + timeout: 5m + releaseName: homepage + values: + enableRbac: true + + serviceAccount: + create: true + + ingress: + main: + enabled: true + labels: + gethomepage.dev/enabled: "true" + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.tls: "true" + ingressClassName: "traefik" + hosts: + - host: &host "home.michaelthomson.dev" + paths: + - path: / + pathType: Prefix + tls: + - hosts: + - *host + secretName: letsencrypt-wildcard-cert-michaelthomson.dev + + config: + bookmarks: + - Developer: + - Github: + - abbr: GH + href: https://github.com/ + services: + - My First Group: + - My First Service: + href: http://localhost/ + description: Homepage is awesome + + - My Second Group: + - My Second Service: + href: http://localhost/ + description: Homepage is the best + + - My Third Group: + - My Third Service: + href: http://localhost/ + description: Homepage is 😎 + widgets: + - resources: + backend: kubernetes + expanded: true + cpu: true + memory: true + - search: + provider: duckduckgo + target: _blank + - kubernetes: + cluster: + show: true + cpu: true + memory: true + showLabel: true + label: "cluster" + nodes: + show: true + cpu: true + memory: true + showLabel: true + kubernetes: + mode: cluster