Hello community, here is the log from the commit of package rook for openSUSE:Factory checked in at 2019-08-16 15:29:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rook (Old) and /work/SRC/openSUSE:Factory/.rook.new.22127 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rook" Fri Aug 16 15:29:52 2019 rev:4 rq:723072 version:1.0.0+git1862.ge9abbf48 Changes: -------- --- /work/SRC/openSUSE:Factory/rook/rook.changes 2019-07-26 12:38:03.569995349 +0200 +++ /work/SRC/openSUSE:Factory/.rook.new.22127/rook.changes 2019-08-16 15:29:56.785973230 +0200 @@ -1,0 +2,35 @@ +Mon Aug 12 11:05:32 UTC 2019 - Denis Kondratenko <[email protected]> + +- Update Rook to commit e9abbf4831673a9a5545971532ae326e95f3ea60 + + enable the ceph-csi driver by default + + remove csi default settings from yaml + + add option to disable flex driver + + allow the discovery daemon to be optional + + automatically create the csi secret with the cluster + + Allow to launch pods when memory request is set (but no memory limit) + + ceph: chown with init container + + ceph: when mons use pvc mount volume at subpath +- csi was merged to operator.yaml, sed to correct file + +------------------------------------------------------------------- +Fri Aug 2 15:43:42 UTC 2019 - Blaine Gardner <[email protected]> + +- Fix build broken with creation of new rook-integration helper files +- Put helper files into /usr/share/rook-integration dir +- Change name of 'integration' binary to 'rook-integration' + +------------------------------------------------------------------- +Thu Aug 1 22:32:25 UTC 2019 - Blaine Gardner <[email protected]> + +- Generate files which contain the names of all images used in the manifests produced by this build + which are installed with the rook-integration package to assist the integration tooling. + +------------------------------------------------------------------- +Thu Aug 1 22:05:36 UTC 2019 - Blaine Gardner <[email protected]> + +- Update spec file to build rook-integration binary + - Building test binaries is different from building main binaries, so manual steps needed +- Apply linker flags to rookflex binary also (just in case) +- Slightly rework rook-k8s-yaml summary description + +------------------------------------------------------------------- Old: ---- rook-1.0.0+git1783.g7a48482f-vendor.tar.xz rook-1.0.0+git1783.g7a48482f.tar.xz New: ---- rook-1.0.0+git1862.ge9abbf48-vendor.tar.xz rook-1.0.0+git1862.ge9abbf48.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rook.spec ++++++ --- /var/tmp/diff_new_pack.514uOv/_old 2019-08-16 15:29:57.577973000 +0200 +++ /var/tmp/diff_new_pack.514uOv/_new 2019-08-16 15:29:57.577973000 +0200 @@ -17,7 +17,7 @@ Name: rook -Version: 1.0.0+git1783.g7a48482f +Version: 1.0.0+git1862.ge9abbf48 Release: 0 Summary: Orchestrator for distributed storage systems in cloud-native environments License: Apache-2.0 @@ -72,10 +72,10 @@ operations. ################################################################################ -# Rook and Ceph manifests +# Rook and Ceph manifests metadata ################################################################################ %package k8s-yaml -Summary: Kubernetes yaml file to deploy Ceph cluster +Summary: Kubernetes YAML file manifests for deploying a Ceph cluster Group: System/Management BuildArch: noarch @@ -84,6 +84,30 @@ Rook-Ceph operator and Ceph clusters in a Kubernetes cluster. ################################################################################ +# Rook integration test binary metadata +################################################################################ +%package integration +Summary: Application which runs Rook integration tests +Group: System/Benchmark + +%description integration +This package is intended to be used only for testing. Please don't install in +production. + +Rook's integration tests conveniently get built into a standalone binary. The +tests require a running Kubernetes cluster, and the image being tested must be +pushed to all Kubernetes cluster nodes as 'rook/ceph:master'. They also require +that 'kubectl' works without additional connection arguments from the system +which will run the binary. The integration tests can be flaky and are best run +on a Kubernetes cluster which has not previously run the integration tests. + +The list of possible integration test suites can be gotten from the integration +binary with the argument [-test.list '.*']. A subset of test suites can be run +by specifying a regular expression (or a specific test suite name) as an +argument to [-test.run]. All Ceph test suites can be run with the argument +[-test.run 'TestCeph']. + +################################################################################ # The tasty, meaty build section ################################################################################ %{go_nostrip} @@ -98,18 +122,39 @@ #we need to remove unsupported by Rook symbols from version version_parsed=%{version} +linker_flags=("-X" "github.com/rook/rook/pkg/version.Version=${version_parsed//[+]/-}") +build_flags=("-ldflags" "${linker_flags[*]}") + %goprep github.com/rook/rook -%gobuild -ldflags "-X github.com/rook/rook/pkg/version.Version=${version_parsed//[+]/-}" cmd/rook -%gobuild cmd/rookflex +%gobuild "${build_flags[@]}" cmd/rook +%gobuild "${build_flags[@]}" cmd/rookflex + +# BUILDING TEST BINARIES, NOTES: +# Building test binaries works differently than main binaries; test binaries are built by 'go test', +# not 'go build' or 'go install'. +# Spec build tooling provides 'gotest', but it expects to run the tests, which we cannot do with +# the integration tests at build time, so we run this manually. This may be fragile. +# To compile but not run test binaries, we don't need the build flags needed by main binaries, but +# we do need: -c (compile test binary) and -o=<output-location> (output file) +# 'goprep' does not set GOTPATH or GOBIN despite what the documentation might say; that is set in +# 'gobuild', so we need to set it for our manual run of 'go test'. +# Because this is a test binary which we SHOULD NOT ship to customers, we shouldn't need to follow +# every single go build best practice, and we don't need to worry about this becoming too out of +# date. We can specify some important flags for debugging bad builds: +# -v (orint package names), -x (print commands)] +# and flags to get rid of RPMLINT report warnings/errors: +# -buildmode=pie (position-independent executable) +GOPATH=%{_builddir}/go GOBIN="${GOPATH}"/bin \ + go test -v -x -buildmode=pie -c \ + -o %{_builddir}/go/bin/rook-integration github.com/rook/rook/tests/integration %install -# Rook's make builds put the output bin into rook/_output/bin/linux_<platform>/ rook_bin_location=%{_builddir}/go/bin/ install_location=%{buildroot}%{_bindir} install --mode=755 --directory "${install_location}" -for binary in rook rookflex; do +for binary in rook rookflex rook-integration; do install --preserve-timestamps --mode=755 \ --target-directory="${install_location}" \ "${rook_bin_location}"/"${binary}" @@ -127,7 +172,7 @@ ################################################################################ # Update manifests with images coming from Build Service ################################################################################ -rook_container_version='1.0.0.1783' # this is udpated by update-tarball.sh +rook_container_version='1.0.0.1862' # this is udpated by update-tarball.sh # determine image names to use in manifests depending on the base os type # %CEPH_VERSION% is replaced at build time by the _service @@ -143,11 +188,20 @@ # set rook, ceph and ceph-csi container versions sed -i -e "s|image: .*|image: ${rook_image}|g" %{buildroot}%{_datadir}/k8s-yaml/rook/ceph/operator* -sed -i -e "s|\".*/cephcsi/cephcsi:.*|\"${ceph_csi_image}\"|g" %{buildroot}%{_datadir}/k8s-yaml/rook/ceph/operator-with-csi.yaml +sed -i -e "s|\".*/cephcsi/cephcsi:.*|\"${ceph_csi_image}\"|g" %{buildroot}%{_datadir}/k8s-yaml/rook/ceph/operator* sed -i -e "s|image: .*|image: ${ceph_image}|g" %{buildroot}%{_datadir}/k8s-yaml/rook/ceph/cluster* sed -i -e "s|image: .*|image: ${rook_image}|g" %{buildroot}%{_datadir}/k8s-yaml/rook/ceph/toolbox* sed -i -e "s|/usr/local/bin/toolbox.sh|%{_bindir}/toolbox.sh|g" %{buildroot}%{_datadir}/k8s-yaml/rook/ceph/toolbox* +# For the integration test tooling, store files with the current Rook and Ceph image names +# These files can be cat'ed to get these without needing to do special processing +%define rook_integration_dir %{buildroot}%{_datadir}/rook-integration +mkdir -p %{rook_integration_dir} +echo -n ${rook_image} > %{rook_integration_dir}/rook-image-name +echo -n ${ceph_image} > %{rook_integration_dir}/ceph-image-name +echo -n ${ceph_csi_image} > %{rook_integration_dir}/ceph-csi-image-name +ls %{rook_integration_dir} + ################################################################################ # Specify which files we built belong to each package ################################################################################ @@ -168,6 +222,14 @@ %dir %{_datarootdir}/k8s-yaml/rook/ceph %{_datadir}/k8s-yaml/rook/ceph/ +# rook-integration-version-build.arch.rpm +%files integration +# integration test binary +%{_bindir}/rook-integration +# integration test helper files +%dir %{_datarootdir}/rook-integration +%{_datadir}/rook-integration + ################################################################################ # Finalize ################################################################################ ++++++ rook-1.0.0+git1783.g7a48482f-vendor.tar.xz -> rook-1.0.0+git1862.ge9abbf48-vendor.tar.xz ++++++ ++++++ rook-1.0.0+git1783.g7a48482f-vendor.tar.xz -> rook-1.0.0+git1862.ge9abbf48.tar.xz ++++++ /work/SRC/openSUSE:Factory/rook/rook-1.0.0+git1783.g7a48482f-vendor.tar.xz /work/SRC/openSUSE:Factory/.rook.new.22127/rook-1.0.0+git1862.ge9abbf48.tar.xz differ: char 25, line 1
