diff options
author | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
---|---|---|
committer | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
commit | 5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch) | |
tree | b4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /external/meta-virtualization/recipes-containers/kubernetes | |
parent | 706ad73eb02caf8532deaf5d38995bd258725cb8 (diff) |
agl-basesystem
Diffstat (limited to 'external/meta-virtualization/recipes-containers/kubernetes')
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 |