From 3757e8bb5cddba2d60e92ec4b062385a7bdc6e63 Mon Sep 17 00:00:00 2001 From: Mike Danese Date: Tue, 11 Apr 2017 10:22:17 -0700 Subject: [PATCH] bazel: statically link dockerized components and remove libc from docker images when it's not needed. --- build/BUILD | 15 ++++----------- cmd/cloud-controller-manager/BUILD | 7 +++++++ cmd/kube-apiserver/BUILD | 6 ++++++ cmd/kube-controller-manager/BUILD | 6 ++++++ cmd/kube-proxy/BUILD | 6 ++++++ cmd/kubeadm/BUILD | 6 ++++++ cmd/kubectl/BUILD | 6 ++++++ plugin/cmd/kube-scheduler/BUILD | 6 ++++++ staging/src/k8s.io/kube-aggregator/BUILD | 7 +++++++ 9 files changed, 54 insertions(+), 11 deletions(-) diff --git a/build/BUILD b/build/BUILD index 2469ad3a34..9aec8d12a2 100644 --- a/build/BUILD +++ b/build/BUILD @@ -32,17 +32,10 @@ docker_build( ) docker_build( - name = "busybox-libc", + name = "busybox-net", base = ":busybox", debs = [ "@libc_deb//file", - ], -) - -docker_build( - name = "busybox-net", - base = ":busybox-libc", - debs = [ "@iptables_deb//file", "@iproute2_deb//file", "@libnetlink_deb//file", @@ -52,15 +45,15 @@ docker_build( DOCKERIZED_BINARIES = { "kube-apiserver": { - "base": ":busybox-libc", + "base": ":busybox", "target": "//cmd/kube-apiserver:kube-apiserver", }, "kube-controller-manager": { - "base": ":busybox-libc", + "base": ":busybox", "target": "//cmd/kube-controller-manager:kube-controller-manager", }, "kube-scheduler": { - "base": ":busybox-libc", + "base": ":busybox", "target": "//plugin/cmd/kube-scheduler:kube-scheduler", }, "kube-proxy": { diff --git a/cmd/cloud-controller-manager/BUILD b/cmd/cloud-controller-manager/BUILD index e6cbb218a3..fc3284c570 100644 --- a/cmd/cloud-controller-manager/BUILD +++ b/cmd/cloud-controller-manager/BUILD @@ -10,7 +10,14 @@ load( go_binary( name = "cloud-controller-manager", + gc_linkopts = [ + "-linkmode", + "external", + "-extldflags", + "-static", + ], library = ":go_default_library", + linkstamp = "k8s.io/kubernetes/pkg/version", tags = ["automanaged"], ) diff --git a/cmd/kube-apiserver/BUILD b/cmd/kube-apiserver/BUILD index 5676f81da6..25065474ad 100644 --- a/cmd/kube-apiserver/BUILD +++ b/cmd/kube-apiserver/BUILD @@ -10,6 +10,12 @@ load( go_binary( name = "kube-apiserver", + gc_linkopts = [ + "-linkmode", + "external", + "-extldflags", + "-static", + ], library = ":go_default_library", linkstamp = "k8s.io/kubernetes/pkg/version", tags = ["automanaged"], diff --git a/cmd/kube-controller-manager/BUILD b/cmd/kube-controller-manager/BUILD index a13697e24b..9554727c37 100644 --- a/cmd/kube-controller-manager/BUILD +++ b/cmd/kube-controller-manager/BUILD @@ -10,6 +10,12 @@ load( go_binary( name = "kube-controller-manager", + gc_linkopts = [ + "-linkmode", + "external", + "-extldflags", + "-static", + ], library = ":go_default_library", linkstamp = "k8s.io/kubernetes/pkg/version", tags = ["automanaged"], diff --git a/cmd/kube-proxy/BUILD b/cmd/kube-proxy/BUILD index 26a19c4a4c..639aadf1b6 100644 --- a/cmd/kube-proxy/BUILD +++ b/cmd/kube-proxy/BUILD @@ -10,6 +10,12 @@ load( go_binary( name = "kube-proxy", + gc_linkopts = [ + "-linkmode", + "external", + "-extldflags", + "-static", + ], library = ":go_default_library", linkstamp = "k8s.io/kubernetes/pkg/version", tags = ["automanaged"], diff --git a/cmd/kubeadm/BUILD b/cmd/kubeadm/BUILD index 436ef0b621..0bbf605f3d 100644 --- a/cmd/kubeadm/BUILD +++ b/cmd/kubeadm/BUILD @@ -10,6 +10,12 @@ load( go_binary( name = "kubeadm", + gc_linkopts = [ + "-linkmode", + "external", + "-extldflags", + "-static", + ], library = ":go_default_library", linkstamp = "k8s.io/kubernetes/pkg/version", tags = ["automanaged"], diff --git a/cmd/kubectl/BUILD b/cmd/kubectl/BUILD index 7ba7b9a652..fae5b02cf1 100644 --- a/cmd/kubectl/BUILD +++ b/cmd/kubectl/BUILD @@ -10,6 +10,12 @@ load( go_binary( name = "kubectl", + gc_linkopts = [ + "-linkmode", + "external", + "-extldflags", + "-static", + ], library = ":go_default_library", linkstamp = "k8s.io/kubernetes/pkg/version", tags = ["automanaged"], diff --git a/plugin/cmd/kube-scheduler/BUILD b/plugin/cmd/kube-scheduler/BUILD index 398fc06b70..a2c84ed9b4 100644 --- a/plugin/cmd/kube-scheduler/BUILD +++ b/plugin/cmd/kube-scheduler/BUILD @@ -10,6 +10,12 @@ load( go_binary( name = "kube-scheduler", + gc_linkopts = [ + "-linkmode", + "external", + "-extldflags", + "-static", + ], library = ":go_default_library", linkstamp = "k8s.io/kubernetes/pkg/version", tags = ["automanaged"], diff --git a/staging/src/k8s.io/kube-aggregator/BUILD b/staging/src/k8s.io/kube-aggregator/BUILD index 5f1c4fdb07..3a110c98b3 100644 --- a/staging/src/k8s.io/kube-aggregator/BUILD +++ b/staging/src/k8s.io/kube-aggregator/BUILD @@ -10,7 +10,14 @@ load( go_binary( name = "kube-aggregator", + gc_linkopts = [ + "-linkmode", + "external", + "-extldflags", + "-static", + ], library = ":go_default_library", + linkstamp = "k8s.io/kubernetes/pkg/version", tags = ["automanaged"], )