-
Notifications
You must be signed in to change notification settings - Fork 373
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
Add Antrea architecture doc #1
Conversation
Great to see our first PR! |
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 reviewed this extensively in the Google doc. I just found one rendering issue, otherwise LGTM.
Antrea Agent includes two Kubernetes controllers: | ||
- The Node controller watches the Kubernetes API server for new Nodes, and | ||
creates an OVS (VXLAN or Geneve) tunnel to each remote Node. | ||
- The NetworkPolicy controller watches the computed NetworkPolicies from the |
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.
should we call this a client ? because we say NetworkPolicy controller is in Antrea Controller and it makes sense there... need to differentiate between the two to avoid confusion.
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.
But it is indeed a K8s controller and called NetworkPolicyController in code.
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.
lets call it Antrea NetworkPolicy Controller?.. because technically it is not syncing the networkingv1.NetworkPolicy objects but Antrea NetworkPolicy Object disseminated by antrea-controller. do you agree?
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.
From this perspective, the k8s DeploymentController is also not syncing the Deployment itself but the pods/replica rets managed by it. Maybe it's fine as long as people can get a brief idea about what's the controller for from the name?
What I'm worrying more is the name of NodeController, it's a little hard to get what's it without reading the documentation. I'd propose to rename the package to noderoute and the controller NodeRouteController, what do you think? (mapping to k8s nodeipam and nodelifecycle controllers). Of course, this is out of this PR's scope, just want to discuss here.
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 feel the current description is fine. Like @tnqn said, we explained what the controllers are doing.
I support to rename NodeController to NoteRouteController, but let us change the code first.
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 just feel like the network policy object and network policy crd for controller are different .. the latter is more specific to antrea controller.. but if you guys believe it sounds clear to the readers.. then no need to change
NodeRouteController does convey the correct message
433588e
to
dd2fad0
Compare
Antrea Agent includes two Kubernetes controllers: | ||
- The Node controller watches the Kubernetes API server for new Nodes, and | ||
creates an OVS (VXLAN or Geneve) tunnel to each remote Node. | ||
- The NetworkPolicy controller watches the computed NetworkPolicies from the |
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.
From this perspective, the k8s DeploymentController is also not syncing the Deployment itself but the pods/replica rets managed by it. Maybe it's fine as long as people can get a brief idea about what's the controller for from the name?
What I'm worrying more is the name of NodeController, it's a little hard to get what's it without reading the documentation. I'd propose to rename the package to noderoute and the controller NodeRouteController, what do you think? (mapping to k8s nodeipam and nodelifecycle controllers). Of course, this is out of this PR's scope, just want to discuss here.
dd2fad0
to
c3400d5
Compare
Also add links to the architecture doc from REAME.md and CONTRIBUTING.md.
c3400d5
to
05e9cb3
Compare
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: luolanzone <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
1. remove namespace in config/manager/manager.yaml, so we won't have a `kube-system` namespace definition in multi-cluster.yaml 2. use `KUSTOMIZE = $(shell pwd)/bin/kustomize` in Makefile, otherwise,it will do nothing if KUSTOMIZE is empty by `shell which kustomize` 3. add a common label `app: antrea` for all resources 4. other changes are auto-generated by `make manifests` Signed-off-by: Lan Luo <luola@vmware.com>
Also add links to the architecture doc from REAME.md and
CONTRIBUTING.md.
Many thanks to @antoninbas for making great revisions of the doc and taking care of SVG diagrams.