-
Notifications
You must be signed in to change notification settings - Fork 0
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
Merge POC branch into main #4
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Command executed: kubebuilder init --domain datumapis.com \ --repo go.datum.net/network-services-operator \ --license none \ --owner 'Datum Technology, Inc.' \ --project-name network-services-operator
…, addressed linter violations.
Initialize project with kubebuilder init.
- `Network` - The logical “VPC Network” for Datum. Instances and other services can reference networks they’d like to attach to. - A Network will be created in the upstream control plane by users, or platform defaulting controllers (creating a default network). - `NetworkBinding` - An association between a network and a resource which desires to interact with it in some way. A NetworkBinding defines a topology similar to a NetworkContext, and is associated with a NetworkContext of a matching topology. - This type will be created in the upstream control plane by `workload-operator` when a `WorkloadDeployment` is associated with a cluster. Future services that need to attach to networks may also create NetworkBindings to signal this need. - `NetworkContext` - A part of a network specific to a certain topology. Topology is defined as a map of string keys and values, where the hash of the keys and values defines a unique context within the network. - This type will be created in the upstream control plane by `network-services-operator` as a result of observing `NetworkBindings` - Example topology keys are: - `topology.datum.net/city-code` - The IATA airport code for where the context exists. - `topology.datum.net/cluster-name` - The name of the cluster the context is associated with. - `topology.datum.net/cluster-namespace` - The namespace for the cluster the context is associated with. - `NetworkPolicy` - Not yet fully defined for namespace scoped network policies, but types exist to be leveraged by types defined in other controllers such as a network interface's network policy. - `Subnet` - A subnet is associated with a `NetworkContext`. Each subnet will have a subnet class to indicate the type of prefix that should be issued. Subnets include topology information, which is used when allocating `SubnetClaims`. - This type will be created in the upstream control plane by `network-services-operator` as the result of `SubnetClaim` observations. External controllers, such as `infra-provider-gcp` will observe these subnets, and program the network as required. - `SubnetClaim` - A request for a subnet to be issued, including the network context, subnet class, and topology information such as `gcp.topology.datum.net/region`. - This type will be created in the upstream control plane by external controllers such as `infra-provider-gcp` when a subnet is required to provision requested resources.
… network bindings, subnet claims, and subnets. Still much work to do around testing, and implementing controllers for other types when needed. The test suite is expected to pass from this point forward, though there are some Pending tests.
Initial commit of Datum Networking APIs.
Bootstrapped controller boilerplate, implemented very basic logic for network bindings, subnet claims, and subnets.
scotwells
approved these changes
Jan 2, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As discussed, we'll be iterating in the main branch more quickly until we reach a point that we're ready to tag a release. That will occur after we've confirmed the direction of this project and harden it for production (tests, documentation, etc).