Automate the process of building a virtual machine with a running yinyo server.
Background
What is the motivation for these changes? What problems will this solve? Include graphs, metrics, etc. if relevant.
We have a good set of instructions for developers who want to work on the yinyo server to get their local dev environment set up.
These instructions are manual, refer to outside instructions, and make many changes to the developer's underylying system.
They aren't a good fit for CI/CD or automated testing. They aren't a good fit for people who just want to run the yinyo client, or sysadmins who want to test a yinyo server.
Goals
What are the outcomes that will result from these changes? How will we evaluate success for the proposed changes?
Automate the process of building a virtual machine with a running Yinyo server is intended to:
Make CI/CD possible, as the resulting VM image should be a self-contained Yinyo server environment
Provide a very simple way for sysadmins to try out Yinyo server - "vagrant up" and they'll have a running server
Non-Goals
To narrow the scope of what we're working on, outline what this proposal will not accomplish.
Not intending for this to be a dev environment for Yinyo server developers. The existing docs will still be the suggested method for them.
Not intending to provide a yinyo client binary for people who just want to run a scraper on an existing server.
Proposed Solution
Describe the solution to the problems outlined above. Include enough detail to allow for productive discussion and comments from readers.
Extend the existing Makefile to encompass more of the required setup tasks
Create a Vagrantfile which uses the Makefile to automate the bulk of getting Yinyo server up and running
The last few steps - the first run of skaffold to compile and run the server binary and configuring the minio buckets - will probably have to be done "manually" - which in the case of a CI/CD setup most likely means seperate steps in the CI/CD process.
Risks
Highlight risks so your reviewers can direct their attention here.
The proposed solution, using the Makefile to curl | bash or curl; chmod; install is likely to be quite brittle. Even if it's adequate for a first draft to show that this is possible, moving to a more resiliant provisioning system (eg, Ansible) may be required quite soon.
Milestones
Break down the solution into key tasks and their estimated deadlines.
Open Questions
Ask any unresolved questions about the proposed solution here.
Summary
Automate the process of building a virtual machine with a running yinyo server.
Background
What is the motivation for these changes? What problems will this solve? Include graphs, metrics, etc. if relevant.
Goals
What are the outcomes that will result from these changes? How will we evaluate success for the proposed changes?
Automate the process of building a virtual machine with a running Yinyo server is intended to:
Non-Goals
To narrow the scope of what we're working on, outline what this proposal will not accomplish.
Proposed Solution
Describe the solution to the problems outlined above. Include enough detail to allow for productive discussion and comments from readers.
skaffold
to compile and run the server binary and configuring the minio buckets - will probably have to be done "manually" - which in the case of a CI/CD setup most likely means seperate steps in the CI/CD process.Risks
Highlight risks so your reviewers can direct their attention here.
curl | bash
orcurl; chmod; install
is likely to be quite brittle. Even if it's adequate for a first draft to show that this is possible, moving to a more resiliant provisioning system (eg, Ansible) may be required quite soon.Milestones
Break down the solution into key tasks and their estimated deadlines.
Open Questions
Ask any unresolved questions about the proposed solution here.
Follow-up Tasks
What needs to be done next for this proposal?