-
Notifications
You must be signed in to change notification settings - Fork 31
/
index.html
197 lines (188 loc) · 9.43 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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
---
asciinema: true
stylesheet: index
---
{% include values.inc %}
<div id="holder">
<section class="grid-middle hero">
<div class="col-5_md-12">
<h1>Open-Source,<br />Cloud-Native Storage for Kubernetes</h1>
<p>Production ready management for File, Block and Object Storage</p>
<a class="button" href="{{ gettingStartedLink }}">Try it out now</a>
</div>
<div class="col-7_md-12_md-first">
<img src="{{ "/images/index-hero.svg" | relative_url }}" />
</div>
</section>
<section class="grid-middle">
<div class="header-section">
<h1>What is Rook?</h1>
</div>
</section>
<section class="grid-middle">
<div class="col-6_md-12">
<img src="{{ "/images/index-what-is-rook.svg" | relative_url }}" />
</div>
<div class="col-6_md-12">
<h2>Storage Operators for Kubernetes</h2>
<p>Rook turns distributed storage systems into self-managing, self-scaling, self-healing storage services. It automates the tasks of a storage administrator: deployment, bootstrapping, configuration, provisioning, scaling, upgrading, migration, disaster recovery, monitoring, and resource management.<br /><br />Rook uses the power of the Kubernetes platform to deliver its services via a Kubernetes Operator for Ceph.</p>
<div class="github-pills">
<div id="watch-pill" class="pill">
<a href="https://github.com/rook/rook/subscription">Watch</a>
<a id="watch-pill-count" class="count" href="https://github.com/rook/rook/watchers"></a>
</div>
<div id="star-pill" class="pill">
<a href="https://github.com/rook/rook">Star</a>
<a id="star-pill-count" class="count" href="https://github.com/rook/rook/stargazers"></a>
</div>
<div id="fork-pill" class="pill">
<a href="https://github.com/rook/rook/fork">Forks</a>
<a id="fork-pill-count" class="count" href="https://github.com/rook/rook/network"></a>
</div>
</div>
</div>
</section>
<section class="grid-middle">
<div class="col-6_md-12">
<h2>Ceph Storage Provider</h2>
<p>Rook orchestrates the Ceph storage solution, with a specialized Kubernetes Operator to automate management. Rook ensures that Ceph will run well on Kubernetes and simplify the deployment and management experience.</p>
</div>
<div class="col-6_md-12">
<div class="terminal-wrapper">
<h3 id="terminal-header">Ceph</h3>
<div class="terminal-body">
<div id="terminal-player-wrapper" class="terminal">
<asciinema-player id="terminal-player" cols="61" rows="16" preload loop speed="1.25" src="{{ "/data/ceph.cast" | relative_url }}"></asciinema-player>
</div>
</div>
</div>
</div>
</section>
<section class="grid-middle">
<div class="header-section">
<h1>Who loves Rook?</h1>
<p>With hundreds of contributors and millions of downloads of the Rook software, this true community-driven effort is putting dynamic orchestration, high performance, and solid reliability in the hands of a global user base.<br /><br />The Rook operator is deployed in production across multiple industries, enabling them to store, deliver & protect the data that powers their businesses.</p>
</div>
</section>
<section class="grid-middle affiliates">
<div class="col-2_xs-4">
<a href="//pacificresearchplatform.org/">
<img
class="prp"
src="{{ "/images/affiliates/prp.jpg" | relative_url }}"
srcset="{{ "/images/affiliates/[email protected]" | relative_url }} 2x, {{ "/images/affiliates/[email protected]" | relative_url }} 3x" />
</a>
</div>
<div class="col-2_xs-4">
<a href="//www.cengn.ca">
<img
class="cengn"
src="{{ "/images/affiliates/cengn.jpg" | relative_url }}"
srcset="{{ "/images/affiliates/[email protected]" | relative_url }} 2x, {{ "/images/affiliates/[email protected]" | relative_url }} 3x" />
</a>
</div>
<div class="col-2_xs-4">
<a href="//www.crowdfox.com">
<img
class="crowdfox"
src="{{ "/images/affiliates/crowdfox.jpg" | relative_url }}"
srcset="{{ "/images/affiliates/[email protected]" | relative_url }} 2x, {{ "/images/affiliates/[email protected]" | relative_url }} 3x" />
</a>
</div>
<div class="col-2_xs-4">
<a href="//www.cloudways.com">
<img
class="cloudways"
src="{{ "/images/affiliates/cloudways.jpg" | relative_url }}"
srcset="{{ "/images/affiliates/[email protected]" | relative_url }} 2x, {{ "/images/affiliates/[email protected]" | relative_url }} 3x" />
</a>
</div>
<div class="col-2_xs-4">
<a href="//gini.net">
<img
class="gini"
src="{{ "/images/affiliates/gini.svg" | relative_url }}"/>
</a>
</div>
<div class="col-2_xs-4">
<a href="//www.radiosound.com/">
<img
class="radiosound"
src="{{ "/images/affiliates/radiosound.jpg" | relative_url }}"
srcset="{{ "/images/affiliates/[email protected]" | relative_url }} 2x, {{ "/images/affiliates/[email protected]" | relative_url }} 3x" />
</a>
</div>
</section>
<section class="grid-middle">
<div class="header-section">
<h1 class="text-center">Features of Rook</h1>
</div>
</section>
<section class="grid-bottom features">
<div class="col-3_xs-6">
<img class="automate" src="{{ "/images/features/automate.svg" | relative_url }}" />
<span>Simple and reliable automated storage management</span>
</div>
<div class="col-3_xs-6">
<img class="scale" src="{{ "/images/features/scale.svg" | relative_url }}" />
<span>Hyper-scale or hyper-converge your storage clusters</span>
</div>
<div class="col-3_xs-6">
<img class="distribute" src="{{ "/images/features/distribute.svg" | relative_url }}" />
<span>Efficiently distribute and replicate data to minimize loss</span>
</div>
<div class="col-3_xs-6">
<img class="provision" src="{{ "/images/features/provision.svg" | relative_url }}" />
<span>Provision, file, block, and object storage</span>
</div>
<div class="col-3_xs-6">
<img class="manage" src="{{ "/images/features/manage.svg" | relative_url }}" />
<span>Manage open-source Ceph storage</span>
</div>
<div class="col-3_xs-6">
<img class="elasticstorage" src="{{ "/images/features/elasticstorage.svg" | relative_url }}" />
<span>Easily enable elastic storage in your datacenter</span>
</div>
<div class="col-3_xs-6">
<img class="opensource" src="{{ "/images/features/opensource.svg" | relative_url }}" />
<span>Open source software released under the Apache 2.0 license</span>
</div>
<div class="col-3_xs-6">
<img class="optimize" src="{{ "/images/features/optimize.svg" | relative_url }}" />
<span>Optimize workloads on commodity hardware</span>
</div>
</section>
</div>
<script>
function githubFetch(path) {
var el = document.createElement('script');
var head = document.getElementsByTagName('head')[0];
el.src = path + '?callback=githubFetchCallback';
head.insertBefore(el, head.firstChild);
}
function githubFetchCallback(obj) {
document.getElementById('watch-pill-count').innerText = (obj.data.subscribers_count).toLocaleString();
document.getElementById('star-pill-count').innerText = (obj.data.stargazers_count).toLocaleString();
document.getElementById('fork-pill-count').innerText = (obj.data.network_count).toLocaleString();
}
function terminalTypeClick(elem, text) {
if (elem.classList.contains('active')) {
return;
}
var terminalPlayer = document.getElementById('terminal-player');
var terminalPlayerWrapper = document.getElementById('terminal-player-wrapper');
var terminalSrc = elem.dataset.terminalSrc;
var terminalRows = elem.dataset.terminalRows;
var buttons = document.querySelectorAll('.terminal-buttons button');
for (var i = 0; i < buttons.length; i++) {
buttons[i].classList.remove('active');
}
elem.classList.add('active');
document.getElementById('terminal-header').innerText = text;
terminalPlayerWrapper.innerHTML = '<asciinema-player id="terminal-player" cols="61" rows="' + terminalRows + '" preload autoplay loop speed="1.25" src="' + terminalSrc + '"></asciinema-player>';
}
githubFetch('https://api.github.com/repos/rook/rook');
document.getElementById('terminal-player').addEventListener('loadedmetadata', function(e) {
this.play();
});
</script>