docs: overhaul all the docs
This moves our docs to a hugo-based doc setup with docsy theme. Signed-off-by: Spencer Smith <spencer.smith@talos-systems.com>
This commit is contained in:
parent
f477507262
commit
e3fda049fe
4
.gitignore
vendored
4
.gitignore
vendored
@ -31,3 +31,7 @@ sha512sum.txt
|
||||
|
||||
# Local Netlify folder
|
||||
.netlify
|
||||
|
||||
*.lock
|
||||
package-lock.json
|
||||
node_modules
|
||||
|
12
Dockerfile
12
Dockerfile
@ -687,7 +687,8 @@ RUN markdownlint \
|
||||
--ignore '**/CODE_OF_CONDUCT.md' \
|
||||
--ignore '**/node_modules/**' \
|
||||
--ignore '**/hack/chglog/**' \
|
||||
--ignore 'website/content/docs/*/Reference/*' \
|
||||
--ignore 'website/content/*/reference/*' \
|
||||
--ignore 'website/themes/**' \
|
||||
.
|
||||
RUN find . \
|
||||
-name '*.md' \
|
||||
@ -696,7 +697,8 @@ RUN find . \
|
||||
-not -path './CODE_OF_CONDUCT.md' \
|
||||
-not -path '*/node_modules/*' \
|
||||
-not -path './hack/chglog/**' \
|
||||
-not -path './website/content/docs/*/Reference/*' \
|
||||
-not -path './website/content/*/reference/*' \
|
||||
-not -path './website/themes/**' \
|
||||
-print0 \
|
||||
| xargs -0 textlint
|
||||
|
||||
@ -732,9 +734,9 @@ RUN protoc \
|
||||
/protos/time/*.proto
|
||||
|
||||
FROM scratch AS docs
|
||||
COPY --from=docs-build /tmp/configuration.md /website/content/docs/v1.0/Reference/
|
||||
COPY --from=docs-build /tmp/cli.md /website/content/docs/v1.0/Reference/
|
||||
COPY --from=proto-docs-build /tmp/api.md /website/content/docs/v1.0/Reference/
|
||||
COPY --from=docs-build /tmp/configuration.md /website/content/v1.0/reference/
|
||||
COPY --from=docs-build /tmp/cli.md /website/content/v1.0/reference/
|
||||
COPY --from=proto-docs-build /tmp/api.md /website/content/v1.0/reference/
|
||||
|
||||
# The talosctl-cni-bundle builds the CNI bundle for talosctl.
|
||||
|
||||
|
17
netlify.toml
17
netlify.toml
@ -1,14 +1,7 @@
|
||||
[build]
|
||||
base = "website"
|
||||
publish = "dist"
|
||||
command = "gridsome build"
|
||||
command = "cd website && hugo --gc --minify"
|
||||
publish = "website/public"
|
||||
|
||||
[context.deploy-preview]
|
||||
base = "website"
|
||||
publish = "dist"
|
||||
command = "gridsome build"
|
||||
|
||||
[context.branch-deploy]
|
||||
base = "website"
|
||||
publish = "dist"
|
||||
command = "gridsome build"
|
||||
[build.environment]
|
||||
HUGO_VERSION = "0.93.2"
|
||||
NODE_VERSION = "12.21.0"
|
||||
|
24
package.json
Normal file
24
package.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "tech-doc-hugo",
|
||||
"version": "0.0.1",
|
||||
"description": "Hugo theme for technical documentation.",
|
||||
"main": "none.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/google/docsy-example.git"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"bugs": {
|
||||
"url": "https://github.com/google/docsy-example/issues"
|
||||
},
|
||||
"homepage": "https://github.com/google/docsy-example#readme",
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^10.4.0",
|
||||
"postcss": "^8.3.7",
|
||||
"postcss-cli": "^9.0.2"
|
||||
}
|
||||
}
|
1
website/.gitignore
vendored
1
website/.gitignore
vendored
@ -4,6 +4,7 @@
|
||||
src/.temp
|
||||
node_modules
|
||||
dist
|
||||
public
|
||||
!.env.example
|
||||
.env
|
||||
.env.*
|
||||
|
0
website/.hugo_build.lock
Normal file
0
website/.hugo_build.lock
Normal file
3
website/Dockerfile
Normal file
3
website/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM klakegg/hugo:ext-alpine
|
||||
|
||||
RUN apk add git
|
201
website/LICENSE
Normal file
201
website/LICENSE
Normal file
@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
1
website/assets/icons/logo.svg
Normal file
1
website/assets/icons/logo.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 203.74 226.05"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:url(#linear-gradient-2);}.cls-3{fill:url(#linear-gradient-3);}.cls-4{fill:url(#linear-gradient-4);}.cls-5{fill:url(#linear-gradient-5);}</style><linearGradient id="linear-gradient" x1="101.85" y1="-12.91" x2="101.85" y2="224.04" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffd200"/><stop offset="0.08" stop-color="#ffb500"/><stop offset="0.2" stop-color="#ff8c00"/><stop offset="0.3" stop-color="#ff7300"/><stop offset="0.36" stop-color="#ff6a00"/><stop offset="0.48" stop-color="#fc4f0e"/><stop offset="0.65" stop-color="#f92f1e"/><stop offset="0.79" stop-color="#f81b27"/><stop offset="0.89" stop-color="#f7142b"/><stop offset="1" stop-color="#df162e"/></linearGradient><linearGradient id="linear-gradient-2" x1="24.84" y1="-12.91" x2="24.84" y2="224.04" xlink:href="#linear-gradient"/><linearGradient id="linear-gradient-3" x1="178.9" y1="-12.91" x2="178.9" y2="224.04" xlink:href="#linear-gradient"/><linearGradient id="linear-gradient-4" x1="145.06" y1="-12.91" x2="145.06" y2="224.04" xlink:href="#linear-gradient"/><linearGradient id="linear-gradient-5" x1="58.64" y1="-12.91" x2="58.64" y2="224.04" xlink:href="#linear-gradient"/></defs><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M101.89,226.05c2.85,0,5.67-.15,8.46-.35V.35c-2.8-.21-5.62-.35-8.48-.35s-5.7.14-8.52.35V225.69c2.81.21,5.64.35,8.5.36Z"/><path class="cls-2" d="M11.56,50.9,9.12,48.47A112.82,112.82,0,0,0,.2,63.61c29.42,29.89,32.52,44.31,32.48,49.14C32.57,125,17.58,144.21,0,162a113.69,113.69,0,0,0,8.84,15.15c1-1,1.95-1.92,2.92-2.9,25.37-25.54,37.77-45.61,37.92-61.38S37.36,77,11.56,50.9Z"/><path class="cls-3" d="M192,174.29l2.92,2.9A113.69,113.69,0,0,0,203.74,162c-17.57-17.83-32.56-37.09-32.68-49.29-.11-11.9,14.79-31.15,32.46-49.18a112.88,112.88,0,0,0-8.9-15.1l-2.44,2.43c-25.8,26.05-38.27,46.34-38.12,62S166.61,148.75,192,174.29Z"/><path class="cls-4" d="M140.68,112.83c0-22,9.81-58.58,24.92-93.15A113,113,0,0,0,150.45,11c-16.54,37.27-26.78,76.91-26.78,101.87,0,24.15,11.09,64.23,27.93,101.7a113,113,0,0,0,14.84-8.77C150.85,170.73,140.68,134.07,140.68,112.83Z"/><path class="cls-5" d="M80,112.83C80,87.74,69.35,47.88,53,11.07a112.76,112.76,0,0,0-14.93,8.64C53.21,54.26,63,90.85,63,112.83c0,21.23-10.17,57.88-25.76,92.91a113.66,113.66,0,0,0,14.84,8.77C68.94,177.05,80,137,80,112.83Z"/></g></g></svg>
|
After Width: | Height: | Size: 2.5 KiB |
62
website/assets/scss/_sidebar-toc.scss
Normal file
62
website/assets/scss/_sidebar-toc.scss
Normal file
@ -0,0 +1,62 @@
|
||||
//
|
||||
// Right side toc
|
||||
//
|
||||
.td-sidebar-toc {
|
||||
border-left: 1px solid $border-color;
|
||||
|
||||
@supports (position: sticky) {
|
||||
position: sticky;
|
||||
top: 4rem;
|
||||
height: calc(100vh - 10rem);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
order: 2;
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 1.5rem;
|
||||
vertical-align: top;
|
||||
|
||||
}
|
||||
|
||||
.td-page-meta {
|
||||
a {
|
||||
display: block;
|
||||
font-weight: $font-weight-medium;
|
||||
}
|
||||
}
|
||||
|
||||
.td-toc {
|
||||
|
||||
a {
|
||||
display: block;
|
||||
font-weight: $font-weight-light;
|
||||
padding-bottom: .25rem;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style: none;
|
||||
display: block;
|
||||
}
|
||||
|
||||
li li {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
#TableOfContents {
|
||||
// Hugo's ToC is a mouthful, this can be used to style the top level h2 entries.
|
||||
> ul > li > ul > li > a {}
|
||||
|
||||
a {
|
||||
color: $gray-600;
|
||||
|
||||
&:hover {
|
||||
color: $secondary;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
162
website/assets/scss/_sidebar-tree.scss
Normal file
162
website/assets/scss/_sidebar-tree.scss
Normal file
@ -0,0 +1,162 @@
|
||||
//
|
||||
// Left side navigation
|
||||
//
|
||||
.td-sidebar-nav {
|
||||
padding-right: 0.5rem;
|
||||
margin-right: -15px;
|
||||
margin-left: -15px;
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
@supports (position: sticky) {
|
||||
max-height: calc(100vh - 10rem);
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
|
||||
&__section {
|
||||
li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
& .ul-1 ul {
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
&__section-title {
|
||||
display: block;
|
||||
font-weight: $font-weight-medium;
|
||||
|
||||
.active {
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $gray-900;
|
||||
}
|
||||
}
|
||||
|
||||
.td-sidebar-link {
|
||||
display: block;
|
||||
padding-bottom: 0.375rem;
|
||||
|
||||
&__page {
|
||||
color: $gray-700;
|
||||
font-weight: $font-weight-light;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
&:hover {
|
||||
color: $secondary;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
&.active {
|
||||
font-weight: $font-weight-bold;
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
a {
|
||||
color: $gray-700;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
padding: 0 0 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
& > .td-sidebar-nav__section {
|
||||
padding-top: .5rem;
|
||||
padding-left: 1.5rem;
|
||||
}
|
||||
|
||||
li i { // Layout of icons
|
||||
padding-right: 0.5em;
|
||||
&:before{
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
min-width: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
.td-sidebar-link.tree-root{
|
||||
font-weight: $font-weight-bold;
|
||||
color: $td-sidebar-tree-root-color;
|
||||
border-bottom: 1px $td-sidebar-tree-root-color solid;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.td-sidebar {
|
||||
@include media-breakpoint-up(md) {
|
||||
padding-top: 4rem;
|
||||
background-color: $td-sidebar-bg-color;
|
||||
padding-right: 1rem;
|
||||
border-right: 1px solid $td-sidebar-border-color;
|
||||
}
|
||||
|
||||
|
||||
padding-bottom: 1rem;
|
||||
|
||||
&__toggle {
|
||||
line-height: 1;
|
||||
color: $gray-900;
|
||||
margin: 1rem;
|
||||
}
|
||||
|
||||
&__search {
|
||||
padding: 1rem 15px;
|
||||
margin-right: -15px;
|
||||
margin-left: -15px;
|
||||
}
|
||||
|
||||
&__inner {
|
||||
order: 0;
|
||||
|
||||
@include media-breakpoint-up(md) {
|
||||
@supports (position: sticky) {
|
||||
position: sticky;
|
||||
top: 4rem;
|
||||
z-index: 10;
|
||||
height: calc(100vh - 6rem);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@include media-breakpoint-up(xl) {
|
||||
flex: 0 1 320px;
|
||||
}
|
||||
|
||||
|
||||
.td-search-box {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#content-desktop {display: block;}
|
||||
#content-mobile {display: none;}
|
||||
|
||||
@include media-breakpoint-down(md) {
|
||||
|
||||
#content-desktop {display: none;}
|
||||
#content-mobile {display: block;}
|
||||
}
|
||||
}
|
14
website/assets/scss/_variables_project.scss
Normal file
14
website/assets/scss/_variables_project.scss
Normal file
@ -0,0 +1,14 @@
|
||||
/*
|
||||
|
||||
Add styles or override variables from the theme here.
|
||||
|
||||
*/
|
||||
|
||||
$google_font_name: "Fira Sans" !default;
|
||||
$google_font_family: "Fira+Sans:300,300i,400,400i,700,700i" !default;
|
||||
|
||||
|
||||
$primary: #281D49;
|
||||
$secondary: #F92A20;
|
||||
|
||||
$link-color: $secondary;
|
220
website/config.toml
Normal file
220
website/config.toml
Normal file
@ -0,0 +1,220 @@
|
||||
baseURL = "/"
|
||||
title = "Talos Linux"
|
||||
|
||||
enableRobotsTXT = true
|
||||
|
||||
# Hugo allows theme composition (and inheritance). The precedence is from left to right.
|
||||
theme = ["docsy"]
|
||||
|
||||
# Will give values to .Lastmod etc.
|
||||
enableGitInfo = true
|
||||
|
||||
# Comment out to enable taxonomies in Docsy
|
||||
# disableKinds = ["taxonomy", "taxonomyTerm"]
|
||||
|
||||
# You can add your own taxonomies
|
||||
[taxonomies]
|
||||
category = "categories"
|
||||
tag = "tags"
|
||||
|
||||
[params.taxonomy]
|
||||
# set taxonomyCloud = [] to hide taxonomy clouds
|
||||
taxonomyCloud = ["tags", "categories"]
|
||||
|
||||
# If used, must have same lang as taxonomyCloud
|
||||
taxonomyCloudTitle = ["Tag Cloud", "Categories"]
|
||||
|
||||
# set taxonomyPageHeader = [] to hide taxonomies on the page headers
|
||||
taxonomyPageHeader = ["tags", "categories"]
|
||||
|
||||
# Highlighting config
|
||||
pygmentsCodeFences = true
|
||||
pygmentsUseClasses = false
|
||||
# Use the new Chroma Go highlighter in Hugo.
|
||||
pygmentsUseClassic = false
|
||||
#pygmentsOptions = "linenos=table"
|
||||
# See https://help.farbox.com/pygments.html
|
||||
pygmentsStyle = "solarized-dark"
|
||||
|
||||
# Configure how URLs look like per section.
|
||||
[permalinks]
|
||||
blog = "/:section/:year/:month/:day/:slug/"
|
||||
|
||||
## Configuration for BlackFriday markdown parser: https://github.com/russross/blackfriday
|
||||
[blackfriday]
|
||||
angledQuotes = false
|
||||
hrefTargetBlank = true
|
||||
latexDashes = true
|
||||
plainIDAnchors = true
|
||||
|
||||
# Image processing configuration.
|
||||
[imaging]
|
||||
anchor = "smart"
|
||||
quality = 75
|
||||
resampleFilter = "CatmullRom"
|
||||
|
||||
[services]
|
||||
[services.googleAnalytics]
|
||||
# Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback].
|
||||
id = "UA-00000000-0"
|
||||
|
||||
[markup]
|
||||
[markup.goldmark]
|
||||
[markup.goldmark.renderer]
|
||||
unsafe = true
|
||||
[markup.highlight]
|
||||
# See a complete list of available styles at https://xyproto.github.io/splash/all.html
|
||||
style = "solarized-dark"
|
||||
# Uncomment if you want your chosen highlight style used for code blocks without a specified language
|
||||
# guessSyntax = "true"
|
||||
|
||||
# Everything below this are Site Params
|
||||
|
||||
# Comment out if you don't want the "print entire section" link enabled.
|
||||
[outputs]
|
||||
section = ["HTML", "print", "RSS"]
|
||||
|
||||
[params]
|
||||
copyright = "Sidero Labs, Inc."
|
||||
# privacy_policy = "https://policies.google.com/privacy"
|
||||
|
||||
# First one is picked as the Twitter card image if not set on page.
|
||||
# images = ["images/project-illustration.png"]
|
||||
|
||||
# Menu title if your navbar has a versions selector to access old versions of your site.
|
||||
# This menu appears only if you have at least one [params.versions] set.
|
||||
version_menu = "Releases"
|
||||
|
||||
# Flag used in the "version-banner" partial to decide whether to display a
|
||||
# banner on every page indicating that this is an archived version of the docs.
|
||||
# Set this flag to "true" if you want to display the banner.
|
||||
# archived_version = false
|
||||
|
||||
# The version number for the version of the docs represented in this doc set.
|
||||
# Used in the "version-banner" partial to display a version number for the
|
||||
# current doc set.
|
||||
# version = "0.6"
|
||||
|
||||
# A link to latest version of the docs. Used in the "version-banner" partial to
|
||||
# point people to the main doc site.
|
||||
url_latest_version = "/v0.14"
|
||||
|
||||
# Repository configuration (URLs for in-page links to opening issues and suggesting changes)
|
||||
# github_repo = "https://github.com/googley-example"
|
||||
|
||||
# An optional link to a related project repo. For example, the sibling repository where your product code lives.
|
||||
# github_project_repo = "https://github.com/googley"
|
||||
|
||||
# Specify a value here if your content directory is not in your repo's root directory
|
||||
# github_subdir = ""
|
||||
|
||||
# Uncomment this if you have a newer GitHub repo with "main" as the default branch,
|
||||
# or specify a new value if you want to reference another branch in your GitHub links
|
||||
# github_branch= "main"
|
||||
|
||||
# Google Custom Search Engine ID. Remove or comment out to disable search.
|
||||
# gcs_engine_id = "d72aa9b2712488cc3"
|
||||
|
||||
# Enable Algolia DocSearch
|
||||
algolia_docsearch = false
|
||||
|
||||
# Enable Lunr.js offline search
|
||||
offlineSearch = false
|
||||
|
||||
# Enable syntax highlighting and copy buttons on code blocks with Prism
|
||||
prism_syntax_highlighting = false
|
||||
|
||||
[[params.versions]]
|
||||
url = "/v1.0"
|
||||
version = "v1.0 (pre-release)"
|
||||
|
||||
[[params.versions]]
|
||||
url = "/v0.14"
|
||||
version = "v0.14 (latest)"
|
||||
|
||||
[[params.versions]]
|
||||
url = "/v0.13"
|
||||
version = "v0.13"
|
||||
|
||||
[[params.versions]]
|
||||
url = "/v0.12"
|
||||
version = "v0.12"
|
||||
|
||||
[[params.versions]]
|
||||
url = "/v0.11"
|
||||
version = "v0.11"
|
||||
|
||||
[[params.versions]]
|
||||
url = "/v0.10"
|
||||
version = "v0.10"
|
||||
|
||||
[[params.versions]]
|
||||
url = "/v0.9"
|
||||
version = "v0.9"
|
||||
|
||||
[[params.versions]]
|
||||
url = "/v0.8"
|
||||
version = "v0.8"
|
||||
|
||||
[[params.versions]]
|
||||
url = "/v0.7"
|
||||
version = "v0.7"
|
||||
|
||||
[[params.versions]]
|
||||
url = "/v0.6"
|
||||
version = "v0.6"
|
||||
|
||||
# User interface configuration
|
||||
[params.ui]
|
||||
# Set to true to disable breadcrumb navigation.
|
||||
breadcrumb_disable = false
|
||||
# Set to true to disable the About link in the site footer
|
||||
footer_about_disable = false
|
||||
# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top navbar
|
||||
navbar_logo = true
|
||||
# Set to true if you don't want the top navbar to be translucent when over a `block/cover`, like on the homepage.
|
||||
navbar_translucent_over_cover_disable = false
|
||||
# Enable to show the side bar menu in its compact state.
|
||||
sidebar_menu_compact = true
|
||||
# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled)
|
||||
sidebar_search_disable = true
|
||||
|
||||
# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events.
|
||||
# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set.
|
||||
# If you want this feature, but occasionally need to remove the "Feedback" section from a single page,
|
||||
# add "hide_feedback: true" to the page's front matter.
|
||||
[params.ui.feedback]
|
||||
enable = false
|
||||
# The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful).
|
||||
no = 'Sorry to hear that. Please <a href="https://github.com/USERNAME/REPOSITORY/issues/new">tell us how we can improve</a>.'
|
||||
yes = 'Glad to hear it! Please <a href="https://github.com/USERNAME/REPOSITORY/issues/new">tell us how we can improve</a>.'
|
||||
|
||||
# Adds a reading time to the top of each doc.
|
||||
# If you want this feature, but occasionally need to remove the Reading time from a single page,
|
||||
# add "hide_readingtime: true" to the page's front matter
|
||||
[params.ui.readingtime]
|
||||
enable = false
|
||||
|
||||
[params.links]
|
||||
# End user relevant links. These will show up on left side of footer and in the community page if you have one.
|
||||
[[params.links.developer]]
|
||||
desc = "Follow us on Twitter to get the latest news!"
|
||||
icon = "fab fa-twitter"
|
||||
name = "Twitter"
|
||||
url = "https://twitter.com/SideroLabs"
|
||||
# Developer relevant links. These will show up on right side of footer and in the community page if you have one.
|
||||
[[params.links.developer]]
|
||||
desc = "Development takes place here!"
|
||||
icon = "fab fa-github"
|
||||
name = "GitHub"
|
||||
url = "https://github.com/talos-systems/talos"
|
||||
|
||||
[[menu.main]]
|
||||
name = "GitHub"
|
||||
url = "https://github.com/talos-systems/talos"
|
||||
weight = 99
|
||||
|
||||
[[menu.main]]
|
||||
name = "Sidero Metal"
|
||||
url = "https://sidero.dev"
|
||||
weight = 98
|
251
website/content/_index.html
Normal file
251
website/content/_index.html
Normal file
@ -0,0 +1,251 @@
|
||||
+++
|
||||
title = "Talos Linux?"
|
||||
+++
|
||||
|
||||
<section class="">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-12 col-lg-6">
|
||||
<h1 class="display-1 text-center mb-5">What is Talos Linux?</h1>
|
||||
<p class="">
|
||||
Talos Linux is Linux designed for Kubernetes – secure, immutable, and minimal.
|
||||
</p>
|
||||
<ul class="">
|
||||
<li class="">
|
||||
Supports cloud platforms, bare metal, and virtualization platforms
|
||||
</li>
|
||||
<li class="">
|
||||
All system management is done via an API. No SSH, shell or console
|
||||
</li>
|
||||
<li class="">
|
||||
Production ready: supports some of the largest Kubernetes clusters in the world
|
||||
</li>
|
||||
<li class="">
|
||||
Open source project from the team at Sidero Labs
|
||||
</li>
|
||||
</ul>
|
||||
<div class="row align-items-center">
|
||||
<div class="col-8">
|
||||
<p class="my-5 h5">
|
||||
It only takes 3 minutes to launch a Talos cluster on your laptop inside Docker.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-4 text-center">
|
||||
<a class="btn btn-primary btn-lg my-5" href="https://www.talos.dev/docs/latest/introduction/quickstart/">
|
||||
Try it now
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-lg-6">
|
||||
<img class="img-fluid rounded" src="/images/talos-arch.svg" alt="Featured Image">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="">
|
||||
<div class="container">
|
||||
<h2 class="display-2 text-center mb-5">Why Talos Linux?</h2>
|
||||
<div class="row mb-5">
|
||||
<div class="col-12 col-lg-4">
|
||||
<h3 class="display-4 text-center mb-3">Security</h3>
|
||||
<p class="">
|
||||
Talos reduces your attack surface. It's minimal, hardened and
|
||||
immutable. All API access is secured with mutual TLS (mTLS)
|
||||
authentication.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-12 col-lg-4">
|
||||
<h3 class="display-4 text-center mb-3">Predictability</h3>
|
||||
<p class="">
|
||||
Talos eliminates configuration drift, reduces unknown factors by
|
||||
employing immutable infrastructure ideology, and delivers atomic
|
||||
updates.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-12 col-lg-4">
|
||||
<h3 class="display-4 text-center mb-3">Evolvability</h3>
|
||||
<p class="">
|
||||
Talos simplifies your architecture, increases your agility, and makes
|
||||
always delivers current stable Kubernetes and Linux versions.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-lg-8">
|
||||
<h3 class="display-4 text-center mb-4">API Driven</h3>
|
||||
<div class="text-center">
|
||||
|
||||
<div class="tab-content mb-3" id="pills-tabContent">
|
||||
<div class="tab-pane fade show active" id="pills-cluster" role="tabpanel" aria-labelledby="pills-cluster-tab">
|
||||
<asciinema-player autoplay loop rows="29" preload src="/asciinema/cluster-create.cast"></asciinema-player>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="pills-services" role="tabpanel" aria-labelledby="pills-services-tab">
|
||||
<asciinema-player autoplay loop rows="29" preload src="/asciinema/talosctl-services.cast"></asciinema-player>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="pills-routes" role="tabpanel" aria-labelledby="pills-routes-tab">
|
||||
<asciinema-player autoplay loop rows="29" preload src="/asciinema/talosctl-routes.cast"></asciinema-player>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="pills-interfaces" role="tabpanel" aria-labelledby="pills-interfaces-tab">
|
||||
<asciinema-player autoplay loop rows="29" preload src="/asciinema/talosctl-interfaces.cast"></asciinema-player>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="pills-containers" role="tabpanel" aria-labelledby="pills-containers-tab">
|
||||
<asciinema-player autoplay loop rows="29" preload src="/asciinema/talosctl-containers.cast"></asciinema-player>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="pills-processes" role="tabpanel" aria-labelledby="pills-processes-tab">
|
||||
<asciinema-player autoplay loop rows="29" preload src="/asciinema/talosctl-processes.cast"></asciinema-player>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="pills-mounts" role="tabpanel" aria-labelledby="pills-mounts-tab">
|
||||
<asciinema-player autoplay loop rows="29" preload src="/asciinema/talosctl-mounts.cast"></asciinema-player>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/asciinema/asciinema-player.js"></script>
|
||||
|
||||
<ul class="nav nav-pills justify-content-center" id="pills-tab" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<a class="btn btn-primary font-weight-bold mx-1 active" id="pills-cluester-tab" data-toggle="pill" href="#pills-cluster" role="tab" aria-controls="pills-cluster" aria-selected="true">
|
||||
Cluster
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<a class="btn btn-primary font-weight-bold mx-1" id="pills-services-tab" data-toggle="pill" href="#pills-services" role="tab" aria-controls="pills-services" aria-selected="false">
|
||||
Services
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<a class="btn btn-primary font-weight-bold mx-1" id="pills-routes-tab" data-toggle="pill" href="#pills-routes" role="tab" aria-controls="pills-routes" aria-selected="false">
|
||||
Routes
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<a class="btn btn-primary font-weight-bold mx-1" id="pills-interfaces-tab" data-toggle="pill" href="#pills-interfaces" role="tab" aria-controls="pills-interfaces" aria-selected="false">
|
||||
Interfaces
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<a class="btn btn-primary font-weight-bold mx-1" id="pills-containers-tab" data-toggle="pill" href="#pills-containers" role="tab" aria-controls="pills-containers" aria-selected="false">
|
||||
Containers
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<a class="btn btn-primary font-weight-bold mx-1" id="pills-processes-tab" data-toggle="pill" href="#pills-processes" role="tab" aria-controls="pills-processes" aria-selected="false">
|
||||
Processes
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<a class="btn btn-primary font-weight-bold mx-1" id="pills-mounts-tab" data-toggle="pill" href="#pills-mounts" role="tab" aria-controls="pills-mounts" aria-selected="false">
|
||||
Mounts
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="">
|
||||
<div class="container">
|
||||
<h2 class="display-2 text-center mb-5">Built with Modern Technology</h2>
|
||||
<div class="row justify-content-center align-items-center mb-5">
|
||||
<div class="col-7 col-sm-3 col-md-3 col-lg-2 mb-2">
|
||||
<a class="d-flex justify-content-center" href="https://www.musl-libc.org/">
|
||||
<img class="img-fluid" src="/images/musl-logo.png" alt="Musl Logo">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-7 col-sm-3 col-md-3 col-lg-2 mb-2">
|
||||
<a class="d-flex justify-content-center" href="https://golang.org/">
|
||||
<img class="img-fluid" src="/images/go-logo.png" alt="Go Logo">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-7 col-sm-3 col-md-3 col-lg-2 mb-2">
|
||||
<a class="d-flex justify-content-center" href="https://grpc.io/">
|
||||
<img class="img-fluid" src="/images/grpc-logo.png" alt="GRPC Logo">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-7 col-sm-3 col-md-3 col-lg-2 mb-2">
|
||||
<a class="d-flex justify-content-center" href="https://containerd.io/">
|
||||
<img class="img-fluid" src="/images/containerd-logo.png" alt="Containerd Logo">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="">
|
||||
<div class="container">
|
||||
<h2 class="display-2 text-center mb-5">Features</h2>
|
||||
<div class="row justify-content-center mb-5">
|
||||
<div class="col-12 col-lg-4 mb-3">
|
||||
<h3 class="display-4 text-center mb-3">Minimal</h3>
|
||||
<p class="text-center">
|
||||
Talos consists of only a handful of binaries and shared libraries:
|
||||
just enough to run containerd and a small set of system services.
|
||||
</p>
|
||||
<p class="text-center">
|
||||
This aligns with NIST's recommendation in the Application Container
|
||||
Security Guide.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-12 col-lg-4 mb-3">
|
||||
<h3 class="display-4 text-center mb-3">Hardened</h3>
|
||||
<p class="text-center">
|
||||
Hardened by design:
|
||||
</p>
|
||||
<ul class="pl-4">
|
||||
<li>
|
||||
Built with the Kernel Self Protection Project configuration
|
||||
recommendations.
|
||||
</li>
|
||||
<li>
|
||||
All access to the API is secured with Mutual TLS.
|
||||
</li>
|
||||
<li>
|
||||
Settings and configuration described in the CIS guidelines are
|
||||
applied by default.
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-12 col-lg-4 mb-3">
|
||||
<h3 class="display-4 text-center mb-3">Immutable</h3>
|
||||
<p class="text-center">
|
||||
Talos improves security further by mounting the root filesystem as
|
||||
read-only and removing any host-level such as a shell and SSH.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-12 col-lg-4 mb-3">
|
||||
<h3 class="display-4 text-center mb-3">Ephemeral</h3>
|
||||
<p class="text-center">
|
||||
Talos runs in memory from a SquashFS, and persists nothing, leaving
|
||||
the primary disk entirely to Kubernetes.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-12 col-lg-4 mb-3">
|
||||
<h3 class="display-4 text-center mb-3">Current</h3>
|
||||
<p class="text-center">
|
||||
Delivers the latest stable versions of Kubernetes and Linux.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="">
|
||||
<div class="container">
|
||||
<div class="row mb-5">
|
||||
<div class="col-12 text-center">
|
||||
<img width="142" class="" src="/images/certified-kubernetes-color.png" alt="Certified Kubernetes">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
<img width="250" class="" src="/images/cncf-color.png" alt="Certified Kubernetes">
|
||||
<p class="my-3"> We are a <a class="" href="https://cncf.io/"> Cloud Native Computing Foundation </a> member. </p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
@ -1,300 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="app.diagrams.net" modified="2020-05-25T14:12:17.308Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36" etag="4B96V3HgWXW47_1BOvdN" version="13.1.3" type="google">
|
||||
<diagram id="6a731a19-8d31-9384-78a2-239565b7b9f0" name="Page-1">
|
||||
<mxGraphModel dx="1466" dy="1034" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" background="#ffffff" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-47" value="" style="rounded=1;whiteSpace=wrap;html=1;opacity=15;glass=0;comic=0;shadow=0;fillColor=#7EA6E0;strokeColor=none;fontColor=#333333;" parent="1" vertex="1">
|
||||
<mxGeometry x="220" y="470" width="790" height="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-46" value="" style="rounded=1;whiteSpace=wrap;html=1;opacity=15;glass=0;comic=0;shadow=0;fillColor=#7EA6E0;strokeColor=none;fontColor=#333333;" parent="1" vertex="1">
|
||||
<mxGeometry x="220" y="280" width="790" height="160" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-44" value="" style="rounded=1;whiteSpace=wrap;html=1;opacity=15;glass=0;comic=0;shadow=0;fillColor=#7EA6E0;strokeColor=none;fontColor=#333333;" parent="1" vertex="1">
|
||||
<mxGeometry x="220" y="55" width="790" height="190" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2264" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2261" target="llW36Z6Rt84rUSSrsS7a-2263" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2269" value="<font style="font-size: 14px">/kernel<br>/initrd</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="llW36Z6Rt84rUSSrsS7a-2264" vertex="1" connectable="0">
|
||||
<mxGeometry x="-0.1964" y="-1" relative="1" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0;entryY=0;entryDx=0;entryDy=20;entryPerimeter=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2261" target="bVEIqQj0H8-dYpoVZ-Ug-22" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="140" y="170" />
|
||||
<mxPoint x="140" y="345" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2261" value="<font style="font-size: 14px">PXE</font>" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
|
||||
<mxGeometry x="80" y="130" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2266" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2263" target="llW36Z6Rt84rUSSrsS7a-2265" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2275" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2263" target="llW36Z6Rt84rUSSrsS7a-2272" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2263" value="1" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="130" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2293" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0;entryDx=50;entryDy=40;entryPerimeter=0;endArrow=none;endFill=0;startArrow=classic;startFill=1;exitX=0;exitY=0;exitDx=0;exitDy=20;exitPerimeter=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2291" target="llW36Z6Rt84rUSSrsS7a-2261" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="120" y="535" />
|
||||
<mxPoint x="120" y="170" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2295" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2291" target="llW36Z6Rt84rUSSrsS7a-2294" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2297" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=open;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2291" target="llW36Z6Rt84rUSSrsS7a-2296" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2291" value="1" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="520" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2299" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=open;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2296" target="llW36Z6Rt84rUSSrsS7a-2298" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2308" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=20;exitDy=40;exitPerimeter=0;entryX=0;entryY=0;entryDx=0;entryDy=10;entryPerimeter=0;startArrow=open;startFill=0;endArrow=none;endFill=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2296" target="llW36Z6Rt84rUSSrsS7a-2262" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="370" y="555" />
|
||||
<mxPoint x="370" y="640" />
|
||||
<mxPoint x="50" y="640" />
|
||||
<mxPoint x="50" y="80" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2309" value="<font style="font-size: 14px">Get join.yaml</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;spacingBottom=15;" parent="llW36Z6Rt84rUSSrsS7a-2308" vertex="1" connectable="0">
|
||||
<mxGeometry x="-0.2436" y="1" relative="1" as="geometry">
|
||||
<mxPoint x="52" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2310" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2296" target="llW36Z6Rt84rUSSrsS7a-2300" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2296" value="2" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="400" y="520" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2304" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=open;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2298" target="llW36Z6Rt84rUSSrsS7a-2303" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2311" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2298" target="llW36Z6Rt84rUSSrsS7a-2301" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2298" value="3" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="560" y="520" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2306" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=open;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2303" target="llW36Z6Rt84rUSSrsS7a-2305" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2312" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2303" target="llW36Z6Rt84rUSSrsS7a-2302" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2303" value="4" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="720" y="520" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2313" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2305" target="llW36Z6Rt84rUSSrsS7a-2307" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2305" value="5" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="880" y="520" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2268" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2265" target="llW36Z6Rt84rUSSrsS7a-2267" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2270" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0;entryDx=80;entryDy=20;entryPerimeter=0;startArrow=open;startFill=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2265" target="llW36Z6Rt84rUSSrsS7a-2262" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="440" y="110" />
|
||||
<mxPoint x="275" y="110" />
|
||||
<mxPoint x="275" y="90" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2276" value="<font style="font-size: 14px">Get init.yaml</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;spacingBottom=15;" parent="llW36Z6Rt84rUSSrsS7a-2270" vertex="1" connectable="0">
|
||||
<mxGeometry x="-0.0929" relative="1" as="geometry">
|
||||
<mxPoint x="20" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2278" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2265" target="llW36Z6Rt84rUSSrsS7a-2277" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2265" value="2" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="400" y="130" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2280" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2267" target="llW36Z6Rt84rUSSrsS7a-2279" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2282" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2267" target="llW36Z6Rt84rUSSrsS7a-2281" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2267" value="3" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="560" y="130" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2286" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2281" target="llW36Z6Rt84rUSSrsS7a-2285" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=80;exitDy=20;exitPerimeter=0;entryX=0;entryY=0;entryDx=0;entryDy=20;entryPerimeter=0;startArrow=none;startFill=0;strokeWidth=1;fontSize=16;endArrow=open;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2281" target="llW36Z6Rt84rUSSrsS7a-2283" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2281" value="4" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="720" y="130" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2288" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2283" target="llW36Z6Rt84rUSSrsS7a-2287" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2283" value="5" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="880" y="130" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="YOrMSVGsVeQHUvAbK1ju-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=10;exitDy=30;exitPerimeter=0;startArrow=none;startFill=0;endArrow=open;endFill=0;entryX=0.544;entryY=0.06;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="llW36Z6Rt84rUSSrsS7a-2262" target="bVEIqQj0H8-dYpoVZ-Ug-25" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="60" y="100" />
|
||||
<mxPoint x="60" y="270" />
|
||||
<mxPoint x="444" y="270" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="YOrMSVGsVeQHUvAbK1ju-2" value="<font style="font-size: 14px">Get controlplane.yaml</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="YOrMSVGsVeQHUvAbK1ju-1" vertex="1" connectable="0">
|
||||
<mxGeometry x="0.5392" y="2" relative="1" as="geometry">
|
||||
<mxPoint y="-8" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2262" value="<font style="font-size: 14px">Webserver</font>" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
|
||||
<mxGeometry x="70" y="70" width="90" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2272" value="<font style="font-size: 14px">Live boot Talos</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="250" y="200" width="70" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2277" value="<font style="font-size: 14px">Get config from webserver</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="400" y="200" width="100" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2279" value="<font style="font-size: 14px">Install Talos</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="560" y="200" width="96" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2285" value="<font style="font-size: 14px">Reboot to Talos&nbsp;</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="720" y="200" width="96" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2287" value="<font style="font-size: 14px">Init cluster</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="880" y="200" width="96" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2294" value="<font style="font-size: 14px">Live boot Talos</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="250" y="590" width="70" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2300" value="<font style="font-size: 14px">Get config from webserver</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="400" y="590" width="100" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2301" value="<font style="font-size: 14px">Install Talos</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="560" y="590" width="96" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2302" value="<font style="font-size: 14px">Reboot to Talos&nbsp;</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="720" y="590" width="96" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="llW36Z6Rt84rUSSrsS7a-2307" value="<span style="font-size: 14px">Join cluster</span>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="880" y="590" width="110" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-1" value="<font style="font-size: 14px">Loadbalancer</font>" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;fillColor=#dae8fc;strokeColor=#6c8ebf;perimeterSpacing=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="1170" y="140" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-22" target="bVEIqQj0H8-dYpoVZ-Ug-34" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-21" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=open;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-22" target="bVEIqQj0H8-dYpoVZ-Ug-25" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-22" value="1" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="330" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-23" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=open;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-25" target="bVEIqQj0H8-dYpoVZ-Ug-28" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-25" target="bVEIqQj0H8-dYpoVZ-Ug-35" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-25" value="2" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="400" y="330" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-26" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=open;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-28" target="bVEIqQj0H8-dYpoVZ-Ug-31" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-28" target="bVEIqQj0H8-dYpoVZ-Ug-36" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-28" value="3" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="560" y="330" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-29" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=none;startFill=0;endArrow=open;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-31" target="bVEIqQj0H8-dYpoVZ-Ug-33" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-31" target="bVEIqQj0H8-dYpoVZ-Ug-37" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-31" value="4" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="720" y="330" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=50;exitDy=40;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-33" target="bVEIqQj0H8-dYpoVZ-Ug-38" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-33" value="5" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;perimeterSpacing=5;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="880" y="330" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-34" value="<font style="font-size: 14px">Live boot Talos</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="250" y="400" width="70" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-35" value="<font style="font-size: 14px">Get config from webserver</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="400" y="400" width="100" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-36" value="<font style="font-size: 14px">Install Talos</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="560" y="400" width="96" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-37" value="<font style="font-size: 14px">Reboot to Talos&nbsp;</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="720" y="400" width="96" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-38" value="<font style="font-size: 14px">Join cluster</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;perimeterSpacing=6;" parent="1" vertex="1">
|
||||
<mxGeometry x="880" y="400" width="110" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-48" value="<font style="font-size: 18px">Controlplane</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;shadow=0;glass=0;comic=0;labelBackgroundColor=none;opacity=15;fontStyle=1" parent="1" vertex="1">
|
||||
<mxGeometry x="580" y="282" width="40" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-49" value="<font style="font-size: 18px">Init Node</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;shadow=0;glass=0;comic=0;labelBackgroundColor=none;opacity=15;fontStyle=1" parent="1" vertex="1">
|
||||
<mxGeometry x="533" y="59" width="120" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-50" value="<font style="font-size: 18px">Worker node</font>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;shadow=0;glass=0;comic=0;labelBackgroundColor=none;opacity=15;fontStyle=1" parent="1" vertex="1">
|
||||
<mxGeometry x="549.5" y="475" width="117" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0;entryDx=0;entryDy=20;entryPerimeter=0;fontSize=20;strokeWidth=1;startArrow=open;startFill=0;endArrow=open;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-51" target="bVEIqQj0H8-dYpoVZ-Ug-1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-55" value="<font style="font-size: 14px">port: 6443</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" parent="bVEIqQj0H8-dYpoVZ-Ug-52" vertex="1" connectable="0">
|
||||
<mxGeometry x="-0.1974" y="11" relative="1" as="geometry">
|
||||
<mxPoint x="11" y="-11" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-51" value="" style="shape=curlyBracket;whiteSpace=wrap;html=1;rounded=1;shadow=0;glass=0;comic=0;labelBackgroundColor=none;fillColor=#7EA6E0;strokeWidth=1;rotation=-180;" parent="1" vertex="1">
|
||||
<mxGeometry x="1020" y="50" width="20" height="400" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=open;startFill=0;strokeWidth=1;fontSize=16;entryX=0;entryY=0;entryDx=70;entryDy=40;entryPerimeter=0;endSize=6;endArrow=open;endFill=0;" parent="1" source="bVEIqQj0H8-dYpoVZ-Ug-57" target="bVEIqQj0H8-dYpoVZ-Ug-1" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="1270" y="300" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-59" value="<font style="font-size: 14px">Port: 443</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=16;" parent="bVEIqQj0H8-dYpoVZ-Ug-58" vertex="1" connectable="0">
|
||||
<mxGeometry x="0.2254" y="5" relative="1" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="bVEIqQj0H8-dYpoVZ-Ug-57" value="<font style="font-size: 14px">Kubectl</font>" style="outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#232F3E;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.user;rounded=1;shadow=0;glass=0;comic=0;labelBackgroundColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="1170" y="360" width="48" height="48" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
@ -1,111 +0,0 @@
|
||||
---
|
||||
title: Upgrades
|
||||
weight: 5
|
||||
---
|
||||
|
||||
## Talos
|
||||
|
||||
The upgrade process for Talos, like everything else, begins with an API call.
|
||||
This call tells a node the installer image to use to perform the upgrade.
|
||||
Each Talos version corresponds to an installer with the same version, such that the
|
||||
version of the installer is the version of Talos which will be installed.
|
||||
|
||||
Because Talos is image based, even at run-time, upgrading Talos is almost
|
||||
exactly the same set of operations as installing Talos, with the difference that
|
||||
the system has already been initialized with a configuration.
|
||||
|
||||
An upgrade makes use of an A-B image scheme in order to facilitate rollbacks.
|
||||
This scheme retains the one previous Talos kernel and OS image following each upgrade.
|
||||
If an upgrade fails to boot, Talos will roll back to the previous version.
|
||||
Likewise, Talos may be manually rolled back via API (or `talosctl rollback`).
|
||||
This will simply update the boot reference and reboot.
|
||||
|
||||
An upgrade can `preserve` data or not.
|
||||
If Talos is told to NOT preserve data, it will wipe its ephemeral partition, remove itself from the etcd cluster (if it is a control node), and generally make itself as pristine as is possible.
|
||||
There are likely to be changes to the default option here over time, so if your setup has a preference to one way or the other, it is better to specify it explicitly, but we try to always be "safe" with this setting.
|
||||
|
||||
### Sequence
|
||||
|
||||
When a Talos node receives the upgrade command, the first thing it does is cordon
|
||||
itself in kubernetes, to avoid receiving any new workload.
|
||||
It then starts to drain away its existing workload.
|
||||
|
||||
**NOTE**: If any of your workloads is sensitive to being shut down ungracefully, be sure to use the `lifecycle.preStop` Pod [spec](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks).
|
||||
|
||||
Once all of the workload Pods are drained, Talos will start shutting down its
|
||||
internal processes.
|
||||
If it is a control node, this will include etcd.
|
||||
If `preserve` is not enabled, Talos will even leave etcd membership.
|
||||
(Don't worry about this; we make sure the etcd cluster is healthy and that it will remain healthy after our node departs, before we allow this to occur.)
|
||||
|
||||
Once all the processes are stopped and the services are shut down, all of the
|
||||
filesystems will be unmounted.
|
||||
This allows Talos to produce a very clean upgrade, as close as possible to a pristine system.
|
||||
We verify the disk and then perform the actual image upgrade.
|
||||
|
||||
Finally, we tell the bootloader to boot _once_ with the new kernel and OS image.
|
||||
Then we reboot.
|
||||
|
||||
After the node comes back up and Talos verifies itself, it will make permanent
|
||||
the bootloader change, rejoin the cluster, and finally uncordon itself to receive new workloads.
|
||||
|
||||
### FAQs
|
||||
|
||||
**Q.** What happens if an upgrade fails?
|
||||
|
||||
**A.** There are many potential ways an upgrade can fail, but we always try to do
|
||||
the safe thing.
|
||||
|
||||
The most common first failure is an invalid installer image reference.
|
||||
In this case, Talos will fail to download the upgraded image and will abort the upgrade.
|
||||
|
||||
Sometimes, Talos is unable to successfully kill off all of the disk access points, in which case it cannot safely unmount all filesystems to effect the upgrade.
|
||||
In this case, it will abort the upgrade and reboot.
|
||||
|
||||
It is possible (especially with test builds) that the upgraded Talos system will fail to start.
|
||||
In this case, the node will be rebooted, and the bootloader will automatically use the previous Talos kernel and image, thus effectively aborting the upgrade.
|
||||
|
||||
Lastly, it is possible that Talos itself will upgrade successfully, start up, and rejoin the cluster but your workload will fail to run on it, for whatever reason.
|
||||
This is when you would use the `talosctl rollback` command to revert back to the previous Talos version.
|
||||
|
||||
**Q.** Can upgrades be scheduled?
|
||||
|
||||
**A.** We provide the [Talos Controller Manager](https://github.com/talos-systems/talos-controller-manager) to coordinate upgrades of a cluster.
|
||||
Additionally, because the upgrade sequence is API-driven, you can easily tie this in to your own business logic to schedule and coordinate your upgrades.
|
||||
|
||||
**Q.** Can the upgrade process be observed?
|
||||
|
||||
**A.** The Talos Controller Manager does this internally, watching the logs of
|
||||
the node being upgraded, using the streaming log API of Talos.
|
||||
|
||||
You can do the same thing using the `talosctl logs --follow machined` command.
|
||||
|
||||
**Q.** Are worker node upgrades handled differently from control plane node upgrades?
|
||||
|
||||
**A.** Short answer: no.
|
||||
|
||||
Long answer: Both node types follow the same set procedure.
|
||||
However, since control plane nodes run additional services, such as etcd, there are some extra steps and checks performed on them.
|
||||
From the user's standpoint, however, the processes are identical.
|
||||
|
||||
There are also additional restrictions on upgrading control plane nodes.
|
||||
For instance, Talos will refuse to upgrade a control plane node if that upgrade will cause a loss of quorum for etcd.
|
||||
This can generally be worked around by setting `preserve` to `true`.
|
||||
|
||||
**Q.** Will an upgrade try to do the whole cluster at once?
|
||||
Can I break my cluster by upgrading everything?
|
||||
|
||||
**A.** No.
|
||||
|
||||
Nothing prevents the user from sending any number of near-simultaneous upgrades to each node of the cluster.
|
||||
While most people would not attempt to do this, it may be the desired behavior in certain situations.
|
||||
|
||||
If, however, multiple control plane nodes are asked to upgrade at the same time, Talos will protect itself by making sure only one control plane node upgrades at any time, through its checking of etcd quorum.
|
||||
A lease is taken out by the winning control plane node, and no other control plane node is allowed to execute the upgrade until the lease is released and the etcd cluster is healthy and _will_ be healthy when the next node performs its upgrade.
|
||||
|
||||
**Q.** Is there an operator or controller which will keep my nodes updated
|
||||
automatically?
|
||||
|
||||
**A.** Yes.
|
||||
|
||||
We provide the [Talos Controller Manager](https://github.com/talos-systems/talos-controller-manager) to perform this maintenance in a simple, controllable fashion.
|
@ -1,46 +0,0 @@
|
||||
---
|
||||
title: Welcome
|
||||
---
|
||||
|
||||
## Welcome
|
||||
|
||||
Welcome to the Talos documentation.
|
||||
If you are just getting familiar with Talos, we recommend starting here:
|
||||
|
||||
- [What is Talos](introduction/what-is-talos/): a quick description of Talos
|
||||
- [Quickstart](introduction/quickstart/): the fastest way to get a Talos cluster up and running
|
||||
- [Getting Started](introduction/getting-started/): a long-form, guided tour of getting a full Talos cluster deployed
|
||||
|
||||
## Open Source
|
||||
|
||||
### Community
|
||||
|
||||
- GitHub: [repo](https://github.com/talos-systems/talos)
|
||||
- Slack: Join our [slack channel](https://slack.dev.talos-systems.io)
|
||||
- Matrix: Join our Matrix channels:
|
||||
- Community: [#talos:matrix.org](https://matrix.to/#/#talos:matrix.org)
|
||||
- Support: [#talos-support:matrix.org](https://matrix.to/#/#talos-support:matrix.org)
|
||||
- Support: Questions, bugs, feature requests [GitHub Discussions](https://github.com/talos-systems/talos/discussions)
|
||||
- Forum: [community](https://groups.google.com/a/siderolabs.com/forum/#!forum/community)
|
||||
- Twitter: [@SideroLabs](https://twitter.com/talossystems)
|
||||
- Email: [info@SideroLabs.com](mailto:info@SideroLabs.com)
|
||||
|
||||
If you're interested in this project and would like to help in engineering efforts, or have general usage questions, we are happy to have you!
|
||||
We hold a weekly meeting that all audiences are welcome to attend.
|
||||
|
||||
We would appreciate your feedback so that we can make Talos even better!
|
||||
To do so, you can take our [survey](https://docs.google.com/forms/d/1TUna5YTYGCKot68Y9YN_CLobY6z9JzLVCq1G7DoyNjA/edit).
|
||||
|
||||
### Office Hours
|
||||
|
||||
- When: Mondays at 16:30 UTC.
|
||||
- Where: [Google Meet](https://meet.google.com/day-pxhv-zky).
|
||||
|
||||
You can subscribe to this meeting by joining the community forum above.
|
||||
|
||||
## Enterprise
|
||||
|
||||
If you are using Talos in a production setting, and need consulting services to get started or to integrate Talos into your existing environment, we can help.
|
||||
Sidero Labs, Inc. offers support contracts with SLA (Service Level Agreement)-bound terms for mission-critical environments.
|
||||
|
||||
[Learn More](https://www.siderolabs.com/support/)
|
@ -1,45 +0,0 @@
|
||||
---
|
||||
title: "Configuring the Cluster Endpoint"
|
||||
description: ""
|
||||
---
|
||||
|
||||
In this section, we will step through the configuration of a Talos based Kubernetes cluster.
|
||||
There are three major components we will configure:
|
||||
|
||||
- `apid` and `talosctl`
|
||||
- the master nodes
|
||||
- the worker nodes
|
||||
|
||||
Talos enforces a high level of security by using mutual TLS for authentication and authorization.
|
||||
|
||||
We recommend that the configuration of Talos be performed by a cluster owner.
|
||||
A cluster owner should be a person of authority within an organization, perhaps a director, manager, or senior member of a team.
|
||||
They are responsible for storing the root CA, and distributing the PKI for authorized cluster administrators.
|
||||
|
||||
### Recommended settings
|
||||
|
||||
Talos runs great out of the box, but if you tweak some minor settings it will make your life
|
||||
a lot easier in the future.
|
||||
This is not a requirement, but rather a document to explain some key settings.
|
||||
|
||||
#### Endpoint
|
||||
|
||||
To configure the `talosctl` endpoint, it is recommended you use a resolvable DNS name.
|
||||
This way, if you decide to upgrade to a multi-controlplane cluster you only have to add the ip address to the hostname configuration.
|
||||
The configuration can either be done on a Loadbalancer, or simply trough DNS.
|
||||
|
||||
For example:
|
||||
|
||||
> This is in the config file for the cluster e.g. init.yaml, controlplane.yaml and join.yaml.
|
||||
> for more details, please see: [v1alpha1 endpoint configuration](https://www.talos.dev/docs/v0.6/en/configuration/v1alpha1#controlplane)
|
||||
|
||||
```yaml
|
||||
.....
|
||||
cluster:
|
||||
controlPlane:
|
||||
endpoint: https://endpoint.example.local:6443
|
||||
.....
|
||||
```
|
||||
|
||||
If you have a DNS name as the endpoint, you can upgrade your talos cluster with multiple controlplanes in the future (if you don't have a multi-controlplane setup from the start)
|
||||
Using a DNS name generates the corresponding Certificates (Kubernetes and Talos) for the correct hostname.
|
@ -1,46 +0,0 @@
|
||||
---
|
||||
title: Welcome
|
||||
---
|
||||
|
||||
## Welcome
|
||||
|
||||
Welcome to the Talos documentation.
|
||||
If you are just getting familiar with Talos, we recommend starting here:
|
||||
|
||||
- [What is Talos](introduction/what-is-talos/): a quick description of Talos
|
||||
- [Quickstart](introduction/quickstart/): the fastest way to get a Talos cluster up and running
|
||||
- [Getting Started](introduction/getting-started/): a long-form, guided tour of getting a full Talos cluster deployed
|
||||
|
||||
## Open Source
|
||||
|
||||
### Community
|
||||
|
||||
- GitHub: [repo](https://github.com/talos-systems/talos)
|
||||
- Slack: Join our [slack channel](https://slack.dev.talos-systems.io)
|
||||
- Matrix: Join our Matrix channels:
|
||||
- Community: [#talos:matrix.org](https://matrix.to/#/#talos:matrix.org)
|
||||
- Support: [#talos-support:matrix.org](https://matrix.to/#/#talos-support:matrix.org)
|
||||
- Support: Questions, bugs, feature requests [GitHub Discussions](https://github.com/talos-systems/talos/discussions)
|
||||
- Forum: [community](https://groups.google.com/a/siderolabs.com/forum/#!forum/community)
|
||||
- Twitter: [@SideroLabs](https://twitter.com/talossystems)
|
||||
- Email: [info@SideroLabs.com](mailto:info@SideroLabs.com)
|
||||
|
||||
If you're interested in this project and would like to help in engineering efforts, or have general usage questions, we are happy to have you!
|
||||
We hold a weekly meeting that all audiences are welcome to attend.
|
||||
|
||||
We would appreciate your feedback so that we can make Talos even better!
|
||||
To do so, you can take our [survey](https://docs.google.com/forms/d/1TUna5YTYGCKot68Y9YN_CLobY6z9JzLVCq1G7DoyNjA/edit).
|
||||
|
||||
### Office Hours
|
||||
|
||||
- When: Mondays at 16:30 UTC.
|
||||
- Where: [Google Meet](https://meet.google.com/day-pxhv-zky).
|
||||
|
||||
You can subscribe to this meeting by joining the community forum above.
|
||||
|
||||
## Enterprise
|
||||
|
||||
If you are using Talos in a production setting, and need consulting services to get started or to integrate Talos into your existing environment, we can help.
|
||||
Sidero Labs, Inc. offers support contracts with SLA (Service Level Agreement)-bound terms for mission-critical environments.
|
||||
|
||||
[Learn More](https://www.siderolabs.com/support/)
|
@ -1,46 +0,0 @@
|
||||
---
|
||||
title: Welcome
|
||||
---
|
||||
|
||||
## Welcome
|
||||
|
||||
Welcome to the Talos documentation.
|
||||
If you are just getting familiar with Talos, we recommend starting here:
|
||||
|
||||
- [What is Talos](introduction/what-is-talos/): a quick description of Talos
|
||||
- [Quickstart](introduction/quickstart/): the fastest way to get a Talos cluster up and running
|
||||
- [Getting Started](introduction/getting-started/): a long-form, guided tour of getting a full Talos cluster deployed
|
||||
|
||||
## Open Source
|
||||
|
||||
### Community
|
||||
|
||||
- GitHub: [repo](https://github.com/talos-systems/talos)
|
||||
- Slack: Join our [slack channel](https://slack.dev.talos-systems.io)
|
||||
- Matrix: Join our Matrix channels:
|
||||
- Community: [#talos:matrix.org](https://matrix.to/#/#talos:matrix.org)
|
||||
- Support: [#talos-support:matrix.org](https://matrix.to/#/#talos-support:matrix.org)
|
||||
- Support: Questions, bugs, feature requests [GitHub Discussions](https://github.com/talos-systems/talos/discussions)
|
||||
- Forum: [community](https://groups.google.com/a/siderolabs.com/forum/#!forum/community)
|
||||
- Twitter: [@SideroLabs](https://twitter.com/talossystems)
|
||||
- Email: [info@SideroLabs.com](mailto:info@SideroLabs.com)
|
||||
|
||||
If you're interested in this project and would like to help in engineering efforts, or have general usage questions, we are happy to have you!
|
||||
We hold a weekly meeting that all audiences are welcome to attend.
|
||||
|
||||
We would appreciate your feedback so that we can make Talos even better!
|
||||
To do so, you can take our [survey](https://docs.google.com/forms/d/1TUna5YTYGCKot68Y9YN_CLobY6z9JzLVCq1G7DoyNjA/edit).
|
||||
|
||||
### Office Hours
|
||||
|
||||
- When: Mondays at 16:30 UTC.
|
||||
- Where: [Google Meet](https://meet.google.com/day-pxhv-zky).
|
||||
|
||||
You can subscribe to this meeting by joining the community forum above.
|
||||
|
||||
## Enterprise
|
||||
|
||||
If you are using Talos in a production setting, and need consulting services to get started or to integrate Talos into your existing environment, we can help.
|
||||
Sidero Labs, Inc. offers support contracts with SLA (Service Level Agreement)-bound terms for mission-critical environments.
|
||||
|
||||
[Learn More](https://www.siderolabs.com/support/)
|
@ -1,46 +0,0 @@
|
||||
---
|
||||
title: Welcome
|
||||
---
|
||||
|
||||
## Welcome
|
||||
|
||||
Welcome to the Talos documentation.
|
||||
If you are just getting familiar with Talos, we recommend starting here:
|
||||
|
||||
- [What is Talos](introduction/what-is-talos/): a quick description of Talos
|
||||
- [Quickstart](introduction/quickstart/): the fastest way to get a Talos cluster up and running
|
||||
- [Getting Started](introduction/getting-started/): a long-form, guided tour of getting a full Talos cluster deployed
|
||||
|
||||
## Open Source
|
||||
|
||||
### Community
|
||||
|
||||
- GitHub: [repo](https://github.com/talos-systems/talos)
|
||||
- Slack: Join our [slack channel](https://slack.dev.talos-systems.io)
|
||||
- Matrix: Join our Matrix channels:
|
||||
- Community: [#talos:matrix.org](https://matrix.to/#/#talos:matrix.org)
|
||||
- Support: [#talos-support:matrix.org](https://matrix.to/#/#talos-support:matrix.org)
|
||||
- Support: Questions, bugs, feature requests [GitHub Discussions](https://github.com/talos-systems/talos/discussions)
|
||||
- Forum: [community](https://groups.google.com/a/siderolabs.com/forum/#!forum/community)
|
||||
- Twitter: [@SideroLabs](https://twitter.com/talossystems)
|
||||
- Email: [info@SideroLabs.com](mailto:info@SideroLabs.com)
|
||||
|
||||
If you're interested in this project and would like to help in engineering efforts, or have general usage questions, we are happy to have you!
|
||||
We hold a weekly meeting that all audiences are welcome to attend.
|
||||
|
||||
We would appreciate your feedback so that we can make Talos even better!
|
||||
To do so, you can take our [survey](https://docs.google.com/forms/d/1TUna5YTYGCKot68Y9YN_CLobY6z9JzLVCq1G7DoyNjA/edit).
|
||||
|
||||
### Office Hours
|
||||
|
||||
- When: Mondays at 16:30 UTC.
|
||||
- Where: [Google Meet](https://meet.google.com/day-pxhv-zky).
|
||||
|
||||
You can subscribe to this meeting by joining the community forum above.
|
||||
|
||||
## Enterprise
|
||||
|
||||
If you are using Talos in a production setting, and need consulting services to get started or to integrate Talos into your existing environment, we can help.
|
||||
Sidero Labs, Inc. offers support contracts with SLA (Service Level Agreement)-bound terms for mission-critical environments.
|
||||
|
||||
[Learn More](https://www.siderolabs.com/support/)
|
@ -1,111 +0,0 @@
|
||||
---
|
||||
title: Upgrades
|
||||
weight: 5
|
||||
---
|
||||
|
||||
## Talos
|
||||
|
||||
The upgrade process for Talos, like everything else, begins with an API call.
|
||||
This call tells a node the installer image to use to perform the upgrade.
|
||||
Each Talos version corresponds to an installer with the same version, such that the
|
||||
version of the installer is the version of Talos which will be installed.
|
||||
|
||||
Because Talos is image based, even at run-time, upgrading Talos is almost
|
||||
exactly the same set of operations as installing Talos, with the difference that
|
||||
the system has already been initialized with a configuration.
|
||||
|
||||
An upgrade makes use of an A-B image scheme in order to facilitate rollbacks.
|
||||
This scheme retains the one previous Talos kernel and OS image following each upgrade.
|
||||
If an upgrade fails to boot, Talos will roll back to the previous version.
|
||||
Likewise, Talos may be manually rolled back via API (or `talosctl rollback`).
|
||||
This will simply update the boot reference and reboot.
|
||||
|
||||
An upgrade can `preserve` data or not.
|
||||
If Talos is told to NOT preserve data, it will wipe its ephemeral partition, remove itself from the etcd cluster (if it is a control node), and generally make itself as pristine as is possible.
|
||||
There are likely to be changes to the default option here over time, so if your setup has a preference to one way or the other, it is better to specify it explicitly, but we try to always be "safe" with this setting.
|
||||
|
||||
### Sequence
|
||||
|
||||
When a Talos node receives the upgrade command, the first thing it does is cordon
|
||||
itself in kubernetes, to avoid receiving any new workload.
|
||||
It then starts to drain away its existing workload.
|
||||
|
||||
**NOTE**: If any of your workloads is sensitive to being shut down ungracefully, be sure to use the `lifecycle.preStop` Pod [spec](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks).
|
||||
|
||||
Once all of the workload Pods are drained, Talos will start shutting down its
|
||||
internal processes.
|
||||
If it is a control node, this will include etcd.
|
||||
If `preserve` is not enabled, Talos will even leave etcd membership.
|
||||
(Don't worry about this; we make sure the etcd cluster is healthy and that it will remain healthy after our node departs, before we allow this to occur.)
|
||||
|
||||
Once all the processes are stopped and the services are shut down, all of the
|
||||
filesystems will be unmounted.
|
||||
This allows Talos to produce a very clean upgrade, as close as possible to a pristine system.
|
||||
We verify the disk and then perform the actual image upgrade.
|
||||
|
||||
Finally, we tell the bootloader to boot _once_ with the new kernel and OS image.
|
||||
Then we reboot.
|
||||
|
||||
After the node comes back up and Talos verifies itself, it will make permanent
|
||||
the bootloader change, rejoin the cluster, and finally uncordon itself to receive new workloads.
|
||||
|
||||
### FAQs
|
||||
|
||||
**Q.** What happens if an upgrade fails?
|
||||
|
||||
**A.** There are many potential ways an upgrade can fail, but we always try to do
|
||||
the safe thing.
|
||||
|
||||
The most common first failure is an invalid installer image reference.
|
||||
In this case, Talos will fail to download the upgraded image and will abort the upgrade.
|
||||
|
||||
Sometimes, Talos is unable to successfully kill off all of the disk access points, in which case it cannot safely unmount all filesystems to effect the upgrade.
|
||||
In this case, it will abort the upgrade and reboot.
|
||||
|
||||
It is possible (especially with test builds) that the upgraded Talos system will fail to start.
|
||||
In this case, the node will be rebooted, and the bootloader will automatically use the previous Talos kernel and image, thus effectively aborting the upgrade.
|
||||
|
||||
Lastly, it is possible that Talos itself will upgrade successfully, start up, and rejoin the cluster but your workload will fail to run on it, for whatever reason.
|
||||
This is when you would use the `talosctl rollback` command to revert back to the previous Talos version.
|
||||
|
||||
**Q.** Can upgrades be scheduled?
|
||||
|
||||
**A.** We provide the [Talos Controller Manager](https://github.com/talos-systems/talos-controller-manager) to coordinate upgrades of a cluster.
|
||||
Additionally, because the upgrade sequence is API-driven, you can easily tie this in to your own business logic to schedule and coordinate your upgrades.
|
||||
|
||||
**Q.** Can the upgrade process be observed?
|
||||
|
||||
**A.** The Talos Controller Manager does this internally, watching the logs of
|
||||
the node being upgraded, using the streaming log API of Talos.
|
||||
|
||||
You can do the same thing using the `talosctl logs --follow machined` command.
|
||||
|
||||
**Q.** Are worker node upgrades handled differently from control plane node upgrades?
|
||||
|
||||
**A.** Short answer: no.
|
||||
|
||||
Long answer: Both node types follow the same set procedure.
|
||||
However, since control plane nodes run additional services, such as etcd, there are some extra steps and checks performed on them.
|
||||
From the user's standpoint, however, the processes are identical.
|
||||
|
||||
There are also additional restrictions on upgrading control plane nodes.
|
||||
For instance, Talos will refuse to upgrade a control plane node if that upgrade will cause a loss of quorum for etcd.
|
||||
This can generally be worked around by setting `preserve` to `true`.
|
||||
|
||||
**Q.** Will an upgrade try to do the whole cluster at once?
|
||||
Can I break my cluster by upgrading everything?
|
||||
|
||||
**A.** No.
|
||||
|
||||
Nothing prevents the user from sending any number of near-simultaneous upgrades to each node of the cluster.
|
||||
While most people would not attempt to do this, it may be the desired behavior in certain situations.
|
||||
|
||||
If, however, multiple control plane nodes are asked to upgrade at the same time, Talos will protect itself by making sure only one control plane node upgrades at any time, through its checking of etcd quorum.
|
||||
A lease is taken out by the winning control plane node, and no other control plane node is allowed to execute the upgrade until the lease is released and the etcd cluster is healthy and _will_ be healthy when the next node performs its upgrade.
|
||||
|
||||
**Q.** Is there an operator or controller which will keep my nodes updated
|
||||
automatically?
|
||||
|
||||
**A.** Yes.
|
||||
|
||||
We provide the [Talos Controller Manager](https://github.com/talos-systems/talos-controller-manager) to perform this maintenance in a simple, controllable fashion.
|
@ -1,46 +0,0 @@
|
||||
---
|
||||
title: Welcome
|
||||
---
|
||||
|
||||
## Welcome
|
||||
|
||||
Welcome to the Talos documentation.
|
||||
If you are just getting familiar with Talos, we recommend starting here:
|
||||
|
||||
- [What is Talos](introduction/what-is-talos/): a quick description of Talos
|
||||
- [Quickstart](introduction/quickstart/): the fastest way to get a Talos cluster up and running
|
||||
- [Getting Started](introduction/getting-started/): a long-form, guided tour of getting a full Talos cluster deployed
|
||||
|
||||
## Open Source
|
||||
|
||||
### Community
|
||||
|
||||
- GitHub: [repo](https://github.com/talos-systems/talos)
|
||||
- Slack: Join our [slack channel](https://slack.dev.talos-systems.io)
|
||||
- Matrix: Join our Matrix channels:
|
||||
- Community: [#talos:matrix.org](https://matrix.to/#/#talos:matrix.org)
|
||||
- Support: [#talos-support:matrix.org](https://matrix.to/#/#talos-support:matrix.org)
|
||||
- Support: Questions, bugs, feature requests [GitHub Discussions](https://github.com/talos-systems/talos/discussions)
|
||||
- Forum: [community](https://groups.google.com/a/siderolabs.com/forum/#!forum/community)
|
||||
- Twitter: [@SideroLabs](https://twitter.com/talossystems)
|
||||
- Email: [info@SideroLabs.com](mailto:info@SideroLabs.com)
|
||||
|
||||
If you're interested in this project and would like to help in engineering efforts, or have general usage questions, we are happy to have you!
|
||||
We hold a weekly meeting that all audiences are welcome to attend.
|
||||
|
||||
We would appreciate your feedback so that we can make Talos even better!
|
||||
To do so, you can take our [survey](https://docs.google.com/forms/d/1TUna5YTYGCKot68Y9YN_CLobY6z9JzLVCq1G7DoyNjA/edit).
|
||||
|
||||
### Office Hours
|
||||
|
||||
- When: Mondays at 16:30 UTC.
|
||||
- Where: [Google Meet](https://meet.google.com/day-pxhv-zky).
|
||||
|
||||
You can subscribe to this meeting by joining the community forum above.
|
||||
|
||||
## Enterprise
|
||||
|
||||
If you are using Talos in a production setting, and need consulting services to get started or to integrate Talos into your existing environment, we can help.
|
||||
Sidero Labs, Inc. offers support contracts with SLA (Service Level Agreement)-bound terms for mission-critical environments.
|
||||
|
||||
[Learn More](https://www.siderolabs.com/support/)
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
title: What's New in Talos 0.14
|
||||
weight: 5
|
||||
---
|
||||
|
||||
TBD
|
@ -1,46 +0,0 @@
|
||||
---
|
||||
title: Welcome
|
||||
---
|
||||
|
||||
## Welcome
|
||||
|
||||
Welcome to the Talos documentation.
|
||||
If you are just getting familiar with Talos, we recommend starting here:
|
||||
|
||||
- [What is Talos](introduction/what-is-talos/): a quick description of Talos
|
||||
- [Quickstart](introduction/quickstart/): the fastest way to get a Talos cluster up and running
|
||||
- [Getting Started](introduction/getting-started/): a long-form, guided tour of getting a full Talos cluster deployed
|
||||
|
||||
## Open Source
|
||||
|
||||
### Community
|
||||
|
||||
- GitHub: [repo](https://github.com/talos-systems/talos)
|
||||
- Slack: Join our [slack channel](https://slack.dev.talos-systems.io)
|
||||
- Matrix: Join our Matrix channels:
|
||||
- Community: [#talos:matrix.org](https://matrix.to/#/#talos:matrix.org)
|
||||
- Support: [#talos-support:matrix.org](https://matrix.to/#/#talos-support:matrix.org)
|
||||
- Support: Questions, bugs, feature requests [GitHub Discussions](https://github.com/talos-systems/talos/discussions)
|
||||
- Forum: [community](https://groups.google.com/a/siderolabs.com/forum/#!forum/community)
|
||||
- Twitter: [@SideroLabs](https://twitter.com/talossystems)
|
||||
- Email: [info@SideroLabs.com](mailto:info@SideroLabs.com)
|
||||
|
||||
If you're interested in this project and would like to help in engineering efforts, or have general usage questions, we are happy to have you!
|
||||
We hold a weekly meeting that all audiences are welcome to attend.
|
||||
|
||||
We would appreciate your feedback so that we can make Talos even better!
|
||||
To do so, you can take our [survey](https://docs.google.com/forms/d/1TUna5YTYGCKot68Y9YN_CLobY6z9JzLVCq1G7DoyNjA/edit).
|
||||
|
||||
### Office Hours
|
||||
|
||||
- When: Mondays at 16:30 UTC.
|
||||
- Where: [Google Meet](https://meet.google.com/day-pxhv-zky).
|
||||
|
||||
You can subscribe to this meeting by joining the community forum above.
|
||||
|
||||
## Enterprise
|
||||
|
||||
If you are using Talos in a production setting, and need consulting services to get started or to integrate Talos into your existing environment, we can help.
|
||||
Sidero Labs, Inc. offers support contracts with SLA (Service Level Agreement)-bound terms for mission-critical environments.
|
||||
|
||||
[Learn More](https://www.siderolabs.com/support/)
|
@ -1,5 +1,9 @@
|
||||
---
|
||||
title: Welcome
|
||||
no_list: true
|
||||
linkTitle: "Documentation"
|
||||
cascade:
|
||||
type: docs
|
||||
---
|
||||
|
||||
## Welcome
|
4
website/content/v0.10/bare-metal-platforms/_index.md
Normal file
4
website/content/v0.10/bare-metal-platforms/_index.md
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Bare Metal Platforms"
|
||||
weight: 20
|
||||
---
|
@ -33,7 +33,7 @@ created talosconfig
|
||||
```
|
||||
|
||||
> The loadbalancer is used to distribute the load across multiple controlplane nodes.
|
||||
> This isn't covered in detail, because we assume some loadbalancing knowledge before hand.
|
||||
> This isn't covered in detail, because we asume some loadbalancing knowledge before hand.
|
||||
> If you think this should be added to the docs, please [create a issue](https://github.com/talos-systems/talos/issues).
|
||||
|
||||
At this point, you can modify the generated configs to your liking.
|
||||
@ -148,7 +148,7 @@ Once selected, you need to assign to following:
|
||||
This will provision the Stage and Bootenv with the talos values.
|
||||
Once this is done, you can boot the machine.
|
||||
|
||||
To understand the boot process, we have a higher level overview located at [metal overview.](/v0.10/en/guides/metal/overview)
|
||||
To understand the boot process, we have a higher level overview located at [metal overview.](/../../guides/metal/overview)
|
||||
|
||||
### Retrieve the `kubeconfig`
|
||||
|
@ -42,7 +42,7 @@ join.yaml is valid for metal mode
|
||||
#### Publishing the Machine Configuration Files
|
||||
|
||||
In bare-metal setups it is up to the user to provide the configuration files over HTTP(S).
|
||||
A special kernel parameter (`talos.config`) must be used to inform Talos about _where_ it should retrieve its' configuration file.
|
||||
A special kernel parameter (`talos.config`) must be used to inform Talos about _where_ it should retreive its' configuration file.
|
||||
To keep things simple we will place `init.yaml`, `controlplane.yaml`, and `join.yaml` into Matchbox's `assets` directory.
|
||||
This directory is automatically served by Matchbox.
|
||||
|
||||
@ -174,7 +174,7 @@ Now, create the following groups, and ensure that the `selector`s are accurate f
|
||||
|
||||
### Boot the Machines
|
||||
|
||||
Now that we have our configuration files in place, boot all the machines.
|
||||
Now that we have our configuraton files in place, boot all the machines.
|
||||
Talos will come up on each machine, grab its' configuration file, and bootstrap itself.
|
||||
|
||||
### Retrieve the `kubeconfig`
|
4
website/content/v0.10/cloud-platforms/_index.md
Normal file
4
website/content/v0.10/cloud-platforms/_index.md
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Cloud Platforms"
|
||||
weight: 40
|
||||
---
|
4
website/content/v0.10/guides/_index.md
Normal file
4
website/content/v0.10/guides/_index.md
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Guides"
|
||||
weight: 60
|
||||
---
|
@ -25,7 +25,7 @@ This is not a requirement, but rather a document to explain some key settings.
|
||||
#### Endpoint
|
||||
|
||||
To configure the `talosctl` endpoint, it is recommended you use a resolvable DNS name.
|
||||
This way, if you decide to upgrade to a multi-controlplane cluster you only have to add the ip address to the hostname configuration.
|
||||
This way, if you decide to upgrade to a multi-controlplane cluster you only have to add the ip adres to the hostname configuration.
|
||||
The configuration can either be done on a Loadbalancer, or simply trough DNS.
|
||||
|
||||
For example:
|
@ -244,7 +244,7 @@ kube-flannel-jknt9 1/1 Running 0 23
|
||||
Full error might look like:
|
||||
|
||||
```bash
|
||||
x509: certificate signed by unknown authority (possibly because of crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes"
|
||||
x509: certificate signed by unknown authority (possiby because of crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes"
|
||||
```
|
||||
|
||||
Commonly, the control plane endpoint points to a different cluster, as the client certificate
|
4
website/content/v0.10/introduction/_index.md
Normal file
4
website/content/v0.10/introduction/_index.md
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Introduction"
|
||||
weight: 1
|
||||
---
|
@ -4,7 +4,7 @@ weight: 3
|
||||
---
|
||||
|
||||
This document will walk you through installing a full Talos Cluster.
|
||||
You may wish to read through the [Quickstart](https://talos.dev/docs/v0.10/introduction/quickstart/) first, to quickly create a local virtual cluster on your workstation.
|
||||
You may wish to read through the [Quickstart](../../introduction/quickstart/) first, to quickly create a local virtual cluster on your workstation.
|
||||
|
||||
Regardless of where you run Talos, you will find that there is a pattern to deploying it.
|
||||
|
||||
@ -55,7 +55,7 @@ Thus, it is safe to boot the ISO onto any machine.
|
||||
If you wish to use a different boot mechanism (such as network boot or a custom ISO), there
|
||||
are a number of required kernel parameters.
|
||||
|
||||
Please see the [kernel](https://talos.dev/docs/v0.10/reference/kernel/) docs for more information.
|
||||
Please see the [kernel](../../reference/kernel/) docs for more information.
|
||||
|
||||
## Decide the Kubernetes Endpoint
|
||||
|
4
website/content/v0.10/learn-more/_index.md
Normal file
4
website/content/v0.10/learn-more/_index.md
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Learn More"
|
||||
weight: 80
|
||||
---
|
@ -98,7 +98,7 @@ Can I break my cluster by upgrading everything?
|
||||
**A.** No.
|
||||
|
||||
Nothing prevents the user from sending any number of near-simultaneous upgrades to each node of the cluster.
|
||||
While most people would not attempt to do this, it may be the desired behavior in certain situations.
|
||||
While most people would not attempt to do this, it may be the desired behaviour in certain situations.
|
||||
|
||||
If, however, multiple control plane nodes are asked to upgrade at the same time, Talos will protect itself by making sure only one control plane node upgrades at any time, through its checking of etcd quorum.
|
||||
A lease is taken out by the winning control plane node, and no other control plane node is allowed to execute the upgrade until the lease is released and the etcd cluster is healthy and _will_ be healthy when the next node performs its upgrade.
|
4
website/content/v0.10/local-platforms/_index.md
Normal file
4
website/content/v0.10/local-platforms/_index.md
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Local Platforms"
|
||||
weight: 50
|
||||
---
|
4
website/content/v0.10/reference/_index.md
Normal file
4
website/content/v0.10/reference/_index.md
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Reference"
|
||||
weight: 70
|
||||
---
|
@ -585,7 +585,7 @@ The ControllerRuntimeDependency message contains the graph of controller-resourc
|
||||
### InspectService
|
||||
The inspect service definition.
|
||||
|
||||
InspectService provides auxiliary API to inspect OS internals.
|
||||
InspectService provides auxilary API to inspect OS internals.
|
||||
|
||||
| Method Name | Request Type | Response Type | Description |
|
||||
| ----------- | ------------ | ------------- | ------------|
|
4
website/content/v0.10/single-board-computers/_index.md
Normal file
4
website/content/v0.10/single-board-computers/_index.md
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Single Board Computers"
|
||||
weight: 55
|
||||
---
|
4
website/content/v0.10/virtualized-platforms/_index.md
Normal file
4
website/content/v0.10/virtualized-platforms/_index.md
Normal file
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "Virtualized Platforms"
|
||||
weight: 30
|
||||
---
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user