Files
kubespray/roles/kubernetes-apps/scheduler_plugins/templates/networktopology.diktyo.x-k8s.io_networktopologies.yaml.j2
k8s-infra-cherrypick-robot 9b122fb5a8 [release-2.25] pre-commit: make hooks self contained + ci config (#11359)
* Use alternate self-sufficient shellcheck precommit

This pre-commit does not require prerequisite on the host, making it
easier to run in CI workflows.

* Switch to upstream ansible-lint pre-commit hook

This way, the hook is self contained and does not depend on a previous
virtualenv installation.

* pre-commit: fix hooks dependencies

- ansible-syntax-check
- tox-inventory-builder
- jinja-syntax-check

* Fix ci-matrix pre-commit hook

- Remove dependency of pydblite which fails to setup on recent pythons
- Discard shell script and put everything into pre-commit

* pre-commit: apply autofixes hooks and fix the rest manually

- markdownlint (manual fix)
- end-of-file-fixer
- requirements-txt-fixer
- trailing-whitespace

* Convert check_typo to pre-commit + use maintained version

client9/misspell is unmaintained, and has been forked by the golangci
team, see https://github.com/client9/misspell/issues/197#issuecomment-1596318684.

They haven't yet added a pre-commit config, so use my fork with the
pre-commit hook config until the pull request is merged.

* collection-build-install convert to pre-commit

* Run pre-commit hooks in dynamic pipeline

Use gitlab dynamic child pipelines feature to have one source of truth
for the pre-commit jobs, the pre-commit config file.

Use one cache per pre-commit. This should reduce the "fetching cache"
time steps in gitlab-ci, since each job will have a separate cache with
only its hook installed.

* Remove gitlab-ci job done in pre-commit

* pre-commit: adjust mardownlint default, md fixes

Use a style file as recommended by upstream. This makes for only one
source of truth.
Conserve previous upstream default for MD007 (upstream default changed
here https://github.com/markdownlint/markdownlint/pull/373)

* Update pre-commit hooks

---------

Co-authored-by: Max Gautier <mg@max.gautier.name>
2024-07-12 00:21:42 -07:00

149 lines
6.9 KiB
Django/Jinja

---
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