mirror of https://github.com/k3s-io/k3s
bazel: build debs for kubelet and kubeadm
parent
3479522de5
commit
caa4a4304e
|
@ -3,5 +3,13 @@ package(default_visibility = ["//visibility:public"])
|
|||
licenses(["notice"])
|
||||
|
||||
load("@io_bazel_rules_go//go:def.bzl", "go_prefix")
|
||||
load("@io_kubernetes_build//defs:build.bzl", "gcs_upload")
|
||||
|
||||
go_prefix("k8s.io/kubernetes")
|
||||
|
||||
gcs_upload(
|
||||
name = "ci-artifacts",
|
||||
data = [
|
||||
"//build-tools/debs",
|
||||
],
|
||||
)
|
||||
|
|
12
WORKSPACE
12
WORKSPACE
|
@ -4,6 +4,12 @@ git_repository(
|
|||
remote = "https://github.com/bazelbuild/rules_go.git",
|
||||
)
|
||||
|
||||
git_repository(
|
||||
name = "io_kubernetes_build",
|
||||
commit = "418b8e976cb32d94fd765c80f2b04e660c5ec4ec",
|
||||
remote = "https://github.com/kubernetes/release.git",
|
||||
)
|
||||
|
||||
load("@io_bazel_rules_go//go:def.bzl", "go_repositories")
|
||||
|
||||
go_repositories()
|
||||
|
@ -37,3 +43,9 @@ debs = (
|
|||
sha256 = sha256,
|
||||
url = url,
|
||||
) for name, sha256, url in debs]
|
||||
|
||||
http_file(
|
||||
name = "kubernetes_cni",
|
||||
sha256 = "ddcb7a429f82b284a13bdb36313eeffd997753b6fa5191205f1e978dcfeb0792",
|
||||
url = " https://storage.googleapis.com/kubernetes-release/network-plugins/cni-amd64-07a8a28637e97b22eb8dfe710eeae1344f69d16e.tar.gz",
|
||||
)
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar", "pkg_deb")
|
||||
load("@io_kubernetes_build//defs:deb.bzl", "k8s_deb", "deb_data")
|
||||
|
||||
filegroup(
|
||||
name = "debs",
|
||||
srcs = [
|
||||
":kubeadm.deb",
|
||||
":kubectl.deb",
|
||||
":kubelet.deb",
|
||||
":kubernetes-cni.deb",
|
||||
],
|
||||
)
|
||||
|
||||
deb_data(
|
||||
name = "kubectl",
|
||||
data = [
|
||||
{
|
||||
"files": ["//cmd/kubectl"],
|
||||
"mode": "0755",
|
||||
"dir": "/usr/bin",
|
||||
},
|
||||
],
|
||||
)
|
||||
|
||||
deb_data(
|
||||
name = "kubelet",
|
||||
data = [
|
||||
{
|
||||
"files": ["//cmd/kubelet"],
|
||||
"mode": "0755",
|
||||
"dir": "/usr/bin",
|
||||
},
|
||||
{
|
||||
"files": ["kubelet.service"],
|
||||
"mode": "644",
|
||||
"dir": "/lib/systemd/system",
|
||||
},
|
||||
],
|
||||
)
|
||||
|
||||
deb_data(
|
||||
name = "kubeadm",
|
||||
data = [
|
||||
{
|
||||
"files": ["//cmd/kubeadm"],
|
||||
"mode": "0755",
|
||||
"dir": "/usr/bin",
|
||||
},
|
||||
{
|
||||
"files": ["kubeadm-10.conf"],
|
||||
"mode": "644",
|
||||
"dir": "/etc/systemd/system/kubelet.service.d",
|
||||
},
|
||||
],
|
||||
)
|
||||
|
||||
pkg_tar(
|
||||
name = "kubernetes-cni-data",
|
||||
package_dir = "/opt/cni",
|
||||
deps = ["@kubernetes_cni//file"],
|
||||
)
|
||||
|
||||
k8s_deb(
|
||||
name = "kubectl",
|
||||
description = """Kubernetes Command Line Tool
|
||||
The Kubernetes command line tool for interacting with the Kubernetes API.
|
||||
""",
|
||||
)
|
||||
|
||||
k8s_deb(
|
||||
name = "kubelet",
|
||||
depends = [
|
||||
"iptables (>= 1.4.21)",
|
||||
"kubernetes-cni (>= 0.3.0.1)",
|
||||
"iproute2",
|
||||
"socat",
|
||||
"util-linux",
|
||||
"mount",
|
||||
"ebtables",
|
||||
"ethtool",
|
||||
],
|
||||
description = """Kubernetes Node Agent
|
||||
The node agent of Kubernetes, the container cluster manager
|
||||
""",
|
||||
)
|
||||
|
||||
k8s_deb(
|
||||
name = "kubeadm",
|
||||
depends = [
|
||||
"kubelet (>= 1.4.0)",
|
||||
"kubectl (>= 1.4.0)",
|
||||
],
|
||||
description = """Kubernetes Cluster Bootstrapping Tool
|
||||
The Kubernetes command line tool for bootstrapping a Kubernetes cluster.
|
||||
""",
|
||||
)
|
||||
|
||||
k8s_deb(
|
||||
name = "kubernetes-cni",
|
||||
description = """Kubernetes Packaging of CNI
|
||||
The Container Networking Interface tools for provisioning container networks.
|
||||
""",
|
||||
)
|
|
@ -0,0 +1,7 @@
|
|||
[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"
|
||||
ExecStart=
|
||||
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_EXTRA_ARGS
|
|
@ -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
|
Loading…
Reference in New Issue