https://github.com/converged-computing/nfd-source
Prototype / experiment or example for moving the node feature discovery extractors out of tree
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
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
Metadata Files
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
- Website: https://converged-computing.org
- Repositories: 84
- Profile: https://github.com/converged-computing
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
- Homepage: https://github.com/converged-computing/nfd-source
- Documentation: https://pkg.go.dev/github.com/converged-computing/nfd-source#section-documentation
- License: Apache-2.0
Rankings
Dependencies
- 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
- 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