manifests/networktopology/crd.yaml (151 lines of code) (raw):
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.14.0
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