diff --git a/.bazelrc b/.bazelrc new file mode 120000 index 000000000..4de3dbc6b --- /dev/null +++ b/.bazelrc @@ -0,0 +1 @@ +build/root/.bazelrc \ No newline at end of file diff --git a/.kazelcfg.json b/.kazelcfg.json new file mode 120000 index 000000000..cdc4e17bb --- /dev/null +++ b/.kazelcfg.json @@ -0,0 +1 @@ +build/root/.kazelcfg.json \ No newline at end of file diff --git a/BUILD b/BUILD deleted file mode 100644 index 5473e9017..000000000 --- a/BUILD +++ /dev/null @@ -1,44 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load("@io_bazel//tools/build_defs/pkg:pkg.bzl", "pkg_tar") - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//federation/apis/core:all-srcs", - "//federation/apis/federation:all-srcs", - "//federation/client/cache:all-srcs", - "//federation/client/clientset_generated/federation_clientset:all-srcs", - "//federation/cluster:all-srcs", - "//federation/cmd/federation-apiserver:all-srcs", - "//federation/cmd/federation-controller-manager:all-srcs", - "//federation/cmd/genfeddocs:all-srcs", - "//federation/cmd/kubefed:all-srcs", - "//federation/develop:all-srcs", - "//federation/pkg/dnsprovider:all-srcs", - "//federation/pkg/federatedtypes:all-srcs", - "//federation/pkg/federation-controller:all-srcs", - "//federation/pkg/kubefed:all-srcs", - "//federation/plugin/pkg/admission/schedulingpolicy:all-srcs", - "//federation/registry/cluster:all-srcs", - "//federation/test/e2e:all-srcs", - "//federation/test/integration:all-srcs", - ], - tags = ["automanaged"], -) - -pkg_tar( - name = "release", - files = glob([ - "deploy/**", - ]) + ["//federation/cluster:all-srcs"], - package_dir = "federation", -) diff --git a/BUILD.bazel b/BUILD.bazel new file mode 120000 index 000000000..6889d57db --- /dev/null +++ b/BUILD.bazel @@ -0,0 +1 @@ +build/root/BUILD.root \ No newline at end of file diff --git a/build/BUILD b/build/BUILD index 0864c9cdd..f6b68b811 100644 --- a/build/BUILD +++ b/build/BUILD @@ -13,67 +13,12 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//build/debs:all-srcs", "//build/release-tars:all-srcs", - "//build/rpms:all-srcs", "//build/visible_to:all-srcs", ], tags = ["automanaged"], ) -# This list should roughly match kube::build::get_docker_wrapped_binaries() -# in build/common.sh. -DOCKERIZED_BINARIES = { - "cloud-controller-manager": { - "base": "@official_busybox//image", - "target": "//cmd/cloud-controller-manager:cloud-controller-manager", - }, - "kube-apiserver": { - "base": "@official_busybox//image", - "target": "//cmd/kube-apiserver:kube-apiserver", - }, - "kube-controller-manager": { - "base": "@official_busybox//image", - "target": "//cmd/kube-controller-manager:kube-controller-manager", - }, - "kube-scheduler": { - "base": "@official_busybox//image", - "target": "//plugin/cmd/kube-scheduler:kube-scheduler", - }, - "kube-proxy": { - "base": "@debian-iptables-amd64//image", - "target": "//cmd/kube-proxy:kube-proxy", - }, -} - -[docker_build( - name = binary + "-internal", - base = meta["base"], - cmd = ["/usr/bin/" + binary], - debs = [ - "//build/debs:%s.deb" % binary, - ], - symlinks = { - # Some cluster startup scripts expect to find the binaries in /usr/local/bin, - # but the debs install the binaries into /usr/bin. - "/usr/local/bin/" + binary: "/usr/bin/" + binary, - }, -) for binary, meta in DOCKERIZED_BINARIES.items()] - -[docker_bundle( - name = binary, - images = {"gcr.io/google_containers/%s:{STABLE_DOCKER_TAG}" % binary: binary + "-internal"}, - stamp = True, -) for binary in DOCKERIZED_BINARIES.keys()] - -[genrule( - name = binary + "_docker_tag", - srcs = [meta["target"]], - outs = [binary + ".docker_tag"], - cmd = "grep ^STABLE_DOCKER_TAG bazel-out/stable-status.txt | awk '{print $$2}' >$@", - stamp = 1, -) for binary, meta in DOCKERIZED_BINARIES.items()] - genrule( name = "os_package_version", outs = ["version"], @@ -86,33 +31,11 @@ grep ^STABLE_BUILD_SCM_REVISION bazel-out/stable-status.txt \ stamp = 1, ) -genrule( - name = "cni_package_version", - outs = ["cni_version"], - cmd = "echo 0.5.1 >$@", -) - -release_filegroup( - name = "docker-artifacts", - srcs = [":%s.tar" % binary for binary in DOCKERIZED_BINARIES.keys()] + - [":%s.docker_tag" % binary for binary in DOCKERIZED_BINARIES.keys()], -) - # KUBE_CLIENT_TARGETS release_filegroup( name = "client-targets", srcs = [ - "//cmd/kubectl", - "//federation/cmd/kubefed", - ], -) - -# KUBE_NODE_TARGETS -release_filegroup( - name = "node-targets", - srcs = [ - "//cmd/kube-proxy", - "//cmd/kubelet", + "//cmd/kubefed", ], ) @@ -122,13 +45,7 @@ release_filegroup( release_filegroup( name = "server-targets", srcs = [ - "//cmd/cloud-controller-manager", - "//cmd/hyperkube", - "//cmd/kube-apiserver", - "//cmd/kube-controller-manager", - "//cmd/kubeadm", - "//plugin/cmd/kube-scheduler", - "//vendor/k8s.io/kube-aggregator", + "//cmd/fcp", ], ) @@ -136,17 +53,14 @@ release_filegroup( filegroup( name = "test-targets", srcs = [ - "//cmd/gendocs", - "//cmd/genkubedocs", - "//cmd/genman", - "//cmd/genswaggertypedocs", - "//cmd/genyaml", - "//cmd/kubemark", # TODO: server platforms only - "//cmd/linkcheck", - "//federation/cmd/genfeddocs", + "//cmd/genfeddocs", "//test/e2e:e2e.test", - "//test/e2e_node:e2e_node.test", # TODO: server platforms only "//vendor/github.com/onsi/ginkgo/ginkgo", +# "//vendor/k8s.io/kubernetes/cmd/gendocs", +# "//vendor/k8s.io/kubernetes/cmd/genman", +# "//vendor/k8s.io/kubernetes/cmd/genswaggertypedocs", +# "//vendor/k8s.io/kubernetes/cmd/genyaml", +# "//vendor/k8s.io/kubernetes/cmd/linkcheck", ], ) @@ -154,14 +68,13 @@ filegroup( filegroup( name = "test-portable-targets", srcs = [ - "//federation/develop:all-srcs", + "//develop:all-srcs", "//hack:e2e.go", "//hack:federated-ginkgo-e2e.sh", "//hack:get-build.sh", "//hack:ginkgo-e2e.sh", "//hack/e2e-internal:all-srcs", "//hack/lib:all-srcs", - "//test/e2e/testing-manifests:all-srcs", - "//test/kubemark:all-srcs", + "//vendor/k8s.io/kubernetes/test/e2e/testing-manifests:all-srcs", ], ) diff --git a/build/openapi.bzl b/build/openapi.bzl index 4b673e28a..cb4376884 100644 --- a/build/openapi.bzl +++ b/build/openapi.bzl @@ -5,5 +5,5 @@ # openapi_go_prefix = "k8s.io/myproject/" # openapi_vendor_prefix = "vendor/k8s.io/kubernetes/" -openapi_go_prefix = "k8s.io/kubernetes/" -openapi_vendor_prefix = "" +openapi_go_prefix = "k8s.io/federation/" +openapi_vendor_prefix = "vendor/k8s.io/kubernetes/" diff --git a/build/release-tars/BUILD b/build/release-tars/BUILD index 0d09ffccc..a8ba985eb 100644 --- a/build/release-tars/BUILD +++ b/build/release-tars/BUILD @@ -25,25 +25,25 @@ config_setting( ) genrule( - name = "kubernetes-src-readme", + name = "federation-src-readme", outs = ["README-src.txt"], cmd = """ echo For build efficiency, the src was not included in this release.>$@ echo The full source code can be viewed at >>$@ -echo -n https://github.com/kubernetes/kubernetes/tree/ >>$@ +echo -n https://github.com/kubernetes/federation/tree/ >>$@ grep ^STABLE_BUILD_GIT_COMMIT bazel-out/stable-status.txt | cut -d' ' -f2 >>$@ """, stamp = 1, ) pkg_tar( - name = "kubernetes-src", + name = "federation-src", extension = "tar.gz", files = select({ ":package_src": ["//:all-srcs"], "//conditions:default": ["README-src.txt"], }), - package_dir = "kubernetes", + package_dir = "federation", strip_prefix = select({ ":package_src": "//", "//conditions:default": ".", @@ -53,12 +53,12 @@ pkg_tar( # FIXME: this should be configurable/auto-detected PLATFORM_ARCH_STRING = "linux-amd64" -# Included in node and server tarballs. +# Included in server tarballs. filegroup( name = "license-targets", srcs = [ - ":kubernetes-src.tar.gz", - "//:Godeps/LICENSES", + ":federation-src.tar.gz", + "//:LICENSE", ], visibility = ["//visibility:private"], ) @@ -72,42 +72,18 @@ pkg_tar( ) pkg_tar( - name = "kubernetes-client-%s" % PLATFORM_ARCH_STRING, + name = "federation-client-%s" % PLATFORM_ARCH_STRING, extension = "tar.gz", - package_dir = "kubernetes", + package_dir = "federation", deps = [ ":_client-bin", ], ) -pkg_tar( - name = "_node-bin", - files = [ - "//build:client-targets", - "//build:node-targets", - ], - mode = "0755", - package_dir = "node/bin", - visibility = ["//visibility:private"], -) - -pkg_tar( - name = "kubernetes-node-%s" % PLATFORM_ARCH_STRING, - extension = "tar.gz", - files = [":license-targets"], - mode = "0644", - package_dir = "kubernetes", - deps = [ - ":_node-bin", - ], -) - pkg_tar( name = "_server-bin", files = [ "//build:client-targets", - "//build:docker-artifacts", - "//build:node-targets", "//build:server-targets", ], mode = "0755", @@ -122,24 +98,13 @@ genrule( visibility = ["//visibility:private"], ) -# Some of the startup scripts fail if there isn't an addons/ directory in the server tarball. pkg_tar( - name = "_server-addons", - files = [ - ":.dummy", - ], - package_dir = "addons", - visibility = ["//visibility:private"], -) - -pkg_tar( - name = "kubernetes-server-%s" % PLATFORM_ARCH_STRING, + name = "federation-server-%s" % PLATFORM_ARCH_STRING, extension = "tar.gz", files = [":license-targets"], mode = "0644", - package_dir = "kubernetes", + package_dir = "federation", deps = [ - ":_server-addons", ":_server-bin", ], ) @@ -154,10 +119,10 @@ pkg_tar( ) pkg_tar( - name = "kubernetes-test", + name = "federation-test", extension = "tar.gz", files = ["//build:test-portable-targets"], - package_dir = "kubernetes", + package_dir = "federation", strip_prefix = "//", deps = [ # TODO: how to make this multiplatform? @@ -166,63 +131,30 @@ pkg_tar( ) pkg_tar( - name = "_full_server", - files = [ - ":kubernetes-manifests.tar.gz", - ":kubernetes-salt.tar.gz", - ], - package_dir = "server", - visibility = ["//visibility:private"], -) - -pkg_tar( - name = "kubernetes", + name = "federation", extension = "tar.gz", files = [ - "//:Godeps/LICENSES", + "//:LICENSE", "//:README.md", - "//:Vagrantfile", - "//:version", "//cluster:all-srcs", + "//develop:all-srcs", "//docs:all-srcs", - "//examples:all-srcs", "//hack/lib:all-srcs", - "//third_party/htpasswd:all-srcs", ], - package_dir = "kubernetes", + package_dir = "federation", strip_prefix = "//", deps = [ - ":_full_server", - "//federation:release", - ], -) - -pkg_tar( - name = "kubernetes-manifests", - extension = "tar.gz", - deps = [ - "//cluster:manifests", - ], -) - -pkg_tar( - name = "kubernetes-salt", - extension = "tar.gz", - deps = [ - "//cluster/saltbase:salt", + ":_server-bin", ], ) release_filegroup( name = "release-tars", srcs = [ - ":kubernetes.tar.gz", - ":kubernetes-client-%s.tar.gz" % PLATFORM_ARCH_STRING, - ":kubernetes-node-%s.tar.gz" % PLATFORM_ARCH_STRING, - ":kubernetes-server-%s.tar.gz" % PLATFORM_ARCH_STRING, - ":kubernetes-manifests.tar.gz", - ":kubernetes-salt.tar.gz", - ":kubernetes-src.tar.gz", - ":kubernetes-test.tar.gz", + ":federation.tar.gz", + ":federation-client-%s.tar.gz" % PLATFORM_ARCH_STRING, + ":federation-server-%s.tar.gz" % PLATFORM_ARCH_STRING, + ":federation-src.tar.gz", + ":federation-test.tar.gz", ], ) diff --git a/build/root/.kazelcfg.json b/build/root/.kazelcfg.json index 3d5d1a1ed..eec4cd1be 100644 --- a/build/root/.kazelcfg.json +++ b/build/root/.kazelcfg.json @@ -1,5 +1,5 @@ { - "GoPrefix": "k8s.io/kubernetes", + "GoPrefix": "k8s.io/federation", "SkippedPaths": [ "^_.*" ], diff --git a/build/root/BUILD.root b/build/root/BUILD.root index a56e73165..4fbe6f80f 100644 --- a/build/root/BUILD.root +++ b/build/root/BUILD.root @@ -8,16 +8,13 @@ package(default_visibility = ["//visibility:public"]) load("@io_bazel_rules_go//go:def.bzl", "go_prefix") load("@io_kubernetes_build//defs:build.bzl", "gcs_upload") -go_prefix("k8s.io/kubernetes") +go_prefix("k8s.io/federation") filegroup( name = "_binary-artifacts-and-hashes", srcs = [ "//build:client-targets-and-hashes", - "//build:docker-artifacts-and-hashes", - "//build:node-targets-and-hashes", "//build:server-targets-and-hashes", - "//build/debs:debs-and-hashes", ], visibility = ["//visibility:private"], ) @@ -57,19 +54,31 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", - "//api:all-srcs", + "//apis/core:all-srcs", + "//apis/federation:all-srcs", "//build:all-srcs", + "//client/cache:all-srcs", + "//client/clientset_generated/federation_clientset:all-srcs", "//cluster:all-srcs", - "//cmd:all-srcs", - "//docs:all-srcs", - "//examples:all-srcs", - "//federation:all-srcs", + "//cmd/fcp:all-srcs", + "//cmd/federation-apiserver:all-srcs", + "//cmd/federation-controller-manager:all-srcs", + "//cmd/genfeddocs:all-srcs", + "//cmd/kubefed:all-srcs", + "//develop:all-srcs", "//hack:all-srcs", - "//pkg:all-srcs", - "//plugin:all-srcs", - "//staging:all-srcs", - "//test:all-srcs", - "//third_party:all-srcs", + "//pkg/dnsprovider:all-srcs", + "//pkg/federatedtypes:all-srcs", + "//pkg/federation-controller:all-srcs", + "//pkg/generated/openapi:all-srcs", + "//pkg/kubefed:all-srcs", + "//pkg/version:all-srcs", + "//plugin/pkg/admission/schedulingpolicy:all-srcs", + "//registry/cluster:all-srcs", + "//test/cluster:all-srcs", + "//test/e2e:all-srcs", + "//test/integration:all-srcs", + "//test/testapi:all-srcs", "//vendor:all-srcs", ], tags = ["automanaged"], diff --git a/build/root/Makefile b/build/root/Makefile index 012dd98f5..8ec06d8d3 100644 --- a/build/root/Makefile +++ b/build/root/Makefile @@ -289,8 +289,6 @@ test-cmd: @echo "$$TEST_CMD_HELP_INFO" else test-cmd: generated_files - hack/make-rules/test-kubeadm-cmd.sh - hack/make-rules/test-cmd.sh hack/make-rules/test-federation-cmd.sh endif diff --git a/build/visible_to/BUILD b/build/visible_to/BUILD index 50c4a1c79..364863fa0 100644 --- a/build/visible_to/BUILD +++ b/build/visible_to/BUILD @@ -28,9 +28,9 @@ package_group( name = "COMMON_generators", packages = [ - "//cmd/gendocs", - "//cmd/genman", - "//cmd/genyaml", + "//vendor/k8s.io/kubernetes/cmd/gendocs", + "//vendor/k8s.io/kubernetes/cmd/genman", + "//vendor/k8s.io/kubernetes/cmd/genyaml", ], ) @@ -40,25 +40,25 @@ package_group( "//hack", "//hack/lib", "//hack/make-rules", - "//test/e2e", - "//test/e2e/framework", - "//test/e2e/kubectl", - "//test/e2e/workload", - "//test/integration/etcd", - "//test/integration/framework", - "//test/integration/kubectl", + "//vendor/k8s.io/kubernetes/test/e2e", + "//vendor/k8s.io/kubernetes/test/e2e/framework", + "//vendor/k8s.io/kubernetes/test/e2e/kubectl", + "//vendor/k8s.io/kubernetes/test/e2e/workload", + "//vendor/k8s.io/kubernetes/test/integration/etcd", + "//vendor/k8s.io/kubernetes/test/integration/framework", + "//vendor/k8s.io/kubernetes/test/integration/kubectl", ], ) package_group( name = "FEDERATION_BAD", packages = [ - "//federation/cmd/genfeddocs", - "//federation/cmd/kubefed/app", - "//federation/pkg/kubefed", - "//federation/pkg/kubefed/init", - "//federation/pkg/kubefed/testing", - "//federation/pkg/kubefed/util", + "//cmd/genfeddocs", + "//cmd/kubefed/app", + "//pkg/kubefed", + "//pkg/kubefed/init", + "//pkg/kubefed/testing", + "//pkg/kubefed/util", ], ) @@ -66,27 +66,28 @@ package_group( name = "cluster", packages = [ "//cluster/...", - ], + "//vendor/k8s.io/kubernetes/cluster", + ], ) package_group( name = "KUBEADM_BAD", packages = [ - "//cmd/kubeadm/app/cmd", + "//vendor/k8s.io/kubernetes/cmd/kubeadm/app/cmd", ], ) package_group( name = "cmd_kubectl_CONSUMERS", packages = [ - "//cmd", + "//vendor/k8s.io/kubernetes/cmd", ], ) package_group( name = "cmd_kubectl_app_CONSUMERS", packages = [ - "//cmd/kubectl", + "//vendor/k8s.io/kubernetes/cmd/kubectl", ], ) @@ -97,9 +98,9 @@ package_group( ":KUBEADM_BAD", ], packages = [ - "//cmd/clicheck", - "//cmd/hyperkube", - "//pkg", + "//vendor/k8s.io/kubernetes/cmd/clicheck", + "//vendor/k8s.io/kubernetes/cmd/hyperkube", + "//vendor/k8s.io/kubernetes/pkg", ], ) @@ -110,16 +111,16 @@ package_group( ":pkg_kubectl_CONSUMERS_BAD", ], packages = [ - "//cmd/kubectl", - "//cmd/kubectl/app", - "//pkg/kubectl/cmd", - "//pkg/kubectl/cmd/auth", - "//pkg/kubectl/cmd/config", - "//pkg/kubectl/cmd/rollout", - "//pkg/kubectl/cmd/set", - "//pkg/kubectl/cmd/testing", - "//pkg/kubectl/cmd/util", - "//pkg/kubectl/cmd/util/editor", + "//vendor/k8s.io/kubernetes/cmd/kubectl", + "//vendor/k8s.io/kubernetes/cmd/kubectl/app", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/rollout", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor", ], ) @@ -129,8 +130,8 @@ package_group( ":FEDERATION_BAD", ], packages = [ - "//cmd/clicheck", - "//cmd/hyperkube", + "//vendor/k8s.io/kubernetes/cmd/clicheck", + "//vendor/k8s.io/kubernetes/cmd/hyperkube", ], ) @@ -141,47 +142,47 @@ package_group( ":pkg_kubectl_cmd_CONSUMERS_BAD", ], packages = [ - "//cmd/kubectl", - "//cmd/kubectl/app", - "//pkg/kubectl", - "//pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/cmd/kubectl", + "//vendor/k8s.io/kubernetes/cmd/kubectl/app", + "//vendor/k8s.io/kubernetes/pkg/kubectl", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", ], ) package_group( name = "pkg_kubectl_cmd_auth_CONSUMERS", packages = [ - "//pkg/kubectl/cmd", - "//pkg/kubectl/cmd/rollout", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/rollout", ], ) package_group( name = "pkg_kubectl_cmd_config_CONSUMERS", packages = [ - "//pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", ], ) package_group( name = "pkg_kubectl_cmd_rollout_CONSUMERS", packages = [ - "//pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", ], ) package_group( name = "pkg_kubectl_cmd_set_CONSUMERS", packages = [ - "//pkg/kubectl/cmd", - "//pkg/kubectl/cmd/rollout", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/rollout", ], ) package_group( name = "pkg_kubectl_cmd_templates_CONSUMERS_BAD", packages = [ - "//federation/pkg/kubefed/init", + "//pkg/kubefed/init", ], ) @@ -193,31 +194,31 @@ package_group( ":FEDERATION_BAD", ], packages = [ - "//cmd/kubectl", - "//cmd/kubectl/app", - "//pkg/kubectl/cmd", - "//pkg/kubectl/cmd/auth", - "//pkg/kubectl/cmd/config", - "//pkg/kubectl/cmd/rollout", - "//pkg/kubectl/cmd/set", - "//pkg/kubectl/cmd/templates", - "//pkg/kubectl/cmd/util", - "//pkg/kubectl/cmd/util/sanity", + "//vendor/k8s.io/kubernetes/cmd/kubectl", + "//vendor/k8s.io/kubernetes/cmd/kubectl/app", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/rollout", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/templates", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/sanity", ], ) package_group( name = "pkg_kubectl_cmd_testdata_edit_CONSUMERS", packages = [ - "//pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", ], ) package_group( name = "pkg_kubectl_cmd_testing_CONSUMERS_BAD", packages = [ - "//federation/pkg/kubefed", - "//federation/pkg/kubefed/init", + "//pkg/kubefed", + "//pkg/kubefed/init", ], ) @@ -227,9 +228,9 @@ package_group( ":pkg_kubectl_cmd_testing_CONSUMERS_BAD", ], packages = [ - "//pkg/kubectl/cmd", - "//pkg/kubectl/cmd/auth", - "//pkg/kubectl/cmd/set", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set", ], ) @@ -240,9 +241,9 @@ package_group( ":KUBEADM_BAD", ], packages = [ - "//cmd/clicheck", - "//cmd/hyperkube", - "//cmd/kube-proxy/app", + "//vendor/k8s.io/kubernetes/cmd/clicheck", + "//vendor/k8s.io/kubernetes/cmd/hyperkube", + "//vendor/k8s.io/kubernetes/cmd/kube-proxy/app", ], ) @@ -254,40 +255,40 @@ package_group( ":pkg_kubectl_cmd_util_CONSUMERS_BAD", ], packages = [ - "//cmd/kubectl", - "//cmd/kubectl/app", - "//pkg/kubectl/cmd", - "//pkg/kubectl/cmd/auth", - "//pkg/kubectl/cmd/config", - "//pkg/kubectl/cmd/rollout", - "//pkg/kubectl/cmd/set", - "//pkg/kubectl/cmd/testing", - "//pkg/kubectl/cmd/util", - "//pkg/kubectl/cmd/util/editor", + "//vendor/k8s.io/kubernetes/cmd/kubectl", + "//vendor/k8s.io/kubernetes/cmd/kubectl/app", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/rollout", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor", ], ) package_group( name = "pkg_kubectl_cmd_util_editor_CONSUMERS", packages = [ - "//pkg/kubectl/cmd", - "//pkg/kubectl/cmd/util", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util", ], ) package_group( name = "pkg_kubectl_cmd_util_jsonmerge_CONSUMERS", packages = [ - "//pkg/kubectl/cmd", - "//pkg/kubectl/cmd/util", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util", ], ) package_group( name = "pkg_kubectl_cmd_util_sanity_CONSUMERS", packages = [ - "//cmd/clicheck", - "//pkg/kubectl/cmd/util", + "//vendor/k8s.io/kubernetes/cmd/clicheck", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util", ], ) @@ -297,8 +298,8 @@ package_group( ":FEDERATION_BAD", ], packages = [ - "//cmd/clicheck", - "//cmd/hyperkube", + "//vendor/k8s.io/kubernetes/cmd/clicheck", + "//vendor/k8s.io/kubernetes/cmd/hyperkube", ], ) @@ -309,17 +310,17 @@ package_group( ":pkg_kubectl_metricsutil_CONSUMERS_BAD", ], packages = [ - "//cmd/kubectl", - "//cmd/kubectl/app", - "//pkg/kubectl", - "//pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/cmd/kubectl", + "//vendor/k8s.io/kubernetes/cmd/kubectl/app", + "//vendor/k8s.io/kubernetes/pkg/kubectl", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", ], ) package_group( name = "pkg_kubectl_resource_CONSUMERS_BAD", packages = [ - "//federation/pkg/kubefed", + "//pkg/kubefed", ], ) @@ -331,44 +332,44 @@ package_group( ":pkg_kubectl_resource_CONSUMERS_BAD", ], packages = [ - "//cmd/kubectl", - "//cmd/kubectl/app", - "//pkg/kubectl", - "//pkg/kubectl/cmd", - "//pkg/kubectl/cmd/auth", - "//pkg/kubectl/cmd/config", - "//pkg/kubectl/cmd/rollout", - "//pkg/kubectl/cmd/set", - "//pkg/kubectl/cmd/testing", - "//pkg/kubectl/cmd/util", - "//pkg/kubectl/cmd/util/editor", + "//vendor/k8s.io/kubernetes/cmd/kubectl", + "//vendor/k8s.io/kubernetes/cmd/kubectl/app", + "//vendor/k8s.io/kubernetes/pkg/kubectl", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/auth", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/config", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/rollout", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/set", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util/editor", ], ) package_group( name = "pkg_kubectl_testing_CONSUMERS", packages = [ - "//pkg/kubectl", - "//pkg/printers/internalversion", + "//vendor/k8s.io/kubernetes/pkg/kubectl", + "//vendor/k8s.io/kubernetes/pkg/printers/internalversion", ], ) package_group( name = "pkg_kubectl_util_CONSUMERS", packages = [ - "//pkg/kubectl", - "//pkg/kubectl/cmd", - "//pkg/kubectl/proxy", + "//vendor/k8s.io/kubernetes/pkg/kubectl", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd", + "//vendor/k8s.io/kubernetes/pkg/kubectl/proxy", ], ) package_group( name = "pkg_kubectl_validation_CONSUMERS", packages = [ - "//pkg/kubectl", - "//pkg/kubectl/cmd/testing", - "//pkg/kubectl/cmd/util", - "//pkg/kubectl/resource", + "//vendor/k8s.io/kubernetes/pkg/kubectl", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/testing", + "//vendor/k8s.io/kubernetes/pkg/kubectl/cmd/util", + "//vendor/k8s.io/kubernetes/pkg/kubectl/resource", ], ) diff --git a/hack/jenkins/test-dockerized.sh b/hack/jenkins/test-dockerized.sh index 5269c16ab..66b258568 100755 --- a/hack/jenkins/test-dockerized.sh +++ b/hack/jenkins/test-dockerized.sh @@ -28,12 +28,11 @@ retry() { # Runs the unit and integration tests, producing JUnit-style XML test # reports in ${WORKSPACE}/artifacts. This script is intended to be run from -# kubekins-test container with a kubernetes repo mapped in. See +# kubekins-test container with a federation repo mapped in. See # k8s.io/test-infra/scenarios/kubernetes_verify.py export PATH=${GOPATH}/bin:${PWD}/third_party/etcd:/usr/local/go/bin:${PATH} -retry go get github.com/tools/godep && godep version retry go get github.com/jstemmer/go-junit-report # Enable the Go race detector. @@ -49,13 +48,15 @@ export KUBE_TIMEOUT='-timeout 300s' export KUBE_INTEGRATION_TEST_MAX_CONCURRENCY=4 export LOG_LEVEL=4 -cd /go/src/k8s.io/kubernetes +cd /go/src/k8s.io/federation make generated_files -go install ./cmd/... +# TODO(marun) not necessary so long as test-cmd isn't running +# go install ./cmd/... ./hack/install-etcd.sh make test -make test-cmd +# TODO(marun) Need to source a kubectl binary since it can't be built +# from the federation repo. +# make test-cmd make test-integration -./hack/test-update-storage-objects.sh diff --git a/hack/make-rules/BUILD b/hack/make-rules/BUILD index 47fdd3b5e..6be26ea02 100644 --- a/hack/make-rules/BUILD +++ b/hack/make-rules/BUILD @@ -1,7 +1,7 @@ # Scripts runnable from make, e.g. # -# cd $GOPATH/src/k8s.io/kubernetes -# make test-e2e-node +# cd $GOPATH/src/k8s.io/federation +# make test # # The sh_binary rules below exist only to validate # dependencies; if a shell dependency is accidentally @@ -13,46 +13,12 @@ # runnable, hermetically sealed shell "binaries". # E.g. the following command would work: # -# ./bazel-bin/hack/make-rules/test-e2e-node +# ./bazel-bin/hack/make-rules/test # -# TODO(#47064): Should be a sh_test instead of sh_binary -sh_binary( - name = "test-cmd", - srcs = ["test-cmd.sh"], - deps = [ - ":test-cmd-util", - "//hack/lib", - ], -) - -sh_binary( - name = "test-e2e-node", - srcs = ["test-e2e-node.sh"], - deps = [ - "//hack/lib", - ], -) - -sh_binary( - name = "test-federation-cmd", - srcs = ["test-federation-cmd.sh"], - deps = [ - ":test-cmd-util", - "//hack/lib", - ], -) sh_binary( name = "test-integration", - srcs = ["test-cmd.sh"], - deps = [ - "//hack/lib", - ], -) - -sh_binary( - name = "test-kubeadm-cmd", - srcs = ["test-kubeadm-cmd.sh"], + srcs = ["test-integration.sh"], deps = [ "//hack/lib", ], @@ -98,14 +64,6 @@ sh_binary( ], ) -sh_library( - name = "test-cmd-util", - srcs = [ - "test-cmd-util.sh", - ], - data = ["//pkg/kubectl/validation:testdata/v1/validPod.yaml"], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/hack/update-all.sh b/hack/update-all.sh index 7fbfeb84a..50c24d3a8 100755 --- a/hack/update-all.sh +++ b/hack/update-all.sh @@ -25,7 +25,6 @@ source "${KUBE_ROOT}/hack/lib/util.sh" SILENT=true ALL=false -V="" while getopts ":va" opt; do case $opt in @@ -34,7 +33,6 @@ while getopts ":va" opt; do ;; v) SILENT=false - V="-v" ;; \?) echo "Invalid flag: -$OPTARG" >&2 @@ -53,21 +51,15 @@ if ! $ALL ; then echo "Running in short-circuit mode; run with -a to force all scripts to run." fi -"${KUBE_ROOT}/hack/godep-restore.sh" ${V} +# TODO run 'glide up -v' BASH_TARGETS=" - update-generated-protobuf update-codegen update-generated-docs - update-generated-swagger-docs - update-swagger-spec - update-openapi-spec - update-api-reference-docs update-federation-openapi-spec update-federation-swagger-spec update-federation-generated-swagger-docs update-federation-api-reference-docs - update-staging-godeps update-bazel" for t in $BASH_TARGETS; do diff --git a/hack/update-bazel.sh b/hack/update-bazel.sh index 486cdbc5d..5c0e114a0 100755 --- a/hack/update-bazel.sh +++ b/hack/update-bazel.sh @@ -31,9 +31,12 @@ fi # Remove generated files prior to running kazel. # TODO(spxtr): Remove this line once Bazel is the only way to build. -rm -f "${KUBE_ROOT}/pkg/generated/openapi/zz_generated.openapi.go" +GENERATED_FILENAME="/pkg/generated/openapi/zz_generated.openapi.go" +rm -f "${KUBE_ROOT}/${GENERATED_FILENAME}" +rm -f "${KUBE_ROOT}/vendor/k8s.io/kubernetes/${GENERATED_FILENAME}" # The git commit sha1s here should match the values in $KUBE_ROOT/WORKSPACE. +# TODO(marun) Update to point to official repo when required changes merge kube::util::go_install_from_commit \ github.com/kubernetes/repo-infra/kazel \ ae4e9a3906ace4ba657b7a09242610c6266e832c @@ -48,11 +51,15 @@ gazelle fix \ -external=vendored \ -proto=legacy \ -mode=fix -# gazelle gets confused by our staging/ directory, prepending an extra -# "k8s.io/kubernetes/staging/src" to the import path. -# gazelle won't follow the symlinks in vendor/, so we can't just exclude -# staging/. Instead we just fix the bad paths with sed. -find staging -name BUILD -o -name BUILD.bazel | \ - xargs ${SED} -i 's|\(importpath = "\)k8s.io/kubernetes/staging/src/\(.*\)|\1\2|' - -kazel + +# Ignore unneeded rebuild for vendored openapi +kazel | grep -vq 'vendor/k8s.io/kubernetes/pkg/generated/openapi/BUILD' && true + +# Rewrite the openapi BUILD file for federation to work for building +# openapi for vendored kube. This seems simpler than fixing kazel to +# support generating for federation and vendored kube in a single +# pass. +sed '/federation/d' pkg/generated/openapi/BUILD \ + | sed 's|\(, "openapi_go_prefix"\)|\1, "openapi_vendor_prefix"|' \ + | sed 's|\(vendor_prefix = \).*|\1openapi_vendor_prefix,|' \ + > vendor/k8s.io/kubernetes/pkg/generated/openapi/BUILD diff --git a/pkg/generated/openapi/BUILD b/pkg/generated/openapi/BUILD new file mode 100644 index 000000000..b91170529 --- /dev/null +++ b/pkg/generated/openapi/BUILD @@ -0,0 +1,81 @@ +# doc.go is managed by kazel, so gazelle should ignore it. +# gazelle:exclude doc.go + +package(default_visibility = ["//visibility:public"]) + +load("//build:openapi.bzl", "openapi_go_prefix") +load("//vendor/k8s.io/kubernetes/pkg/generated/openapi:def.bzl", "openapi_library") + +openapi_library( + name = "go_default_library", + srcs = ["doc.go"], + go_prefix = openapi_go_prefix, + openapi_targets = [ + "federation/apis/federation/v1beta1", + "pkg/apis/abac/v0", + "pkg/apis/abac/v1beta1", + "pkg/apis/componentconfig/v1alpha1", + "pkg/kubelet/apis/kubeletconfig/v1alpha1", + "pkg/version", + ], + tags = ["automanaged"], + vendor_prefix = "", + vendor_targets = [ + "k8s.io/api/admission/v1alpha1", + "k8s.io/api/admissionregistration/v1alpha1", + "k8s.io/api/apps/v1", + "k8s.io/api/apps/v1beta1", + "k8s.io/api/apps/v1beta2", + "k8s.io/api/authentication/v1", + "k8s.io/api/authentication/v1beta1", + "k8s.io/api/authorization/v1", + "k8s.io/api/authorization/v1beta1", + "k8s.io/api/autoscaling/v1", + "k8s.io/api/autoscaling/v2beta1", + "k8s.io/api/batch/v1", + "k8s.io/api/batch/v1beta1", + "k8s.io/api/batch/v2alpha1", + "k8s.io/api/certificates/v1beta1", + "k8s.io/api/core/v1", + "k8s.io/api/extensions/v1beta1", + "k8s.io/api/imagepolicy/v1alpha1", + "k8s.io/api/networking/v1", + "k8s.io/api/policy/v1beta1", + "k8s.io/api/rbac/v1", + "k8s.io/api/rbac/v1alpha1", + "k8s.io/api/rbac/v1beta1", + "k8s.io/api/scheduling/v1alpha1", + "k8s.io/api/settings/v1alpha1", + "k8s.io/api/storage/v1", + "k8s.io/api/storage/v1beta1", + "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1", + "k8s.io/apimachinery/pkg/api/resource", + "k8s.io/apimachinery/pkg/apis/meta/v1", + "k8s.io/apimachinery/pkg/apis/meta/v1alpha1", + "k8s.io/apimachinery/pkg/apis/testapigroup/v1", + "k8s.io/apimachinery/pkg/runtime", + "k8s.io/apimachinery/pkg/util/intstr", + "k8s.io/apimachinery/pkg/version", + "k8s.io/apiserver/pkg/apis/audit/v1alpha1", + "k8s.io/apiserver/pkg/apis/audit/v1beta1", + "k8s.io/apiserver/pkg/apis/example/v1", + "k8s.io/client-go/pkg/version", + "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1", + "k8s.io/metrics/pkg/apis/custom_metrics/v1beta1", + "k8s.io/metrics/pkg/apis/metrics/v1alpha1", + "k8s.io/metrics/pkg/apis/metrics/v1beta1", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/version/def.bzl b/pkg/version/def.bzl new file mode 100644 index 000000000..bca85ab4b --- /dev/null +++ b/pkg/version/def.bzl @@ -0,0 +1,24 @@ +# Implements hack/lib/version.sh's kube::version::ldflags() for Bazel. +def version_x_defs(): + # This should match the list of packages in kube::version::ldflag + stamp_pkgs = [ + "k8s.io/kubernetes/pkg/version", + # In hack/lib/version.sh, this has a vendor/ prefix. That isn't needed here? + "k8s.io/client-go/pkg/version", + ] + # This should match the list of vars in kube::version::ldflags + # It should also match the list of vars set in hack/print-workspace-status.sh. + stamp_vars = [ + "buildDate", + "gitCommit", + "gitMajor", + "gitMinor", + "gitTreeState", + "gitVersion", + ] + # Generate the cross-product. + x_defs = {} + for pkg in stamp_pkgs: + for var in stamp_vars: + x_defs["%s.%s" % (pkg, var)] = "{%s}" % var + return x_defs diff --git a/test/e2e/BUILD b/test/e2e/BUILD index 8bcb17d9f..ccf3cca7c 100644 --- a/test/e2e/BUILD +++ b/test/e2e/BUILD @@ -3,6 +3,7 @@ package(default_visibility = ["//visibility:public"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( @@ -11,6 +12,7 @@ go_library( "apiserver.go", "authn.go", "crud.go", + "e2e.go", "event.go", "ingress.go", "job.go", @@ -52,6 +54,17 @@ go_library( ], ) +# This is a handwritten rule. Do not delete, it will not be regenerated by +# update-bazel.sh. +genrule( + name = "gen_e2e.test", + testonly = 1, + srcs = [":go_default_test"], + outs = ["e2e.test"], + cmd = "srcs=($(SRCS)); cp $$(dirname $${srcs[0]})/go_default_test $@;", + output_to_bindir = 1, +) + filegroup( name = "package-srcs", srcs = glob(["**"]), @@ -68,3 +81,12 @@ filegroup( ], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = ["e2e_test.go"], + importpath = "k8s.io/federation/test/e2e", + library = ":go_default_library", + tags = ["e2e"], + deps = ["//test/e2e/framework:go_default_library"], +) diff --git a/third_party/etcd.BUILD b/third_party/etcd.BUILD new file mode 100644 index 000000000..816ffa752 --- /dev/null +++ b/third_party/etcd.BUILD @@ -0,0 +1 @@ +exports_files(["etcd"])