Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a minimum documentation page #68

Merged
merged 14 commits into from
Jun 2, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 6 additions & 57 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
The Node Feature Discovery operator manages detection of hardware features and configuration in a kubernetes cluster.
The operator orchestrates all resources needed to run the [Node-Feature-Discovery](https://github.com/kubernetes-sigs/node-feature-discovery) DaemonSet

Welcome to Node Feature Discovery Operator!

### See our [Documentation][documentation] for detailed instructions and reference

## Community, discussion, contribution, and support

Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/).
Expand All @@ -12,63 +16,8 @@ You can reach the maintainers of this project at:
- [Slack channel](https://kubernetes.slack.com/messages/node-feature-discovery)
- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-node)


## Building the operator

Checkout the sources

```bash
$ git clone https://github.com/kubernetes-sigs/node-feature-discovery-operator
```

Build the operator image

```bash
IMAGE_REGISTRY=<my registry>
make image
```

Optionally you can push it to your image repo

```bash
IMAGE_REGISTRY=<my registry>
make push
```

Alternatively, instead of specifying variables on the command line, you can edit the Makefile to permanently change parameter defaults like name of the image or namespace where the operator is deployed.

## Manual deploy of the operator

The default `NodeFeatureDiscovery` CR will create the operand (NFD) in the `node-feature-discovery-operator` namespace,
also an empty [nfd-worker-conf](https://kubernetes-sigs.github.io/node-feature-discovery/v0.6/get-started/deployment-and-usage.html#configuration),
the CR can be edited to choose another namespace, image, imagePullPolicy and nfd-worker-conf. See the `manifests/0700_cr.yaml` for the default values.

```bash
IMAGE_REGISTRY=<my registry>
make deploy
```

The operator will use the operand node-feature-discovery image built from: https://github.com/kubernetes-sigs/node-feature-discovery

To uninstall the operator run

```bash
make undeploy
```

## Extending Node-feature-discovery with sidecar containers and hooks

First see upstream documentation of the hook feature and how to create a correct hook file:

https://github.com/kubernetes-sigs/node-feature-discovery#local-user-specific-features.

The DaemonSet running on the workers will mount the `hostPath: /etc/kubernetes/node-feature-discovery/source.d`.
Additional hooks can than be provided by a sidecar container that is as well running on the workers and mounting the same hostpath and writing the hook executable (shell-script, compiled code, ...) to this directory.

NFD will execute any file in this directory, if one needs any configuration for the hook,
a separate configuration directory can be created under `/etc/kubernetes/node-feature-discovery/source.d`
e.g. `/etc/kubernetes/node-feature-discovery/source.d/own-hook-conf`, NFD will not recurse deeper into the file hierarchy.

### Code of conduct

Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).

[documentation]: https://kubernetes-sigs.github.io/node-feature-discovery-operator
7 changes: 5 additions & 2 deletions docs/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,12 @@ remote_theme: rundocs/[email protected]
version: master
display_version_list: true

# Release is used to make external links to point to the correct blobs in the
# Github repo
# Release is the full released version number. Used to make external links to
# point to the correct blobs in the Github repo. This is also the version shown
# in the sidebar (top left corner of the page)
release: master

# Container image which to point to in the documentation
container_image: gcr.io/k8s-staging-nfd/node-feature-discovery-operator:master
# Operand Node Feature Discovery documentation version
operand_version: v0.8
2 changes: 1 addition & 1 deletion docs/_includes/class/sidebar-wrap.liquid
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<i class="fa fa-home"></i> {{ site.title }}
</a>
</div>
<span class="version">{{ site.version }}</span>
<span class="version">{{ site.release }}</span>
<form class="search pt-2" action="{{ site.baseurl }}/search.html" method="get" autocomplete="off">
<input class="form-control input-block input-sm" type="text" name="q" placeholder="{{ __.search_docs | default: 'Search docs...' }}">
</form>
Expand Down
80 changes: 80 additions & 0 deletions docs/advanced/developer-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: "Developer guide"
layout: default
sort: 1
---

# Developer guide

{: .no_toc }

## Table of contents

{: .no_toc .text-delta }

1. TOC
{:toc}

## Building the operator

### Download the source code

```bash
git clone https://github.com/kubernetes-sigs/node-feature-discovery-operator
```

### Build the operator image

```bash
IMAGE_REGISTRY=<my registry>
make image
```

#### Push the container image

```bash
IMAGE_REGISTRY=<my registry>
make push
```

Alternatively, instead of specifying variables on the command line,
you can edit the Makefile to permanently change parameter defaults
like name of the image or namespace where the operator is deployed.

## Manual deployment of the operator

After building the image you can simply run

```bash
IMAGE_REGISTRY=<my registry>
make deploy
```

Then create a NodeFeatureDiscovery CR by running

```bash
kubectl apply -f config/samples/nfd.kubernetes.io_v1_nodefeaturediscovery.yaml
```

## Undeploy the operator

The operator will use the operand node-feature-discovery
image built from: `https://github.com/kubernetes-sigs/node-feature-discovery`

To uninstall the operator run

```bash
make undeploy
```

## Clean up labels

In case you need to reomve the labels created by NFD,
the source Makefile comes with a built in target

```bash
make clean-labels
```

This will clean all labels referencing to
`feature.node.kubernetes.io` and `nfd.node.kubernetes.io`
9 changes: 9 additions & 0 deletions docs/advanced/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: "Advanced"
layout: default
sort: 2
---

# Advanced

Advanced topics and reference.
136 changes: 136 additions & 0 deletions docs/advanced/nodefeaturediscovery.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
---
title: "NodeFeatureDiscovery"
layout: default
sort: 2
---

# The NodeFeatureDiscovery CR

The `NodeFeatureDiscovery` CustomResource defines operational variables
to define the behaviour of the Node Feature Discovery Operand,
an example of the CustomResource:

```yaml
apiVersion: nfd.kubernetes.io/v1
kind: NodeFeatureDiscovery
metadata:
name: nfd-master-server
namespace: node-feature-discovery-operator
spec:
operand:
namespace: node-feature-discovery-operator
image: gcr.io/k8s-staging-nfd/node-feature-discovery:master
imagePullPolicy: Always
servicePort: 12000
workerConfig:
configData: |
#core:
# labelWhiteList:
# noPublish: false
# sleepInterval: 60s
# sources: [all]
# klog:
# addDirHeader: false
# alsologtostderr: false
# logBacktraceAt:
# logtostderr: true
# skipHeaders: false
# stderrthreshold: 2
# v: 0
# vmodule:
## NOTE: the following options are not dynamically run-time configurable
## and require a nfd-worker restart to take effect after being changed
# logDir:
# logFile:
# logFileMaxSize: 1800
# skipLogHeaders: false
#sources:
# cpu:
# cpuid:
## NOTE: whitelist has priority over blacklist
# attributeBlacklist:
# - "BMI1"
# - "BMI2"
# - "CLMUL"
# - "CMOV"
# - "CX16"
# - "ERMS"
# - "F16C"
# - "HTT"
# - "LZCNT"
# - "MMX"
# - "MMXEXT"
# - "NX"
# - "POPCNT"
# - "RDRAND"
# - "RDSEED"
# - "RDTSCP"
# - "SGX"
# - "SSE"
# - "SSE2"
# - "SSE3"
# - "SSE4.1"
# - "SSE4.2"
# - "SSSE3"
# attributeWhitelist:
# kernel:
# kconfigFile: "/path/to/kconfig"
# configOpts:
# - "NO_HZ"
# - "X86"
# - "DMI"
# pci:
# deviceClassWhitelist:
# - "0200"
# - "03"
# - "12"
# deviceLabelFields:
# - "class"
# - "vendor"
# - "device"
# - "subsystem_vendor"
# - "subsystem_device"
# usb:
# deviceClassWhitelist:
# - "0e"
# - "ef"
# - "fe"
# - "ff"
# deviceLabelFields:
# - "class"
# - "vendor"
# - "device"
# custom:
# - name: "my.kernel.feature"
# matchOn:
# - loadedKMod: ["example_kmod1", "example_kmod2"]
# - name: "my.pci.feature"
# matchOn:
# - pciId:
# class: ["0200"]
# vendor: ["15b3"]
# device: ["1014", "1017"]
# - pciId :
# vendor: ["8086"]
# device: ["1000", "1100"]
# - name: "my.usb.feature"
# matchOn:
# - usbId:
# class: ["ff"]
# vendor: ["03e7"]
# device: ["2485"]
# - usbId:
# class: ["fe"]
# vendor: ["1a6e"]
# device: ["089a"]
# - name: "my.combined.feature"
# matchOn:
# - pciId:
# vendor: ["15b3"]
# device: ["1014", "1017"]
# loadedKMod : ["vendor_kmod1", "vendor_kmod2"]
```

For more information about how to setup the `WorkerConfig` stanza,
see
[worker config reference](https://kubernetes-sigs.github.io/node-feature-discovery/{{site.operand_version}}/advanced/worker-configuration-reference.html)
32 changes: 32 additions & 0 deletions docs/contributing/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: "Contributing"
layout: default
sort: 3
---

# Contributing

---

## Community

You can reach us via the following channels:

- [#node-feature-discovery](https://kubernetes.slack.com/messages/node-feature-discovery)
channel in [Kubernetes Slack](slack.k8s.io)
- [SIG-Node](https://groups.google.com/g/kubernetes-sig-node) mailing list
- File an
[issue](https://github.com/kubernetes-sigs/node-feature-discovery-operator/issues/new)
in this repository

## Governance

This is a
[SIG-node](https://github.com/kubernetes/community/blob/master/sig-node/README.md)
subproject, hosted under the
[Kubernetes SIGs](https://github.com/kubernetes-sigs) organization in Github.
The project was established in 2016 and was migrated to Kubernetes SIGs in 2018.

## License

This is open source software released under the [Apache 2.0 License](LICENSE).
19 changes: 19 additions & 0 deletions docs/get-started/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
title: "Get Started"
layout: default
sort: 1
---

# Node Feature Discovery Operator

Welcome to Node Feature Discovery Operator – an Operator
Framework implementation around the Node Feature Discovery project to enable
detecting hardware features and system configuration!

Continue to:

- **[Introduction](introduction.md)** for more details on the
project.

- **[Quick start](quick-start.md)** for quick step-by-step
instructions on how to get NFD running on your cluster.
Loading