summaryrefslogtreecommitdiffstats
path: root/external/meta-virtualization/recipes-containers/kubernetes
diff options
context:
space:
mode:
authorToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp>2020-03-30 09:24:26 +0900
committerToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp>2020-03-30 09:24:26 +0900
commit5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch)
treeb4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /external/meta-virtualization/recipes-containers/kubernetes
parent706ad73eb02caf8532deaf5d38995bd258725cb8 (diff)
agl-basesystem
Diffstat (limited to 'external/meta-virtualization/recipes-containers/kubernetes')
-rw-r--r--external/meta-virtualization/recipes-containers/kubernetes/kubernetes/0001-cross-don-t-build-tests-by-default.patch33
-rw-r--r--external/meta-virtualization/recipes-containers/kubernetes/kubernetes/0001-hack-lib-golang.sh-use-CC-from-environment.patch40
-rw-r--r--external/meta-virtualization/recipes-containers/kubernetes/kubernetes_git.bb111
3 files changed, 184 insertions, 0 deletions
diff --git a/external/meta-virtualization/recipes-containers/kubernetes/kubernetes/0001-cross-don-t-build-tests-by-default.patch b/external/meta-virtualization/recipes-containers/kubernetes/kubernetes/0001-cross-don-t-build-tests-by-default.patch
new file mode 100644
index 00000000..659e3013
--- /dev/null
+++ b/external/meta-virtualization/recipes-containers/kubernetes/kubernetes/0001-cross-don-t-build-tests-by-default.patch
@@ -0,0 +1,33 @@
+From fa912b53186a047d787c8c456156b9dbdcdf040d Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@windriver.com>
+Date: Thu, 1 Nov 2018 10:21:10 -0400
+Subject: [PATCH] cross: don't build tests by default
+
+The hack/* build infrastructure doesn't respect the WHAT= commands
+that the make infrastructure provides to limit what is built.
+
+In our case, we are cross building and can't build the server test
+components without error. As such, we patch the targets out of the
+script to allow a successful build.
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
+---
+ hack/make-rules/cross.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/import/hack/make-rules/cross.sh b/hack/make-rules/cross.sh
+index 8e1e938..0898c5c 100755
+--- a/src/import/hack/make-rules/cross.sh
++++ b/src/import/hack/make-rules/cross.sh
+@@ -33,6 +33,6 @@ make all WHAT="${KUBE_NODE_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_NODE_PLATFO
+
+ make all WHAT="${KUBE_CLIENT_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_CLIENT_PLATFORMS[*]}"
+
+-make all WHAT="${KUBE_TEST_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_TEST_PLATFORMS[*]}"
++#make all WHAT="${KUBE_TEST_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_TEST_PLATFORMS[*]}"
+
+-make all WHAT="${KUBE_TEST_SERVER_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_TEST_SERVER_PLATFORMS[*]}"
++#make all WHAT="${KUBE_TEST_SERVER_TARGETS[*]}" KUBE_BUILD_PLATFORMS="${KUBE_TEST_SERVER_PLATFORMS[*]}"
+--
+2.7.4
+
diff --git a/external/meta-virtualization/recipes-containers/kubernetes/kubernetes/0001-hack-lib-golang.sh-use-CC-from-environment.patch b/external/meta-virtualization/recipes-containers/kubernetes/kubernetes/0001-hack-lib-golang.sh-use-CC-from-environment.patch
new file mode 100644
index 00000000..62d05210
--- /dev/null
+++ b/external/meta-virtualization/recipes-containers/kubernetes/kubernetes/0001-hack-lib-golang.sh-use-CC-from-environment.patch
@@ -0,0 +1,40 @@
+From 9cbb2d523d481053d405ebac830c2074b00d3417 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen.kooi@linaro.org>
+Date: Mon, 23 Jul 2018 15:28:02 +0200
+Subject: [PATCH] hack/lib/golang.sh: use CC from environment
+
+Toolchain tupples differs, especially when using vendor provides ones.
+
+Upstream-status: Inappropriate [embedded specific]
+Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
+---
+ hack/lib/golang.sh | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh
+index c5d4634..563e2b4b 100755
+--- a/src/import/hack/lib/golang.sh
++++ b/src/import/hack/lib/golang.sh
+@@ -278,19 +278,15 @@ kube::golang::set_platform_envs() {
+ case "${platform}" in
+ "linux/arm")
+ export CGO_ENABLED=1
+- export CC=arm-linux-gnueabihf-gcc
+ ;;
+ "linux/arm64")
+ export CGO_ENABLED=1
+- export CC=aarch64-linux-gnu-gcc
+ ;;
+ "linux/ppc64le")
+ export CGO_ENABLED=1
+- export CC=powerpc64le-linux-gnu-gcc
+ ;;
+ "linux/s390x")
+ export CGO_ENABLED=1
+- export CC=s390x-linux-gnu-gcc
+ ;;
+ esac
+ fi
+--
+2.9.5
+
diff --git a/external/meta-virtualization/recipes-containers/kubernetes/kubernetes_git.bb b/external/meta-virtualization/recipes-containers/kubernetes/kubernetes_git.bb
new file mode 100644
index 00000000..c3810b0d
--- /dev/null
+++ b/external/meta-virtualization/recipes-containers/kubernetes/kubernetes_git.bb
@@ -0,0 +1,111 @@
+HOMEPAGE = "git://github.com/kubernetes/kubernetes"
+SUMMARY = "Production-Grade Container Scheduling and Management"
+DESCRIPTION = "Kubernetes is an open source system for managing containerized \
+applications across multiple hosts, providing basic mechanisms for deployment, \
+maintenance, and scaling of applications. \
+"
+
+# Note: 1.11+ requires go 1.10.2+, so the following must be set
+# in your configuration: GOVERSION = "1.10%"
+PV = "1.12.0+git${SRCREV_kubernetes}"
+SRCREV_kubernetes = "d93ba8b6d1e2afcb30da3e354928ed00e6682223"
+
+SRC_URI = "git://github.com/kubernetes/kubernetes.git;branch=release-1.12;name=kubernetes \
+ file://0001-hack-lib-golang.sh-use-CC-from-environment.patch \
+ file://0001-cross-don-t-build-tests-by-default.patch \
+ "
+
+DEPENDS += "rsync-native \
+ coreutils-native \
+ "
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+GO_IMPORT = "import"
+
+inherit systemd
+inherit go
+inherit goarch
+
+do_compile() {
+ export GOARCH="${TARGET_GOARCH}"
+ export GOOS="${TARGET_GOOS}"
+ export GOROOT="${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
+ export GOPATH="${S}/src/import:${S}/src/import/vendor"
+
+ # Pass the needed cflags/ldflags so that cgo
+ # can find the needed headers files and libraries
+ export CGO_ENABLED="1"
+ export CFLAGS=""
+ export LDFLAGS=""
+ export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+
+ # link fixups for compilation
+ rm -f ${S}/src/import/vendor/src
+ ln -sf ./ ${S}/src/import/vendor/src
+
+ export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go"
+ export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go"
+
+ # Pass the needed cflags/ldflags so that cgo
+ # can find the needed headers files and libraries
+ export CGO_ENABLED="1"
+ export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+ export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+
+ cd ${S}/src/import
+ # Build the host tools first, using the host compiler
+ export GOARCH="${BUILD_GOARCH}"
+ make generated_files KUBE_BUILD_PLATFORMS="${HOST_GOOS}/${BUILD_GOARCH}"
+
+ # Reset GOARCH to the target one
+ export GOARCH="${TARGET_GOARCH}"
+ # to limit what is built, use 'WHAT', i.e. make WHAT=cmd/kubelet
+ make cross KUBE_BUILD_PLATFORMS=${GOOS}/${GOARCH}
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -d ${D}${systemd_unitdir}/system/
+ install -d ${D}${systemd_unitdir}/system/kubelet.service.d/
+
+ install -d ${D}${sysconfdir}/kubernetes/manifests/
+
+ install -m 755 -D ${S}/src/import/_output/local/bin/${TARGET_GOOS}/${TARGET_GOARCH}/* ${D}/${bindir}
+
+ install -m 0644 ${S}/src/import/build/debs/kubelet.service ${D}${systemd_unitdir}/system/
+ install -m 0644 ${S}/src/import/build/debs/10-kubeadm.conf ${D}${systemd_unitdir}/system/kubelet.service.d/
+}
+
+PACKAGES =+ "kubeadm kubectl kubelet kube-proxy ${PN}-misc"
+
+ALLOW_EMPTY_${PN} = "1"
+INSANE_SKIP_${PN} += "ldflags already-stripped"
+INSANE_SKIP_${PN}-misc += "ldflags already-stripped"
+
+# Note: we are explicitly *not* adding docker to the rdepends, since we allow
+# backends like cri-o to be used.
+RDEPENDS_${PN} += "kubeadm \
+ kubectl \
+ kubelet \
+ cni"
+
+RDEPENDS_kubeadm = "kubelet kubectl"
+FILES_kubeadm = "${bindir}/kubeadm ${systemd_unitdir}/system/kubelet.service.d/*"
+
+RDEPENDS_kubelet = "iptables socat util-linux ethtool iproute2 ebtables iproute2-tc"
+FILES_kubelet = "${bindir}/kubelet ${systemd_unitdir}/system/kubelet.service ${sysconfdir}/kubernetes/manifests/"
+
+SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','kubelet','',d)}"
+SYSTEMD_SERVICE_kubelet = "${@bb.utils.contains('DISTRO_FEATURES','systemd','kubelet.service','',d)}"
+SYSTEMD_AUTO_ENABLE_kubelet = "enable"
+
+FILES_kubectl = "${bindir}/kubectl"
+FILES_kube-proxy = "${bindir}/kube-proxy"
+FILES_${PN}-misc = "${bindir}"
+
+INHIBIT_PACKAGE_STRIP = "1"
+
+deltask compile_ptest_base