https://github.com/converged-computing/nfd-source

Prototype / experiment or example for moving the node feature discovery extractors out of tree

https://github.com/converged-computing/nfd-source

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.8%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Prototype / experiment or example for moving the node feature discovery extractors out of tree

Basic Info
  • Host: GitHub
  • Owner: converged-computing
  • License: apache-2.0
  • Language: Go
  • Default Branch: main
  • Size: 657 KB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 3
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

README.md

Node Feature Discovery Source

This is node-feature-discovery source moved out of tree to allow for using the APIs separately from Kubernetes. To join the discussion, please see this issue.

Notes

These are development notes for the migration. I used git-filter-repo to select just source and the specific API directory:

bash git-filter-repo --path source/ --path pkg/apis/nfd/v1alpha1/ --path pkg/utils/ --path pkg/cpuid/ --path LICENSE

The above ensures that original author contributions (commit history) is maintained.

Changes

I made the following changes to cleanly separate the Kubernetes logic from the source logic.

  • pkg/apis/nfd/v1alpha1/types.go
    • The need for corev1 in types.go is only because of Taints, which I don't see anywhere in source so I'm removing.
    • metav1 is to add object metadata (also for Kubernetes) so I will remove that for now.
    • The protocol buffers would also be for gRPC, which is a specific use case not necessary for underlying source.
    • It looks like we don't actually need NodeFeature, NodeFeatureSpec, NodeFeatureList, NodeFeatureRule (these are higher level in the logic)
    • The entire namespace of Rule/Match is oriented to custom, which also seems like it belongs in the upstream
    • I'm keeping the same path for now to maintain git history
    • When we remove the above, the interface is very simple!
  • pkg/apis/nfd/v1alpha1/register.go
    • Is primarily for K8s schemas, etc. can be removed.
  • pkg/apis/nfd/v1alpha1/feature.go
    • MergeInto functions are not used, as aren't the Node specific ones.
  • pkg/apis/nfd/v1alpha1/nodefeaturerule
    • Also does not seem used in source
  • pkg/utils/flags.go also not used
  • pkg/utils/memory_resources.go (and test) are not used in source, this is again for K8s
  • pkg/utils/(klog|kubeconf|grpc_log.go|metrics.go|tls.go) are kubernetes specific, also removing, and kubernetes.go
  • klog is replaced with "slog" which is part of go as of 1.21.

Owner

  • Name: Converged Computing
  • Login: converged-computing
  • Kind: organization

The best of cloud and high performance computing: technology and community combined.

GitHub Events

Total
Last Year

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 0
proxy.golang.org: github.com/converged-computing/nfd-source
  • Versions: 0
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.6%
Average: 9.2%
Dependent repos count: 9.7%
Last synced: 10 months ago

Dependencies

go.mod go
  • github.com/coreos/go-systemd/v22 v22.3.2
  • github.com/cyphar/filepath-securejoin v0.2.4
  • github.com/davecgh/go-spew v1.1.1
  • github.com/fsnotify/fsnotify v1.7.0
  • github.com/godbus/dbus/v5 v5.0.6
  • github.com/klauspost/cpuid/v2 v2.2.7
  • github.com/moby/sys/mountinfo v0.5.0
  • github.com/opencontainers/runc v1.1.12
  • github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/sirupsen/logrus v1.8.1
  • github.com/stretchr/objx v0.5.0
  • github.com/stretchr/testify v1.8.4
  • golang.org/x/exp v0.0.0-20240213143201-ec583247a57a
  • golang.org/x/sys v0.6.0
  • gopkg.in/yaml.v3 v3.0.1
  • sigs.k8s.io/yaml v1.4.0
go.sum go
  • github.com/coreos/go-systemd/v22 v22.3.2
  • github.com/cyphar/filepath-securejoin v0.2.4
  • github.com/davecgh/go-spew v1.1.0
  • github.com/davecgh/go-spew v1.1.1
  • github.com/fsnotify/fsnotify v1.7.0
  • github.com/godbus/dbus/v5 v5.0.4
  • github.com/godbus/dbus/v5 v5.0.6
  • github.com/google/go-cmp v0.5.9
  • github.com/klauspost/cpuid/v2 v2.2.7
  • github.com/moby/sys/mountinfo v0.5.0
  • github.com/opencontainers/runc v1.1.12
  • github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/sirupsen/logrus v1.8.1
  • github.com/stretchr/objx v0.1.0
  • github.com/stretchr/objx v0.4.0
  • github.com/stretchr/objx v0.5.0
  • github.com/stretchr/testify v1.2.2
  • github.com/stretchr/testify v1.7.1
  • github.com/stretchr/testify v1.8.0
  • github.com/stretchr/testify v1.8.4
  • golang.org/x/exp v0.0.0-20240213143201-ec583247a57a
  • golang.org/x/sys v0.0.0-20191026070338-33540a1f6037
  • golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359
  • golang.org/x/sys v0.5.0
  • golang.org/x/sys v0.6.0
  • gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
  • gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
  • gopkg.in/yaml.v3 v3.0.1
  • sigs.k8s.io/yaml v1.4.0