tinkerbell / hegel

Instance Metadata Service
https://tinkerbell.org
Apache License 2.0
97 stars 32 forks source link

Thoughts on generalizing to CMDB with plugins or standardizing API for others? #57

Closed nwmcsween closed 2 years ago

nwmcsween commented 3 years ago

Looking at various CMDBs and Hegel it seems like it could be supplanted with a CMDB as duplication occurs between both the CMDB and Hegel

detiber commented 3 years ago

@nwmcsween I don't necessarily see a CMDB automatically replacing hegel, since there will still be a need for at least a subset of the metadata to be standardized as we look to fully wire up things like cloud-init support during bootstrapping, etc.

I could potentially see some type of a plugin system that would allow Hegel to interact with an external CMDB and translate things between the two, though.

nwmcsween commented 3 years ago

Most CMDB's by default don't have a real schema but deal with 'objects' that are defined by the relations and generic data. I really think hegel is superfluous vs. a CMDB or if Hegel was even spun off as a CMDB. Reasoning for this is it's much easier to store data within a CMDB as a source of truth then to have it across n services duplicated.

detiber commented 3 years ago

@nwmcsween to give you some context, with cloud-init on the host, and hegel providing standardized metadata (through both a custom format and an AWS compatible format), it is possible to annotate the Hardware definition within Tinkerbell to provide userdata that is available at runtime when bootstrapping using cloud-init.

I'm taking advantage of this as I'm updating cluster-api-provider-tinkerbell to leverage pre-baked images, and the process works surprisingly well. Without hegel (or a similar service providing standardized metadata) the templates/workflows needed become more complicated because that data injection needs to be moved there instead of at runtime.

jacobweinstock commented 3 years ago

similar/adjacent discussion here: https://github.com/tinkerbell/tink/issues/253

jacobweinstock commented 3 years ago

discussed in triage:

nwmcsween commented 3 years ago

I disagree with point 3, we do immutable bare metal infra using ipxe and git that nukes systems on config changes so install data is definitely not transient.

On Tue., Sep. 7, 2021, 9:56 a.m. Jacob Weinstock, @.***> wrote:

discussed in triage:

  • external integrations (especially netbox)
  • document existing ways to integrate
  • Tink data is more transient/install time data than l longer lived source of truth data

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/tinkerbell/hegel/issues/57#issuecomment-914427870, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEYC3ZNHICXTNSQN5DG65LUAYY2PANCNFSM4V7K2WTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

chrisdoherty4 commented 2 years ago

Closing the issue as its stale and there isn't an appetite to move toward a CMDB.