Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dockerfile for Twitcher with Magpie adapter #182

Closed
fmigneault opened this issue May 7, 2019 · 13 comments · Fixed by #184
Closed

Dockerfile for Twitcher with Magpie adapter #182

fmigneault opened this issue May 7, 2019 · 13 comments · Fixed by #184
Assignees
Labels

Comments

@fmigneault
Copy link
Collaborator

Use latest Twitcher with its docker image as base to build a new Magpie-flavoured image overriding the adapter.

@fmigneault fmigneault self-assigned this May 7, 2019
@dbyrns
Copy link
Contributor

dbyrns commented May 7, 2019

@huard, @tlvu here is our plan:

  • Submit a PR to the birdhouse/twitcher so that interfaces required by Magpie are available as well as providing a dockerfile (which is currently missing).
  • Add a dockerfile inside the magpie repo that build on top of the stock twitcher image which install the interface implementation of Magpie (using AuthN and AuthZ of Magpie). This way each time Magpie is updated we can build the two modules.
  • Finally the web app will use the new component Weaver to fetch registered processes, launch job, monitor them and get the result all via its rest interface (like finch). That will provide a way to list all processes in a single flat list as required in the past.
  • Twitcher will still be used as a policy enforcement point but since all WPS providers will be hidden behind Weaver, this is the only WPS component that will require to be protected. Each registered processes considered as weaver resources with individual permissions set.

Tel me if that sound good to you.

@huard
Copy link
Contributor

huard commented May 7, 2019 via email

@tlvu
Copy link
Contributor

tlvu commented May 8, 2019

* Add a dockerfile inside the magpie repo that build on top of the stock twitcher image which install the interface implementation of Magpie (using AuthN and AuthZ of Magpie). This way each time Magpie is updated we can build the two modules.

So the Magpie repo will create 2 differents docker images? pavics/magpie (magpie standalone) and pavics/twitcher-magpie (twitcher image with magpie as adapteur pre-installed to avoid it being installed only at container startup time)?

* Finally the web app will use the new component Weaver to fetch registered processes, launch job, monitor them and get the result all via its rest interface (like finch). That will provide a way to list all processes in a single flat list as required in the past.

The "web app" you mean magpie web interface to set user permissions?

Tel me if that sound good to you.

+1 for me as well, thanks !

@dbyrns
Copy link
Contributor

dbyrns commented May 8, 2019

So the Magpie repo will create 2 differents docker images? pavics/magpie (magpie standalone) and pavics/twitcher-magpie (twitcher image with magpie as adapteur pre-installed to avoid it being installed only at container startup time)?

Yes, that's what we want to avoid. Moreover it will be more intuitive to rebuild the twitcher-magpie image when magpie is updated if its docker is at the same place.

The "web app" you mean magpie web interface to set user permissions?

No I mean what we used to call the platform, but the PAVICS web app, the main interface. What is really blocking us right now to update you to the latest version of magpie / twitcher.

+1 for me as well, thanks !

Thank you for your support on this.

@tlvu
Copy link
Contributor

tlvu commented May 8, 2019

So the Magpie repo will create 2 differents docker images? pavics/magpie (magpie standalone) and pavics/twitcher-magpie (twitcher image with magpie as adapteur pre-installed to avoid it being installed only at container startup time)?

Yes, that's what we want to avoid. Moreover it will be more intuitive to rebuild the twitcher-magpie image when magpie is updated if its docker is at the same place.

More intuitive like you said, faster twitcher container startup time since no install of magpie to do at the beginning, more reproducible since all magpie recursive dependencies are locked down in the docker image twitcher-magpie, more robust since no external dependencies on github and pypi during container startup since no install is required.

Very happy to see this.

@cehbrecht
Copy link

I have updated birdhouse/twitcher on master:

There are slight changes to the api (token has no data, service registry needs name):

$ git diff v0.4.0 twitcher/api.py

Hopefully this does not interfere with your changes. There is still the 0.4.x branch.

Currently the master is for development only ... I need to add ansible scripts for production use ... and there is no Docker.

@dbyrns
Copy link
Contributor

dbyrns commented May 13, 2019

Thank you @cehbrecht for your update. @fmigneault is aware of your update and is planning to start from your work to propose a PR that only add an interface to allow us to use a Magpie implementation (extern to you repo) for authentification and permissions. However the PR should also include a Dockerfile to allow us to build from something. Hopefully this is not something you are completely against it.

@cehbrecht
Copy link

... no, go ahead. With the current master the Dockerfile would be different (using waitress).

@fmigneault
Copy link
Collaborator Author

@cehbrecht
Is it possible to update/create the docker hub repo for Twitcher to allow working on this issue?
I do not have the permissions to push a new image.

This was referenced May 22, 2019
@cehbrecht
Copy link

@fmigneault I have overseen this ... I can add you to the docker-cloud birdhouse organization. Please tell me your docker-id.

@fmigneault
Copy link
Collaborator Author

fmigneault commented May 23, 2019

@cehbrecht fmigneault like on github
thanks ;)

@cehbrecht
Copy link

@fmigneault done (docker-cloud).

@cehbrecht fmigneault like on github
thanks ;)

@tomLandry
Copy link

Nice job, glad this converged. Looks awesome.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants