From: Dan Fuhry Date: Wed, 8 Jul 2026 12:06:37 +0000 (-0400) Subject: template-ize dbus policy in runtime-utils, fix systemd unit path X-Git-Url: https://go.fuhry.dev/?a=commitdiff_plain;h=aa4551e57da190ae204ddc1c8b6b8fecb4bfeaa7;p=runtime.git template-ize dbus policy in runtime-utils, fix systemd unit path --- diff --git a/cmd/mtls_exporter/BUILD.bazel b/cmd/mtls_exporter/BUILD.bazel index 5b4786a..1f4b6ec 100644 --- a/cmd/mtls_exporter/BUILD.bazel +++ b/cmd/mtls_exporter/BUILD.bazel @@ -26,6 +26,9 @@ systemd_service( group = "root", type = "notify", user = "root", + args = [ + "--mtls.id=node-exporter", + ], deps = [ "${const:ExePrefix}metric-collector.service", ], diff --git a/metrics/metricbus/BUILD.bazel b/metrics/metricbus/BUILD.bazel index 54cbb3a..31855b8 100644 --- a/metrics/metricbus/BUILD.bazel +++ b/metrics/metricbus/BUILD.bazel @@ -1,4 +1,5 @@ load("//bazel:go.bzl", "go_multi_library") +load("//bazel:subst.bzl", "subst") go_multi_library( name = "metricbus", @@ -10,3 +11,12 @@ go_multi_library( "@com_github_godbus_dbus_v5//:dbus", ], ) + +subst( + name = "dbus_conf", + src = "dbus.conf.in", + out = "dbus.conf", + visibility = [ + "//pkg:__pkg__", + ], +) diff --git a/metrics/metricbus/dbus-1/dev.fuhry.runtime.metrics.conf b/metrics/metricbus/dbus-1/dev.fuhry.runtime.metrics.conf deleted file mode 100644 index 8978141..0000000 --- a/metrics/metricbus/dbus-1/dev.fuhry.runtime.metrics.conf +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/metrics/metricbus/dbus.conf.in b/metrics/metricbus/dbus.conf.in new file mode 100644 index 0000000..5d85331 --- /dev/null +++ b/metrics/metricbus/dbus.conf.in @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/pkg/BUILD.bazel b/pkg/BUILD.bazel index a171e56..6618f23 100644 --- a/pkg/BUILD.bazel +++ b/pkg/BUILD.bazel @@ -17,6 +17,7 @@ nfpm_package( "//cmd/sd_register:sd_register@_systemd_service", "//cmd/sd_register:sd_register_systemd_service", "//cmd/sd_watcher", + "//metrics/metricbus:dbus_conf", ], ) diff --git a/pkg/nfpmgen/config_generator.go b/pkg/nfpmgen/config_generator.go index e3c8396..52b397e 100644 --- a/pkg/nfpmgen/config_generator.go +++ b/pkg/nfpmgen/config_generator.go @@ -104,6 +104,28 @@ func LoadNfpmConfig(yamlPath string, fileAllowlist []string, varOverrides subst. return out, nil } +func (c *NfpmConfig) DiscoverBuildArtifacts() error { + wd, err := os.Getwd() + if err != nil { + return err + } + for _, entry := range c.Contents { + if strings.HasPrefix(entry.Source, "//") { + // FIXME: don't hardcode k8-fastbuild here, it's probably x86-specific + newsrc := path.Join(wd, "bazel-out", "k8-fastbuild", "bin", entry.Source[2:]) + newsrc, err = os.Readlink(newsrc) + if err != nil { + return fmt.Errorf( + "failed reading runfile %q (abspath: %q): %v\nwd: %q", + entry.Source, newsrc, err, wd) + } + entry.Source = newsrc + } + } + + return nil +} + func (c *NfpmConfig) DiscoverBinaries(bazelBinDirs []string) error { wd, err := os.Getwd() if err != nil { @@ -252,7 +274,7 @@ func (c *NfpmConfig) DiscoverSystemdUnits(bazelBinDirs []string) error { c.Config.Contents = append(c.Config.Contents, &files.Content{ Source: f, - Destination: "/usr/lib/systemd/" + destName, + Destination: "/usr/lib/systemd/system/" + destName, FileInfo: &files.ContentFileInfo{ Owner: "root", Group: "root", diff --git a/pkg/nfpmgen/main.go b/pkg/nfpmgen/main.go index 55c72fe..0046142 100644 --- a/pkg/nfpmgen/main.go +++ b/pkg/nfpmgen/main.go @@ -73,6 +73,10 @@ func main() { debug("loaded nfpm config template: %s\ncwd: %s\nout: %s\nbazelBinDirs: %+v\n", *yamlFile, wd, *outFile, bazelBinDirs) + if err := c.DiscoverBuildArtifacts(); err != nil { + panic(err) + } + if err := c.DiscoverBinaries(bazelBinDirs); err != nil { panic(err) } diff --git a/pkg/runtime-utils.yaml b/pkg/runtime-utils.yaml index 763ca20..85e11d6 100644 --- a/pkg/runtime-utils.yaml +++ b/pkg/runtime-utils.yaml @@ -14,7 +14,13 @@ description: Tools needed by virtually all ${const:OrgName} systems for service vendor: "${const:OrgName}" homepage: "https://go.fuhry.dev/runtime" license: "Proprietary" -contents: [] +contents: + - src: "//metrics/metricbus/dbus.conf" + dst: "/usr/share/dbus-1/system.d/${const:DbusPrefix}.metrics.conf" + file_info: + owner: root + group: root + mode: 0644 rename_rules: - src: "/usr/bin/${const:ExePrefix}ephs-client" dst: "/usr/bin/ephs"