Commit Graph

21 Commits

Author SHA1 Message Date
Joakim Roubert
a348c03a1d kubernetes: Set correct PV release number
Commit c97fe5036ef3df2967d086711e6c0c405941e14b is Kubernetes v1.16.2
(see https://github.com/kubernetes/kubernetes/releases for verification)
and building with the current recipe generates v1.16.2 binaies although
the package names state v1.16.1.

Change-Id: I5701c18cc3ce205ad906eda2595d9ad7f5748b17
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-10-24 13:29:27 -04:00
Bruce Ashfield
241405f616 k8s: bump to 1.16-relase branch
Updating kubernetes to use the 1.16 relese (instead of the 1.16) alpha.
No issues were found in build and runtime testing of this versus the
alpha release.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-10-15 11:40:50 -04:00
Hongxu Jia
b626ea1d49 kubernetes: fix compiling failure: execvp: /bin/bash: Argument list too long
Use GNU Make 4.2.1(such as fedora-29) to build k8s in a long directory,
it failed with `execvp: /bin/bash: Argument list too long'
[snip]
$ cd /buildarea1/hjia/wrlinux-1019/I_/suspect_/that_/if_/you_/create_/your_/project_/in_/a_/very_/deep_/directory/build_master-wr_qemux86-64_faw_2019090509/build/tmp-glibc/work/core2-64-wrs-linux/kubernetes/v1.16.0-alpha+git7054e3ead7e1a00ca6ac3ec47ea355b76061a35a-r0/kubernetes-v1.16.0-alpha+git7054e3ead7e1a00ca6ac3ec47ea355b76061a35a/src/import
$ make cross KUBE_BUILD_PLATFORMS=linux/amd64 GOLDFLAGS=""
|+++ [0804 16:38:32] Building go targets for linux/amd64:
|    ./vendor/k8s.io/code-generator/cmd/deepcopy-gen
|make[1]: execvp: /bin/bash: Argument list too long
|make[1]: *** [Makefile.generated_files:184: pkg/kubectl/cmd/testing/zz_generated.deepcopy.go] Error 127
|make: *** [Makefile:557: generated_files] Error 2
...
[snip]

From make manual [1]
$?
  The names of all the prerequisites that are newer than the target, with spaces between them.

While two `$?' was passed to bash in a line, it caused above failure,
drop a duplicated one could workaround the issue.

[1] https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-09-18 13:53:29 -04:00
Hongxu Jia
f8568abe01 kubernetes: building unstripped binaries
Specify GOLDFLAGS as an empty string for building unstripped binaries, which allows
you to use code debugging tools like delve. When GOLDFLAGS is unspecified, it defaults
to "-s -w" which strips debug information. Other flags that can be used for GOLDFLAGS
are documented at https://golang.org/cmd/link/ [1]

[1] https://github.com/kubernetes/kubernetes/blob/master/build/root/Makefile#L82

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-09-03 16:01:06 -04:00
Chen Qi
7de3818804 kubernetes: clean up environment settings in do_compile
There are unnessary and incorrect settings like GOOS and GOROOT.
There are also redundant settings like GOPATH, CGO_CFLAGS, etc,
whose latter setting will cover the previous one.

So clean all these up.

Also, remove the comment which suggests settings GOVERSION to "1.10%",
as it's no longer valid for current OE.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-08-12 11:03:01 -04:00
Chen Qi
4f870fa755 kubernetes: set COMPATIBLE_HOST
Currently kubernetes does not build for qemux86, qemumips, qemumips64,
qemuppc. So set COMPATIBLE_HOST to make this clear. Otherwise we get
build failure when trying to build like below.

  fatal error: bits/long-double-64.h: No such file or directory

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-07-31 22:15:22 -04:00
Bruce Ashfield
95b848f219 containers/go/build: don't override global package strip flags
When the go-lang container recipes were first created there were issues
with strip and the resulting binaries. As such, strip was inhibited for
the various packages.

This variable is now set in the default classes, and tests show that
strip works on the binaries (saving up to 2M on disk for some binaries)
with no runtime issues found.

So we drop our explicit set of the inhibit and let the build proceed
by the defaults.

If issues are found, we can re-enable the setting or bbappends can
turn it back on for builds showing issues.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-07-22 14:48:07 +00:00
Bruce Ashfield
a0cb3c7aae k8s: update to 1.16+
Upgrading kubernetes to the 1.16 series. This is currently in alpha,
but will be released before the feature freeze.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-07-12 14:50:34 +00:00
Bruce Ashfield
552103f580 k8s: update to v1.14-alpha
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-02-11 02:34:05 +00:00
Bruce Ashfield
60142aa29a kubernetes: uprev to v1.12 release and fix cross compilation errors
The update to go 1.11 exposed some issues with the cross compilation of
kubernetes. The best way to fix those issues is to uprev to 1.12 and to
inhibit the building of the test modules (which query the host for
infrastructure that is not present).

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-11-02 21:21:27 -04:00
Bruce Ashfield
b86deeae16 kubernetes: add hash/stripped exception for kubernetes-misc
Without this, our go build will throw the following QA error during the
build:

  ERROR: kubernetes-1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0 do_package_qa: QA Issue: No GNU_HASH in the elf binary: 'tmp/work/core2-64-overc-linux/kubern
etes/1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0/packages-split/kubernetes-misc/usr/bin/apiextensions-apiserver'
  No GNU_HASH in the elf binary: 'tmp/work/core2-64-overc-linux/kubernetes/1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0/packages-split/kubernetes-misc/usr/bin
/deepcopy-gen'
  No GNU_HASH in the elf binary: 'tmp/work/core2-64-overc-linux/kubernetes/1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0/packages-split/kubernetes-misc/usr/bin
/defaulter-gen'
  No GNU_HASH in the elf binary: 'tmp/work/core2-64-overc-linux/kubernetes/1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0/packages-split/kubernetes-misc/usr/bin
/genswaggertypedocs'
  No GNU_HASH in the elf binary: 'tmp/work/core2-64-overc-linux/kubernetes/1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0/packages-split/kubernetes-misc/usr/bin
/linkcheck'
  No GNU_HASH in the elf binary: 'tmp/work/core2-64-overc-linux/kubernetes/1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0/packages-split/kubernetes-misc/usr/bin/openapi-gen'
  No GNU_HASH in the elf binary: 'tmp/work/core2-64-overc-linux/kubernetes/1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0/packages-split/kubernetes-misc/usr/bin/genyaml'
  No GNU_HASH in the elf binary: 'tmp/work/core2-64-overc-linux/kubernetes/1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0/packages-split/kubernetes-misc/usr/bin/conversion-gen'
  No GNU_HASH in the elf binary: 'tmp/work/core2-64-overc-linux/kubernetes/1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0/packages-split/kubernetes-misc/usr/bin/gendocs'
  No GNU_HASH in the elf binary: 'tmp/work/core2-64-overc-linux/kubernetes/1.11.0+git210c9cd7e1782e9fe46938fe0368556f2166a528-r0/packages-split/kubernetes-misc/usr/bin/ginkgo' [ldflags]

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-23 15:47:15 -04:00
Koen Kooi
23bf4b01f2 kubernetes: OE styleguide fixes
* Keep variables close to the function they are used in, so R(untime)DEPENDS goes below do_install, PV next to SRCREV, etc.
* Don't use =+ as multiline seperator, it's a *very* heavy bitbake operation.

Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-23 15:29:37 -04:00
Koen Kooi
7cae5520fd kubernetes: package remaining files into PN-misc
A previous commit changed do_installed to install everything, not just
kube*, adjust PACKAGES to keep ${PN} empty as it was before.

Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-23 15:29:37 -04:00
Jagadeesh Krishnanjanappa
ba25e5c943 kubernetes: build host tools using host toolchain
Compile host tools such as deepcopy-gen, defaulter-gen, openapi-gen
   for host architecture, to solve below error:
-- snip --
| +++ [0117 05:31:35] Building go targets for linux/arm64:
|     ./vendor/k8s.io/code-generator/cmd/deepcopy-gen
| touch: cannot touch '_output/bin/deepcopy-gen': No such file or directory
| make[1]: *** [Makefile.generated_files:323: _output/bin/deepcopy-gen] Error 1
| make: *** [Makefile:478: generated_files] Error 2

Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-23 15:29:37 -04:00
Koen Kooi
0e4cd43ccb kubernetes: explicitly build for $TARGET_ARCH
'make all' uses 'uname' to select the build target, leading to compile failures like this:

| arm-angstrom-linux-gnueabi-gcc: error: unrecognized command line option '-m64'

After providing the proper arch to the makefile it will try to use a hardcoded compiler:

| # runtime/cgo
| exec: "arm-linux-gnueabihf-gcc": executable file not found in $PATH

Fix that up by removing all hardcoded 'CC' entries in golang.sh

Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-23 15:29:37 -04:00
Bruce Ashfield
0722d15fea k8s: update to 1.11+
Updating to the 1.11 kubernetes release. This includes the standard
set of features, updates and bug fixes.

One build element of note is 1.11+ requires go 1.10.2+, so the following
must be set in your configuration: GOVERSION = "1.10%"

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-07-04 09:37:59 -04:00
Bruce Ashfield
73f4778d7e k8s: uprev to v1.10 release
We pickup the new release features .. plus the ability to actually
build with go1.10

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-03-26 23:39:19 -04:00
Bruce Ashfield
036e5f00d8 kubernetes: package kube-proxy separately
kube-proxy is required on all kubernetes nodes. Rather than it being
in the catch-all package, we put it in an explicit package.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-01-16 15:17:13 -05:00
Bruce Ashfield
2924a25fba kubernetes: add iproute2 tc to kubelet RDEPENDS
kubelet needs 'tc' at runtime, so we add iproute2-tc to the rdepends
list.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-11-28 00:26:44 -05:00
Dariusz Pelowski
8d3beeb4f4 kubernetes: correct install path
install needs to go to ${D}, not the host path, so we fix up the
offending install lines.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-17 13:18:17 -04:00
Bruce Ashfield
9d4da563b0 containers: introduce kubernetes orchestration
Introducing the kubernets components for container orchestration.

The packaging introduced here creates the framework for more
advanced kubernetes configurations. By itself, it doesn't do much
but it makes the components available to be configured and deployed
as master/worker nodes.

It integrates with the previously introduced cni and cri-o
components available in meta-virt.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-05 11:11:01 -04:00