CLI tool needs an "export all" / "import all" function, or a Terraform-like state management
acknowledged
F
Flamingo pink Python
I am trying to record, track, and modify the state of my Seqera Platform instance. Its proven to be extremely difficult to adequately write out descriptions of all the settings and configurations I end up using in a simple README.md file. I have started resorting instead to the
export
and update
functions of the CLI, such as:tw compute-envs export --workspace 1234567890 --id AbcAbcAbc > My_dev_CE_AbcAbcAbc.json
tw participants list
tw participants update ...
tw workspaces list
tw workspaces update ...
tw pipelines list
tw pipelines update ...
While the CLI tool is invaluable for the ability to do all this Seqera Platform management from the cli, and in a potentially scripted manner, ultimately what I actually need is the ability to export
all
of the "configurable" components of Seqera Platform to a file, update that file as needed, and then upload it back to Seqera Platform to apply the changes. Essentially I think what I need is "Terraform for Seqera Platform", or something to that effect.
Some way to not just manipulate individual aspects of the Platform but to also snapshot all of its configurations to a file that can be tracked in version-control, manipulated outside of Platform, and then used to apply the needed configuration changes to Platform. This would also have the benefit of allowing you to see the entire state of the Platform at once, instead of having to pull out single attributes one at a time.
At a bare minimum, some sort of
export all
+ import all
in a YAML or JSON would help. Let me know what you think, thanks.
M
Mighty Bird
Did you already look at Seqera Kit if it suffices to meet some of your needs?
It is less powerful than Terraform in the sense that it cannot sufficiently detect and modify the state of the existing infrastructure, but for any workspace you start from scratch, you could use it as Infrastructure as Code tool.
Rob Newman
Hi Flamingo pink Python - thanks for the comprehensive overview of your requirements. We are planning on making SDK and CLI functionality a priority in 2025, and a Terraform SDK is something that we are actively investigating. In the interim, there is already one community member that has started this work, and open-sourced the repository - although this is not recommended for production use and is just for reference.
Ken Brewer
Hi Flamingo pink Python ,
The code repo that Rob referenced is something that I built before joining Seqera. It uses the third party terraform provider by healx. One limitation of healx's provider is that it only works for aws compute environments, but it should be able to do the participant, pipeline, and workspace management regardless of what compute environment you're using.
Rob Newman
acknowledged