mirror of
https://github.com/Telecominfraproject/wlan-toolsmith.git
synced 2025-11-01 19:37:57 +00:00
oAuth2 proxy individual backend
This commit is contained in:
@@ -3,4 +3,4 @@ name: standalone-monitoring
|
|||||||
description: postgres podmonitor template
|
description: postgres podmonitor template
|
||||||
type: application
|
type: application
|
||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
appVersion: 0.1.0
|
appVersion: 0.2.0
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ kind: Ingress
|
|||||||
metadata:
|
metadata:
|
||||||
name: prometheus-operator-grafana-oauth
|
name: prometheus-operator-grafana-oauth
|
||||||
namespace: {{ .Values.monitoring.namespace }}
|
namespace: {{ .Values.monitoring.namespace }}
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/ingress.class: nginx-sso
|
||||||
|
nginx.ingress.kubernetes.io/custom-http-errors: 500,501,502,503
|
||||||
labels:
|
labels:
|
||||||
k8s-app: oauth2-proxy
|
k8s-app: oauth2-proxy
|
||||||
spec:
|
spec:
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ kind: Ingress
|
|||||||
metadata:
|
metadata:
|
||||||
name: kibana-oauth
|
name: kibana-oauth
|
||||||
namespace: {{ .Values.monitoring.namespace }}
|
namespace: {{ .Values.monitoring.namespace }}
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/ingress.class: nginx-sso
|
||||||
|
nginx.ingress.kubernetes.io/custom-http-errors: "500,501,502,503"
|
||||||
labels:
|
labels:
|
||||||
k8s-app: oauth2-proxy
|
k8s-app: oauth2-proxy
|
||||||
spec:
|
spec:
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
|
|
||||||
# not needed with the latest postgresql version
|
# not needed with the latest postgresql version
|
||||||
|
# ---
|
||||||
# apiVersion: monitoring.coreos.com/v1
|
# apiVersion: monitoring.coreos.com/v1
|
||||||
# kind: PodMonitor
|
# kind: PodMonitor
|
||||||
# metadata:
|
# metadata:
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ kind: Ingress
|
|||||||
metadata:
|
metadata:
|
||||||
name: prometheus-operator-prometheus-oauth
|
name: prometheus-operator-prometheus-oauth
|
||||||
namespace: {{ .Values.monitoring.namespace }}
|
namespace: {{ .Values.monitoring.namespace }}
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/ingress.class: nginx-sso
|
||||||
|
nginx.ingress.kubernetes.io/custom-http-errors: "500,501,502,503"
|
||||||
labels:
|
labels:
|
||||||
k8s-app: oauth2-proxy
|
k8s-app: oauth2-proxy
|
||||||
spec:
|
spec:
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ repositories:
|
|||||||
url: https://kubernetes-charts.storage.googleapis.com
|
url: https://kubernetes-charts.storage.googleapis.com
|
||||||
- name: kiwigrid
|
- name: kiwigrid
|
||||||
url: https://kiwigrid.github.io
|
url: https://kiwigrid.github.io
|
||||||
- name: tip-cloudsdk
|
- name: nginx
|
||||||
url: https://tip.jfrog.io/artifactory/tip-wlan-cloud-helm-repo
|
url: https://kubernetes.github.io/ingress-nginx
|
||||||
|
|
||||||
environments:
|
environments:
|
||||||
azure:
|
azure:
|
||||||
@@ -94,14 +94,15 @@ releases:
|
|||||||
- name: nginx-ingress
|
- name: nginx-ingress
|
||||||
condition: ingress.enabled
|
condition: ingress.enabled
|
||||||
<<: *default
|
<<: *default
|
||||||
chart: stable/nginx-ingress
|
chart: nginx/ingress-nginx
|
||||||
version: 1.41.2
|
version: 3.4.0
|
||||||
labels:
|
labels:
|
||||||
role: setup
|
role: setup
|
||||||
group: system
|
group: system
|
||||||
app: ingress
|
app: ingress
|
||||||
values:
|
values:
|
||||||
- controller:
|
- controller:
|
||||||
|
ingressClass: nginx-sso
|
||||||
service:
|
service:
|
||||||
annotations:
|
annotations:
|
||||||
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Environment.Values.eks.certificateARN }}
|
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Environment.Values.eks.certificateARN }}
|
||||||
@@ -119,6 +120,11 @@ releases:
|
|||||||
enabled: true
|
enabled: true
|
||||||
additionalLabels:
|
additionalLabels:
|
||||||
release: prometheus-operator
|
release: prometheus-operator
|
||||||
|
- defaultBackend:
|
||||||
|
enabled: true
|
||||||
|
image:
|
||||||
|
repository: 4c74356b41/custom-backend
|
||||||
|
tag: latest
|
||||||
|
|
||||||
# monitoring
|
# monitoring
|
||||||
- name: prometheus-operator
|
- name: prometheus-operator
|
||||||
@@ -140,6 +146,7 @@ releases:
|
|||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
|
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
|
||||||
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
|
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
|
||||||
|
kubernetes.io/ingress.class: nginx-sso
|
||||||
hosts:
|
hosts:
|
||||||
- prometheus.{{ .Environment.Values.domain }}
|
- prometheus.{{ .Environment.Values.domain }}
|
||||||
- grafana:
|
- grafana:
|
||||||
@@ -159,6 +166,7 @@ releases:
|
|||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
|
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
|
||||||
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
|
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
|
||||||
|
kubernetes.io/ingress.class: nginx-sso
|
||||||
hosts:
|
hosts:
|
||||||
- grafana.{{ .Environment.Values.domain }}
|
- grafana.{{ .Environment.Values.domain }}
|
||||||
dashboardProviders:
|
dashboardProviders:
|
||||||
@@ -281,86 +289,6 @@ releases:
|
|||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
|
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
|
||||||
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
|
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
|
||||||
|
kubernetes.io/ingress.class: nginx-sso
|
||||||
hosts:
|
hosts:
|
||||||
- kibana.{{ .Environment.Values.domain }}
|
- kibana.{{ .Environment.Values.domain }}
|
||||||
|
|
||||||
# cloud sdk
|
|
||||||
- name: tip
|
|
||||||
namespace: tip
|
|
||||||
chart: tip-wlan
|
|
||||||
# chart: tip-cloudsdk/tip-wlan
|
|
||||||
labels:
|
|
||||||
app: cloudsdk
|
|
||||||
role: payload
|
|
||||||
values:
|
|
||||||
- tip-wlan/resources/environments/dev.yaml
|
|
||||||
- wlan-cloud-graphql-gw:
|
|
||||||
enabled: true
|
|
||||||
env:
|
|
||||||
portalsvc: graphql.{{ .Environment.Values.domain }}
|
|
||||||
ingress:
|
|
||||||
hosts:
|
|
||||||
- host: graphql.{{ .Environment.Values.domain }}
|
|
||||||
paths:
|
|
||||||
- "/"
|
|
||||||
- wlan-cloud-static-portal:
|
|
||||||
enabled: true
|
|
||||||
ingress:
|
|
||||||
hosts:
|
|
||||||
- host: portal.{{ .Environment.Values.domain }}
|
|
||||||
paths:
|
|
||||||
- "/"
|
|
||||||
- opensync-gw-static:
|
|
||||||
enabled: true
|
|
||||||
- wlan-ssc-service:
|
|
||||||
enabled: true
|
|
||||||
- wlan-portal-service:
|
|
||||||
enabled: true
|
|
||||||
- wlan-prov-service:
|
|
||||||
enabled: false
|
|
||||||
- nginx-ingress-controller:
|
|
||||||
enabled: false
|
|
||||||
- opensync-mqtt-broker:
|
|
||||||
enabled: true
|
|
||||||
persistence:
|
|
||||||
storageClass: {{ .Environment.Values.storageClass }}
|
|
||||||
- zookeeper:
|
|
||||||
persistence:
|
|
||||||
storageClass: {{ .Environment.Values.storageClass }}
|
|
||||||
- kafka:
|
|
||||||
replicas: 1
|
|
||||||
persistence:
|
|
||||||
storageClass: {{ .Environment.Values.storageClass }}
|
|
||||||
prometheus:
|
|
||||||
jmx:
|
|
||||||
enabled: true
|
|
||||||
operator:
|
|
||||||
enabled: true
|
|
||||||
serviceMonitor:
|
|
||||||
namespace: tip
|
|
||||||
selector:
|
|
||||||
release: prometheus-operator
|
|
||||||
zookeeper:
|
|
||||||
enabled: false
|
|
||||||
url: tip-zookeeper
|
|
||||||
- cassandra:
|
|
||||||
persistence:
|
|
||||||
storageClass: {{ .Environment.Values.storageClass }}
|
|
||||||
exporter:
|
|
||||||
enabled: true
|
|
||||||
serviceMonitor:
|
|
||||||
enabled: true
|
|
||||||
additionalLabels:
|
|
||||||
release: prometheus-operator
|
|
||||||
- postgresql:
|
|
||||||
enabled: true
|
|
||||||
postgresqlDatabase: tip
|
|
||||||
metrics:
|
|
||||||
enabled: true
|
|
||||||
serviceMonitor:
|
|
||||||
enabled: true
|
|
||||||
namespace: {{ .Environment.Values.monitoring.namespace }}
|
|
||||||
additionalLabels:
|
|
||||||
release: prometheus-operator
|
|
||||||
persistence:
|
|
||||||
storageClass: {{ .Environment.Values.storageClass }}
|
|
||||||
|
|||||||
BIN
helmfile/custom-nginx-ingress-errors/404-screenshot.png
Normal file
BIN
helmfile/custom-nginx-ingress-errors/404-screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
3
helmfile/custom-nginx-ingress-errors/Dockerfile
Normal file
3
helmfile/custom-nginx-ingress-errors/Dockerfile
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
FROM quay.io/kubernetes-ingress-controller/custom-error-pages-amd64:0.4
|
||||||
|
|
||||||
|
COPY www /www
|
||||||
31
helmfile/custom-nginx-ingress-errors/README.md
Normal file
31
helmfile/custom-nginx-ingress-errors/README.md
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# IMPORTANT
|
||||||
|
|
||||||
|
clone of: https://github.com/kenmoini/custom-nginx-ingress-errors with slight modifications
|
||||||
|
used dockerfile was built manually
|
||||||
|
|
||||||
|
# custom-nginx-ingress-errors
|
||||||
|
Assets to build a container to provide a custom default backend to the nginx-ingress Kubernetes Ingress controller
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Editing Error Pages
|
||||||
|
|
||||||
|
The container has a set of error HTML and JSON files that are returned based on the error code. These files are stored in the `www/` directory and are copied to the `/www/` directory in the container.
|
||||||
|
|
||||||
|
1. Fork this repo, modify the error pages as you see fit.
|
||||||
|
2. Connect to Docker Hub/Quay.io to build an image you have access to.
|
||||||
|
3. Modify the `k8s-deployment.yaml` file to point to your custom built image.
|
||||||
|
|
||||||
|
## Deploying a custom default-backend for Nginx Ingress
|
||||||
|
|
||||||
|
***Note:*** This is for the Kubernetes Nginx Ingress, not the one made by Nginx.
|
||||||
|
If you haven't deployed it yet, here ya go: https://kubernetes.github.io/ingress-nginx/deploy/
|
||||||
|
|
||||||
|
These instructions assume that you deployed this in the default `ingress-nginx` namespace.
|
||||||
|
|
||||||
|
1. Modify the `k8s-deployment.yaml` file to point to your custom built image, or use it as is for some snazzy error pages
|
||||||
|
2. Deploy to the Kubernetes cluster: `kubectl apply -f k8s-deployment.yaml`
|
||||||
|
3. Modify the `ingress-nginx/ingress-nginx-controller` Deployment and set the value of the `--default-backend-service` flag to the name of the newly created error backend, which should be `ingress-nginx/nginx-errors` by default.
|
||||||
|
4. Edit the `ingress-nginx/nginx-configuration` ConfigMap and add the key:value pair of `"custom-http-errors": "404,500,503"`
|
||||||
|
5. ??????
|
||||||
|
6. PROFIT!!!!1
|
||||||
48
helmfile/custom-nginx-ingress-errors/k8s-deployment.yaml
Normal file
48
helmfile/custom-nginx-ingress-errors/k8s-deployment.yaml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: nginx-errors
|
||||||
|
namespace: ingress-nginx
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: nginx-errors
|
||||||
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: nginx-errors
|
||||||
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 8080
|
||||||
|
name: http
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx-errors
|
||||||
|
namespace: ingress-nginx
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: nginx-errors
|
||||||
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: nginx-errors
|
||||||
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: nginx-errors
|
||||||
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx-error-server
|
||||||
|
image: kenmoini/custom-nginx-ingress-errors:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
# Setting the environment variable DEBUG we can see the headers sent
|
||||||
|
# by the ingress controller to the backend in the client response.
|
||||||
|
# env:
|
||||||
|
# - name: DEBUG
|
||||||
|
# value: "true"
|
||||||
34
helmfile/custom-nginx-ingress-errors/www/404.html
Normal file
34
helmfile/custom-nginx-ingress-errors/www/404.html
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<title>Error 404</title>
|
||||||
|
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Montserrat:700,900" rel="stylesheet">
|
||||||
|
|
||||||
|
<style type="text/css" rel="stylesheet">
|
||||||
|
*{-webkit-box-sizing:border-box;box-sizing:border-box}body{padding:0;margin:0}#notfound{position:relative;height:100vh;background:#030005}#notfound .notfound{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.notfound{max-width:767px;width:100%;line-height:1.4;text-align:center}.notfound .notfound-404{position:relative;height:180px;margin-bottom:20px;z-index:-1}.notfound .notfound-404 h1{font-family:montserrat,sans-serif;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:224px;font-weight:900;margin-top:0;margin-bottom:0;margin-left:-12px;color:#030005;text-transform:uppercase;text-shadow:-1px -1px 0 #8400ff,1px 1px 0 #ff005a;letter-spacing:-20px}.notfound .notfound-404 h2{font-family:montserrat,sans-serif;position:absolute;left:0;right:0;top:110px;font-size:42px;font-weight:700;color:#fff;text-transform:uppercase;text-shadow:0 2px 0 #8400ff;letter-spacing:13px;margin:0}.notfound a{font-family:montserrat,sans-serif;display:inline-block;text-transform:uppercase;color:#ff005a;text-decoration:none;border:2px solid;background:0 0;padding:10px 40px;font-size:14px;font-weight:700;-webkit-transition:.2s all;transition:.2s all}.notfound a:hover{color:#8400ff}@media only screen and (max-width:767px){.notfound .notfound-404 h2{font-size:24px}}@media only screen and (max-width:480px){.notfound .notfound-404 h1{font-size:182px}}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="notfound">
|
||||||
|
<div class="notfound">
|
||||||
|
<div class="notfound-404">
|
||||||
|
<h1>404</h1>
|
||||||
|
<h2>Page not found</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Could insert Google Analytics if you like, or don't -->
|
||||||
|
|
||||||
|
</html>
|
||||||
156
helmfile/custom-nginx-ingress-errors/www/500.html
Normal file
156
helmfile/custom-nginx-ingress-errors/www/500.html
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<title>Error 500</title>
|
||||||
|
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Montserrat:700,900" rel="stylesheet">
|
||||||
|
|
||||||
|
<style type="text/css" rel="stylesheet">
|
||||||
|
* {
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#notfound {
|
||||||
|
position: relative;
|
||||||
|
height: 100vh;
|
||||||
|
background: #030005
|
||||||
|
}
|
||||||
|
|
||||||
|
#notfound .notfound {
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
-ms-transform: translate(-50%, -50%);
|
||||||
|
transform: translate(-50%, -50%)
|
||||||
|
}
|
||||||
|
|
||||||
|
.notfound {
|
||||||
|
max-width: 767px;
|
||||||
|
width: 100%;
|
||||||
|
line-height: 1.4;
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
|
||||||
|
.notfound .notfound-404 {
|
||||||
|
position: relative;
|
||||||
|
height: 180px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
z-index: -1
|
||||||
|
}
|
||||||
|
|
||||||
|
.notfound .notfound-404 h1 {
|
||||||
|
font-family: montserrat, sans-serif;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
-ms-transform: translate(-50%, -50%);
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
font-size: 224px;
|
||||||
|
font-weight: 900;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-left: -12px;
|
||||||
|
color: #030005;
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-shadow: -1px -1px 0 #8400ff, 1px 1px 0 #ff005a;
|
||||||
|
letter-spacing: -20px
|
||||||
|
}
|
||||||
|
|
||||||
|
.notfound .notfound-404 h2 {
|
||||||
|
font-family: montserrat, sans-serif;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 110px;
|
||||||
|
font-size: 42px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #fff;
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-shadow: 0 2px 0 #8400ff;
|
||||||
|
letter-spacing: 13px;
|
||||||
|
margin: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
.notfound .notfound-404 h3 {
|
||||||
|
font-family: montserrat, sans-serif;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
top: 250px;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #fff;
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-shadow: 0 2px 0 #8400ff;
|
||||||
|
letter-spacing: 13px;
|
||||||
|
margin: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
.notfound a {
|
||||||
|
font-family: montserrat, sans-serif;
|
||||||
|
display: inline-block;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: #ff005a;
|
||||||
|
text-decoration: none;
|
||||||
|
border: 2px solid;
|
||||||
|
background: 0 0;
|
||||||
|
padding: 10px 40px;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 700;
|
||||||
|
-webkit-transition: .2s all;
|
||||||
|
transition: .2s all
|
||||||
|
}
|
||||||
|
|
||||||
|
.notfound a:hover {
|
||||||
|
color: #8400ff
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width:767px) {
|
||||||
|
.notfound .notfound-404 h2 {
|
||||||
|
font-size: 14px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width:767px) {
|
||||||
|
.notfound .notfound-404 h2 {
|
||||||
|
font-size: 24px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width:480px) {
|
||||||
|
.notfound .notfound-404 h1 {
|
||||||
|
font-size: 182px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="notfound">
|
||||||
|
<div class="notfound">
|
||||||
|
<div class="notfound-404">
|
||||||
|
<h1>500</h1>
|
||||||
|
<h2>Internal Server Error</h2>
|
||||||
|
<h3>Most likely your email isnt verified, please verify your email and try
|
||||||
|
again</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Could insert Google Analytics if you like, or don't -->
|
||||||
|
|
||||||
|
</html>
|
||||||
33
helmfile/custom-nginx-ingress-errors/www/503.html
Normal file
33
helmfile/custom-nginx-ingress-errors/www/503.html
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
|
<title>Error 503</title>
|
||||||
|
|
||||||
|
<link href="https://fonts.googleapis.com/css?family=Montserrat:700,900" rel="stylesheet">
|
||||||
|
|
||||||
|
<style type="text/css" rel="stylesheet">
|
||||||
|
*{-webkit-box-sizing:border-box;box-sizing:border-box}body{padding:0;margin:0}#notfound{position:relative;height:100vh;background:#030005}#notfound .notfound{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.notfound{max-width:767px;width:100%;line-height:1.4;text-align:center}.notfound .notfound-404{position:relative;height:180px;margin-bottom:20px;z-index:-1}.notfound .notfound-404 h1{font-family:montserrat,sans-serif;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:224px;font-weight:900;margin-top:0;margin-bottom:0;margin-left:-12px;color:#030005;text-transform:uppercase;text-shadow:-1px -1px 0 #8400ff,1px 1px 0 #ff005a;letter-spacing:-20px}.notfound .notfound-404 h2{font-family:montserrat,sans-serif;position:absolute;left:0;right:0;top:110px;font-size:42px;font-weight:700;color:#fff;text-transform:uppercase;text-shadow:0 2px 0 #8400ff;letter-spacing:13px;margin:0}.notfound a{font-family:montserrat,sans-serif;display:inline-block;text-transform:uppercase;color:#ff005a;text-decoration:none;border:2px solid;background:0 0;padding:10px 40px;font-size:14px;font-weight:700;-webkit-transition:.2s all;transition:.2s all}.notfound a:hover{color:#8400ff}@media only screen and (max-width:767px){.notfound .notfound-404 h2{font-size:24px}}@media only screen and (max-width:480px){.notfound .notfound-404 h1{font-size:182px}}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="notfound">
|
||||||
|
<div class="notfound">
|
||||||
|
<div class="notfound-404">
|
||||||
|
<h1>503</h1>
|
||||||
|
<h2>Service Unavailable</h2>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Could insert Google Analytics if you like, or don't -->
|
||||||
|
|
||||||
|
</html>
|
||||||
1
helmfile/custom-nginx-ingress-errors/www/css/style.css
Normal file
1
helmfile/custom-nginx-ingress-errors/www/css/style.css
Normal file
@@ -0,0 +1 @@
|
|||||||
|
*{-webkit-box-sizing:border-box;box-sizing:border-box}body{padding:0;margin:0}#notfound{position:relative;height:100vh;background:#030005}#notfound .notfound{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.notfound{max-width:767px;width:100%;line-height:1.4;text-align:center}.notfound .notfound-404{position:relative;height:180px;margin-bottom:20px;z-index:-1}.notfound .notfound-404 h1{font-family:montserrat,sans-serif;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);font-size:224px;font-weight:900;margin-top:0;margin-bottom:0;margin-left:-12px;color:#030005;text-transform:uppercase;text-shadow:-1px -1px 0 #8400ff,1px 1px 0 #ff005a;letter-spacing:-20px}.notfound .notfound-404 h2{font-family:montserrat,sans-serif;position:absolute;left:0;right:0;top:110px;font-size:42px;font-weight:700;color:#fff;text-transform:uppercase;text-shadow:0 2px 0 #8400ff;letter-spacing:13px;margin:0}.notfound a{font-family:montserrat,sans-serif;display:inline-block;text-transform:uppercase;color:#ff005a;text-decoration:none;border:2px solid;background:0 0;padding:10px 40px;font-size:14px;font-weight:700;-webkit-transition:.2s all;transition:.2s all}.notfound a:hover{color:#8400ff}@media only screen and (max-width:767px){.notfound .notfound-404 h2{font-size:24px}}@media only screen and (max-width:480px){.notfound .notfound-404 h1{font-size:182px}}
|
||||||
Reference in New Issue
Block a user