Skip to content

[krel] Initial commit krel ci-build command #1698

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 8 commits into from
Nov 9, 2020

Conversation

justaugustus
Copy link
Member

@justaugustus justaugustus commented Nov 8, 2020

What type of PR is this?

/kind feature

What this PR does / why we need it:

Initial commit of krel ci-build

krel ci-build is a replacement for the 'kubernetes_build' bootstrap
scenario.

The command is decomposed from https://github.com/kubernetes/test-infra/blob/7473f331fb69b1f88a2b846e5b8160c09ff07943/scenarios/kubernetes_build.py.

Signed-off-by: Stephen Augustus saugustus@vmware.com

ref: #1693

Which issue(s) this PR fixes:

Special notes for your reviewer:

Does this PR introduce a user-facing change?

[krel] Initial commit krel ci-build command

krel ci-build is a replacement for the 'kubernetes_build' bootstrap
scenario.

The command is decomposed from
k/test-infra/scenarios/kubernetes_build.py
@ 7473f331fb69b1f88a2b846e5b8160c09ff07943.

Signed-off-by: Stephen Augustus <saugustus@vmware.com>
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
Signed-off-by: Stephen Augustus <saugustus@vmware.com>
@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. needs-priority cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Nov 8, 2020
@k8s-ci-robot k8s-ci-robot added sig/release Categorizes an issue or PR as relevant to SIG Release. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Nov 8, 2020
@justaugustus
Copy link
Member Author

Still working on this but here are some initial logs from 61e3b61:

$ time krel ci-build --fast --bucket k8s-release-kubernetes --docker-registry k8s-staging-kubernetes
INFO Current working directory: /home/augustus/go/src/k8s.io/kubernetes 
INFO Getting workspace status                     
STABLE_BUILD_GIT_COMMIT 2570a9d94ced1954edfe4cbf3b84200f126ab717
STABLE_BUILD_SCM_STATUS clean
STABLE_BUILD_SCM_REVISION v1.20.0-beta.1.257+2570a9d94ced19
STABLE_BUILD_MAJOR_VERSION 1
STABLE_BUILD_MINOR_VERSION 20+
STABLE_DOCKER_TAG v1.20.0-beta.1.257_2570a9d94ced19
STABLE_DOCKER_REGISTRY k8s.gcr.io
STABLE_DOCKER_PUSH_REGISTRY staging-k8s.gcr.io
gitCommit 2570a9d94ced1954edfe4cbf3b84200f126ab717
gitTreeState clean
gitVersion v1.20.0-beta.1.257+2570a9d94ced19
gitMajor 1
gitMinor 20+
buildDate 2020-11-08T09:20:24Z
INFO Found workspace version: v1.20.0-beta.1.257+2570a9d94ced19 
INFO Checking if GCS build path (gs://k8s-release-kubernetes/ci/fast/v1.20.0-beta.1.257+2570a9d94ced19) exists 
INFO Checking if GCS build path (gs://k8s-release-kubernetes/ci/fast/v1.20.0-beta.1.257+2570a9d94ced19/kubernetes.tar.gz) exists 
INFO Checking if GCS build path (gs://k8s-release-kubernetes/ci/fast/v1.20.0-beta.1.257+2570a9d94ced19/bin) exists 
INFO The following error(s) occurred while looking for a build: [command /usr/bin/gsutil ls gs://k8s-release-kubernetes/ci/fast/v1.20.0-beta.1.257+2570a9d94ced19 did not succeed: BucketNotFoundException: 404 gs://k8s-release-kubernetes bucket does not exist.
 command /usr/bin/gsutil ls gs://k8s-release-kubernetes/ci/fast/v1.20.0-beta.1.257+2570a9d94ced19/kubernetes.tar.gz did not succeed: BucketNotFoundException: 404 gs://k8s-release-kubernetes bucket does not exist.
 command /usr/bin/gsutil ls gs://k8s-release-kubernetes/ci/fast/v1.20.0-beta.1.257+2570a9d94ced19/bin did not succeed: BucketNotFoundException: 404 gs://k8s-release-kubernetes bucket does not exist.
] 
INFO Proceeding with a new build...               
+++ [1108 04:20:32] Verifying Prerequisites....
+++ [1108 04:20:46] Removing _output directory
+++ [1108 04:20:47] Verifying Prerequisites....
+++ [1108 04:20:47] Building Docker image kube-build:build-d82df4bf66-5-v1.15.2-1
+++ [1108 04:20:51] Creating data container kube-build-data-d82df4bf66-5-v1.15.2-1
+++ [1108 04:21:10] Syncing sources to container
+++ [1108 04:21:15] Running build command...
stat /go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/bazel-bin: no such file or directory
+++ [1108 04:21:17] Building go targets for linux/amd64:
    ./vendor/k8s.io/code-generator/cmd/prerelease-lifecycle-gen
+++ [1108 04:21:20] Building go targets for linux/amd64:
    ./vendor/k8s.io/code-generator/cmd/deepcopy-gen
+++ [1108 04:21:24] Building go targets for linux/amd64:
    ./vendor/k8s.io/code-generator/cmd/defaulter-gen
+++ [1108 04:21:31] Building go targets for linux/amd64:
    ./vendor/k8s.io/code-generator/cmd/conversion-gen
+++ [1108 04:21:42] Building go targets for linux/amd64:
    ./vendor/k8s.io/kube-openapi/cmd/openapi-gen
+++ [1108 04:21:50] Building go targets for linux/amd64:
    ./vendor/github.com/go-bindata/go-bindata/go-bindata
+++ [1108 04:21:51] Building go targets for linux/amd64:
    cmd/kube-proxy
    cmd/kube-apiserver
    cmd/kube-controller-manager
    cmd/kubelet
    cmd/kubeadm
    cmd/kube-scheduler
    vendor/k8s.io/kube-aggregator
    vendor/k8s.io/apiextensions-apiserver
    cluster/gce/gci/mounter
stat /go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/bazel-bin: no such file or directory
+++ [1108 04:24:03] Building go targets for linux/amd64:
    cmd/kube-proxy
    cmd/kubeadm
    cmd/kubelet
stat /go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/bazel-bin: no such file or directory
+++ [1108 04:24:26] Building go targets for linux/amd64:
    cmd/kubectl
stat /go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/bazel-bin: no such file or directory
+++ [1108 04:24:36] Building go targets for linux/amd64:
    cmd/gendocs
    cmd/genkubedocs
    cmd/genman
    cmd/genyaml
    cmd/genswaggertypedocs
    cmd/linkcheck
    vendor/github.com/onsi/ginkgo/ginkgo
    test/e2e/e2e.test
    cluster/images/conformance/go-runner
stat /go/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/bazel-bin: no such file or directory
+++ [1108 04:26:19] Building go targets for linux/amd64:
    cmd/kubemark
    vendor/github.com/onsi/ginkgo/ginkgo
    test/e2e_node/e2e_node.test
+++ [1108 04:27:06] Syncing out of container
+++ [1108 04:27:26] Starting tarball: client linux-amd64
+++ [1108 04:27:26] Building tarball: manifests
+++ [1108 04:27:26] Building tarball: src
+++ [1108 04:27:26] Waiting on tarballs
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
tar: Removing leading `/' from member names
+++ [1108 04:27:35] Building tarball: node linux-amd64
+++ [1108 04:27:35] Building images: linux-amd64
+++ [1108 04:27:36] Starting docker build for image: kube-apiserver-amd64
+++ [1108 04:27:36] Starting docker build for image: kube-controller-manager-amd64
+++ [1108 04:27:36] Starting docker build for image: kube-scheduler-amd64
+++ [1108 04:27:36] Starting docker build for image: kube-proxy-amd64
+++ [1108 04:27:36] Building conformance image for arch: amd64
WARNING: Could not store access token in cache: database is locked
WARNING: Could not store access token in cache: database is locked
WARNING: Could not store access token in cache: database is locked
+++ [1108 04:28:05] Deleting docker image k8s.gcr.io/kube-scheduler-amd64:v1.20.0-beta.1.257_2570a9d94ced19
+++ [1108 04:28:06] Deleting docker image k8s.gcr.io/kube-controller-manager-amd64:v1.20.0-beta.1.257_2570a9d94ced19
+++ [1108 04:28:06] Deleting docker image k8s.gcr.io/kube-apiserver-amd64:v1.20.0-beta.1.257_2570a9d94ced19
+++ [1108 04:28:10] Deleting docker image k8s.gcr.io/kube-proxy-amd64:v1.20.0-beta.1.257_2570a9d94ced19
+++ [1108 04:28:15] Deleting conformance image k8s.gcr.io/conformance-amd64:v1.20.0-beta.1.257_2570a9d94ced19
+++ [1108 04:28:15] Docker builds done
+++ [1108 04:28:15] Building tarball: server linux-amd64
+++ [1108 04:29:14] Building tarball: final
+++ [1108 04:29:15] Starting tarball: test linux-amd64
+++ [1108 04:29:15] Waiting on test tarballs
+++ [1108 04:29:56] Building tarball: test portable
INFO Using build version: v1.20.0-beta.1.257+2570a9d94ced19 
INFO Latest version is v1.20.0-beta.1.257+2570a9d94ced19 
INFO Checking bucket k8s-release-kubernetes for write permissions 
FATA Failed to run:: check release bucket access: fetching gcloud credentials, try running "gcloud auth application-default login": dialing: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information. 

real	9m33.184s
user	2m24.579s
sys	0m14.016s

@justaugustus justaugustus changed the title [WIP] krel ci-build [krel] Initial commit krel ci-build command Nov 8, 2020
@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. and removed do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. labels Nov 8, 2020
@justaugustus
Copy link
Member Author

There's still work to do here, but at this point it's starting to touch some of the areas @saschagrunert is working on in #1692, so I'd like to merge and iterate.

/assign @saschagrunert @hasheddan @xmudrii @cpanato
cc: @kubernetes/release-engineering

Copy link
Member

@saschagrunert saschagrunert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

Just one question, but I guess this can be done/resolved as follow-up.

}
}

logrus.Infof("The following error(s) occurred while looking for a build: %v", existErrors)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the reason that we do not return the errors (maybe stacked/concatenated) if len(existErrors) > 0?

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Nov 9, 2020
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: justaugustus, saschagrunert

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/release-eng Issues or PRs related to the Release Engineering subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority release-note Denotes a PR that will be considered when it comes time to generate release notes. sig/release Categorizes an issue or PR as relevant to SIG Release. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants