Skip to content
This repository has been archived by the owner on Jan 21, 2020. It is now read-only.

BareMetal deployment #398

Closed
YujiOshima opened this issue Feb 14, 2017 · 6 comments
Closed

BareMetal deployment #398

YujiOshima opened this issue Feb 14, 2017 · 6 comments
Assignees

Comments

@YujiOshima
Copy link
Contributor

I'm eager Infrakit to support Bare metal deployment.
I created Canonical MaaS plugin as PoC ( https://github.com/YujiOshima/infrakit-maas-plugin ) .
I am very happy if this is an official example, can I opne a PR? @chungers Thought?

@chungers
Copy link
Contributor

@YujiOshima I think it would be very interesting to see an example of infrakit on bare-metal. Go ahead a create a PR and add this to a directory like examples/instance/maas and we can discuss. There are a few things to consider though... let me know if your thoughts:

  • Let's work together to make sure we have good documentation.
  • How do the users set up and play with this plugin? It's for bare-metal so let's at least have some documentation / discussions on how to set things up?
  • Testing -- how do we test this plugin?

Another thing -- in the future we may move all the examples to repos under the 'infrakit' organization in GitHub. This way we will be able to add more features to the individual plugin projects and evolve them. To do this, however, require us to start thinking about strategies for automated testing / test harness / simulators, etc. We'd also have to come up with ways to certify compatibility of plugins with the core infrakit controllers. I'd love to hear what you think about these issues.

@YujiOshima
Copy link
Contributor Author

YujiOshima commented Feb 14, 2017

Thank you, I will open the PR soon.

  • Documentation is an important issue. You should enrich not only the maas plugin but also the documents of various usage.
  • In our assumed use case, we plan to deploy MAAS as a PXE server in the data center and deploy Infrakit and MAAS plugins at the same time. It is looking at the cooperation between on-premises and clouds that MAAS alone will not be completed. I expect Infrakit to construct an elastic infrastructure that links the on-premises and clouds together. (I'd like to create a multi-cloud group plugin for that!)
  • Because of the nature of the bare metal, complete testing is difficult, so I think whether it is sufficient for testing the interface using go mock etc. first.

It is a good idea to separate the repository of plugins. In particular, it can be expected to improve the current situation that all dependent libraries of examples are also vendored.
For integration it is essential to run all plugin CIs with core infrakit controllers' commit as a hook. In our team dependency repository tests we create a new branch if the interface changes and we try to match the branch in the integration test (default is master). For example, if core infrakit create the branch called apiv2 and commits it, CI will work on other plugins as a trigger, but if that apiv2 branch is in that plugin it will be used. By doing so, you can also reduce the impact if you change the API.

@chungers
Copy link
Contributor

@YujiOshima -- Thank you, all good points.

We are planning on dedicating a whole release -- 0.7 or 0.8 to cleaning up the documentation. At the moment there are still new features in flight -- like metadata, resources, pools, event streams, etc.

For the moment, we can have the MAAS example plugin in the same repo, but yes I agree we'd have to spin them out to new repos when they start to mature into large, featureful projects. Probably by 1.0? There's already an infrakit github organization we can use to house these new projects.

As for CI -- I'd like to put together some automation infrastructure that will not only test infrakit core code (which we are doing on CircleCI) but also select community plugin implementations. My idea is to use infrakit itself to bootstrap its own testing, on-demand. So if you have ideas or designs, I'd love to hear from you. For the MAAS plugin, does MAAS provide simulators or mocks?

@YujiOshima
Copy link
Contributor Author

YujiOshima commented Feb 23, 2017

@chungers I opened a PR. But there is no test. MaaS does not have something like the Sumulator tool. So, I will try to design tests using go mock or swagger.

use infrakit itself to bootstrap its own testing

It's so cool and it can be a new use case for infrakit!
However, it is difficult for CircleCI to test virtual boxes, too. Do they even use the simulator?

@chungers
Copy link
Contributor

@YujiOshima - I've gone ahead and merged your PR. Looking forward to iterating and improving this plugin!

@YujiOshima
Copy link
Contributor Author

@chungers Thank you! I will close this and open new Issue for improving this plugin!

chungers pushed a commit to chungers/infrakit that referenced this issue Sep 30, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants