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:
|
||||
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
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:
|
||||
- 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
|
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
|
||||
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:
|
Loading…
Reference in a new issue