-
Notifications
You must be signed in to change notification settings - Fork 21
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
Flatten & unify component structure #961
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regardless of the comment, I support this change, let's get it done and merged!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This move of neonvm
files into common pkg/
(vs keeping it in neonvm/pkg
) hints towards erasing the boundary between neonvm
and autoscaling
. Personally, I am for that change, as I believe it might eventually help us to simplify the architecture and reduce the number of components.
But, we should agree on this explicitly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm +1 for "erasing the boundary between neonvm and autoscaling", so probably it's a consensus already :)
878304e
to
1a77f56
Compare
This comment was marked as resolved.
This comment was marked as resolved.
README-NeonVM.md
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why this move?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NeonVM is broader than just the CRD (e.g., neonvm-controller now has its own top-level directory). So I figured that the README for it should be at the highest common directory.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess the reasoning the same as for vxlan controller -> so that there is less stuff in top level dir.
neonvm-vxlan-controller/Dockerfile
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am tempted to suggest neonvm-vxlan-controller
-> neonvm/vxlan-controller
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you elaborate? (or, why just neonvm-vxlan-controller
and not also neonvm-controller
?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because it has an insignificant amount of code and could tucked away from top-level.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm +1 for everything, but not sure how to ensure that all docs/yamls/scripts/tests won't have a broker path in them. Let's merge this sooner rather than later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm +1 for "erasing the boundary between neonvm and autoscaling", so probably it's a consensus already :)
86fdd14
to
49cc225
Compare
49cc225
to
18ecebb
Compare
97d4462
to
8ecaf63
Compare
This basically encompasses two logical changes: 1. More fully integrating neonvm into the rest of the repository; and 2. Using a consistent directory structure for all components The new structure is: - All components get their own top-level directory (e.g. 'autoscaler-agent', 'neonvm-controller', 'vm-builder') - Inside the directory, there is: - cmd/ - directory containing main.go for the component - Dockerfile - for building the component - *.yaml - various YAML files for deploying, if applicable Additionally, all dependencies outside the 'cmd' package are moved into the 'pkg/' subdirectory. In particular, there is now 'pkg/neonvm/'. Also of note: 'neonvm/hack/kernel' has been relocated to the new top-level directory 'neonvm-kernel/'. Under this structure, the user-visible changes are: 1. Introduction of new YAML: neonvm-controller.yaml 2. Introduction of new YAML: neonvm-vxlan-controller.yaml 3. neonvm.yaml now is *mostly* just the CRD. The primary reasons for this change are: 1. Because it's been long enough since we moved the neonvm repository here that we might as well make it more well-integrated. 2. Because as we look to add components in other languages, we need a directory structure that supports it. ... and now that Autoscaling is GA, we can make the bigger changes we were holding off on :)
8c4e1c6
to
7daf447
Compare
Merging this branch will increase overall coverage
Coverage by fileChanged files (no unit tests)
Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code. Changed unit test files
HTML Report |
Since last release, vm-builder directory was moved into root of the repo. Because of this, we can't download vm-builder during release pipeline, this name is already occupied by a dir. This was caused by the following commit: a2f53e3 Flatten & unify component structure (#961) Signed-off-by: Oleg Vasilev <[email protected]>
This was done in the following commit: a2f53e3 Flatten & unify component structure (#961) Signed-off-by: Oleg Vasilev <[email protected]>
Since last release, vm-builder directory was moved into root of the repo. Because of this, we can't download vm-builder during release pipeline, this name is already occupied by a dir. This was caused by the following commit: a2f53e3 Flatten & unify component structure (#961) Signed-off-by: Oleg Vasilev <[email protected]>
This was done in the following commit: a2f53e3 Flatten & unify component structure (#961) Signed-off-by: Oleg Vasilev <[email protected]>
This basically encompasses two logical changes:
The new structure is:
autoscaler-agent
,neonvm-controller
,vm-builder
)cmd/
- directory containing main.go for the componentDockerfile
- for building the component*.yaml
- various YAML files for deploying, if applicableAdditionally, all code outside the
cmd
package are moved into thepkg/
subdirectory. In particular, there is nowpkg/neonvm/
.Also of note:
neonvm/hack/kernel
has been relocated to the new top-level directoryneonvm-kernel/
.Under this structure, the user-visible changes are:
The primary reasons for this change are:
Notes for review: Splitting the YAMLs will be somewhat tricky to manage safely. I think we should have a clear idea of how we'll do that before merging.
If we go with this approach, we should aim to cut a release soon after merging.