1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2024-12-14 11:57:51 +00:00
Commit graph

2630 commits

Author SHA1 Message Date
Markus Lehtonen
a4375327de Change the sed delimiter in deployment instructions
The former usage of slash as a delimiter did not play well together
with container image tags that usually contain slashes themselves.
2019-05-14 21:15:01 +03:00
Kubernetes Prow Robot
8996be7e09
Merge pull request #231 from Ethyling/change-label-prefix
Allow to change labels namespace
2019-05-14 07:43:13 -07:00
Kubernetes Prow Robot
7126b02432
Merge pull request #224 from marquiz/devel/cpuid
source/cpu: make cpuid configurable
2019-05-14 05:01:17 -07:00
Markus Lehtonen
88f694a177 cpu: remove unused import from cpuid_arm64 2019-05-13 17:17:02 +03:00
Markus Lehtonen
7c5f7d600e source/cpu: make cpuid configurable
Add 'cpuid/attributeBlacklist' and 'cpuid/attributeWhitelist' config
options for the cpu feature source. These can be used to filter the set
of cpuid capabilities that get published. The intention is to reduce
clutter in the NFD label space, getting rid of "obvious" or misleading
cpuid labels. Whitelisting has higher priority, i.e.  only whitelist
takes effect if both attributeWhitelist and attributeBlacklist are
specified.
2019-05-13 17:17:02 +03:00
Kubernetes Prow Robot
1752bb3e56
Merge pull request #243 from marquiz/devel/readme
Better document the difference between latest release and master branch
2019-05-10 13:16:20 -07:00
Kubernetes Prow Robot
b076d461b0
Merge pull request #246 from marquiz/devel/dep
Dockerfile: verbose dep ensure
2019-05-10 13:14:15 -07:00
Markus Lehtonen
6563da29ab Dockerfile: verbose dep ensure
Better see what is happening inside the build.
2019-05-10 15:50:53 +03:00
Markus Lehtonen
a0fb0c6561 Better document the difference between latest release and master branch
Point to the latest release in the README, and, point out that a
user-built custom image is required to run the latest development
version. Update the deployment instructions to reflect the need to
specify the container image when using the deployment spec template(s).
Also, update the Job deployment script to set a user-defined container
image.
2019-05-10 15:17:31 +03:00
Jordan Jacobelli
40918827f6
Allow to change labels namespace
The aim here is to allow to override the default namespace
of NFD. The allowed namespaces are whitelisted.
See https://github.com/kubernetes-sigs/node-feature-discovery/issues/227

Signed-off-by: Jordan Jacobelli <jjacobelli@nvidia.com>
2019-05-09 13:17:52 -07:00
Kubernetes Prow Robot
c459ceee67
Merge pull request #217 from marquiz/devel/source-reorg
sources: move all cpu related features under the cpu source
2019-05-09 11:22:49 -07:00
Markus Lehtonen
655f5c5555 sources: move all cpu related features under the cpu source
Remove 'cpuid', 'pstate' and 'rdt' feature sources and move their
functionality under the 'cpu' source. The goal is to have a more
systematic organization of feature sources and labels. After this change
we now basically have one source per type of hw, one for kernel and one
for userspace sw.

Related feature labels are changed, correspondingly, new labels being:
    feature.node.k8s.io/cpu-cpuid.<cpuid flag>
    feature.node.k8s.io/cpu-pstate.turbo
    feature.node.k8s.io/cpu-rdt.<rdt feature>
2019-05-09 20:18:36 +03:00
Markus Lehtonen
c9c9a3f0f0 Use a placeholder for the container image in the template specs
The templates were not compatible with the image they were pointing to
(v0.3.0).
2019-05-09 20:06:18 +03:00
Kubernetes Prow Robot
5b73e271ba
Merge pull request #244 from marquiz/devel/deps
Update deps after dropping glog
2019-05-09 09:12:51 -07:00
Markus Lehtonen
d09a7cb77c Update deps after dropping glog 2019-05-09 14:02:08 +03:00
Kubernetes Prow Robot
123ca9d9ef
Merge pull request #241 from marquiz/devel/fixes-237
nfd-master: fix --label-whitelist
2019-05-08 15:06:48 -07:00
Markus Lehtonen
470cf8dff2 nfd-master: correct a mistake in unit tests
Annotations were not correctly checked when testing
mockServer.updateNodeFeatures().
2019-05-08 23:07:52 +03:00
Markus Lehtonen
7f43a3db4e nfd-master: fix --label-whitelist
Make the --label-whitelist effective. Previously, it was unused and had
no effect. Also, add simple unit test for that.
2019-05-08 23:07:52 +03:00
Kubernetes Prow Robot
6975afd1fa
Merge pull request #242 from marquiz/devel/readme-links
README: fix two outdated hyperlinks
2019-05-08 11:48:34 -07:00
Kubernetes Prow Robot
a530e7edd8
Merge pull request #100 from marquiz/feature/dockerignore
Update dockerignore
2019-05-08 10:04:36 -07:00
Markus Lehtonen
a704321873 README: fix two outdated hyperlinks 2019-05-08 14:45:25 +03:00
Markus Lehtonen
fbd76d7acd Update dockerignore
Exclude git files and dockerignore itself. Also, update some outdated
entries and sort the file.
2019-05-08 11:45:32 +03:00
Kubernetes Prow Robot
548c066ee9
Merge pull request #150 from marquiz/feature/logging
Simplify logging
2019-05-07 16:46:33 -07:00
Kubernetes Prow Robot
262e41a78c
Merge pull request #240 from marquiz/devel/fixes
apihelpers: drop unused fields from K8sHelpers
2019-05-07 09:01:51 -07:00
Kubernetes Prow Robot
75408d21fb
Merge pull request #238 from Ethyling/reviewer-ethyling
Add Ethyling to OWNERS file
2019-05-07 00:43:40 -07:00
Markus Lehtonen
5553259062 apihelpers: drop unused fields from K8sHelpers 2019-05-07 10:37:16 +03:00
Jordan Jacobelli
ec1ab2b74e
Add Ethyling to OWNERS file
Signed-off-by: Jordan Jacobelli <jjacobelli@nvidia.com>
2019-05-06 09:18:14 -07:00
Markus Lehtonen
75a8f0c146 Refactor APIHelpers
Remove functionality that was not interacting with Kubernetes API.
Makes the architecture a bit simpler and simplifies testing.
2019-05-06 16:26:41 +03:00
Markus Lehtonen
35d26001e4 nfd-worker: extend unit test to cover 'main'
Also, adds new method WaitForReady() into NfdMaster.

In practice, this quite widely tests nfd-master, too, as the tests
create an instance of NfdMaster and verify that the communication
between master and worker works.
2019-05-06 16:26:41 +03:00
Markus Lehtonen
2de0a019a3 Move most of functionality in cmd/ to pkg/
Move most of the code under cmd/nfd-master and cmd/nfd-worker into new
packages pkg/nfd-master and pk/nfd-worker, respectively. Makes extending
unit tests to "main" functions easier.
2019-05-06 16:26:41 +03:00
Kubernetes Prow Robot
92b0cd9834
Merge pull request #184 from marquiz/feature/travis-opt
travis: run in minimal environment and drop sudo
2019-04-27 15:02:22 -07:00
Markus Lehtonen
fa4d9b76e9 travis: run in minimal environment and drop sudo
Default language is ruby and we don't need that. The minimal environment
is enough. Also, no su privileges are needed to run the build.
2019-04-27 12:49:48 +03:00
Markus Lehtonen
d4cb0e742b Use standard logger for all feature sources 2019-04-25 17:17:41 +03:00
Markus Lehtonen
0c8fe34163 Drop glog based logging
Simplify logging of feature sources. Glog was used in some feature
sources, but, it was too complicated for the simple logging needs of
NFD.
2019-04-25 17:14:58 +03:00
Markus Lehtonen
e7d272ad0f Makefile: reorganise container image variables
Change the structure and naming of the make variables that control the
container image name/tag that gets created. Default values and behavior
stay the same, but, this change tries to make it easier to customize the
build from command line.

Also, document all the relevant make variables in readme.
2019-04-25 15:25:49 +03:00
Markus Lehtonen
61ffd260bb README: move description of hooks to the end of the feature source list
Move the documentation of the feature detection hooks (i.e. 'local'
feature source) after all other feature sources. It is a more logical
place to document custom user-specific functionality after the built-in
features. Also, adjust the title a bit.
2019-04-25 15:24:56 +03:00
Kubernetes Prow Robot
de94376a09
Merge pull request #236 from Ethyling/default-mount
Mount source.d and features.d in template YAMLs
2019-04-23 02:46:15 -07:00
Jordan Jacobelli
5df5e5c187 Mount source.d and features.d in template YAMLs
Signed-off-by: Jordan Jacobelli <jjacobelli@nvidia.com>
2019-04-22 10:07:23 -07:00
Kubernetes Prow Robot
b3c942e47a
Merge pull request #235 from marquiz/devel/sst-bf
source/cpu: detect SST-BF
2019-04-12 05:24:46 -07:00
Markus Lehtonen
ad17e5088b source/cpu: detect SST-BF
Detect of the Intel SST-BF (Speed Select Technology - Base Frequency)
has been enabled.

Adds one new feature label:
  feature.node.kubernetes.io/cpu-power.sst_bf.enabled=true

Based on a patch from kuralamudhan.ramakrishnan@intel.com
2019-04-12 15:11:55 +03:00
Markus Lehtonen
86382afe56 Re-factor cpuid functionality out of source/rdt
Move the cpuid functionality into a separate library package so that it
can be easily re-used by other sources.
2019-04-12 14:36:08 +03:00
Markus Lehtonen
c54551f599 Only read NodeName from env once, at startup
Simplifies the code a bit. Also, log NodeName at startup.
2019-04-04 22:40:24 +03:00
Markus Lehtonen
6f73106d01 FIX split 2019-04-04 22:40:24 +03:00
Markus Lehtonen
0a22564b9f Dockerfile: set verbosity of gRPC
Makes solving issues easier when gRPC prints out information e.g. about
TLS authentication problems on the server (nfd-master) side, too.
2019-04-04 22:40:24 +03:00
Markus Lehtonen
c107284cc5 README: align documentation with master-worker architecture 2019-04-04 22:40:24 +03:00
Markus Lehtonen
6562784d9f Include example of enabling TLS auth in the yaml templates 2019-04-04 22:40:24 +03:00
Markus Lehtonen
4c1e892d88 nfd-master: implement --verify-node-name
Make NodeName based authorization of the workers optional (off by
default). This makes it possible for all nfd-worker pods in the cluster
to use one shared secret, making NFD deployment much easier. However,
this also opens a way for nfd-workers to label other nodes (than what it
is running on), too.
2019-04-04 22:40:24 +03:00
Markus Lehtonen
40061e6a78 nfd-worker: add --server-name-override
Command line option for overriding the Common Name (CN) expected from
the nfd-master TLS certificate. This can be especially handy in
testing/development.
2019-04-04 22:40:24 +03:00
Markus Lehtonen
5253d25d99 Add worker (client) authentication
Implement TLS client certificate authentication. It is enabled by
specifying --ca-file, --key-file and --cert-file, on both the nfd-master
and nfd-worker side. When enabled, nfd-master verifies that the client
(worker) presents a valid certificate signed by the root certificate
(--ca-file). In addition, nfd-master does authorization based on the Common Name
(CN) of the client certificate: CN must match the node name specified in
the labeling request. This ensures (assuming that the worker
certificates are correctly deployed) that nfd-worker is only able to label
the node it is running on, i.e. prevents it from labeling other nodes.
2019-04-04 22:40:24 +03:00
Markus Lehtonen
bca194f6e6 Implement TLS server authentication
Add support for TLS authentication. When enabled, nfd-worker verifies
that nfd-master has a valid certificate, i.e. signed by the given root
certificate and its Common Name (CN) matches the DNS name of the
nfd-master service being used. TLS authentication is enabled by
specifying --key-file and --cert-file on nfd-master, and, --ca-file on
nfd-worker.
2019-04-04 22:40:24 +03:00