mirror of
https://github.com/kubernetes-sigs/node-feature-discovery.git
synced 2025-03-16 21:38:23 +00:00
Merge pull request #313 from marquiz/devel/build
Slight rework of building
This commit is contained in:
commit
691f13d2c6
3 changed files with 41 additions and 24 deletions
11
Dockerfile
11
Dockerfile
|
@ -11,13 +11,10 @@ RUN go mod download
|
||||||
# Do actual build
|
# Do actual build
|
||||||
COPY . /go/node-feature-discovery
|
COPY . /go/node-feature-discovery
|
||||||
|
|
||||||
ARG NFD_VERSION
|
ARG VERSION
|
||||||
ARG HOSTMOUNT_PREFIX
|
ARG HOSTMOUNT_PREFIX
|
||||||
|
|
||||||
RUN go install \
|
RUN make install VERSION=$VERSION HOSTMOUNT_PREFIX=$HOSTMOUNT_PREFIX
|
||||||
-ldflags "-s -w -X sigs.k8s.io/node-feature-discovery/pkg/version.version=$NFD_VERSION -X sigs.k8s.io/node-feature-discovery/source.pathPrefix=$HOSTMOUNT_PREFIX" \
|
|
||||||
./cmd/*
|
|
||||||
RUN install -D -m644 nfd-worker.conf.example /etc/kubernetes/node-feature-discovery/nfd-worker.conf
|
|
||||||
|
|
||||||
RUN make test
|
RUN make test
|
||||||
|
|
||||||
|
@ -31,5 +28,5 @@ USER 65534:65534
|
||||||
# Use more verbose logging of gRPC
|
# Use more verbose logging of gRPC
|
||||||
ENV GRPC_GO_LOG_SEVERITY_LEVEL="INFO"
|
ENV GRPC_GO_LOG_SEVERITY_LEVEL="INFO"
|
||||||
|
|
||||||
COPY --from=builder /etc/kubernetes/node-feature-discovery /etc/kubernetes/node-feature-discovery
|
COPY --from=builder /go/node-feature-discovery/nfd-worker.conf.example /etc/kubernetes/node-feature-discovery/nfd-worker.conf
|
||||||
COPY --from=builder /go/bin/nfd-* /usr/bin/
|
COPY --from=builder /go/bin/* /usr/bin/
|
||||||
|
|
26
Makefile
26
Makefile
|
@ -16,18 +16,36 @@ IMAGE_TAG_NAME := $(VERSION)
|
||||||
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)
|
||||||
K8S_NAMESPACE := kube-system
|
K8S_NAMESPACE := kube-system
|
||||||
HOSTMOUNT_PREFIX := /host-
|
|
||||||
|
# We use different mount prefix for local and container builds.
|
||||||
|
# Take CONTAINER_HOSTMOUNT_PREFIX from HOSTMOUNT_PREFIX if only the latter is specified
|
||||||
|
ifdef HOSTMOUNT_PREFIX
|
||||||
|
CONTAINER_HOSTMOUNT_PREFIX := $(HOSTMOUNT_PREFIX)
|
||||||
|
else
|
||||||
|
CONTAINER_HOSTMOUNT_PREFIX := /host-
|
||||||
|
endif
|
||||||
|
HOSTMOUNT_PREFIX := /
|
||||||
|
|
||||||
KUBECONFIG :=
|
KUBECONFIG :=
|
||||||
E2E_TEST_CONFIG :=
|
E2E_TEST_CONFIG :=
|
||||||
|
|
||||||
|
LDFLAGS = -ldflags "-s -w -X sigs.k8s.io/node-feature-discovery/pkg/version.version=$(VERSION) -X sigs.k8s.io/node-feature-discovery/source.pathPrefix=$(HOSTMOUNT_PREFIX)"
|
||||||
|
|
||||||
yaml_templates := $(wildcard *.yaml.template)
|
yaml_templates := $(wildcard *.yaml.template)
|
||||||
yaml_instances := $(patsubst %.yaml.template,%.yaml,$(yaml_templates))
|
yaml_instances := $(patsubst %.yaml.template,%.yaml,$(yaml_templates))
|
||||||
|
|
||||||
all: image
|
all: image
|
||||||
|
|
||||||
|
build:
|
||||||
|
@mkdir -p bin
|
||||||
|
$(GO_CMD) build -v -o bin $(LDFLAGS) ./cmd/...
|
||||||
|
|
||||||
|
install:
|
||||||
|
$(GO_CMD) install -v $(LDFLAGS) ./cmd/...
|
||||||
|
|
||||||
image: yamls
|
image: yamls
|
||||||
$(IMAGE_BUILD_CMD) --build-arg NFD_VERSION=$(VERSION) \
|
$(IMAGE_BUILD_CMD) --build-arg VERSION=$(VERSION) \
|
||||||
--build-arg HOSTMOUNT_PREFIX=$(HOSTMOUNT_PREFIX) \
|
--build-arg HOSTMOUNT_PREFIX=$(CONTAINER_HOSTMOUNT_PREFIX) \
|
||||||
-t $(IMAGE_TAG) \
|
-t $(IMAGE_TAG) \
|
||||||
$(IMAGE_BUILD_EXTRA_OPTS) ./
|
$(IMAGE_BUILD_EXTRA_OPTS) ./
|
||||||
|
|
||||||
|
@ -40,7 +58,7 @@ yamls: $(yaml_instances)
|
||||||
-e s',^(\s*)name: node-feature-discovery # NFD namespace,\1name: ${K8S_NAMESPACE},' \
|
-e s',^(\s*)name: node-feature-discovery # NFD namespace,\1name: ${K8S_NAMESPACE},' \
|
||||||
-e s',^(\s*)image:.+$$,\1image: ${IMAGE_TAG},' \
|
-e s',^(\s*)image:.+$$,\1image: ${IMAGE_TAG},' \
|
||||||
-e s',^(\s*)namespace:.+$$,\1namespace: ${K8S_NAMESPACE},' \
|
-e s',^(\s*)namespace:.+$$,\1namespace: ${K8S_NAMESPACE},' \
|
||||||
-e s',^(\s*)mountPath: "/host-,\1mountPath: "${HOSTMOUNT_PREFIX},' \
|
-e s',^(\s*)mountPath: "/host-,\1mountPath: "${CONTAINER_HOSTMOUNT_PREFIX},' \
|
||||||
$< > $@
|
$< > $@
|
||||||
|
|
||||||
mock:
|
mock:
|
||||||
|
|
28
README.md
28
README.md
|
@ -877,19 +877,21 @@ attribute in the spec template(s) to the new location
|
||||||
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.
|
||||||
|
|
||||||
| Variable | Description | Default value
|
| Variable | Description | Default value
|
||||||
| ---------------------- | -------------------------------------------- | ----------- |
|
| -------------------------- | ----------------------------------------------------------------- | ----------- |
|
||||||
| IMAGE_BUILD_CMD | Command to build the image | docker build
|
| HOSTMOUNT_PREFIX | Prefix of system directories for feature discovery (local builds) | /
|
||||||
| IMAGE_BUILD_EXTRA_OPTS | Extra options to pass to build command | *empty*
|
| CONTAINER_HOSTMOUNT_PREFIX | Prefix of system directories for feature discovery (container builds) | <HOSTMOUNT_PREFIX> (*if specified*) /host- (*otherwise*)
|
||||||
| IMAGE_PUSH_CMD | Command to push the image to remote registry | docker push
|
| IMAGE_BUILD_CMD | Command to build the image | docker build
|
||||||
| IMAGE_REGISTRY | Container image registry to use | k8s.gcr.io/nfd
|
| IMAGE_BUILD_EXTRA_OPTS | Extra options to pass to build command | *empty*
|
||||||
| IMAGE_NAME | Container image name | node-feature-discovery
|
| IMAGE_PUSH_CMD | Command to push the image to remote registry | docker push
|
||||||
| IMAGE_TAG_NAME | Container image tag name | <nfd version>
|
| IMAGE_REGISTRY | Container image registry to use | k8s.gcr.io/nfd
|
||||||
| IMAGE_REPO | Container image repository to use | <IMAGE_REGISTRY>/<IMAGE_NAME>
|
| IMAGE_NAME | Container image name | node-feature-discovery
|
||||||
| IMAGE_TAG | Full image:tag to tag the image with | <IMAGE_REPO>/<IMAGE_NAME>
|
| IMAGE_TAG_NAME | Container image tag name | <nfd version>
|
||||||
| K8S_NAMESPACE | nfd-master and nfd-worker namespace | kube-system
|
| IMAGE_REPO | Container image repository to use | <IMAGE_REGISTRY>/<IMAGE_NAME>
|
||||||
| KUBECONFIG | Kubeconfig for running e2e-tests | *empty*
|
| IMAGE_TAG | Full image:tag to tag the image with | <IMAGE_REPO>/<IMAGE_NAME>
|
||||||
| E2E_TEST_CONFIG | Parameterization file of e2e-tests (see [example](test/e2e/e2e-test-config.exapmle.yaml)) | *empty*
|
| K8S_NAMESPACE | nfd-master and nfd-worker namespace | kube-system
|
||||||
|
| KUBECONFIG | Kubeconfig for running e2e-tests | *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:
|
||||||
```
|
```
|
||||||
|
|
Loading…
Add table
Reference in a new issue