From fd9c017d2d36ea7956d8a4eeb0b8139e8dfa95c1 Mon Sep 17 00:00:00 2001 From: Mike Danese Date: Tue, 2 May 2017 17:22:45 -0700 Subject: [PATCH] bazel: build rpms to match the debs that we output --- build/debs/BUILD | 2 +- build/rpms/10-kubeadm.conf | 9 +++++++ build/rpms/BUILD | 45 ++++++++++++++++++++++++++++++++++ build/rpms/kubeadm.spec | 24 ++++++++++++++++++ build/rpms/kubectl.spec | 18 ++++++++++++++ build/rpms/kubelet.service | 12 +++++++++ build/rpms/kubelet.spec | 31 +++++++++++++++++++++++ build/rpms/kubernetes-cni.spec | 23 +++++++++++++++++ build/visible_to/BUILD | 1 + 9 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 build/rpms/10-kubeadm.conf create mode 100644 build/rpms/BUILD create mode 100644 build/rpms/kubeadm.spec create mode 100644 build/rpms/kubectl.spec create mode 100644 build/rpms/kubelet.service create mode 100644 build/rpms/kubelet.spec create mode 100644 build/rpms/kubernetes-cni.spec diff --git a/build/debs/BUILD b/build/debs/BUILD index 0f3ffb46bf8..54acffcc50c 100644 --- a/build/debs/BUILD +++ b/build/debs/BUILD @@ -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") diff --git a/build/rpms/10-kubeadm.conf b/build/rpms/10-kubeadm.conf new file mode 100644 index 00000000000..2dd9c9b1b90 --- /dev/null +++ b/build/rpms/10-kubeadm.conf @@ -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 diff --git a/build/rpms/BUILD b/build/rpms/BUILD new file mode 100644 index 00000000000..1628ed68a78 --- /dev/null +++ b/build/rpms/BUILD @@ -0,0 +1,45 @@ +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 = "1.6.0", +) + +pkg_rpm( + name = "kubelet", + changelog = "//:CHANGELOG.md", + data = [ + "kubelet.service", + "//cmd/kubelet", + ], + spec_file = "kubelet.spec", + version = "1.6.0", +) + +pkg_rpm( + name = "kubeadm", + changelog = "//:CHANGELOG.md", + data = [ + "10-kubeadm.conf", + "//cmd/kubeadm", + ], + spec_file = "kubeadm.spec", + version = "1.6.0", +) + +pkg_rpm( + name = "kubernetes-cni", + changelog = "//:CHANGELOG.md", + data = [ + "@kubernetes_cni//file", + ], + spec_file = "kubernetes-cni.spec", + version = "1.6.0", +) diff --git a/build/rpms/kubeadm.spec b/build/rpms/kubeadm.spec new file mode 100644 index 00000000000..fa28736119f --- /dev/null +++ b/build/rpms/kubeadm.spec @@ -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 diff --git a/build/rpms/kubectl.spec b/build/rpms/kubectl.spec new file mode 100644 index 00000000000..efb4743bbb7 --- /dev/null +++ b/build/rpms/kubectl.spec @@ -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 diff --git a/build/rpms/kubelet.service b/build/rpms/kubelet.service new file mode 100644 index 00000000000..9712664deaf --- /dev/null +++ b/build/rpms/kubelet.service @@ -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 diff --git a/build/rpms/kubelet.spec b/build/rpms/kubelet.spec new file mode 100644 index 00000000000..ea5f2d63d53 --- /dev/null +++ b/build/rpms/kubelet.spec @@ -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/ diff --git a/build/rpms/kubernetes-cni.spec b/build/rpms/kubernetes-cni.spec new file mode 100644 index 00000000000..8e0b7bc5194 --- /dev/null +++ b/build/rpms/kubernetes-cni.spec @@ -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/ diff --git a/build/visible_to/BUILD b/build/visible_to/BUILD index e11abe25dcf..7de7ce3d3de 100644 --- a/build/visible_to/BUILD +++ b/build/visible_to/BUILD @@ -40,6 +40,7 @@ package_group( packages = [ "//build", "//build/debs", + "//build/rpms", ], )