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

Fix Makefile to take vaules from ENV VAR values

make image and make push fails when trying to use an ENV VAR value, as
it is now they can only be overrided.

the Var modified are
GO_CMD
GO_FMT
IMAGE_BUILD_EXTRA_OPTS
IMAGE_BUILD_CMD
IMAGE_PUSH_CMD
IMAGE_TAG_NAME
IMAGE_REGISTRY
IMAGE_NAME
IMAGE_EXTRA_TAG_NAMES
K8S_NAMESPACE
HOSTMOUNT_PREFIX

This new behaviour has also been updated on the README.

Signed-off-by: Carlos Eduardo Arango Gutierrez <carangog@redhat.com>
This commit is contained in:
Carlos Eduardo Arango Gutierrez 2020-09-06 16:36:41 -05:00
parent 769c518c3e
commit 4bcb0cf851
No known key found for this signature in database
GPG key ID: A9596BE502663DFD
2 changed files with 38 additions and 12 deletions

View file

@ -1,23 +1,23 @@
.PHONY: all test yamls .PHONY: all test yamls
.FORCE: .FORCE:
GO_CMD := go GO_CMD ?= go
GO_FMT := gofmt GO_FMT ?= gofmt
IMAGE_BUILD_CMD := docker build IMAGE_BUILD_CMD ?= docker build
IMAGE_BUILD_EXTRA_OPTS := IMAGE_BUILD_EXTRA_OPTS ?=
IMAGE_PUSH_CMD := docker push IMAGE_PUSH_CMD ?= docker push
VERSION := $(shell git describe --tags --dirty --always) VERSION := $(shell git describe --tags --dirty --always)
IMAGE_REGISTRY := k8s.gcr.io/nfd IMAGE_REGISTRY ?= k8s.gcr.io/nfd
IMAGE_NAME := node-feature-discovery IMAGE_NAME ?= node-feature-discovery
IMAGE_TAG_NAME := $(VERSION) IMAGE_TAG_NAME ?= $(VERSION)
IMAGE_EXTRA_TAG_NAMES := IMAGE_EXTRA_TAG_NAMES ?=
IMAGE_REPO := $(IMAGE_REGISTRY)/$(IMAGE_NAME) IMAGE_REPO := $(IMAGE_REGISTRY)/$(IMAGE_NAME)
IMAGE_TAG := $(IMAGE_REPO):$(IMAGE_TAG_NAME) IMAGE_TAG := $(IMAGE_REPO):$(IMAGE_TAG_NAME)
IMAGE_EXTRA_TAGS := $(foreach tag,$(IMAGE_EXTRA_TAG_NAMES),$(IMAGE_REPO):$(tag)) IMAGE_EXTRA_TAGS := $(foreach tag,$(IMAGE_EXTRA_TAG_NAMES),$(IMAGE_REPO):$(tag))
K8S_NAMESPACE := kube-system K8S_NAMESPACE ?= kube-system
# We use different mount prefix for local and container builds. # We use different mount prefix for local and container builds.
# Take CONTAINER_HOSTMOUNT_PREFIX from HOSTMOUNT_PREFIX if only the latter is specified # Take CONTAINER_HOSTMOUNT_PREFIX from HOSTMOUNT_PREFIX if only the latter is specified
@ -26,7 +26,7 @@ ifdef HOSTMOUNT_PREFIX
else else
CONTAINER_HOSTMOUNT_PREFIX := /host- CONTAINER_HOSTMOUNT_PREFIX := /host-
endif endif
HOSTMOUNT_PREFIX := / HOSTMOUNT_PREFIX ?= /
KUBECONFIG := KUBECONFIG :=
E2E_TEST_CONFIG := E2E_TEST_CONFIG :=

View file

@ -282,6 +282,7 @@ capability might be supported but not enabled.
| DCPOP | Persistent Memory Support | DCPOP | Persistent Memory Support
### Custom Features ### Custom Features
The Custom feature source allows the user to define features based on a mix of predefined rules. The Custom feature source allows the user to define features based on a mix of predefined rules.
A rule is provided input witch affects its process of matching for a defined feature. A rule is provided input witch affects its process of matching for a defined feature.
@ -289,6 +290,7 @@ To aid in making Custom Features clearer, we define a general and a per rule nom
consistent as possible. consistent as possible.
#### General Nomenclature & Definitions #### General Nomenclature & Definitions
``` ```
Rule :Represents a matching logic that is used to match on a feature. Rule :Represents a matching logic that is used to match on a feature.
Rule Input :The input a Rule is provided. This determines how a Rule performs the match operation. Rule Input :The input a Rule is provided. This determines how a Rule performs the match operation.
@ -296,6 +298,7 @@ Matcher :A composition of Rules, each Matcher may be composed of at most one
``` ```
#### Custom Features Format (using the Nomenclature defined above) #### Custom Features Format (using the Nomenclature defined above)
```yaml ```yaml
- name: <feature name> - name: <feature name>
matchOn: matchOn:
@ -312,6 +315,7 @@ Matcher :A composition of Rules, each Matcher may be composed of at most one
``` ```
#### Matching process #### Matching process
Specifying Rules to match on a feature is done by providing a list of Matchers. Specifying Rules to match on a feature is done by providing a list of Matchers.
Each Matcher contains one or more Rules. Each Matcher contains one or more Rules.
@ -321,6 +325,7 @@ of a given Matcher.
#### Rules #### Rules
##### PciId Rule ##### PciId Rule
###### Nomenclature ###### Nomenclature
``` ```
Attribute :A PCI attribute. Attribute :A PCI attribute.
Element :An identifier of the PCI attribute. Element :An identifier of the PCI attribute.
@ -330,6 +335,7 @@ The PciId Rule allows matching the PCI devices in the system on the following At
`device`. A list of Elements is provided for each Attribute. `device`. A list of Elements is provided for each Attribute.
###### Format ###### Format
```yaml ```yaml
pciId : pciId :
class: [<class id>, ...] class: [<class id>, ...]
@ -343,6 +349,7 @@ At least one Attribute must be specified. Missing attributes will not partake in
##### UsbId Rule ##### UsbId Rule
###### Nomenclature ###### Nomenclature
``` ```
Attribute :A USB attribute. Attribute :A USB attribute.
Element :An identifier of the USB attribute. Element :An identifier of the USB attribute.
@ -352,6 +359,7 @@ The UsbId Rule allows matching the USB devices in the system on the following At
`device`. A list of Elements is provided for each Attribute. `device`. A list of Elements is provided for each Attribute.
###### Format ###### Format
```yaml ```yaml
usbId : usbId :
class: [<class id>, ...] class: [<class id>, ...]
@ -365,6 +373,7 @@ At least one Attribute must be specified. Missing attributes will not partake in
##### LoadedKMod Rule ##### LoadedKMod Rule
###### Nomenclature ###### Nomenclature
``` ```
Element :A kernel module Element :A kernel module
``` ```
@ -372,6 +381,7 @@ Element :A kernel module
The LoadedKMod Rule allows matching the loaded kernel modules in the system against a provided list of Elements. The LoadedKMod Rule allows matching the loaded kernel modules in the system against a provided list of Elements.
###### Format ###### Format
```yaml ```yaml
loadedKMod : [<kernel module>, ...] loadedKMod : [<kernel module>, ...]
``` ```
@ -379,6 +389,7 @@ loadedKMod : [<kernel module>, ...]
in the system. in the system.
#### Example #### Example
```yaml ```yaml
custom: custom:
- name: "my.kernel.feature" - name: "my.kernel.feature"
@ -423,6 +434,7 @@ if `some_kmod1` _AND_ `some_kmod2` kernel modules are loaded __OR__ the node con
with a PCI vendor ID of `15b3` _AND_ PCI device ID of `1014` _OR_ `1017`. with a PCI vendor ID of `15b3` _AND_ PCI device ID of `1014` _OR_ `1017`.
#### Statically defined features #### Statically defined features
Some feature labels which are common and generic are defined statically in the `custom` feature source. Some feature labels which are common and generic are defined statically in the `custom` feature source.
A user may add additional Matchers to these feature labels by defining them in the `nfd-worker` configuration file. A user may add additional Matchers to these feature labels by defining them in the `nfd-worker` configuration file.
@ -581,6 +593,7 @@ created a shared area for delivering hooks and feature files to NFD.
#### A Hook Example #### A Hook Example
User has a shell script User has a shell script
`/etc/kubernetes/node-feature-discovery/source.d/my-source` which has the `/etc/kubernetes/node-feature-discovery/source.d/my-source` which has the
following `stdout` output: following `stdout` output:
@ -601,6 +614,7 @@ override.namespace/value=456
``` ```
#### A File Example #### A File Example
User has a file User has a file
`/etc/kubernetes/node-feature-discovery/features.d/my-source` which contains the `/etc/kubernetes/node-feature-discovery/features.d/my-source` which contains the
following lines: following lines:
@ -874,6 +888,7 @@ attribute in the spec template(s) to the new location
(`<registry-name>/<image-name>[:<version>]`). (`<registry-name>/<image-name>[:<version>]`).
### Customizing the Build ### Customizing the Build
There are several Makefile variables that control the build process and the There are several Makefile variables that control the build process and the
name of the resulting container image. name of the resulting container image.
@ -895,11 +910,22 @@ name of the resulting container image.
| E2E_TEST_CONFIG | Parameterization file of e2e-tests (see [example](test/e2e/e2e-test-config.exapmle.yaml)) | *empty* | E2E_TEST_CONFIG | Parameterization file of e2e-tests (see [example](test/e2e/e2e-test-config.exapmle.yaml)) | *empty*
For example, to use a custom registry: For example, to use a custom registry:
``` ```
make IMAGE_REGISTRY=<my custom registry uri> make IMAGE_REGISTRY=<my custom registry uri>
``` ```
Or to specify a build tool different from Docker: Or to specify a build tool different from Docker:
It can be done in 2 ways, by pre-defining the variable
```
IMAGE_BUILD_CMD="buildah bud" make
```
Or By overriding the variable value
``` ```
make IMAGE_BUILD_CMD="buildah bud" make IMAGE_BUILD_CMD="buildah bud"
``` ```