--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: api-approved.kubernetes.io: https://github.com/kubernetes-sigs/scheduler-plugins/pull/432 # edited manually controller-gen.kubebuilder.io/version: v0.11.1 creationTimestamp: null name: networktopologies.networktopology.diktyo.x-k8s.io spec: group: networktopology.diktyo.x-k8s.io names: kind: NetworkTopology listKind: NetworkTopologyList plural: networktopologies shortNames: - nt singular: networktopology scope: Namespaced versions: - name: v1alpha1 schema: openAPIV3Schema: description: NetworkTopology defines network costs in the cluster between regions and zones properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: NetworkTopologySpec defines the zones and regions of the cluster. properties: configmapName: description: ConfigmapName to be used for cost calculation type: string weights: description: The manual defined weights of the cluster items: description: WeightInfo contains information about all network costs for a given algorithm. properties: name: description: Algorithm Name for network cost calculation (e.g., userDefined) type: string topologyList: description: TopologyList owns Costs between origins items: description: TopologyInfo contains information about network costs for a particular Topology Key. properties: originList: description: OriginList for a particular origin. items: description: OriginInfo contains information about network costs for a particular Origin. properties: costList: description: Costs for the particular origin. items: description: CostInfo contains information about networkCosts. properties: bandwidthAllocated: anyOf: - type: integer - type: string description: Bandwidth allocated between origin and destination. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true bandwidthCapacity: anyOf: - type: integer - type: string description: Bandwidth capacity between origin and destination. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true destination: description: Name of the destination (e.g., Region Name, Zone Name). type: string networkCost: description: Network Cost between origin and destination (e.g., Dijkstra shortest path, etc) format: int64 minimum: 0 type: integer required: - destination - networkCost type: object type: array origin: description: Name of the origin (e.g., Region Name, Zone Name). type: string required: - origin type: object type: array topologyKey: description: Topology key (e.g., "topology.kubernetes.io/region", "topology.kubernetes.io/zone"). type: string required: - originList - topologyKey type: object type: array required: - name - topologyList type: object type: array required: - configmapName - weights type: object status: description: NetworkTopologyStatus defines the observed use. properties: nodeCount: description: The total number of nodes in the cluster format: int64 minimum: 0 type: integer weightCalculationTime: description: The calculation time for the weights in the network topology CRD format: date-time type: string type: object type: object served: true storage: true