-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Description
Following up on #16679 (review)
While building Cilium itself only makes sense for Linux, certain packages are imported by other projects - namely hubble and cilium-cli. These projects are also built for other platforms, mainly macOS and Windows. Moreover, some Cilium developers use macOS and might want to be able to at least build and unit test certain non-Linux-specific bits of Cilium on their development machines without running a VM.
This issue is about compiling a list of packages that should be buildable on non-Linux platforms (though maybe with certain features stubbed out), fixing these packages to build on all platforms and adding a CI test ensuring that future changes don't break them.
Preliminary list of packages
Direct dependencies in cilium-cli and hubble
api/v1/flow
api/v1/models
api/v1/observer
api/v1/peer
api/v1/recorder
api/v1/relay
pkg/hubble/api/v1
pkg/hubble/filters
pkg/k8s/apis/cilium.io/v2
pkg/k8s/client/clientset/versioned
,pkg/k8s/client/clientset/versioned/scheme
pkg/monitor/api
pkg/versioncheck
Transitive dependencies in cilium-cli
pkg/version
-- ref. version, metrics: allow to build on non-unix platforms #16679pkg/fqdn
,pkg/fqdn/dns
,pkg/fqdn/matchpattern
-- ref. Avoid transitive dependency on github.com/miekg/dns in policy API #16806pkg/option
,pkg/mac
,pkg/ip
-- ref. ingress: Couple of changes to support Ingress/CEC/CCWEC cilium-cli#825 (comment)pkg/mtu
,pkg/node
-- ref. Add JSON status (fix #956) cilium-cli#958 (comment)pkg/metrics
-- ref. Remove dependencies on linux probes for Windows builds #28367
Non-Linux specific bits
cilium-operator
-- ref. version, metrics: allow to build on non-unix platforms #16679 (comment)dev-doctor
Others
pkg/cgroups
,pkg/health/server
,pkg/modules
,pkg/mountinfo
-- ref. Stub out some functionality on non-Linux platforms #15355
Related:
#15355
#16679
#16806
cilium/cilium-cli#231