forked from metal3-io/metal3-io.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
132 lines (130 loc) · 7.51 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
---
layout: default
---
<div class="mk-masthead__content">
<h1 class="mk-masthead__content__title">Metal<sup>3</sup></h1>
<h3 class="mk-masthead__content__sub-title">Bare metal host provisioning for Kubernetes</h3>
<a href="{{ site.baseurl }}/try-it.html" class="mk-button mk-button--primary">Get Started with Metal Kubed</a>
</div>
</section>
<section class="mk-community-callout">
<div class="mk-community-callout__images">
<img src="/assets/images/home-left-image.svg" alt="">
<img src="/assets/images/home-right-image.svg" alt="">
</div>
<p class="mk-community-callout__content">
Connect with the Metal3.io community to learn more, contribute ideas, and help build the future of Metal3.io.
Learn more about how to make the most of the Metal3io features in your work.
</p>
<a href="{{ site.baseurl }}/community-resources.html" class="mk-button mk-button--secondary">Join the Conversation</a>
</section>
<main class="mk-main mk-main__homepage">
<div class="mk-main__content--home">
<section class="mk-why-metalkubed mk-main__section">
<header class="mk-main__header">
<h2 class="mk-heading mk-heading--xl mk-m-border">Why Metal3.io?</h2>
</header>
<p>There are a number of great open source tools for bare metal host provisioning, including Ironic.
Metal3.io aims to build on these technologies to provide a Kubernetes native API for managing bare
metal hosts via a provisioning stack that is also running on Kubernetes. We believe that Kubernetes
Native Infrastructure, or managing your infrastructure just like your applications, is a powerful next
step in the evolution of infrastructure management.</p>
<p>The Metal3.io project is also building integration with the Kubernetes cluster-api project, allowing
Metal3.io to be used as an infrastructure backend for Machine objects from the Cluster API.</p>
</section>
<section class="mk-faqs mk-main__section">
<header class="mk-main__header">
<h2 class="mk-heading mk-heading--xl mk-m-border">FAQ</h2>
<a href="{{ site.baseurl }}/documentation.html" class="mk-button mk-button--link">Documentation</a>
</header>
<div data-aria-faq data-multi data-transition data-default="none" id="accGen">
{% for faq in site.faqs %}
<h3 data-aria-faq-heading>
{{ faq.question }}
</h3>
<div data-aria-faq-panel>
{{ faq.content }}
</div>
{% endfor %}
</div>
</section>
</div>
<aside class="mk-blog-meta mk-blog-meta__preview mk-main__aside">
<header class="mk-main__header">
<h2 class="mk-heading mk-heading--xl mk-m-border">What's new?</h2>
<a href="{{ site.baseurl }}/blog/index.html" class="mk-button mk-button--link">Blog</a>
</header>
<div class="mk-blog-meta__preview__scroll-wrapper">
{% for post in site.posts limit:3 %}
<a href="{{ post.url }}" class="mk-blog-meta__snippet">
<h3 class="mk-heading--lg mk-blog-meta__title">{{ post.title }}</h3>
<time datetime="1999-12-23" class="mk-blog-meta__timestamp mk-blog-meta__item mk-blog-meta__timestamp--dark">{{ post.date | date: "%a, %-d/%m/%y" }}</time>
</a>
{% endfor %}
</div>
</aside>
<script>
! function(t, e, a) {
"use strict";
var r = {};
var i = "mk-faqs",
l = i + "__question",
n = i + "__answer",
o = "[data-aria-faq-heading]",
d = "[data-aria-faq-panel]",
c = 0;
r.create = function() {
var t, a, s, u, A, g, h = "none",
b = e.querySelectorAll("[data-aria-faq]");
for (c += 1, g = 0; g < b.length; g++) {
var f;
if ((t = b[g]).hasAttribute("id") || (t.id = "acc_" + c + "-" + g), t.classList.add(i), e.querySelectorAll("#" + t.id + "> li").length ? (a = e.querySelectorAll("#" + t.id + " li > " + d), s = e.querySelectorAll("#" + t.id + " li > " + o)) : (a = e.querySelectorAll("#" + t.id + " > " + d), s = e.querySelectorAll("#" + t.id + " > " + o)), t.hasAttribute("data-default") && (h = t.getAttribute("data-default")), A = t.hasAttribute("data-constant"), t.hasAttribute("data-multi"), t.hasAttribute("data-transition")) {
var y = t.querySelectorAll(d);
for (f = 0; f < y.length; f++) y[f].classList.add(n + "--transition")
}
for (r.setupPanels(t.id, a, h, A), r.setupHeadingButton(s, A), u = e.querySelectorAll("#" + t.id + "> li").length ? e.querySelectorAll("#" + t.id + " li > " + o + " ." + l) : e.querySelectorAll("#" + t.id + " > " + o + " ." + l), f = 0; f < u.length; f++) u[f].addEventListener("click", r.actions), u[f].addEventListener("keydown", r.keytrolls)
}
}, r.setupPanels = function(t, e, a, r) {
var i, l, o, d, c;
for (i = 0; i < e.length; i++) o = t + "_panel_" + (i + 1), d = a, c = r, (l = e[i]).setAttribute("id", o), s(e[0], !0), l.classList.add(n), "none" !== d && NaN !== parseInt(d) && (d <= 1 ? s(e[0], !1) : d - 1 >= e.length ? s(e[e.length - 1], !1) : s(e[d - 1], !1)), (c && "none" === d || NaN === parseInt(d)) && s(e[0], !1)
}, r.setupHeadingButton = function(t, a) {
var r, i, n, o, d, c;
for (c = 0; c < t.length; c++) i = (r = t[c]).nextElementSibling.id, n = e.getElementById(i).getAttribute("aria-hidden"), o = e.createElement("button"), d = r.textContent, r.innerHTML = "", o.setAttribute("type", "button"), o.setAttribute("aria-controls", i), o.setAttribute("id", i + "_question"), o.classList.add(l), "false" === n ? (u(o, !0), g(o, !0), a && o.setAttribute("aria-disabled", "true")) : (u(o, !1), g(o, !1)), r.appendChild(o), o.appendChild(e.createTextNode(d))
}, r.actions = function(t) {
var a, i = this.id.replace(/_panel.*$/g, ""),
n = e.getElementById(this.getAttribute("aria-controls"));
a = e.querySelectorAll("#" + i + "> li").length ? e.querySelectorAll("#" + i + " li > " + o + " ." + l) : e.querySelectorAll("#" + i + " > " + o + " ." + l), t.preventDefault(), r.togglePanel(t, i, n, a)
}, r.togglePanel = function(t, a, r, i) {
var l, n, o = t.target;
if ("true" !== o.getAttribute("aria-disabled") && (l = o.getAttribute("aria-controls"), g(o, "true"), "true" === o.getAttribute("aria-expanded") ? (u(o, "false"), s(r, "true")) : (u(o, "true"), s(r, "false"), e.getElementById(a).hasAttribute("data-constant") && A(o, "true")), e.getElementById(a).hasAttribute("data-constant") || !e.getElementById(a).hasAttribute("data-multi")))
for (n = 0; n < i.length; n++) o !== i[n] && (g(i[n], "false"), l = i[n].getAttribute("aria-controls"), A(i[n], "false"), u(i[n], "false"), s(e.getElementById(l), "true"))
}, r.keytrolls = function(t) {
if (t.target.classList.contains(l)) {
var a, r = t.keyCode || t.which,
i = this.id.replace(/_panel.*$/g, "");
switch (a = e.querySelectorAll("#" + i + "> li").length ? e.querySelectorAll("#" + i + " li > " + o + " ." + l) : e.querySelectorAll("#" + i + " > " + o + " ." + l), r) {
case 35:
t.preventDefault(), a[a.length - 1].focus();
break;
case 36:
t.preventDefault(), a[0].focus()
}
}
}, r.init = function() {
r.create()
};
var s = function(t, e) {
t.setAttribute("aria-hidden", e)
},
u = function(t, e) {
t.setAttribute("aria-expanded", e)
},
A = function(t, e) {
t.setAttribute("aria-disabled", e)
},
g = function(t, e) {
t.setAttribute("data-current", e)
};
r.init()
}(window, document);
</script>