Add support for ARM (Raspberry PI) for nfs-client
- Reorganized to use Makefile for building
- Added arm container for use in ARM based kubernetes clusters
Signed-off-by: Niklas Wik <niklas.wik@iki.fi>
(cherry picked from commit 166056da73)
This commit is contained in:
45
Makefile
Normal file
45
Makefile
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
# Copyright 2016 The Kubernetes Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
ifeq ($(REGISTRY),)
|
||||||
|
REGISTRY = quay.io/external_storage/
|
||||||
|
endif
|
||||||
|
ifeq ($(VERSION),)
|
||||||
|
VERSION = latest
|
||||||
|
endif
|
||||||
|
IMAGE = $(REGISTRY)nfs-client-provisioner:$(VERSION)
|
||||||
|
IMAGE_ARM = $(REGISTRY)nfs-client-provisioner-arm:$(VERSION)
|
||||||
|
MUTABLE_IMAGE = $(REGISTRY)nfs-client-provisioner:latest
|
||||||
|
|
||||||
|
all: build image build_arm image_arm
|
||||||
|
|
||||||
|
container: build image build_arm image_arm
|
||||||
|
|
||||||
|
build:
|
||||||
|
CGO_ENABLED=0 go build -o docker/x86_64/nfs-client-provisioner ./cmd/nfs-client-provisioner
|
||||||
|
|
||||||
|
build_arm:
|
||||||
|
CGO_ENABLED=0 GOARCH=arm GOARM=7 go build -o docker/arm/nfs-client-provisioner ./cmd/nfs-client-provisioner
|
||||||
|
|
||||||
|
image:
|
||||||
|
sudo docker build -t $(IMAGE) docker/x86_64
|
||||||
|
|
||||||
|
image_arm:
|
||||||
|
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||||
|
sudo docker build -t $(IMAGE_ARM) docker/arm
|
||||||
|
|
||||||
|
push:
|
||||||
|
docker push $(IMAGE)
|
||||||
|
docker push $(MUTABLE_IMAGE)
|
||||||
|
docker push $(IMAGE_ARM)
|
||||||
32
deploy/deployment-arm.yaml
Normal file
32
deploy/deployment-arm.yaml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
kind: Deployment
|
||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
metadata:
|
||||||
|
name: nfs-client-provisioner
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nfs-client-provisioner
|
||||||
|
spec:
|
||||||
|
serviceAccount: nfs-client-provisioner
|
||||||
|
containers:
|
||||||
|
- name: nfs-client-provisioner
|
||||||
|
image: quay.io/external_storage/nfs-client-provisioner-arm:latest
|
||||||
|
volumeMounts:
|
||||||
|
- name: nfs-client-root
|
||||||
|
mountPath: /persistentvolumes
|
||||||
|
env:
|
||||||
|
- name: PROVISIONER_NAME
|
||||||
|
value: fuseim.pri/ifs
|
||||||
|
- name: NFS_SERVER
|
||||||
|
value: 192.168.1.20
|
||||||
|
- name: NFS_PATH
|
||||||
|
value: /mnt/kube_nfs
|
||||||
|
volumes:
|
||||||
|
- name: nfs-client-root
|
||||||
|
nfs:
|
||||||
|
server: 192.168.1.20
|
||||||
|
path: /mnt/kube_nfs
|
||||||
6
build.sh → docker/arm/Dockerfile
Executable file → Normal file
6
build.sh → docker/arm/Dockerfile
Executable file → Normal file
@@ -1,4 +1,3 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Copyright 2017 The Kubernetes Authors.
|
# Copyright 2017 The Kubernetes Authors.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@@ -13,4 +12,7 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
CGO_ENABLED=0 go build ./cmd/nfs-client-provisioner #&& docker build -t quay.io/jackieli/nfs-client-provisioner .
|
FROM hypriot/rpi-alpine:3.6
|
||||||
|
RUN apk update --no-cache && apk add ca-certificates
|
||||||
|
COPY nfs-client-provisioner /nfs-client-provisioner
|
||||||
|
ENTRYPOINT ["/nfs-client-provisioner"]
|
||||||
Reference in New Issue
Block a user