forked from metal3-io/metal3-io.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
documentation.html
84 lines (80 loc) · 5.05 KB
/
documentation.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
---
layout: default
title: Documentation
permalink: /documentation.html
---
<section>
<div class="mk-masthead__content--sub">
<h1 class="mk-masthead__content--sub__title">Documentation</h1>
<p class="mk-masthead__content--sub__text">The Metal³ project (pronounced “metal cubed”) exists to provide components that allow you to do bare metal host management for Kubernetes. Metal³ works as a Kubernetes application, meaning it runs on Kubernetes and is managed through Kubernetes interfaces.</p>
<p class="mk-masthead__content--sub__text">If you are looking for documentation about how to use Metal³, please check the <a href="https://book.metal3.io/introduction.html">user-guide</a>.</p>
</div>
</section>
<script>
document.addEventListener("DOMContentLoaded", function() {
const parent = document.querySelector(".mk-infograph");
const childrens = document.querySelectorAll(".mk-infograph__item");
// childrens.style.backgroundColor = 'black';
const child = document.querySelector(".mk-infograph__item");
// child.style.color = 'white';
Array.prototype.forEach.call(document.querySelectorAll(".mk-infograph__item"), function(
element
) {
element.onclick = addActive;
});
function addActive(element) {
childrens.forEach(function(elem) {
elem.classList.remove("mk--selected");
});
element = this;
if (element.classList.contains("mk--selected")) {
element.classList.remove("mk--selected");
} else {
element.classList.add("mk--selected");
}
}
});
</script>
<main>
<section class="mk-main__section mk-component-overview">
<header class="mk-main__header">
<h2 class="mk-heading mk-heading--xl mk-m-border">Metal<sup>3</sup> Component Overview</h2>
</header>
<div class="mk-infograph">
<p class="mk-infograph__text"> It is helpful to understand the high level architecture of of the Machine API Integration. Click on each step to learn more about that particular component.</p>
<button type="button" class="mk-infograph__item mk--selected">
<h4 class="mk-heading mk-heading--md">Machine controller</h4>
<span class="mk-infograph__item__text-block">Bare metal actuator</span>
</button>
<div id="step1" class="mk-infograph__description">
<p>The first component is the Bare Metal Actuator, which is an implementation of the Machine Actuator interface defined by the cluster-api project. This actuator reacts to changes to Machine objects and acts as a client of the BareMetalHost custom resources managed by the Bare Metal</p>
</div>
<button type="button" class="mk-infograph__item">
<h4 class="mk-heading mk-heading--md">Bare metal operator</h4>
<p>With CRDs representing bare metal inventory with configuration needed by its bare metal management workers.</p>
</button>
<div id="step2" class="mk-infograph__description">
<p>The architecture also includes a new <a href="https://github.com/metal3-io/baremetal-operator">Bare Metal Operator</a>, which includes the following:</p>
<p>A Controller for a new Custom Resource, BareMetalHost. This custom resource represents an inventory of known (configured or automatically discovered) bare metal hosts. When a Machine is created the Bare Metal Actuator will claim one of these hosts to be provisioned as a new Kubernetes node.
In response to BareMetalHost updates, the controller will perform bare metal host provisioning actions as necessary to reach the desired state.
The creation of the BareMetalHost inventory can be done in two ways:</p>
<ol>
<li>Manually via creating BareMetalHost objects.</li>
<li>Optionally, automatically created via a bare metal host discovery process.
For more information about Operators, see the <a href="https://github.com/operator-framework/operator-sdk">operator-sdk</a>.</li>
</ol>
</div>
<button type="button" class="mk-infograph__item">
<h4 class="mk-heading mk-heading--md">Bare metal management pods</h4>
</button>
<div id="step3" class="mk-infograph__description">
<p>The operator manages a set of tools for controlling the power on the host, monitoring the host status, and provisioning images to the host. These tools run inside the pod with the operator, and do not require any configuration by the user.</p>
</div>
<img class="mk-infograph__server" src="assets/images/infograph-stack.svg" alt="" />
</div>
</section>
<section class="mk-main__section mk-main__section__content">
{% capture docs %}{% include docs.md %}{% endcapture %}
{{ docs | markdownify }}
</section>
</main>