You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

148 lines
6.9 KiB

  1. ---
  2. apiVersion: apiextensions.k8s.io/v1
  3. kind: CustomResourceDefinition
  4. metadata:
  5. annotations:
  6. api-approved.kubernetes.io: https://github.com/kubernetes-sigs/scheduler-plugins/pull/432 # edited manually
  7. controller-gen.kubebuilder.io/version: v0.11.1
  8. creationTimestamp: null
  9. name: networktopologies.networktopology.diktyo.x-k8s.io
  10. spec:
  11. group: networktopology.diktyo.x-k8s.io
  12. names:
  13. kind: NetworkTopology
  14. listKind: NetworkTopologyList
  15. plural: networktopologies
  16. shortNames:
  17. - nt
  18. singular: networktopology
  19. scope: Namespaced
  20. versions:
  21. - name: v1alpha1
  22. schema:
  23. openAPIV3Schema:
  24. description: NetworkTopology defines network costs in the cluster between
  25. regions and zones
  26. properties:
  27. apiVersion:
  28. description: 'APIVersion defines the versioned schema of this representation
  29. of an object. Servers should convert recognized schemas to the latest
  30. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  31. type: string
  32. kind:
  33. description: 'Kind is a string value representing the REST resource this
  34. object represents. Servers may infer this from the endpoint the client
  35. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  36. type: string
  37. metadata:
  38. type: object
  39. spec:
  40. description: NetworkTopologySpec defines the zones and regions of the
  41. cluster.
  42. properties:
  43. configmapName:
  44. description: ConfigmapName to be used for cost calculation
  45. type: string
  46. weights:
  47. description: The manual defined weights of the cluster
  48. items:
  49. description: WeightInfo contains information about all network costs
  50. for a given algorithm.
  51. properties:
  52. name:
  53. description: Algorithm Name for network cost calculation (e.g.,
  54. userDefined)
  55. type: string
  56. topologyList:
  57. description: TopologyList owns Costs between origins
  58. items:
  59. description: TopologyInfo contains information about network
  60. costs for a particular Topology Key.
  61. properties:
  62. originList:
  63. description: OriginList for a particular origin.
  64. items:
  65. description: OriginInfo contains information about network
  66. costs for a particular Origin.
  67. properties:
  68. costList:
  69. description: Costs for the particular origin.
  70. items:
  71. description: CostInfo contains information about
  72. networkCosts.
  73. properties:
  74. bandwidthAllocated:
  75. anyOf:
  76. - type: integer
  77. - type: string
  78. description: Bandwidth allocated between origin
  79. and destination.
  80. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  81. x-kubernetes-int-or-string: true
  82. bandwidthCapacity:
  83. anyOf:
  84. - type: integer
  85. - type: string
  86. description: Bandwidth capacity between origin
  87. and destination.
  88. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
  89. x-kubernetes-int-or-string: true
  90. destination:
  91. description: Name of the destination (e.g.,
  92. Region Name, Zone Name).
  93. type: string
  94. networkCost:
  95. description: Network Cost between origin and
  96. destination (e.g., Dijkstra shortest path,
  97. etc)
  98. format: int64
  99. minimum: 0
  100. type: integer
  101. required:
  102. - destination
  103. - networkCost
  104. type: object
  105. type: array
  106. origin:
  107. description: Name of the origin (e.g., Region Name,
  108. Zone Name).
  109. type: string
  110. required:
  111. - origin
  112. type: object
  113. type: array
  114. topologyKey:
  115. description: Topology key (e.g., "topology.kubernetes.io/region",
  116. "topology.kubernetes.io/zone").
  117. type: string
  118. required:
  119. - originList
  120. - topologyKey
  121. type: object
  122. type: array
  123. required:
  124. - name
  125. - topologyList
  126. type: object
  127. type: array
  128. required:
  129. - configmapName
  130. - weights
  131. type: object
  132. status:
  133. description: NetworkTopologyStatus defines the observed use.
  134. properties:
  135. nodeCount:
  136. description: The total number of nodes in the cluster
  137. format: int64
  138. minimum: 0
  139. type: integer
  140. weightCalculationTime:
  141. description: The calculation time for the weights in the network topology
  142. CRD
  143. format: date-time
  144. type: string
  145. type: object
  146. type: object
  147. served: true
  148. storage: true