Skip to content
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

feat: version compatibility check for MonoVertex #1912

Closed
wants to merge 10 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
276 changes: 276 additions & 0 deletions api/json-schema/schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -18311,6 +18311,58 @@
],
"type": "object"
},
"io.numaproj.numaflow.v1alpha1.GetMonoVertexDaemonDeploymentReq": {
"properties": {
"DefaultResources": {
"$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements"
},
"Env": {
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.EnvVar"
},
"type": "array"
},
"Image": {
"type": "string"
},
"PullPolicy": {
"type": "string"
}
},
"required": [
"Image",
"PullPolicy",
"Env",
"DefaultResources"
],
"type": "object"
},
"io.numaproj.numaflow.v1alpha1.GetMonoVertexPodSpecReq": {
"properties": {
"DefaultResources": {
"$ref": "#/definitions/io.k8s.api.core.v1.ResourceRequirements"
},
"Env": {
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.EnvVar"
},
"type": "array"
},
"Image": {
"type": "string"
},
"PullPolicy": {
"type": "string"
}
},
"required": [
"Image",
"PullPolicy",
"Env",
"DefaultResources"
],
"type": "object"
},
"io.numaproj.numaflow.v1alpha1.GetRedisServiceSpecReq": {
"properties": {
"Labels": {
Expand Down Expand Up @@ -18979,6 +19031,230 @@
},
"type": "object"
},
"io.numaproj.numaflow.v1alpha1.MonoVertex": {
"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": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta"
},
"spec": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.MonoVertexSpec"
},
"status": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.MonoVertexStatus"
}
},
"required": [
"spec"
],
"type": "object"
},
"io.numaproj.numaflow.v1alpha1.MonoVertexLimits": {
"properties": {
"readBatchSize": {
"description": "Read batch size from the source.",
"format": "int64",
"type": "integer"
},
"readTimeout": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Duration",
"description": "Read timeout duration from the source."
}
},
"type": "object"
},
"io.numaproj.numaflow.v1alpha1.MonoVertexList": {
"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"
},
"items": {
"items": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.MonoVertex"
},
"type": "array"
},
"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": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta"
}
},
"required": [
"items"
],
"type": "object"
},
"io.numaproj.numaflow.v1alpha1.MonoVertexSpec": {
"properties": {
"affinity": {
"$ref": "#/definitions/io.k8s.api.core.v1.Affinity",
"description": "The pod's scheduling constraints More info: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/"
},
"automountServiceAccountToken": {
"description": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
"type": "boolean"
},
"containerTemplate": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.ContainerTemplate",
"description": "Container template for the main numa container."
},
"daemonTemplate": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.DaemonTemplate",
"description": "Template for the daemon service deployment."
},
"dnsConfig": {
"$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfig",
"description": "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy."
},
"dnsPolicy": {
"description": "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.",
"type": "string"
},
"imagePullSecrets": {
"description": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference"
},
"type": "array",
"x-kubernetes-patch-merge-key": "name",
"x-kubernetes-patch-strategy": "merge"
},
"initContainers": {
"description": "List of customized init containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Container"
},
"type": "array"
},
"limits": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.MonoVertexLimits",
"description": "Limits define the limitations such as buffer read batch size for all the vertices of a pipeline, will override pipeline level settings"
},
"metadata": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.Metadata",
"description": "Metadata sets the pods's metadata, i.e. annotations and labels"
},
"nodeSelector": {
"additionalProperties": {
"type": "string"
},
"description": "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
"type": "object"
},
"priority": {
"description": "The priority value. Various system components use this field to find the priority of the Redis pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"format": "int32",
"type": "integer"
},
"priorityClassName": {
"description": "If specified, indicates the Redis pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default. More info: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/",
"type": "string"
},
"replicas": {
"format": "int32",
"type": "integer"
},
"runtimeClassName": {
"description": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
"type": "string"
},
"scale": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.Scale",
"description": "Settings for autoscaling"
},
"securityContext": {
"$ref": "#/definitions/io.k8s.api.core.v1.PodSecurityContext",
"description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field."
},
"serviceAccountName": {
"description": "ServiceAccountName applied to the pod",
"type": "string"
},
"sidecars": {
"description": "List of customized sidecar containers belonging to the pod.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Container"
},
"type": "array"
},
"sink": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.Sink"
},
"source": {
"$ref": "#/definitions/io.numaproj.numaflow.v1alpha1.Source"
},
"tolerations": {
"description": "If specified, the pod's tolerations.",
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Toleration"
},
"type": "array"
},
"volumes": {
"items": {
"$ref": "#/definitions/io.k8s.api.core.v1.Volume"
},
"type": "array",
"x-kubernetes-patch-merge-key": "name",
"x-kubernetes-patch-strategy": "merge"
}
},
"type": "object"
},
"io.numaproj.numaflow.v1alpha1.MonoVertexStatus": {
"properties": {
"conditions": {
"description": "Conditions are the latest available observations of a resource's current state.",
"items": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition"
},
"type": "array",
"x-kubernetes-patch-merge-key": "type",
"x-kubernetes-patch-strategy": "merge"
},
"lastScaledAt": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time"
},
"lastUpdated": {
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time"
},
"message": {
"type": "string"
},
"observedGeneration": {
"format": "int64",
"type": "integer"
},
"phase": {
"type": "string"
},
"reason": {
"type": "string"
},
"replicas": {
"format": "int64",
"type": "integer"
},
"selector": {
"type": "string"
}
},
"required": [
"replicas"
],
"type": "object"
},
"io.numaproj.numaflow.v1alpha1.NativeRedis": {
"properties": {
"affinity": {
Expand Down
Loading