edit dashboard deployment to allow for a staging deployment
This commit is contained in:
parent
645d4934f2
commit
0b80495eb2
7 changed files with 404 additions and 9 deletions
|
@ -177,6 +177,27 @@ spec:
|
||||||
destination:
|
destination:
|
||||||
server: https://kubernetes.default.svc
|
server: https://kubernetes.default.svc
|
||||||
namespace: dashboard
|
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:
|
syncPolicy:
|
||||||
syncOptions:
|
syncOptions:
|
||||||
- CreateNamespace=true
|
- CreateNamespace=true
|
||||||
|
|
2
dashboard/README.md
Normal file
2
dashboard/README.md
Normal 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.
|
343
dashboard/base/dashboard.yaml
Normal file
343
dashboard/base/dashboard.yaml
Normal 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
|
4
dashboard/base/kustomization.yaml
Normal file
4
dashboard/base/kustomization.yaml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- dashboard.yaml
|
|
@ -1,8 +1,9 @@
|
||||||
resources:
|
resources:
|
||||||
- prod/dashboard.yaml
|
- ../../base
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
images:
|
images:
|
||||||
- name: yolokube/dashboard
|
- name: yolokube/dashboard
|
||||||
newName: yolokube/dashboard
|
newName: yolokube/dashboard
|
||||||
newTag: "236"
|
newTag: "228"
|
||||||
|
namespace: dashboard
|
24
dashboard/overlays/staging/kustomization.yaml
Normal file
24
dashboard/overlays/staging/kustomization.yaml
Normal 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
|
|
@ -1,7 +1,7 @@
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Namespace
|
kind: Namespace
|
||||||
metadata:
|
metadata:
|
||||||
name: dashboard
|
name: dashboard-staging
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
data:
|
data:
|
||||||
|
@ -277,13 +277,13 @@ data:
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
metadata:
|
metadata:
|
||||||
name: dashboard-data
|
name: dashboard-data
|
||||||
namespace: dashboard
|
namespace: dashboard-staging
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: dashboard-service
|
name: dashboard-service
|
||||||
namespace: dashboard
|
namespace: dashboard-staging
|
||||||
spec:
|
spec:
|
||||||
ports:
|
ports:
|
||||||
- port: 80
|
- port: 80
|
||||||
|
@ -298,9 +298,9 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app: dashboard
|
app: dashboard
|
||||||
name: dashboard-deployment
|
name: dashboard-deployment
|
||||||
namespace: dashboard
|
namespace: dashboard-staging
|
||||||
spec:
|
spec:
|
||||||
replicas: 3
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: dashboard
|
app: dashboard
|
||||||
|
@ -328,10 +328,10 @@ apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: dashboard-ingress
|
name: dashboard-ingress
|
||||||
namespace: dashboard
|
namespace: dashboard-staging
|
||||||
spec:
|
spec:
|
||||||
rules:
|
rules:
|
||||||
- host: dashboard.services.yolokube.de
|
- host: dashboard-staging.services.yolokube.de
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- backend:
|
- backend:
|
Loading…
Reference in a new issue