Skip to content

About

Reusable Python connectors to infrastructure systems, for inventory and GitOps.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Connectors

License: Apache 2.0 Python

Reusable connectors to infrastructure systems, written in Python.

A connector is a script that knows one kind of system. A service runs it as a command in a git project it pulls, with its settings and credentials in the environment and JSON on stdout. This repository is that project, shared, so each system's connector is written once.

There are two kinds: an inventory connector reads hosts and their facts, and a GitOps connector lists the objects it manages and applies one change at a time.


✨ Features

  • Two kinds of connector: inventory reads hosts; GitOps lists objects and applies changes
  • One system, one script: plus the shared helpers it imports; nothing to install per system
  • No secrets in git: addresses and credentials come from the service's config, in the environment
  • Read-only unless asked: a gitops connector writes only on apply, when writing is allowed
  • JSON in, JSON out: data on stdout, messages on stderr, exit 0 only with a whole document
  • Interruptible: a run past its timeout is killed, so a script never leaves half-written state
  • Self-describing: a gitops connector says which kinds it manages, their key and what goes first
  • Pulled, not packaged: a service checks this repository out as a project; no image rebuild

🔌 Connectors

Folder System Inventory GitOps
centreon Centreon monitored hosts and their services ✓
cisco_ucs Cisco UCS Manager blades ✓
dell_avamar Dell Avamar backup clients and their backups ✓
device42 Device42 devices, through DOQL ✓
infinidat_infinibox InfiniBox hosts and their volumes ✓
kv Key-value store in a folder (example) ✓
portainer Portainer settings, environments and users ✓
pure_flasharray Pure Storage FlashArray hosts and their volumes ✓
vmware_vcenter vCenter virtual machines ✓

Every inventory connector is a single file that imports nothing from this repository: copy it anywhere, or point any tool that runs scripts at it in a checkout, Ascender included. To run it on its own, set the source's settings as JSON in SOURCE_CONFIG and the credentials as the variables its README lists, for example UCS_<TAG>_BASE_URL, _USERNAME and _PASSWORD from a credential type. vmware_vcenter needs pyvmomi; device42 uses PyYAML when its filter files are YAML.


🤝 Contributing

Contributions are welcome: CONTRIBUTING.md covers the PR workflow, commit style, checks and connector rules.

Security issues: see SECURITY.md for private reporting.


👥 Authors


⚖️ License

Apache 2.0

About

Reusable Python connectors to infrastructure systems, for inventory and GitOps.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages