-
Notifications
You must be signed in to change notification settings - Fork 64
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add an option to reference IPMI creds via the secret refs
v0.3 docs are a plain copy of v0.2 plus changed the `Configuration/servers.md` for this feature. Signed-off-by: Andrey Smirnov <[email protected]>
- Loading branch information
Showing
20 changed files
with
1,249 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
32 changes: 31 additions & 1 deletion
32
app/metal-controller-manager/api/v1alpha1/zz_generated.deepcopy.go
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
78 changes: 78 additions & 0 deletions
78
docs/website/content/docs/v0.3/Configuration/environments.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
--- | ||
description: "" | ||
weight: 1 | ||
--- | ||
|
||
# Environments | ||
|
||
Environments are a custom resource provided by the Metal Controller Manager. | ||
An environment is a codified description of what should be returned by the PXE server when a physical server attempts to PXE boot. | ||
|
||
Especially important in the environment types are the kernel args. | ||
From here, one can tweak the IP to the metadata server as well as various other kernel options that [Talos](https://www.talos.dev/docs/v0.8/introduction/getting-started/#kernel-parameters) and/or the Linux kernel supports. | ||
|
||
Environments can be supplied to a given server either at the Server or the ServerClass level. | ||
The hierarchy from most to least respected is: | ||
|
||
- `.spec.environmentRef` provided at `Server` level | ||
- `.spec.environmentRef` provided at `ServerClass` level | ||
- `"default"` `Environment` created by administrator | ||
|
||
A sample environment definition looks like this: | ||
|
||
```yaml | ||
apiVersion: metal.sidero.dev/v1alpha1 | ||
kind: Environment | ||
metadata: | ||
name: default | ||
spec: | ||
kernel: | ||
url: "https://github.com/talos-systems/talos/releases/download/v0.8.1/vmlinuz-amd64" | ||
sha512: "" | ||
args: | ||
- init_on_alloc=1 | ||
- init_on_free=1 | ||
- slab_nomerge | ||
- pti=on | ||
- consoleblank=0 | ||
- random.trust_cpu=on | ||
- ima_template=ima-ng | ||
- ima_appraise=fix | ||
- ima_hash=sha512 | ||
- console=tty0 | ||
- console=ttyS1,115200n8 | ||
- earlyprintk=ttyS1,115200n8 | ||
- panic=0 | ||
- printk.devkmsg=on | ||
- talos.platform=metal | ||
- talos.config=http://$PUBLIC_IP:9091/configdata?uuid= | ||
initrd: | ||
url: "https://github.com/talos-systems/talos/releases/download/v0.8.1/initramfs-amd64.xz" | ||
sha512: "" | ||
``` | ||
Example of overriding `"default"` `Environment` at the `Server` level: | ||
|
||
```yaml | ||
apiVersion: metal.sidero.dev/v1alpha1 | ||
kind: Server | ||
... | ||
spec: | ||
environmentRef: | ||
namespace: default | ||
name: boot | ||
... | ||
``` | ||
|
||
Example of overriding `"default"` `Environment` at the `ServerClass` level: | ||
|
||
```yaml | ||
apiVersion: metal.sidero.dev/v1alpha1 | ||
kind: ServerClass | ||
... | ||
spec: | ||
environmentRef: | ||
namespace: default | ||
name: boot | ||
... | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
--- | ||
description: "" | ||
weight: 4 | ||
--- | ||
|
||
# Metadata | ||
|
||
The Metadata server manages the Machine metadata. | ||
In terms of Talos (the OS on which the Kubernetes cluster is formed), this is the | ||
"[machine config](https://www.talos.dev/docs/v0.8/reference/configuration/)", | ||
which is used during the automated installation. | ||
|
||
## Talos Machine Configuration | ||
|
||
The configuration of each machine is constructed from a number of sources: | ||
|
||
- The Talos bootstrap provider. | ||
- The `Cluster` of which the `Machine` is a member. | ||
- The `ServerClass` which was used to select the `Server` into the `Cluster`. | ||
- Any `Server`-specific patches. | ||
|
||
The base template is constructed from the Talos bootstrap provider, using data from the associated `Cluster` manifest. | ||
Then, any configuration patches are applied from the `ServerClass` and `Server`. | ||
|
||
Only configuration patches are allowed in the `ServerClass` and `Server` resources. | ||
These patches take the form of an [RFC 6902](https://tools.ietf.org/html/rfc6902) JSON (or YAML) patch. | ||
An example of the use of this patch method can be found in [Patching Guide](../../guides/patching/). | ||
|
||
Also note that while a `Server` can be a member of any number of `ServerClass`es, only the `ServerClass` which is used to select the `Server` into the `Cluster` will be used for the generation of the configuration of the `Machine`. | ||
In this way, `Servers` may have a number of different configuration patch sets based on which `Cluster` they are in at any given time. |
33 changes: 33 additions & 0 deletions
33
docs/website/content/docs/v0.3/Configuration/serverclasses.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
--- | ||
description: "" | ||
weight: 3 | ||
--- | ||
|
||
# Server Classes | ||
|
||
Server classes are a way to group distinct server resources. | ||
The "qualifiers" key allows the administrator to specify criteria upon which to group these servers. | ||
There are currently three keys: `cpu`, `systemInformation`, and `labelSelectors`. | ||
Each of these keys accepts a list of entries. | ||
The top level keys are a "logical AND", while the lists under each key are a "logical OR". | ||
Qualifiers that are not specified are not evaluated. | ||
|
||
An example: | ||
|
||
```yaml | ||
apiVersion: metal.sidero.dev/v1alpha1 | ||
kind: ServerClass | ||
metadata: | ||
name: default | ||
spec: | ||
qualifiers: | ||
cpu: | ||
- manufacturer: Intel(R) Corporation | ||
version: Intel(R) Atom(TM) CPU C3558 @ 2.20GHz | ||
- manufacturer: Advanced Micro Devices, Inc. | ||
version: AMD Ryzen 7 2700X Eight-Core Processor | ||
labelSelectors: | ||
- "my-server-label": "true" | ||
``` | ||
Servers would only be added to the above class if they had _EITHER_ CPU info, _AND_ the label associated with the server resource. |
Oops, something went wrong.