Description
Create a Docker-in-Docker container capable of running the unity-app-generator software.
Currently application packages are built in two manners:
- Manually through direct use of the unity-app-generator
- Automatically using the Application Package Generation API endpoint
This ticket aims to replace the latter. The current approach involves a API Gateway end point that calls a Lambda. That Lambda then triggers a process in the MCP self hosted Gitlab instance. The Gitlab actions there run the unity-app-generator to build a package and place it within Dockerhub and Dockstore.
But that approach is opaque to users of the API endpoint because there is no feedback on success or failure. Due to the licensing nature of Gitlab, only 2 people have direct access to the build logs.
Instead we would like to replace the Gitlab portion of this process with one that uses Airflow for the building of packages using unity-app-generator. This will require in this order:
- A Docker image that uses Docker-in-Docker to call unity-app-generator:
- build_ogc_app init
- build_ogc_app build_docker
- build_ogc_app push_docker
- build_ogc_app build_cwl
- build_ogc_app push_app_registry
- An Airflow DAG that calls item 1 - [New Feature]: Create DAG to execute the Application Package generator unity-sps#275
- Modifications to the existing Application Package Generation Lambda to call item 2 instead of Gitlab
Item 1 will require the ability to pass credentials for push_docker and push_app_registry to the Docker image.
Item 2 will require the ability to either store the credentials in a secret store within Airflow or pass them along from item 3.
Item 3 may or may not pull credentials from the AWS Parameter store.
Since the current way Airflow is exposed allows multiple users to look at jobs, credential obfuscation in logs is an essential element of the task. Why? Because in the future it is conceivable that the Application Package Generation API endpoint could allow users to pass their credentials to direct the storage of Docker images and CWL files.
The two credentials involved are one to a Docker registry and one to an application catalog. In the current configuration the Docker registry is Dockerhub and the application catalog is Dockstore.
Metadata
Metadata
Assignees
Type
Projects
Status