2021-04-28 08:08:24 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<!--
|
|
|
|
Error {{ code }}: {{ message }}
|
|
|
|
Description: {{ description }}
|
|
|
|
-->
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<meta name="robots" content="noindex, nofollow" />
|
|
|
|
<title>{{ message }}</title>
|
|
|
|
<link rel="dns-prefetch" href="//fonts.gstatic.com">
|
|
|
|
<link href="https://fonts.googleapis.com/css?family=Inconsolata" rel="stylesheet">
|
|
|
|
<style>
|
|
|
|
/** Idea author: https://codepen.io/robinselmer */
|
|
|
|
html, body {
|
|
|
|
height: 100%;
|
|
|
|
overflow: hidden;
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
2022-01-27 12:29:49 +00:00
|
|
|
font-size: 0;
|
2021-04-28 08:08:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
body {
|
|
|
|
box-sizing: border-box;
|
|
|
|
background-color: #000000;
|
|
|
|
background-image: radial-gradient(#11581E, #041607);
|
|
|
|
background-repeat: no-repeat;
|
|
|
|
background-size: cover;
|
|
|
|
font-family: 'Inconsolata', Helvetica, sans-serif;
|
|
|
|
color: rgba(128, 255, 128, 0.8);
|
|
|
|
text-shadow:
|
2022-01-27 12:29:49 +00:00
|
|
|
0 0 11px rgba(51, 255, 51, 1),
|
2021-04-28 08:08:24 +00:00
|
|
|
0 0 2px rgba(255, 255, 255, 0.8);
|
|
|
|
}
|
|
|
|
|
|
|
|
.overlay {
|
|
|
|
pointer-events: none;
|
|
|
|
position: absolute;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
background:
|
|
|
|
repeating-linear-gradient(
|
|
|
|
180deg,
|
|
|
|
rgba(0, 0, 0, 0) 0,
|
|
|
|
rgba(0, 0, 0, 0.3) 50%,
|
|
|
|
rgba(0, 0, 0, 0) 100%);
|
|
|
|
background-size: auto 4px;
|
|
|
|
z-index: 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
.overlay::before {
|
|
|
|
content: "";
|
|
|
|
pointer-events: none;
|
|
|
|
position: absolute;
|
|
|
|
display: block;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
bottom: 0;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
background-image: linear-gradient(
|
|
|
|
0deg,
|
|
|
|
transparent 0%,
|
|
|
|
rgba(32, 128, 32, 0.2) 2%,
|
|
|
|
rgba(32, 128, 32, 0.8) 3%,
|
|
|
|
rgba(32, 128, 32, 0.2) 3%,
|
|
|
|
transparent 100%);
|
|
|
|
background-repeat: no-repeat;
|
|
|
|
animation: scan 7.5s linear 0s infinite;
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes scan {
|
|
|
|
0% { background-position: 0 -100vh; }
|
|
|
|
35%, 100% { background-position: 0 100vh; }
|
|
|
|
}
|
|
|
|
|
|
|
|
.terminal {
|
|
|
|
box-sizing: inherit;
|
|
|
|
position: absolute;
|
|
|
|
height: 100%;
|
|
|
|
width: 1000px;
|
|
|
|
max-width: 100%;
|
2022-01-27 12:29:49 +00:00
|
|
|
padding: 64px;
|
2021-04-28 08:08:24 +00:00
|
|
|
text-transform: uppercase;
|
|
|
|
}
|
|
|
|
|
2022-01-27 12:29:49 +00:00
|
|
|
h1 {
|
|
|
|
font-size: 48px;
|
|
|
|
}
|
|
|
|
|
|
|
|
p {
|
|
|
|
font-size: 24px;
|
|
|
|
}
|
|
|
|
|
2021-04-28 08:08:24 +00:00
|
|
|
.output {
|
|
|
|
color: rgba(128, 255, 128, 0.8);
|
|
|
|
text-shadow:
|
|
|
|
0 0 1px rgba(51, 255, 51, 0.4),
|
|
|
|
0 0 2px rgba(255, 255, 255, 0.8);
|
|
|
|
}
|
|
|
|
|
|
|
|
.output::before {
|
|
|
|
content: "> ";
|
|
|
|
}
|
|
|
|
|
|
|
|
a {
|
|
|
|
color: #fff;
|
|
|
|
text-decoration: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
a::before {
|
|
|
|
content: "[";
|
|
|
|
}
|
|
|
|
|
|
|
|
a::after {
|
|
|
|
content: "]";
|
|
|
|
}
|
|
|
|
|
|
|
|
.error_code {
|
|
|
|
color: white;
|
|
|
|
}
|
2022-01-27 12:29:49 +00:00
|
|
|
|
|
|
|
/* {{ if show_details }} */
|
|
|
|
.details p {
|
|
|
|
margin-top: .5em;
|
|
|
|
margin-bottom: .5em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.details * {
|
|
|
|
font-size: 15px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.details p::before {
|
|
|
|
content: "$ ";
|
|
|
|
}
|
|
|
|
|
|
|
|
.details code {
|
|
|
|
font-size: 0.9em;
|
|
|
|
}
|
|
|
|
/* {{ end }} */
|
2021-04-28 08:08:24 +00:00
|
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div class="overlay"></div>
|
|
|
|
<div class="terminal">
|
|
|
|
<h1>Error <span class="error_code">{{ code }}</span></h1>
|
|
|
|
<p class="output">{{ description }}.</p>
|
|
|
|
<p class="output">Good luck.</p>
|
2022-01-27 12:29:49 +00:00
|
|
|
{{ if show_details }}
|
|
|
|
<div class="details">
|
|
|
|
{{- if original_uri }}<p class="output small">Original URI: <code>{{ original_uri }}</code></p>{{ end -}}
|
|
|
|
{{- if namespace }}<p class="output small">Namespace: <code>{{ namespace }}</code></p>{{ end -}}
|
|
|
|
{{- if ingress_name }}<p class="output small">Ingress name: <code>{{ ingress_name }}</code></p>{{ end -}}
|
|
|
|
{{- if service_name }}<p class="output small">Service name: <code>{{ service_name }}</code></p>{{ end -}}
|
|
|
|
{{- if service_port }}<p class="output small">Service port: <code>{{ service_port }}</code></p>{{ end -}}
|
|
|
|
{{- if request_id }}<p class="output small">Request ID: <code>{{ request_id }}</code></p>{{ end -}}
|
|
|
|
<p class="output small">Timestamp: <code>{{ now.Unix }}</code></p>
|
|
|
|
</div>
|
|
|
|
{{ end }}
|
2021-04-28 08:08:24 +00:00
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
<!--
|
|
|
|
Error {{ code }}: {{ message }}
|
|
|
|
Description: {{ description }}
|
|
|
|
-->
|
|
|
|
</html>
|