@@ -32,8 +32,11 @@ var k8sBinDir = flag.String("k8s-bin-dir", "", "Directory containing k8s kubelet
32
32
var useDockerizedBuild = flag .Bool ("use-dockerized-build" , false , "Use dockerized build for test artifacts" )
33
33
var targetBuildArch = flag .String ("target-build-arch" , "linux/amd64" , "Target architecture for the test artifacts for dockerized build" )
34
34
35
- var buildTargets = []string {
35
+ var buildCGOTargets = []string {
36
36
"cmd/kubelet" ,
37
+ }
38
+
39
+ var buildNoCGOTargets = []string {
37
40
"test/e2e_node/e2e_node.test" ,
38
41
"github.com/onsi/ginkgo/v2/ginkgo" ,
39
42
"cluster/gce/gci/mounter" ,
@@ -42,13 +45,34 @@ var buildTargets = []string{
42
45
43
46
// BuildGo builds k8s binaries.
44
47
func BuildGo () error {
48
+ if err := BuildTargets (true ); err != nil {
49
+ return fmt .Errorf ("unable to build cgo targets : %w" , err )
50
+ }
51
+ if err := BuildTargets (false ); err != nil {
52
+ return fmt .Errorf ("unable to build non-cgo targets : %w" , err )
53
+ }
54
+ return nil
55
+ }
56
+
57
+ // BuildGo builds k8s binaries.
58
+ func BuildTargets (cgo bool ) error {
45
59
klog .Infof ("Building k8s binaries..." )
46
60
k8sRoot , err := utils .GetK8sRootDir ()
47
61
if err != nil {
48
62
return fmt .Errorf ("failed to locate kubernetes root directory %v" , err )
49
63
}
50
- targets := strings .Join (buildTargets , " " )
51
- cmd := exec .Command ("make" , "-C" , k8sRoot , fmt .Sprintf ("WHAT=%s" , targets ))
64
+ targets := buildCGOTargets
65
+ if ! cgo {
66
+ targets = buildNoCGOTargets
67
+ }
68
+ what := strings .Join (targets , " " )
69
+ cmd := exec .Command ("make" , "-C" , k8sRoot ,
70
+ fmt .Sprintf ("WHAT=%s" , what ))
71
+ if cgo {
72
+ cmd .Args = append (cmd .Args , "CGO_ENABLED=1" )
73
+ } else {
74
+ cmd .Args = append (cmd .Args , "CGO_ENABLED=0" )
75
+ }
52
76
if IsDockerizedBuild () {
53
77
klog .Infof ("Building dockerized k8s binaries targets %s for architecture %s" , targets , GetTargetBuildArch ())
54
78
// Multi-architecture build is only supported in dockerized build
0 commit comments