mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
Merge pull request #37174 from mbohlool/optional
Automatic merge from submit-queue Fields with omitempty tag should still be considered as optional We've added an "+optional" tag while ago for optional fields. Before that OpenAPI spec generated assumed all fields with "omitempty" in their json tags are optional. This should be still the case (as well as +optional tag) until these two things happen: - We update all documentation asking developers to use +optional (My bad, I should have added this after the +optional PR) - We fix swagger 1.2 spec generator to use +optional instead of omitempty. Fixes #37149
This commit is contained in:
commit
27a0a86282
@ -35745,11 +35745,7 @@
|
||||
"description": "DeploymentCondition describes the state of a deployment at a certain point.",
|
||||
"required": [
|
||||
"type",
|
||||
"status",
|
||||
"lastUpdateTime",
|
||||
"lastTransitionTime",
|
||||
"reason",
|
||||
"message"
|
||||
"status"
|
||||
],
|
||||
"properties": {
|
||||
"lastTransitionTime": {
|
||||
@ -35824,8 +35820,7 @@
|
||||
"v1beta1.DeploymentSpec": {
|
||||
"description": "DeploymentSpec is the specification of the desired behavior of the Deployment.",
|
||||
"required": [
|
||||
"template",
|
||||
"progressDeadlineSeconds"
|
||||
"template"
|
||||
],
|
||||
"properties": {
|
||||
"minReadySeconds": {
|
||||
@ -35872,9 +35867,6 @@
|
||||
},
|
||||
"v1beta1.DeploymentStatus": {
|
||||
"description": "DeploymentStatus is the most recently observed status of the Deployment.",
|
||||
"required": [
|
||||
"conditions"
|
||||
],
|
||||
"properties": {
|
||||
"availableReplicas": {
|
||||
"description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.",
|
||||
@ -35925,10 +35917,6 @@
|
||||
},
|
||||
"v1beta1.Eviction": {
|
||||
"description": "Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod. A request to cause such an eviction is created by POSTing to .../pods/\u003cpod name\u003e/evictions.",
|
||||
"required": [
|
||||
"metadata",
|
||||
"deleteOptions"
|
||||
],
|
||||
"properties": {
|
||||
"deleteOptions": {
|
||||
"description": "DeleteOptions may be provided",
|
||||
@ -36411,11 +36399,6 @@
|
||||
},
|
||||
"v1beta1.PodDisruptionBudget": {
|
||||
"description": "PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods",
|
||||
"required": [
|
||||
"metadata",
|
||||
"spec",
|
||||
"status"
|
||||
],
|
||||
"properties": {
|
||||
"metadata": {
|
||||
"$ref": "#/definitions/v1.ObjectMeta"
|
||||
@ -36433,7 +36416,6 @@
|
||||
"v1beta1.PodDisruptionBudgetList": {
|
||||
"description": "PodDisruptionBudgetList is a collection of PodDisruptionBudgets.",
|
||||
"required": [
|
||||
"metadata",
|
||||
"items"
|
||||
],
|
||||
"properties": {
|
||||
@ -36450,10 +36432,6 @@
|
||||
},
|
||||
"v1beta1.PodDisruptionBudgetSpec": {
|
||||
"description": "PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.",
|
||||
"required": [
|
||||
"minAvailable",
|
||||
"selector"
|
||||
],
|
||||
"properties": {
|
||||
"minAvailable": {
|
||||
"description": "An eviction is allowed if at least \"minAvailable\" pods selected by \"selector\" will still be available after the eviction, i.e. even in the absence of the evicted pod. So for example you can prevent all voluntary evictions by specifying \"100%\".",
|
||||
|
@ -57,9 +57,14 @@ func hasOpenAPITagValue(comments []string, value string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func hasOptionalTag(comments []string) bool {
|
||||
tagValues := types.ExtractCommentTags("+", comments)[tagOptional]
|
||||
return tagValues != nil
|
||||
// hasOptionalTag returns true if the member has +optional in its comments or
|
||||
// omitempty in its json tags.
|
||||
func hasOptionalTag(m *types.Member) bool {
|
||||
hasOptionalCommentTag := types.ExtractCommentTags(
|
||||
"+", m.CommentLines)[tagOptional] != nil
|
||||
hasOptionalJsonTag := strings.Contains(
|
||||
reflect.StructTag(m.Tags).Get("json"), "omitempty")
|
||||
return hasOptionalCommentTag || hasOptionalJsonTag
|
||||
}
|
||||
|
||||
// NameSystems returns the name system used by the generators in this package.
|
||||
@ -288,7 +293,7 @@ func (g openAPITypeWriter) generate(t *types.Type) error {
|
||||
if name == "" {
|
||||
continue
|
||||
}
|
||||
if !hasOptionalTag(m.CommentLines) {
|
||||
if !hasOptionalTag(&m) {
|
||||
required = append(required, name)
|
||||
}
|
||||
if err := g.generateProperty(&m); err != nil {
|
||||
|
@ -9757,11 +9757,7 @@
|
||||
"description": "DeploymentCondition describes the state of a deployment at a certain point.",
|
||||
"required": [
|
||||
"type",
|
||||
"status",
|
||||
"lastUpdateTime",
|
||||
"lastTransitionTime",
|
||||
"reason",
|
||||
"message"
|
||||
"status"
|
||||
],
|
||||
"properties": {
|
||||
"lastTransitionTime": {
|
||||
@ -9836,8 +9832,7 @@
|
||||
"v1beta1.DeploymentSpec": {
|
||||
"description": "DeploymentSpec is the specification of the desired behavior of the Deployment.",
|
||||
"required": [
|
||||
"template",
|
||||
"progressDeadlineSeconds"
|
||||
"template"
|
||||
],
|
||||
"properties": {
|
||||
"minReadySeconds": {
|
||||
@ -9884,9 +9879,6 @@
|
||||
},
|
||||
"v1beta1.DeploymentStatus": {
|
||||
"description": "DeploymentStatus is the most recently observed status of the Deployment.",
|
||||
"required": [
|
||||
"conditions"
|
||||
],
|
||||
"properties": {
|
||||
"availableReplicas": {
|
||||
"description": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.",
|
||||
|
@ -3011,7 +3011,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"TypeMeta", "podManifestPath", "syncFrequency", "fileCheckFrequency", "httpCheckFrequency", "manifestURL", "manifestURLHeader", "enableServer", "address", "port", "readOnlyPort", "tlsCertFile", "tlsPrivateKeyFile", "certDirectory", "authentication", "authorization", "hostnameOverride", "podInfraContainerImage", "dockerEndpoint", "rootDirectory", "seccompProfileRoot", "allowPrivileged", "hostNetworkSources", "hostPIDSources", "hostIPCSources", "registryPullQPS", "registryBurst", "eventRecordQPS", "eventBurst", "enableDebuggingHandlers", "minimumGCAge", "maxPerPodContainerCount", "maxContainerCount", "cAdvisorPort", "healthzPort", "healthzBindAddress", "oomScoreAdj", "registerNode", "clusterDomain", "masterServiceNamespace", "clusterDNS", "streamingConnectionIdleTimeout", "nodeStatusUpdateFrequency", "imageMinimumGCAge", "imageGCHighThresholdPercent", "imageGCLowThresholdPercent", "lowDiskSpaceThresholdMB", "volumeStatsAggPeriod", "networkPluginName", "networkPluginMTU", "networkPluginDir", "cniConfDir", "cniBinDir", "volumePluginDir", "containerRuntime", "remoteRuntimeEndpoint", "remoteImageEndpoint", "experimentalMounterPath", "lockFilePath", "exitOnLockContention", "hairpinMode", "babysitDaemons", "maxPods", "nvidiaGPUs", "dockerExecHandlerName", "podCIDR", "resolvConf", "cpuCFSQuota", "containerized", "maxOpenFiles", "reconcileCIDR", "registerSchedulable", "contentType", "kubeAPIQPS", "kubeAPIBurst", "serializeImagePulls", "nodeLabels", "nonMasqueradeCIDR", "enableCustomMetrics", "podsPerCore", "enableControllerAttachDetach", "systemReserved", "kubeReserved", "protectKernelDefaults", "makeIPTablesUtilChains", "iptablesMasqueradeBit", "iptablesDropBit", "featureGates", "experimentalFailSwapOn", "ExperimentalCheckNodeCapabilitiesBeforeMount"},
|
||||
Required: []string{"TypeMeta", "podManifestPath", "syncFrequency", "fileCheckFrequency", "httpCheckFrequency", "manifestURL", "manifestURLHeader", "enableServer", "address", "port", "readOnlyPort", "tlsCertFile", "tlsPrivateKeyFile", "certDirectory", "authentication", "authorization", "hostnameOverride", "podInfraContainerImage", "dockerEndpoint", "rootDirectory", "seccompProfileRoot", "allowPrivileged", "hostNetworkSources", "hostPIDSources", "hostIPCSources", "registryPullQPS", "registryBurst", "eventRecordQPS", "eventBurst", "enableDebuggingHandlers", "minimumGCAge", "maxPerPodContainerCount", "maxContainerCount", "cAdvisorPort", "healthzPort", "healthzBindAddress", "oomScoreAdj", "registerNode", "clusterDomain", "masterServiceNamespace", "clusterDNS", "streamingConnectionIdleTimeout", "nodeStatusUpdateFrequency", "imageMinimumGCAge", "imageGCHighThresholdPercent", "imageGCLowThresholdPercent", "lowDiskSpaceThresholdMB", "volumeStatsAggPeriod", "networkPluginName", "networkPluginMTU", "networkPluginDir", "cniConfDir", "cniBinDir", "volumePluginDir", "containerRuntime", "remoteRuntimeEndpoint", "remoteImageEndpoint", "lockFilePath", "exitOnLockContention", "hairpinMode", "babysitDaemons", "maxPods", "nvidiaGPUs", "dockerExecHandlerName", "podCIDR", "resolvConf", "cpuCFSQuota", "containerized", "maxOpenFiles", "reconcileCIDR", "registerSchedulable", "contentType", "kubeAPIQPS", "kubeAPIBurst", "serializeImagePulls", "nodeLabels", "nonMasqueradeCIDR", "enableCustomMetrics", "podsPerCore", "enableControllerAttachDetach", "systemReserved", "kubeReserved", "protectKernelDefaults", "makeIPTablesUtilChains", "iptablesMasqueradeBit", "iptablesDropBit", "featureGates"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -3245,7 +3245,6 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"name"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{},
|
||||
@ -3541,7 +3540,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"type", "status", "lastUpdateTime", "lastTransitionTime", "reason", "message"},
|
||||
Required: []string{"type", "status"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -3679,7 +3678,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"template", "progressDeadlineSeconds"},
|
||||
Required: []string{"template"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -3738,7 +3737,6 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"conditions"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -4900,7 +4898,6 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"versions"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -10579,7 +10576,6 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"photonPersistentDisk"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -10687,7 +10683,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"pdID", "fsType"},
|
||||
Required: []string{"pdID"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{},
|
||||
@ -13193,7 +13189,6 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"photonPersistentDisk"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -14813,7 +14808,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"TypeMeta", "podManifestPath", "syncFrequency", "fileCheckFrequency", "httpCheckFrequency", "manifestURL", "manifestURLHeader", "enableServer", "address", "port", "readOnlyPort", "tlsCertFile", "tlsPrivateKeyFile", "certDirectory", "authentication", "authorization", "hostnameOverride", "podInfraContainerImage", "dockerEndpoint", "rootDirectory", "seccompProfileRoot", "allowPrivileged", "hostNetworkSources", "hostPIDSources", "hostIPCSources", "registryPullQPS", "registryBurst", "eventRecordQPS", "eventBurst", "enableDebuggingHandlers", "minimumGCAge", "maxPerPodContainerCount", "maxContainerCount", "cAdvisorPort", "healthzPort", "healthzBindAddress", "oomScoreAdj", "registerNode", "clusterDomain", "masterServiceNamespace", "clusterDNS", "streamingConnectionIdleTimeout", "nodeStatusUpdateFrequency", "imageMinimumGCAge", "imageGCHighThresholdPercent", "imageGCLowThresholdPercent", "lowDiskSpaceThresholdMB", "volumeStatsAggPeriod", "networkPluginName", "networkPluginDir", "cniConfDir", "cniBinDir", "networkPluginMTU", "volumePluginDir", "cloudProvider", "cloudConfigFile", "kubeletCgroups", "runtimeCgroups", "systemCgroups", "cgroupRoot", "containerRuntime", "remoteRuntimeEndpoint", "remoteImageEndpoint", "runtimeRequestTimeout", "rktPath", "experimentalMounterPath", "rktAPIEndpoint", "rktStage1Image", "lockFilePath", "exitOnLockContention", "hairpinMode", "babysitDaemons", "maxPods", "nvidiaGPUs", "dockerExecHandlerName", "podCIDR", "resolvConf", "cpuCFSQuota", "containerized", "maxOpenFiles", "reconcileCIDR", "registerSchedulable", "contentType", "kubeAPIQPS", "kubeAPIBurst", "serializeImagePulls", "outOfDiskTransitionFrequency", "nodeIP", "nodeLabels", "nonMasqueradeCIDR", "enableCustomMetrics", "evictionHard", "evictionSoft", "evictionSoftGracePeriod", "evictionPressureTransitionPeriod", "evictionMaxPodGracePeriod", "evictionMinimumReclaim", "podsPerCore", "enableControllerAttachDetach", "systemReserved", "kubeReserved", "protectKernelDefaults", "makeIPTablesUtilChains", "iptablesMasqueradeBit", "iptablesDropBit", "featureGates", "experimentalFailSwapOn", "ExperimentalCheckNodeCapabilitiesBeforeMount"},
|
||||
Required: []string{"TypeMeta", "podManifestPath", "syncFrequency", "fileCheckFrequency", "httpCheckFrequency", "manifestURL", "manifestURLHeader", "enableServer", "address", "port", "readOnlyPort", "tlsCertFile", "tlsPrivateKeyFile", "certDirectory", "authentication", "authorization", "hostnameOverride", "podInfraContainerImage", "dockerEndpoint", "rootDirectory", "seccompProfileRoot", "allowPrivileged", "hostNetworkSources", "hostPIDSources", "hostIPCSources", "registryPullQPS", "registryBurst", "eventRecordQPS", "eventBurst", "enableDebuggingHandlers", "minimumGCAge", "maxPerPodContainerCount", "maxContainerCount", "cAdvisorPort", "healthzPort", "healthzBindAddress", "oomScoreAdj", "registerNode", "clusterDomain", "masterServiceNamespace", "clusterDNS", "streamingConnectionIdleTimeout", "nodeStatusUpdateFrequency", "imageMinimumGCAge", "imageGCHighThresholdPercent", "imageGCLowThresholdPercent", "lowDiskSpaceThresholdMB", "volumeStatsAggPeriod", "networkPluginName", "networkPluginDir", "cniConfDir", "cniBinDir", "networkPluginMTU", "volumePluginDir", "cloudProvider", "cloudConfigFile", "kubeletCgroups", "runtimeCgroups", "systemCgroups", "cgroupRoot", "containerRuntime", "remoteRuntimeEndpoint", "remoteImageEndpoint", "runtimeRequestTimeout", "rktPath", "rktAPIEndpoint", "rktStage1Image", "lockFilePath", "exitOnLockContention", "hairpinMode", "babysitDaemons", "maxPods", "nvidiaGPUs", "dockerExecHandlerName", "podCIDR", "resolvConf", "cpuCFSQuota", "containerized", "maxOpenFiles", "reconcileCIDR", "registerSchedulable", "contentType", "kubeAPIQPS", "kubeAPIBurst", "serializeImagePulls", "outOfDiskTransitionFrequency", "nodeIP", "nodeLabels", "nonMasqueradeCIDR", "enableCustomMetrics", "evictionHard", "evictionSoft", "evictionSoftGracePeriod", "evictionPressureTransitionPeriod", "evictionMaxPodGracePeriod", "evictionMinimumReclaim", "podsPerCore", "enableControllerAttachDetach", "systemReserved", "kubeReserved", "protectKernelDefaults", "makeIPTablesUtilChains", "iptablesMasqueradeBit", "iptablesDropBit"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -15724,7 +15719,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"type", "status", "lastUpdateTime", "lastTransitionTime", "reason", "message"},
|
||||
Required: []string{"type", "status"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -15865,7 +15860,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"template", "progressDeadlineSeconds"},
|
||||
Required: []string{"template"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -15925,7 +15920,6 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"conditions"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -15973,7 +15967,6 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"metadata", "deleteOptions"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -16950,7 +16943,6 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"metadata", "spec", "status"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -16979,7 +16971,7 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"metadata", "items"},
|
||||
Required: []string{"items"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
@ -17003,7 +16995,6 @@ var OpenAPIDefinitions *common.OpenAPIDefinitions = &common.OpenAPIDefinitions{
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"minAvailable", "selector"},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
|
Loading…
Reference in New Issue
Block a user