Merge pull request #45253 from mikedanese/rpms

Automatic merge from submit-queue (batch tested with PRs 44520, 45253, 45838, 44685, 45901)

bazel: build rpms to match the debs that we output
This commit is contained in:
Kubernetes Submit Queue 2017-05-16 21:27:56 -07:00 committed by GitHub
commit 513d2754ac
10 changed files with 190 additions and 1 deletions

View File

@ -15,6 +15,7 @@ filegroup(
":package-srcs",
"//build/debs:all-srcs",
"//build/release-tars:all-srcs",
"//build/rpms:all-srcs",
"//build/visible_to:all-srcs",
],
tags = ["automanaged"],
@ -98,6 +99,18 @@ DOCKERIZED_BINARIES = {
stamp = 1,
) for binary, meta in DOCKERIZED_BINARIES.items()]
genrule(
name = "os_package_version",
outs = ["version"],
cmd = """
grep ^STABLE_BUILD_SCM_REVISION bazel-out/stable-status.txt \
| awk '{print $$2}' \
| sed -e 's/^v//' -e 's/[\+-]/_/g' \
>$@
""",
stamp = 1,
)
release_filegroup(
name = "docker-artifacts",
srcs = [":%s.tar" % binary for binary in DOCKERIZED_BINARIES.keys()] +

View File

@ -1,6 +1,6 @@
package(default_visibility = ["//visibility:public"])
load("@io_bazel//tools/build_defs/pkg:pkg.bzl", "pkg_tar", "pkg_deb")
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
load("@io_kubernetes_build//defs:deb.bzl", "k8s_deb", "deb_data")
load("@io_kubernetes_build//defs:build.bzl", "release_filegroup")

View File

@ -0,0 +1,9 @@
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--kubeconfig=/etc/kubernetes/kubelet.conf --require-kubeconfig=true"
Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true"
Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local"
Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt"
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CGROUP_ARGS $KUBELET_EXTRA_ARGS

58
build/rpms/BUILD Normal file
View File

@ -0,0 +1,58 @@
package(default_visibility = ["//visibility:public"])
load("@bazel_tools//tools/build_defs/pkg:rpm.bzl", "pkg_rpm")
pkg_rpm(
name = "kubectl",
changelog = "//:CHANGELOG.md",
data = [
"//cmd/kubectl",
],
spec_file = "kubectl.spec",
version_file = "//build:os_package_version",
)
pkg_rpm(
name = "kubelet",
changelog = "//:CHANGELOG.md",
data = [
"kubelet.service",
"//cmd/kubelet",
],
spec_file = "kubelet.spec",
version_file = "//build:os_package_version",
)
pkg_rpm(
name = "kubeadm",
changelog = "//:CHANGELOG.md",
data = [
"10-kubeadm.conf",
"//cmd/kubeadm",
],
spec_file = "kubeadm.spec",
version_file = "//build:os_package_version",
)
pkg_rpm(
name = "kubernetes-cni",
changelog = "//:CHANGELOG.md",
data = [
"@kubernetes_cni//file",
],
spec_file = "kubernetes-cni.spec",
version_file = "//build:os_package_version",
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
)

24
build/rpms/kubeadm.spec Normal file
View File

@ -0,0 +1,24 @@
Name: kubeadm
Version: OVERRIDE_THIS
Release: 00
License: ASL 2.0
Summary: Container Cluster Manager
Requires: kubelet >= %{version}
Requires: kubectl >= %{version}
Requires: kubernetes-cni
URL: https://kubernetes.io
%description
Command-line utility for administering a Kubernetes cluster.
%install
install -m 755 -d %{buildroot}%{_bindir}
install -m 755 -d %{buildroot}%{_sysconfdir}/systemd/system/
install -m 755 -d %{buildroot}%{_sysconfdir}/systemd/system/kubelet.service.d/
install -p -m 755 -t %{buildroot}%{_bindir} kubeadm
install -p -m 755 -t %{buildroot}%{_sysconfdir}/systemd/system/kubelet.service.d/ 10-kubeadm.conf
%files
%{_bindir}/kubeadm
%{_sysconfdir}/systemd/system/kubelet.service.d/10-kubeadm.conf

18
build/rpms/kubectl.spec Normal file
View File

@ -0,0 +1,18 @@
Name: kubectl
Version: OVERRIDE_THIS
Release: 00
License: ASL 2.0
Summary: Container Cluster Manager
URL: https://kubernetes.io
%description
Command-line utility for interacting with a Kubernetes cluster.
%install
install -m 755 -d %{buildroot}%{_bindir}
install -p -m 755 -t %{buildroot}%{_bindir} kubectl
%files
%{_bindir}/kubectl

View File

@ -0,0 +1,12 @@
[Unit]
Description=kubelet: The Kubernetes Node Agent
Documentation=http://kubernetes.io/docs/
[Service]
ExecStart=/usr/bin/kubelet
Restart=always
StartLimitInterval=0
RestartSec=10
[Install]
WantedBy=multi-user.target

31
build/rpms/kubelet.spec Normal file
View File

@ -0,0 +1,31 @@
Name: kubelet
Version: OVERRIDE_THIS
Release: 00
License: ASL 2.0
Summary: Container Cluster Manager
URL: https://kubernetes.io
Requires: iptables >= 1.4.21
Requires: kubernetes-cni >= 0.5.1
Requires: socat
Requires: util-linux
Requires: ethtool
Requires: iproute
Requires: ebtables
%description
The node agent of Kubernetes, the container cluster manager.
%install
install -m 755 -d %{buildroot}%{_bindir}
install -m 755 -d %{buildroot}%{_sysconfdir}/systemd/system/
install -m 755 -d %{buildroot}%{_sysconfdir}/kubernetes/manifests/
install -p -m 755 -t %{buildroot}%{_bindir} kubelet
install -p -m 755 -t %{buildroot}%{_sysconfdir}/systemd/system/ kubelet.service
%files
%{_bindir}/kubelet
%{_sysconfdir}/systemd/system/kubelet.service
%{_sysconfdir}/kubernetes/manifests/

View File

@ -0,0 +1,23 @@
Name: kubernetes-cni
Version: OVERRIDE_THIS
Release: 00
License: ASL 2.0
Summary: Container Cluster Manager
URL: https://kubernetes.io
%description
Binaries required to provision container networking.
%prep
tar xzfv cni-*.tar.gz
%install
install -m 755 -d %{buildroot}%{_sysconfdir}/cni/net.d/
install -m 755 -d %{buildroot}/opt/cni
mv bin/ %{buildroot}/opt/cni/
%files
/opt/cni
%{_sysconfdir}/cni/net.d/

View File

@ -40,6 +40,7 @@ package_group(
packages = [
"//build",
"//build/debs",
"//build/rpms",
],
)