commit 2b853c361352fbf7fe1ad1db7b4248102992f371 Author: long.nguyen Date: Thu Jan 15 22:23:20 2026 +0700 chore(k8sgencli): ✨ new init diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c61e039 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "conventionalCommits.scopes": [ + "k8sgencli" + ] +} \ No newline at end of file diff --git a/k8sgencli/catalog.json b/k8sgencli/catalog.json new file mode 100644 index 0000000..2a941c8 --- /dev/null +++ b/k8sgencli/catalog.json @@ -0,0 +1,63 @@ +{ + "$schema": "https://json.schemastore.org/schema-catalog.json", + "version": 1, + "schemas": [ + { + "name": "K8sGenCli", + "description": "", + "fileMatch": [ + "k8s.json", + "k8s-*.json", + "k8s.*.json" + ], + "url": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-latest.json", + "versions": { + "0.1.1.6": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.1.1.6.json", + "0.1.1.7": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.1.1.7.json", + "0.1.1.10": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.1.1.10.json", + "0.1.1.11": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.1.1.11.json", + "0.2.0.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.2.0.0.json", + "0.2.0.1": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.2.0.1.json", + "0.2.0.2": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.2.0.2.json", + "0.2.0.3": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.2.0.3.json", + "0.2.0.4": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.2.0.4.json", + "0.2.0.5": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.2.0.5.json", + "0.2.0.6": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.2.0.6.json", + "0.2.7.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.2.7.0.json", + "0.3.0.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.3.0.0.json", + "0.3.1.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.3.1.0.json", + "0.5.0.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.5.0.0.json", + "0.5.3.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.5.3.0.json", + "0.5.3.4": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.5.3.4.json", + "0.6.0.4": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.6.0.4.json", + "0.8.3.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema-0.8.3.0.json" + } + }, + { + "name": "K8sGenCli-Multi", + "description": "", + "fileMatch": [ + "k8sgen-multi.json", + "k8sgen-multi-*.json", + "k8s-multi.json", + "k8s-multi-*.json", + "k8s-multi.*.json" + ], + "url": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-latest.json", + "versions": { + "0.2.0.3": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.2.0.3.json", + "0.2.0.4": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.2.0.4.json", + "0.2.0.5": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.2.0.5.json", + "0.2.0.6": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.2.0.6.json", + "0.2.7.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.2.7.0.json", + "0.3.0.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.3.0.0.json", + "0.3.1.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.3.1.0.json", + "0.5.0.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.5.0.0.json", + "0.5.3.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.5.3.0.json", + "0.5.3.4": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.5.3.4.json", + "0.6.0.4": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.6.0.4.json", + "0.8.3.0": "https://proget.icomm.vn/endpoints/icomm/content/k8sgencli/schema/schema.multi-0.8.3.0.json" + } + } + ] +} \ No newline at end of file diff --git a/k8sgencli/schema-latest.json b/k8sgencli/schema-latest.json new file mode 100644 index 0000000..1bc801d --- /dev/null +++ b/k8sgencli/schema-latest.json @@ -0,0 +1,1242 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ProjectConfig", + "type": "object", + "additionalProperties": false, + "properties": { + "Suffix": { + "type": [ + "null", + "string" + ] + }, + "Dockerfile": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/DockerfileConfig" + } + ] + }, + "GenDockerfile": { + "type": "boolean" + }, + "GenJenkinsfile": { + "type": "boolean" + }, + "GenK8sDeployment": { + "type": "boolean" + }, + "Jenkinsfile": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/JenkinsFileConfig" + } + ] + }, + "K8SDeployment": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sDeploymentConfig" + } + ] + }, + "NugetFile": { + "type": [ + "null", + "string" + ] + }, + "OutFolder": { + "type": [ + "null", + "string" + ] + }, + "ProjectFolderFull": { + "type": [ + "null", + "string" + ] + }, + "ProjectFolderName": { + "type": [ + "null", + "string" + ] + }, + "Root2ProjectDir": { + "type": [ + "null", + "string" + ] + } + }, + "definitions": { + "DockerfileConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "Suffix": { + "type": [ + "null", + "string" + ] + }, + "ExposePorts": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/PortConfig" + } + }, + "Image": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/DockerImage" + } + ] + }, + "ImageRuntime": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/DockerImage" + } + ] + }, + "ImageSdk": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/DockerImage" + } + ] + }, + "NugetCacheId": { + "type": [ + "null", + "string" + ] + }, + "BuildArgs": { + "type": [ + "null", + "object" + ], + "additionalProperties": { + "type": "string" + } + }, + "SystemBuildArgs": { + "type": [ + "null", + "object" + ], + "additionalProperties": { + "type": "string" + } + } + } + }, + "PortConfig": { + "type": "object", + "additionalProperties": false, + "required": [ + "Port" + ], + "properties": { + "Port": { + "type": "integer", + "format": "int32", + "maximum": 65000.0, + "minimum": 0.0 + }, + "Name": { + "type": [ + "null", + "string" + ] + }, + "Protocol": { + "type": [ + "null", + "string" + ] + } + } + }, + "DockerImage": { + "type": "object", + "additionalProperties": false, + "properties": { + "BashInits": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "DOTNET_SYSTEM_GLOBALIZATION_INVARIANT": { + "type": [ + "boolean", + "null" + ] + }, + "EnvInits": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "Image": { + "type": [ + "null", + "string" + ] + }, + "Tag": { + "type": [ + "null", + "string" + ] + }, + "Version": { + "type": [ + "null", + "string" + ] + } + } + }, + "JenkinsFileConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "GenLatestTag": { + "type": "boolean" + }, + "GenStageBuild": { + "type": "boolean" + }, + "GenStageDeploy": { + "type": "boolean" + }, + "GenStagePush": { + "type": "boolean" + }, + "GenStageValidateRunning": { + "type": "boolean" + } + } + }, + "K8sDeploymentConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": [ + "null", + "string" + ] + }, + "Suffix": { + "type": [ + "null", + "string" + ] + }, + "Replicas": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "ServiceSpec": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sServiceSpec" + } + ] + }, + "Containers": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sContainer" + } + }, + "DeploymentStrategy": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sDeploymentStrategy" + } + ] + }, + "Volumes": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sVolume" + } + }, + "Annotations": { + "type": [ + "null", + "object" + ], + "additionalProperties": { + "type": "string" + } + }, + "NodeSelector": { + "type": [ + "null", + "object" + ], + "additionalProperties": { + "type": "string" + } + }, + "Affinity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/AffinityV1" + } + ] + } + } + }, + "K8sServiceSpec": { + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/K8sServiceSpecType" + }, + "Ports": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sServiceSpectPortConfig" + } + } + } + }, + "K8sServiceSpecType": { + "type": "string", + "description": "", + "x-enumNames": [ + "ClusterIP", + "NodePort", + "ExternalName", + "LoadBalancer" + ], + "enum": [ + "ClusterIP", + "NodePort", + "ExternalName", + "LoadBalancer" + ] + }, + "K8sServiceSpectPortConfig": { + "type": "object", + "additionalProperties": false, + "required": [ + "TargetPort", + "Port" + ], + "properties": { + "Protocol": { + "type": [ + "null", + "string" + ] + }, + "Name": { + "type": [ + "null", + "string" + ] + }, + "TargetPort": { + "type": "integer", + "format": "int32", + "maximum": 65000.0, + "minimum": 0.0 + }, + "Port": { + "type": "integer", + "format": "int32", + "maximum": 65000.0, + "minimum": 0.0 + }, + "NodePort": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "maximum": 65000.0, + "minimum": 0.0 + } + } + }, + "K8sContainer": { + "type": "object", + "additionalProperties": false, + "properties": { + "Image": { + "type": [ + "null", + "string" + ] + }, + "ImagePullPolicy": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sImagePullPolicy" + } + ] + }, + "Name": { + "type": [ + "null", + "string" + ] + }, + "Resources": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sContainerResources" + } + ] + }, + "Args": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "Env": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sContainerEnv" + } + }, + "VolumeMounts": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sContainerVolumeMount" + } + }, + "Ports": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sContainerPort" + } + }, + "LivenessProbe": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/ProbeV1" + } + ] + }, + "ReadinessProbe": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/ProbeV1" + } + ] + } + } + }, + "K8sImagePullPolicy": { + "type": "string", + "description": "", + "x-enumNames": [ + "IfNotPresent", + "Always", + "Never" + ], + "enum": [ + "IfNotPresent", + "Always", + "Never" + ] + }, + "K8sContainerResources": { + "type": "object", + "additionalProperties": false, + "properties": { + "Limits": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sContainerResource" + } + ] + }, + "Requests": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sContainerResource" + } + ] + } + } + }, + "K8sContainerResource": { + "type": "object", + "additionalProperties": false, + "properties": { + "CPU": { + "type": [ + "null", + "string" + ] + }, + "Memory": { + "type": [ + "null", + "string" + ] + } + } + }, + "K8sContainerEnv": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": [ + "null", + "string" + ] + }, + "Value": { + "type": [ + "null", + "string" + ] + } + } + }, + "K8sContainerVolumeMount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Name", + "MountPath" + ], + "properties": { + "Name": { + "type": "string", + "minLength": 1 + }, + "MountPath": { + "type": "string", + "minLength": 1 + } + } + }, + "K8sContainerPort": { + "type": "object", + "additionalProperties": false, + "required": [ + "Name", + "ContainerPort" + ], + "properties": { + "Name": { + "type": "string", + "minLength": 1 + }, + "ContainerPort": { + "type": "integer", + "format": "int32", + "maximum": 65500.0, + "minimum": 1.0 + }, + "Protocol": { + "type": [ + "null", + "string" + ] + } + } + }, + "ProbeV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Exec": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/ExecActionV1" + } + ] + }, + "Grpc": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/GRPCActionV1" + } + ] + }, + "FailureThreshold": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "SuccessThreshold": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "InitialDelaySeconds": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "PeriodSeconds": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "TerminationGracePeriodSeconds": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "TimeoutSeconds": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "HttpGet": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/HTTPGetActionV1" + } + ] + }, + "TcpSocket": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/TCPSocketActionV1" + } + ] + } + } + }, + "ExecActionV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Command": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "GRPCActionV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Service": { + "type": [ + "null", + "string" + ] + }, + "Port": { + "type": "integer", + "format": "int32" + } + } + }, + "HTTPGetActionV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Scheme": { + "type": [ + "null", + "string" + ] + }, + "Path": { + "type": [ + "null", + "string" + ] + }, + "HttpHeaders": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/HTTPHeaderV1" + } + }, + "Host": { + "type": [ + "null", + "string" + ] + }, + "Port": { + "type": [ + "null", + "number", + "string" + ] + } + } + }, + "HTTPHeaderV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": [ + "null", + "string" + ] + }, + "Value": { + "type": [ + "null", + "string" + ] + } + } + }, + "TCPSocketActionV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Host": { + "type": [ + "null", + "string" + ] + }, + "Port": { + "type": [ + "null", + "number", + "string" + ] + } + } + }, + "K8sDeploymentStrategy": { + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/K8sDeploymentStrategyType" + }, + "RollingUpdate": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sDeploymentStrategyRollingUpdate" + } + ] + } + } + }, + "K8sDeploymentStrategyType": { + "type": "string", + "description": "", + "x-enumNames": [ + "Recreate", + "RollingUpdate", + "Custom" + ], + "enum": [ + "Recreate", + "RollingUpdate", + "Custom" + ] + }, + "K8sDeploymentStrategyRollingUpdate": { + "type": "object", + "additionalProperties": false, + "properties": { + "MaxSurge": { + "type": "integer", + "format": "int32" + }, + "MaxUnavailable": { + "type": "integer", + "format": "int32" + } + } + }, + "K8sVolume": { + "type": "object", + "additionalProperties": false, + "required": [ + "Name" + ], + "properties": { + "Name": { + "type": "string", + "minLength": 1 + }, + "ConfigMap": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sVolumeConfigMap" + } + ] + } + } + }, + "K8sVolumeConfigMap": { + "type": "object", + "additionalProperties": false, + "required": [ + "Name" + ], + "properties": { + "Name": { + "type": "string", + "minLength": 1 + } + } + }, + "AffinityV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "NodeAffinity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/NodeAffinityV1" + } + ] + }, + "PodAffinity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/PodAffinityV1" + } + ] + }, + "PodAntiAffinity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/PodAntiAffinityV1" + } + ] + } + } + }, + "NodeAffinityV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "PreferredDuringSchedulingIgnoredDuringExecution": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/PreferredSchedulingTermV1" + } + }, + "RequiredDuringSchedulingIgnoredDuringExecution": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/NodeSelectorV1" + } + ] + } + } + }, + "PreferredSchedulingTermV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Preference": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/NodeSelectorTermV1" + } + ] + }, + "Weight": { + "type": "integer", + "format": "int32" + } + } + }, + "NodeSelectorTermV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "MatchExpressions": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/NodeSelectorRequirementV1" + } + }, + "MatchFields": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/NodeSelectorRequirementV1" + } + } + } + }, + "NodeSelectorRequirementV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Operator": { + "type": [ + "null", + "string" + ] + }, + "Values": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "Key": { + "type": [ + "null", + "string" + ] + } + } + }, + "NodeSelectorV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "NodeSelectorTerms": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/NodeSelectorTermV1" + } + } + } + }, + "PodAffinityV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "PreferredDuringSchedulingIgnoredDuringExecution": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/WeightedPodAffinityTermV1" + } + }, + "RequiredDuringSchedulingIgnoredDuringExecution": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/PodAffinityTermV1" + } + } + } + }, + "WeightedPodAffinityTermV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "PodAffinityTerm": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/PodAffinityTermV1" + } + ] + }, + "Weight": { + "type": "integer", + "format": "int32" + } + } + }, + "PodAffinityTermV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "LabelSelector": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/LabelSelectorV1" + } + ] + }, + "NamespaceSelector": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/LabelSelectorV1" + } + ] + }, + "MatchLabelKeys": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "MismatchLabelKeys": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "Namespaces": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "TopologyKey": { + "type": [ + "null", + "string" + ] + } + } + }, + "LabelSelectorV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "MatchExpressions": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/LabelSelectorRequirementV1" + } + }, + "MatchLabels": { + "type": [ + "null", + "object" + ], + "additionalProperties": { + "type": "string" + } + } + } + }, + "LabelSelectorRequirementV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Operator": { + "type": [ + "null", + "string" + ] + }, + "Values": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "Key": { + "type": [ + "null", + "string" + ] + } + } + }, + "PodAntiAffinityV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "PreferredDuringSchedulingIgnoredDuringExecution": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/WeightedPodAffinityTermV1" + } + }, + "RequiredDuringSchedulingIgnoredDuringExecution": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/PodAffinityTermV1" + } + } + } + } + } +} \ No newline at end of file diff --git a/k8sgencli/schema.multi-latest.json b/k8sgencli/schema.multi-latest.json new file mode 100644 index 0000000..c388e20 --- /dev/null +++ b/k8sgencli/schema.multi-latest.json @@ -0,0 +1,1353 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "ProjectGenMultiFileConfig", + "type": "object", + "additionalProperties": false, + "properties": { + "Suffix": { + "type": [ + "null", + "string" + ] + }, + "Projects": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/ProjectGenFileConfig" + } + }, + "Jenkins": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/ProjectGenMultiFileConfigJenkins" + } + ] + } + }, + "definitions": { + "ProjectGenFileConfig": { + "type": "object", + "additionalProperties": false, + "required": [ + "Path" + ], + "properties": { + "Name": { + "type": [ + "null", + "string" + ] + }, + "Path": { + "type": "string", + "minLength": 1 + }, + "ConfigFile": { + "type": [ + "null", + "string" + ] + }, + "Suffix": { + "type": [ + "null", + "string" + ] + }, + "ConfigJson": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/ProjectConfig" + } + ] + }, + "OutFolder": { + "type": [ + "null", + "string" + ] + }, + "ParallelGroup": { + "type": [ + "null", + "string" + ] + } + } + }, + "ProjectConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "Suffix": { + "type": [ + "null", + "string" + ] + }, + "Dockerfile": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/DockerfileConfig" + } + ] + }, + "GenDockerfile": { + "type": "boolean" + }, + "GenJenkinsfile": { + "type": "boolean" + }, + "GenK8sDeployment": { + "type": "boolean" + }, + "Jenkinsfile": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/JenkinsFileConfig" + } + ] + }, + "K8SDeployment": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sDeploymentConfig" + } + ] + }, + "NugetFile": { + "type": [ + "null", + "string" + ] + }, + "OutFolder": { + "type": [ + "null", + "string" + ] + }, + "ProjectFolderFull": { + "type": [ + "null", + "string" + ] + }, + "ProjectFolderName": { + "type": [ + "null", + "string" + ] + }, + "Root2ProjectDir": { + "type": [ + "null", + "string" + ] + } + } + }, + "DockerfileConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "Suffix": { + "type": [ + "null", + "string" + ] + }, + "ExposePorts": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/PortConfig" + } + }, + "Image": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/DockerImage" + } + ] + }, + "ImageRuntime": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/DockerImage" + } + ] + }, + "ImageSdk": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/DockerImage" + } + ] + }, + "NugetCacheId": { + "type": [ + "null", + "string" + ] + }, + "BuildArgs": { + "type": [ + "null", + "object" + ], + "additionalProperties": { + "type": "string" + } + }, + "SystemBuildArgs": { + "type": [ + "null", + "object" + ], + "additionalProperties": { + "type": "string" + } + } + } + }, + "PortConfig": { + "type": "object", + "additionalProperties": false, + "required": [ + "Port" + ], + "properties": { + "Port": { + "type": "integer", + "format": "int32", + "maximum": 65000.0, + "minimum": 0.0 + }, + "Name": { + "type": [ + "null", + "string" + ] + }, + "Protocol": { + "type": [ + "null", + "string" + ] + } + } + }, + "DockerImage": { + "type": "object", + "additionalProperties": false, + "properties": { + "BashInits": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "DOTNET_SYSTEM_GLOBALIZATION_INVARIANT": { + "type": [ + "boolean", + "null" + ] + }, + "EnvInits": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "Image": { + "type": [ + "null", + "string" + ] + }, + "Tag": { + "type": [ + "null", + "string" + ] + }, + "Version": { + "type": [ + "null", + "string" + ] + } + } + }, + "JenkinsFileConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "GenLatestTag": { + "type": "boolean" + }, + "GenStageBuild": { + "type": "boolean" + }, + "GenStageDeploy": { + "type": "boolean" + }, + "GenStagePush": { + "type": "boolean" + }, + "GenStageValidateRunning": { + "type": "boolean" + } + } + }, + "K8sDeploymentConfig": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": [ + "null", + "string" + ] + }, + "Suffix": { + "type": [ + "null", + "string" + ] + }, + "Replicas": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "ServiceSpec": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sServiceSpec" + } + ] + }, + "Containers": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sContainer" + } + }, + "DeploymentStrategy": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sDeploymentStrategy" + } + ] + }, + "Volumes": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sVolume" + } + }, + "Annotations": { + "type": [ + "null", + "object" + ], + "additionalProperties": { + "type": "string" + } + }, + "NodeSelector": { + "type": [ + "null", + "object" + ], + "additionalProperties": { + "type": "string" + } + }, + "Affinity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/AffinityV1" + } + ] + } + } + }, + "K8sServiceSpec": { + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/K8sServiceSpecType" + }, + "Ports": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sServiceSpectPortConfig" + } + } + } + }, + "K8sServiceSpecType": { + "type": "string", + "description": "", + "x-enumNames": [ + "ClusterIP", + "NodePort", + "ExternalName", + "LoadBalancer" + ], + "enum": [ + "ClusterIP", + "NodePort", + "ExternalName", + "LoadBalancer" + ] + }, + "K8sServiceSpectPortConfig": { + "type": "object", + "additionalProperties": false, + "required": [ + "TargetPort", + "Port" + ], + "properties": { + "Protocol": { + "type": [ + "null", + "string" + ] + }, + "Name": { + "type": [ + "null", + "string" + ] + }, + "TargetPort": { + "type": "integer", + "format": "int32", + "maximum": 65000.0, + "minimum": 0.0 + }, + "Port": { + "type": "integer", + "format": "int32", + "maximum": 65000.0, + "minimum": 0.0 + }, + "NodePort": { + "type": [ + "integer", + "null" + ], + "format": "int32", + "maximum": 65000.0, + "minimum": 0.0 + } + } + }, + "K8sContainer": { + "type": "object", + "additionalProperties": false, + "properties": { + "Image": { + "type": [ + "null", + "string" + ] + }, + "ImagePullPolicy": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sImagePullPolicy" + } + ] + }, + "Name": { + "type": [ + "null", + "string" + ] + }, + "Resources": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sContainerResources" + } + ] + }, + "Args": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "Env": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sContainerEnv" + } + }, + "VolumeMounts": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sContainerVolumeMount" + } + }, + "Ports": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/K8sContainerPort" + } + }, + "LivenessProbe": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/ProbeV1" + } + ] + }, + "ReadinessProbe": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/ProbeV1" + } + ] + } + } + }, + "K8sImagePullPolicy": { + "type": "string", + "description": "", + "x-enumNames": [ + "IfNotPresent", + "Always", + "Never" + ], + "enum": [ + "IfNotPresent", + "Always", + "Never" + ] + }, + "K8sContainerResources": { + "type": "object", + "additionalProperties": false, + "properties": { + "Limits": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sContainerResource" + } + ] + }, + "Requests": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sContainerResource" + } + ] + } + } + }, + "K8sContainerResource": { + "type": "object", + "additionalProperties": false, + "properties": { + "CPU": { + "type": [ + "null", + "string" + ] + }, + "Memory": { + "type": [ + "null", + "string" + ] + } + } + }, + "K8sContainerEnv": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": [ + "null", + "string" + ] + }, + "Value": { + "type": [ + "null", + "string" + ] + } + } + }, + "K8sContainerVolumeMount": { + "type": "object", + "additionalProperties": false, + "required": [ + "Name", + "MountPath" + ], + "properties": { + "Name": { + "type": "string", + "minLength": 1 + }, + "MountPath": { + "type": "string", + "minLength": 1 + } + } + }, + "K8sContainerPort": { + "type": "object", + "additionalProperties": false, + "required": [ + "Name", + "ContainerPort" + ], + "properties": { + "Name": { + "type": "string", + "minLength": 1 + }, + "ContainerPort": { + "type": "integer", + "format": "int32", + "maximum": 65500.0, + "minimum": 1.0 + }, + "Protocol": { + "type": [ + "null", + "string" + ] + } + } + }, + "ProbeV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Exec": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/ExecActionV1" + } + ] + }, + "Grpc": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/GRPCActionV1" + } + ] + }, + "FailureThreshold": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "SuccessThreshold": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "InitialDelaySeconds": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "PeriodSeconds": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "TerminationGracePeriodSeconds": { + "type": [ + "integer", + "null" + ], + "format": "int64" + }, + "TimeoutSeconds": { + "type": [ + "integer", + "null" + ], + "format": "int32" + }, + "HttpGet": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/HTTPGetActionV1" + } + ] + }, + "TcpSocket": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/TCPSocketActionV1" + } + ] + } + } + }, + "ExecActionV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Command": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "GRPCActionV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Service": { + "type": [ + "null", + "string" + ] + }, + "Port": { + "type": "integer", + "format": "int32" + } + } + }, + "HTTPGetActionV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Scheme": { + "type": [ + "null", + "string" + ] + }, + "Path": { + "type": [ + "null", + "string" + ] + }, + "HttpHeaders": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/HTTPHeaderV1" + } + }, + "Host": { + "type": [ + "null", + "string" + ] + }, + "Port": { + "type": [ + "null", + "number", + "string" + ] + } + } + }, + "HTTPHeaderV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": [ + "null", + "string" + ] + }, + "Value": { + "type": [ + "null", + "string" + ] + } + } + }, + "TCPSocketActionV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Host": { + "type": [ + "null", + "string" + ] + }, + "Port": { + "type": [ + "null", + "number", + "string" + ] + } + } + }, + "K8sDeploymentStrategy": { + "type": "object", + "additionalProperties": false, + "properties": { + "Type": { + "$ref": "#/definitions/K8sDeploymentStrategyType" + }, + "RollingUpdate": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sDeploymentStrategyRollingUpdate" + } + ] + } + } + }, + "K8sDeploymentStrategyType": { + "type": "string", + "description": "", + "x-enumNames": [ + "Recreate", + "RollingUpdate", + "Custom" + ], + "enum": [ + "Recreate", + "RollingUpdate", + "Custom" + ] + }, + "K8sDeploymentStrategyRollingUpdate": { + "type": "object", + "additionalProperties": false, + "properties": { + "MaxSurge": { + "type": "integer", + "format": "int32" + }, + "MaxUnavailable": { + "type": "integer", + "format": "int32" + } + } + }, + "K8sVolume": { + "type": "object", + "additionalProperties": false, + "required": [ + "Name" + ], + "properties": { + "Name": { + "type": "string", + "minLength": 1 + }, + "ConfigMap": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/K8sVolumeConfigMap" + } + ] + } + } + }, + "K8sVolumeConfigMap": { + "type": "object", + "additionalProperties": false, + "required": [ + "Name" + ], + "properties": { + "Name": { + "type": "string", + "minLength": 1 + } + } + }, + "AffinityV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "NodeAffinity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/NodeAffinityV1" + } + ] + }, + "PodAffinity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/PodAffinityV1" + } + ] + }, + "PodAntiAffinity": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/PodAntiAffinityV1" + } + ] + } + } + }, + "NodeAffinityV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "PreferredDuringSchedulingIgnoredDuringExecution": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/PreferredSchedulingTermV1" + } + }, + "RequiredDuringSchedulingIgnoredDuringExecution": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/NodeSelectorV1" + } + ] + } + } + }, + "PreferredSchedulingTermV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Preference": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/NodeSelectorTermV1" + } + ] + }, + "Weight": { + "type": "integer", + "format": "int32" + } + } + }, + "NodeSelectorTermV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "MatchExpressions": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/NodeSelectorRequirementV1" + } + }, + "MatchFields": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/NodeSelectorRequirementV1" + } + } + } + }, + "NodeSelectorRequirementV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Operator": { + "type": [ + "null", + "string" + ] + }, + "Values": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "Key": { + "type": [ + "null", + "string" + ] + } + } + }, + "NodeSelectorV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "NodeSelectorTerms": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/NodeSelectorTermV1" + } + } + } + }, + "PodAffinityV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "PreferredDuringSchedulingIgnoredDuringExecution": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/WeightedPodAffinityTermV1" + } + }, + "RequiredDuringSchedulingIgnoredDuringExecution": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/PodAffinityTermV1" + } + } + } + }, + "WeightedPodAffinityTermV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "PodAffinityTerm": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/PodAffinityTermV1" + } + ] + }, + "Weight": { + "type": "integer", + "format": "int32" + } + } + }, + "PodAffinityTermV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "LabelSelector": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/LabelSelectorV1" + } + ] + }, + "NamespaceSelector": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/LabelSelectorV1" + } + ] + }, + "MatchLabelKeys": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "MismatchLabelKeys": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "Namespaces": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "TopologyKey": { + "type": [ + "null", + "string" + ] + } + } + }, + "LabelSelectorV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "MatchExpressions": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/LabelSelectorRequirementV1" + } + }, + "MatchLabels": { + "type": [ + "null", + "object" + ], + "additionalProperties": { + "type": "string" + } + } + } + }, + "LabelSelectorRequirementV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "Operator": { + "type": [ + "null", + "string" + ] + }, + "Values": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + }, + "Key": { + "type": [ + "null", + "string" + ] + } + } + }, + "PodAntiAffinityV1": { + "type": "object", + "additionalProperties": false, + "properties": { + "PreferredDuringSchedulingIgnoredDuringExecution": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/WeightedPodAffinityTermV1" + } + }, + "RequiredDuringSchedulingIgnoredDuringExecution": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/PodAffinityTermV1" + } + } + } + }, + "ProjectGenMultiFileConfigJenkins": { + "type": "object", + "additionalProperties": false, + "properties": { + "FileName": { + "type": [ + "null", + "string" + ] + }, + "UseParallel": { + "type": "boolean" + }, + "FailFast": { + "type": "boolean" + }, + "IsGenFile": { + "type": "boolean" + }, + "UseGenMulti": { + "type": "boolean" + }, + "UseCIGen": { + "type": "boolean" + } + } + } + } +} \ No newline at end of file