1
0
Fork 0
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:
Kubernetes Prow Robot 2020-08-23 10:55:40 -07:00 committed by GitHub
commit 691f13d2c6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 24 deletions

View file

@ -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/

View file

@ -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:

View file

@ -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) | &lt;HOSTMOUNT_PREFIX&gt; (*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 | &lt;nfd version&gt; | IMAGE_REGISTRY | Container image registry to use | k8s.gcr.io/nfd
| IMAGE_REPO | Container image repository to use | &lt;IMAGE_REGISTRY&gt;/&lt;IMAGE_NAME&gt; | IMAGE_NAME | Container image name | node-feature-discovery
| IMAGE_TAG | Full image:tag to tag the image with | &lt;IMAGE_REPO&gt;/&lt;IMAGE_NAME&gt; | IMAGE_TAG_NAME | Container image tag name | &lt;nfd version&gt;
| K8S_NAMESPACE | nfd-master and nfd-worker namespace | kube-system | IMAGE_REPO | Container image repository to use | &lt;IMAGE_REGISTRY&gt;/&lt;IMAGE_NAME&gt;
| KUBECONFIG | Kubeconfig for running e2e-tests | *empty* | IMAGE_TAG | Full image:tag to tag the image with | &lt;IMAGE_REPO&gt;/&lt;IMAGE_NAME&gt;
| 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:
``` ```