From 03456a33f9cd1123572a4a20e3728b65d5fb6925 Mon Sep 17 00:00:00 2001 From: Chuck Ha Date: Wed, 6 Jun 2018 09:35:25 -0400 Subject: [PATCH] Adds a crictl package for kubeadm installs Closes kubernetes/kubeadm#811 Signed-off-by: Chuck Ha --- build/debs/BUILD | 14 ++++++++++++++ build/root/WORKSPACE | 7 +++++++ build/rpms/BUILD | 14 ++++++++++++++ build/rpms/cri-tools.spec | 21 +++++++++++++++++++++ build/workspace.bzl | 15 +++++++++++++++ 5 files changed, 71 insertions(+) create mode 100644 build/rpms/cri-tools.spec create mode 100644 build/workspace.bzl diff --git a/build/debs/BUILD b/build/debs/BUILD index 31700d0452..af05888650 100644 --- a/build/debs/BUILD +++ b/build/debs/BUILD @@ -3,6 +3,7 @@ package(default_visibility = ["//visibility:public"]) load("@io_kubernetes_build//defs:deb.bzl", "k8s_deb", "deb_data") load("@io_kubernetes_build//defs:build.bzl", "release_filegroup") load("@io_kubernetes_build//defs:pkg.bzl", "pkg_tar") +load("//build:workspace.bzl", "CRI_TOOLS_VERSION") # We do not include kube-scheduler, kube-controller-manager, # kube-apiserver, and kube-proxy in this list even though we @@ -13,6 +14,7 @@ release_filegroup( name = "debs", srcs = [ ":cloud-controller-manager.deb", + ":cri_tools.deb", ":kubeadm.deb", ":kubectl.deb", ":kubelet.deb", @@ -86,6 +88,12 @@ pkg_tar( deps = ["@kubernetes_cni//file"], ) +pkg_tar( + name = "cri_tools-data", + package_dir = "/usr/bin", + deps = ["@cri_tools//file"], +) + k8s_deb( name = "cloud-controller-manager", description = "Kubernetes Cloud Controller Manager", @@ -167,6 +175,12 @@ The Container Networking Interface tools for provisioning container networks. version_file = "//build:cni_package_version", ) +k8s_deb( + name = "cri_tools", + description = """Container Runtime Interface tools (crictl)""", + version = CRI_TOOLS_VERSION, +) + filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/build/root/WORKSPACE b/build/root/WORKSPACE index bef78c3677..8d05557781 100644 --- a/build/root/WORKSPACE +++ b/build/root/WORKSPACE @@ -1,4 +1,5 @@ load("//build:workspace_mirror.bzl", "mirror") +load("//build:workspace.bzl", "CRI_TOOLS_VERSION") http_archive( name = "io_bazel_rules_go", @@ -58,6 +59,12 @@ http_file( urls = mirror("https://storage.googleapis.com/kubernetes-release/network-plugins/cni-plugins-amd64-v0.6.0.tgz"), ) +http_file( + name = "cri_tools", + sha256 = "bdc838174778223a1af4bdeaaed4bd266120c0e152588f78750fb86221677fb4", + urls = mirror("https://github.com/kubernetes-incubator/cri-tools/releases/download/v%s/crictl-v%s-linux-amd64.tar.gz" % (CRI_TOOLS_VERSION, CRI_TOOLS_VERSION)), +) + docker_pull( name = "debian-iptables-amd64", digest = "sha256:fb18678f8203ca1bd2fad2671e3ebd80cb408a1baae423d4ad39c05f4caac4e1", diff --git a/build/rpms/BUILD b/build/rpms/BUILD index 041607c94b..b9a6a9e26c 100644 --- a/build/rpms/BUILD +++ b/build/rpms/BUILD @@ -1,10 +1,12 @@ package(default_visibility = ["//visibility:public"]) load("@bazel_tools//tools/build_defs/pkg:rpm.bzl", "pkg_rpm") +load("//build:workspace.bzl", "CRI_TOOLS_VERSION") filegroup( name = "rpms", srcs = [ + ":cri-tools", ":kubeadm", ":kubectl", ":kubelet", @@ -65,6 +67,18 @@ pkg_rpm( version_file = "//build:cni_package_version", ) +pkg_rpm( + name = "cri-tools", + architecture = "x86_64", + data = [ + "@cri_tools//file", + ], + spec_file = "cri-tools.spec", + tags = ["manual"], + # dashes are not allowed in rpm versions + version = CRI_TOOLS_VERSION.replace("-", "_"), +) + filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/build/rpms/cri-tools.spec b/build/rpms/cri-tools.spec new file mode 100644 index 0000000000..c82b8232cf --- /dev/null +++ b/build/rpms/cri-tools.spec @@ -0,0 +1,21 @@ +Name: cri-tools +Version: OVERRIDE_THIS +Release: 00 +License: ASL 2.0 +Summary: Container Runtime Interface tools + +URL: https://kubernetes.io + +%description +Binaries to interface with the container runtime. + +%prep +# TODO(chuckha): update this to use %{version} when the dash is removed from the release +tar -xzf {crictl-v1.0.0-beta.1-linux-amd64.tar.gz} + +%install +install -m 755 -d %{buildroot}%{_bindir} +install -p -m 755 -t %{buildroot}%{_bindir} crictl + +%files +%{_bindir}/crictl diff --git a/build/workspace.bzl b/build/workspace.bzl new file mode 100644 index 0000000000..f2dd5ddee1 --- /dev/null +++ b/build/workspace.bzl @@ -0,0 +1,15 @@ +# Copyright 2018 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +CRI_TOOLS_VERSION = "1.0.0-beta.1"