Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implements all of the Alloy components #4

Merged
merged 31 commits into from
Aug 2, 2022
Merged

Conversation

joelrebel
Copy link
Member

@joelrebel joelrebel commented Jul 15, 2022

This PR implements Alloy itself to function as an inventory collector - for both inband, and out of band data collection.

To understand how the changes included come together, have a look at
README-development.md
README.md

The changes included basically implements,

  • Two Alloy commands - inband , outofband
  • Three Alloy components - the Asset getter, Inventory collector, Inventory publisher,
    the components function together to collect and publish hardware inventory.

TODO:

Copy link
Collaborator

@diogomatsubara diogomatsubara left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the work on this @joelrebel !

I have a few comments and a more general clarification.

It's my understanding there are two main cases for use alloy. First case is to use alloy as part of the deprovisioning process to collect hardware inventory (inband).
The second case is to use alloy as a standalone tool that collects hardware inventory for the whole fleet (oob).

It seems to me that this code is optimised for the second case due to its concurrency aspects. Is this the correct understanding?

examples/alloy.yaml Outdated Show resolved Hide resolved
examples/alloy.yaml Show resolved Hide resolved
examples/alloy.yaml Show resolved Hide resolved
examples/assets.csv Show resolved Hide resolved
cli.go Show resolved Hide resolved
internal/fixtures/bmclib.go Show resolved Hide resolved
internal/fixtures/ironlib.go Show resolved Hide resolved
internal/publish/hollow.go Outdated Show resolved Hide resolved
internal/publish/hollow.go Outdated Show resolved Hide resolved
internal/publish/publisher.go Show resolved Hide resolved
@joelrebel joelrebel merged commit df92cf1 into main Aug 2, 2022
@joelrebel joelrebel deleted the getter-collector-publisher branch August 2, 2022 14:39
joelrebel added a commit that referenced this pull request Aug 29, 2022
* docs: Add README, development notes
* examples: add sample config, image assets
* Update Makefile, CI linter, pull request template
* internal/model: define Asset, AssetDevice, Config structs
* app: App holds attributes to initialize Alloy
* internal/asset: Asset getter interface and csv implemention
* internal/fixtures: add emapi getter mock implementation
* internal/asset/emapi: emapi asset getter implementation
* internal/collect: define interface, errors
* internal/fixtures: add device mock data, returned by a collector
* internal/fixtures: add out of band fixture data for tests
* internal/fixtures: add inband fixture data for tests
* internal/collect/inband: implement inband inventory collector
* internal/collect/inband: implement out of band inventory collector
* internal/fixtures: add asset getter mock implementation
* internal/publish: define interface and implement stdout publisher
* internal/publisher: implement hollow publisher
* internal/fixtures: add hollow service mock data
* cmd: cli commands and inband cli command
* cmd/outofband: implement outofband cli command
* purge bin file
* docs: a directory for docs and related files
* .gitignore: ignore alloy binary
* cmd/outofband: follow camelcase convention for struct name
* replace all references and variable names from hollow to serverService
* clear unused global vars and add proper method comments
* go: update to upstream bmclib v2 release; switch to Go 1.18
* CI: update dockerfile for alloy inband build
* ci: disable CODEQL scanning until repository is public
* ci: build alloy docker image as alloy-inband
* README: stick with short flag options in the examples
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants