edit dashboard deployment to allow for a staging deployment

This commit is contained in:
Aaron Riedel 2023-09-21 23:54:34 +02:00
parent 645d4934f2
commit 0b80495eb2
Signed by: aaron
GPG key ID: 643004654D40D577
7 changed files with 404 additions and 9 deletions

View file

@ -177,6 +177,27 @@ spec:
destination:
server: https://kubernetes.default.svc
namespace: dashboard
syncPolicy:
syncOptions:
- CreateNamespace=true
automated:
selfHeal: false
prune: true
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: dashboard-staging
namespace: argocd
spec:
project: default
source:
repoURL: https://git.ar21.de/yolokube/core-deployments.git
targetRevision: HEAD
path: dashboard/staging
destination:
server: https://kubernetes.default.svc
namespace: dashboard-staging
syncPolicy:
syncOptions:
- CreateNamespace=true

2
dashboard/README.md Normal file
View file

@ -0,0 +1,2 @@
Please make changes only in the "base" folder. The resources in the prod and staging folders are automatically generated by the yolokube/dashboard pipeline.

View file

@ -0,0 +1,343 @@
apiVersion: v1
kind: Namespace
metadata:
name: dashboard
---
apiVersion: v1
kind: ConfigMap
metadata:
name: dashboard-data
namespace: dashboard
data:
greeter.json: |
{
"greeter": {
"months": [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
],
"days": [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
],
"greetings": [
{
"greeting": "Good night!",
"start": 0,
"end": 6
},
{
"greeting": "Good morning!",
"start": 6,
"end": 12
},
{
"greeting": "Good afternoon!",
"start": 12,
"end": 18
},
{
"greeting": "Good evening!",
"start": 18,
"end": 24
}
],
"dateformat": "%wd, %m %d%e %y"
}
}
themes.json: |
{
"themes": [
{
"label": "Classic",
"value": 0,
"mainColor": "#000000",
"accentColor": "#1e272e",
"backgroundColor": "#ffffff"
},
{
"label": "Dark",
"value": 1,
"mainColor": "#ffffff",
"accentColor": "#999999",
"backgroundColor": "#000000"
},
{
"label": "Raw",
"value": 2,
"mainColor": "",
"accentColor": "",
"backgroundColor": "#ffffff"
},
{
"label": "Blackboard",
"value": 3,
"mainColor": "#fffdea",
"accentColor": "#5c5c5c",
"backgroundColor": "#1a1a1a"
},
{
"label": "Gazette",
"value": 4,
"mainColor": "#000000",
"accentColor": "#5c5c5c",
"backgroundColor": "#F2F7FF"
},
{
"label": "Espresso",
"value": 5,
"mainColor": "#d1b59a",
"accentColor": "#4e4e4e",
"backgroundColor": "#21211f"
},
{
"label": "Cab",
"value": 6,
"mainColor": "#1f1f1f",
"accentColor": "#424242",
"backgroundColor": "#f6d305"
},
{
"label": "Cloud",
"value": 7,
"mainColor": "#35342f",
"accentColor": "#37bbe4",
"backgroundColor": "#f1f2f0"
},
{
"label": "Lime",
"value": 8,
"mainColor": "#aabbc3",
"accentColor": "#aeea00",
"backgroundColor": "#263238"
},
{
"label": "White",
"value": 9,
"mainColor": "#222222",
"accentColor": "#dddddd",
"backgroundColor": "#ffffff"
},
{
"label": "Tron",
"value": 10,
"mainColor": "#effbff",
"accentColor": "#6ee2ff",
"backgroundColor": "#242b33"
},
{
"label": "Blues",
"value": 11,
"mainColor": "#eff1fc",
"accentColor": "#6677eb",
"backgroundColor": "#2b2c56"
},
{
"label": "Passion",
"value": 12,
"mainColor": "#12005e",
"accentColor": "#8e24aa",
"backgroundColor": "#f5f5f5"
},
{
"label": "Chalk",
"value": 13,
"mainColor": "#aabbc3",
"accentColor": "#ff869a",
"backgroundColor": "#263238"
},
{
"label": "Paper",
"value": 14,
"mainColor": "#4c432e",
"accentColor": "#aa9a73",
"backgroundColor": "#f8f6f1"
}
]
}
apps.json: |
{
"categories": [
{
"name": "Monitoring",
"items": [
{
"name": "Grafana",
"displayURL": "grafana.services.yolokube.de",
"url": "https://grafana.services.yolokube.de",
"icon": "e6e1",
"newTab": true
},
{
"name": "Prometheus",
"displayURL": "prometheus.services.yolokube.de",
"url": "https://prometheus.services.yolokube.de",
"icon": "e876",
"newTab": true
},
{
"name": "Alert Manager",
"displayURL": "alertmanager.services.yolokube.de",
"url": "https://alertmanager.services.yolokube.de",
"icon": "e7f4",
"newTab": true
}
]
},
{
"name": "Storage",
"items": [
{
"name": "Longhorn",
"displayURL": "longhorn.services.yolokube.de",
"url": "https://longhorn.services.yolokube.de",
"icon": "e161",
"newTab": true
}
]
},
{
"name": "Deployment",
"items": [
{
"name": "Argo",
"displayURL": "argo.services.yolokube.de",
"url": "https://argo.services.yolokube.de",
"icon": "e037",
"newTab": true
}
]
}
]
}
search.json: |
{
"placeholder": "",
"defaultProvider": "https://duckduckgo.com/?q=",
"autoFocus": false,
"providers": [
{
"name": "Allmusic",
"url": "https://www.allmusic.com/search/all/",
"prefix": "/a"
},
{
"name": "Discogs",
"url": "https://www.discogs.com/search/?q=",
"prefix": "/di"
},
{
"name": "iMDB",
"url": "https://www.imdb.com/find?q=",
"prefix": "/i"
},
{
"name": "TheMovieDB",
"url": "https://www.themoviedb.org/search?query=",
"prefix": "/m"
},
{
"name": "Reddit",
"url": "https://www.reddit.com/search?q=",
"prefix": "/r"
},
{
"name": "Soundcloud",
"url": "https://soundcloud.com/search?q=",
"prefix": "/so"
},
{
"name": "Spotify",
"url": "https://open.spotify.com/search/results/",
"prefix": "/s"
},
{
"name": "TheTVDB",
"url": "https://www.thetvdb.com/search?q=",
"prefix": "/tv"
},
{
"name": "YouTube",
"url": "https://youtube.com/results?search_query=",
"prefix": "/yt"
}
]
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dashboard-deployment
namespace: dashboard
labels:
app: dashboard
spec:
replicas: 3
selector:
matchLabels:
app: dashboard
template:
metadata:
labels:
app: dashboard
spec:
volumes:
- name: dashboard-data
configMap:
name: dashboard-data
defaultMode: 0666
containers:
- name: dashboard
image: yolokube/dashboard:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
volumeMounts:
- mountPath: "/app/data"
name: dashboard-data
---
apiVersion: v1
kind: Service
metadata:
name: dashboard-service
namespace: dashboard
spec:
selector:
app: dashboard
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: dashboard
spec:
rules:
- host: "dashboard.services.yolokube.de"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: dashboard-service
port:
number: 80

View file

@ -0,0 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- dashboard.yaml

View file

@ -1,8 +1,9 @@
resources:
- prod/dashboard.yaml
- ../../base
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
images:
- name: yolokube/dashboard
newName: yolokube/dashboard
newTag: "236"
newTag: "228"
namespace: dashboard

View file

@ -0,0 +1,24 @@
resources:
- ../../base
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
images:
- name: yolokube/dashboard
newName: yolokube/dashboard
newTag: "228"
namespace: dashboard-staging
patches:
- target:
kind: Ingress
name: dashboard-ingress
patch: |-
- op: replace
path: /spec/rules/0/host
value: "dashboard-staging.services.yolokube.de"
- target:
kind: Deployment
name: dashboard-deployment
patch: |-
- op: replace
path: /spec/replicas
value: 1

View file

@ -1,7 +1,7 @@
apiVersion: v1
kind: Namespace
metadata:
name: dashboard
name: dashboard-staging
---
apiVersion: v1
data:
@ -277,13 +277,13 @@ data:
kind: ConfigMap
metadata:
name: dashboard-data
namespace: dashboard
namespace: dashboard-staging
---
apiVersion: v1
kind: Service
metadata:
name: dashboard-service
namespace: dashboard
namespace: dashboard-staging
spec:
ports:
- port: 80
@ -298,9 +298,9 @@ metadata:
labels:
app: dashboard
name: dashboard-deployment
namespace: dashboard
namespace: dashboard-staging
spec:
replicas: 3
replicas: 1
selector:
matchLabels:
app: dashboard
@ -328,10 +328,10 @@ apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashboard-ingress
namespace: dashboard
namespace: dashboard-staging
spec:
rules:
- host: dashboard.services.yolokube.de
- host: dashboard-staging.services.yolokube.de
http:
paths:
- backend: