feat: include the kubernetes dashboard in the monitoring namespace

Signed-off-by: Devin Buhl <devin@buhl.casa>
This commit is contained in:
Devin Buhl committed 2023-01-01 17:20:30 -05:00
1 parent 5af6faac47
commit 17a3fc3586
10 files changed
+151 -2

No files matched your search

-2
View File
@@ -4,7 +4,6 @@
"britesnow.vscode-toggle-quotes",
"fcrespo82.markdown-table-formatter",
"mitchdenny.ecdc",
"ms-kubernetes-tools.vscode-kubernetes-tools",
"redhat.ansible",
"signageos.signageos-vscode-sops",
"will-stone.in-any-case",
@@ -12,6 +11,5 @@
"EditorConfig.editorconfig",
"HashiCorp.terraform",
"PKief.material-icon-theme",
"Weaveworks.vscode-gitops-tools"
]
}
+10
View File
@@ -523,6 +523,16 @@ The benefits of a public repository include:
10. Optionally set your repository to Private in your repository settings.
</details>
### 💨 Kubernetes Dashboard
Included in your cluster is the [Kubernetes Dashboard](https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/). Inorder to log into this you will have to get the secret token from the cluster using the command below.
```sh
kubectl -n monitoring get secret kubernetes-dashboard -o jsonpath='{.data.token}'
```
You should be able to access the dashboard at `https://kubernetes.${SECRET_DOMAIN}`
## 👉 Help
- [Discussions](https://github.com/onedr0p/flux-cluster-template/discussions)
@@ -0,0 +1,47 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: kubernetes-dashboard
namespace: monitoring
spec:
interval: 15m
chart:
spec:
chart: kubernetes-dashboard
version: 6.0.0
sourceRef:
kind: HelmRepository
name: kubernetes-dashboard
namespace: flux-system
install:
createNamespace: true
remediation:
retries: 3
upgrade:
remediation:
retries: 3
values:
env:
TZ: "${TIMEZONE}"
extraArgs:
- --enable-skip-login
- --disable-settings-authorizer
- --enable-insecure-login
- --token-ttl=43200
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-staging
hajimari.io/icon: mdi:kubernetes
hosts:
- &host "kubernetes.${SECRET_DOMAIN}"
tls:
- hosts:
- *host
secretName: kubernetes-dashboard-tls
metricsScraper:
enabled: true
serviceMonitor:
enabled: false
@@ -0,0 +1,7 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: monitoring
resources:
- ./rbac.yaml
- ./helmrelease.yaml
@@ -0,0 +1,41 @@
# For dashboard sign in token:
# kubectl -n monitoring get secret kubernetes-dashboard -o jsonpath='{.data.token}'
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kubernetes-dashboard
namespace: monitoring
labels:
app.kubernetes.io/managed-by: Helm
annotations:
meta.helm.sh/release-name: kubernetes-dashboard
meta.helm.sh/release-namespace: monitoring
secrets:
- name: kubernetes-dashboard
---
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
name: kubernetes-dashboard
namespace: monitoring
labels:
app.kubernetes.io/managed-by: Helm
annotations:
meta.helm.sh/release-name: kubernetes-dashboard
meta.helm.sh/release-namespace: monitoring
kubernetes.io/service-account.name: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: system:kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard
namespace: monitoring
@@ -0,0 +1,22 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: cluster-apps-kubernetes-dashboard
namespace: flux-system
labels:
substitution.flux.home.arpa/enabled: "true"
spec:
path: ./kubernetes/apps/monitoring/kubernetes-dashboard/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
healthChecks:
- apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
name: kubernetes-dashboard
namespace: monitoring
interval: 30m
retryInterval: 1m
timeout: 3m
@@ -0,0 +1,7 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./namespace.yaml
- ./kubernetes-dashboard/ks.yaml
@@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
labels:
kustomize.toolkit.fluxcd.io/prune: disabled
@@ -0,0 +1,9 @@
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: kubernetes-dashboard
namespace: flux-system
spec:
interval: 1h
url: https://kubernetes.github.io/dashboard/
@@ -9,6 +9,7 @@ resources:
- ./ingress-nginx.yaml
- ./jetstack.yaml
- ./k8s-gateway.yaml
- ./kubernetes-dashboard.yaml
- ./metallb.yaml
- ./metrics-server.yaml
- ./stakater.yaml