feat: support container-based plugins
See original GitHub issueProblem to Solve
There is a whole world of plugins outside of the Python ecosystem that would benefit from having Meltano act as their foundation. Specific examples include:
- https://www.bytebase.com/ (written in Go)
- https://metriql.com/ (written in Kotlin)
- https://github.com/evidence-dev/evidence (written in Svelte)
- DuckDB (all sorts of languages going on)
- target-clickhouse: https://github.com/meltano/hub/issues/652
The current container_spec
implementation is insufficient for some of the use cases of these plugins. There may be no pip_url and the user may likely never need or want to interact with the plugin outside of the containerized context.
The goal of this is to unlock a larger world of possible plugins for Meltano
Prior Art / Things to Consider
- We only currently support docker https://github.com/meltano/meltano/issues/3246
- https://github.com/meltano/meltano/issues/3181 should be considered as there are taps and targets that are written in other languages
- https://github.com/meltano/meltano/issues/3300 is a previous issue written by Pat while he was attempting to use Superset w/ Meltano
- https://github.com/meltano/meltano/issues/3127 will likely need to be considered as part of this
- https://github.com/meltano/meltano/issues/3246 Other container runtimes
- https://github.com/meltano/meltano/issues/3389 what we send into the container environment
Definition of Done
- Any dockerized tool should be able to be used within Meltano as a utility
- Bytebase and Lightdash should be used as a test bed for validating.
- YAML spec is updated to support containerized plugins
- Consideration for other multiple container specs - docker can be used as primary for this
- Documentation updated in Meltano and the Hub to make it clear how to use these plugins
Issue Analytics
- State:
- Created a year ago
- Reactions:2
- Comments:6 (1 by maintainers)
Top Results From Across the Web
progrium/docker-plugins - GitHub
A Docker container for running plugn plugins that respond to Docker events, and a builtin collection of generally useful Docker plugins.
Read more >Container Guide - SUSE Documentation
The following guide covers the SUSE Linux Enterprise container ecosystem. Since containers are a constantly evolving technology, the guide ...
Read more >DataCore storage gets Kubernetes and Docker plugins
New DataCore plugins for Kubernetes and Docker will help customers developing container-based applications and microservices to access its ...
Read more >Use Docker Engine plugins
An open source volume plugin that provides multi-tenant, persistent, distributed storage with intent based consumption. It has support for Ceph and NFS. Convoy ......
Read more >List of Plugins By Category - Fluentd
Download Name Author Version
68239 amazon_sns Tatsuhiko Miyagawa 0.1.0
7381 aurora‑slowquerylog Takayuki WATANABE 0.0.4
13543110 aws‑elasticsearch‑service atomita 2.4.1
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
@aaronsteers I think that’s a fair statement. There are some oddities in the implementation that we can clear up likely in other issues.
One thing I do want to call out though is the perception challenge with container based plugins. The fact that it even feels like we might not support containerized plugins is itself a problem and we should fix through documentation and marketing. But also given recent conversations on priorities I believe we’re good to close this issue and keep the discussion in https://github.com/meltano/meltano/discussions/6459 and in specific docs issues.
@tayloramurphy and @DouweM - I’m not clear what the deficiency is, or if there is any deficiency at all. Non-Python plugins are already fully supported - as evidenced by the evidence.dev integration I built here: https://github.com/aaronsteers/aj-dataops-personal/blob/main/meltano.yml#L193-L246
Are we sure there are limitations or do we just need more ‘in the wild’ examples of container-based plugins to be added to the hub. If the former and we do have limitations, we should document those as issues to address.