From 9623d05f793389a4efdb57d2e20004ff6dbd9a87 Mon Sep 17 00:00:00 2001 From: mbohlool Date: Wed, 1 Feb 2017 16:05:55 -0800 Subject: [PATCH 1/3] Move post processing/backward compatibility of openapi out of generic package --- cmd/kube-apiserver/app/server.go | 308 ++++++++++++++++++ .../cmd/federation-apiserver/app/server.go | 174 ++++++++++ .../endpoints/openapi/openapi.go | 306 ----------------- pkg/genericapiserver/server/config.go | 1 - 4 files changed, 482 insertions(+), 307 deletions(-) diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index 13bd884fd53..ddcbbe825d4 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -30,11 +30,13 @@ import ( "strings" "time" + "github.com/go-openapi/spec" "github.com/golang/glog" "github.com/pborman/uuid" "github.com/spf13/cobra" "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/openapi" "k8s.io/apimachinery/pkg/runtime/schema" utilerrors "k8s.io/apimachinery/pkg/util/errors" utilnet "k8s.io/apimachinery/pkg/util/net" @@ -296,6 +298,7 @@ func Run(s *options.ServerRunOptions) error { genericConfig.Authorizer = apiAuthorizer genericConfig.AdmissionControl = admissionController genericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(generatedopenapi.GetOpenAPIDefinitions) + genericConfig.OpenAPIConfig.PostProcessSpec = postProcessOpenAPISpecForBackwardCompatibility genericConfig.OpenAPIConfig.SecurityDefinitions = securityDefinitions genericConfig.OpenAPIConfig.Info.Title = "Kubernetes" genericConfig.SwaggerConfig = genericapiserver.DefaultSwaggerConfig() @@ -346,3 +349,308 @@ func Run(s *options.ServerRunOptions) error { m.GenericAPIServer.PrepareRun().Run(wait.NeverStop) return nil } + +// PostProcessSpec adds removed definitions for backward compatibility +func postProcessOpenAPISpecForBackwardCompatibility(s *spec.Swagger) (*spec.Swagger, error) { + compatibilityMap := map[string]string{ + "v1beta1.DeploymentStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentStatus", + "v1beta1.ReplicaSetList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ReplicaSetList", + "v1beta1.Eviction": "k8s.io/kubernetes/pkg/apis/policy/v1beta1.Eviction", + "v1beta1.StatefulSetList": "k8s.io/kubernetes/pkg/apis/apps/v1beta1.StatefulSetList", + "v1beta1.RoleBinding": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.RoleBinding", + "v1beta1.PodSecurityPolicyList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.PodSecurityPolicyList", + "v1.NodeSpec": "k8s.io/kubernetes/pkg/api/v1.NodeSpec", + "v1.FlockerVolumeSource": "k8s.io/kubernetes/pkg/api/v1.FlockerVolumeSource", + "v1.ContainerState": "k8s.io/kubernetes/pkg/api/v1.ContainerState", + "v1beta1.ClusterRole": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.ClusterRole", + "v1beta1.StorageClass": "k8s.io/kubernetes/pkg/apis/storage/v1beta1.StorageClass", + "v1.FlexVolumeSource": "k8s.io/kubernetes/pkg/api/v1.FlexVolumeSource", + "v1.SecretKeySelector": "k8s.io/kubernetes/pkg/api/v1.SecretKeySelector", + "v1.DeleteOptions": "k8s.io/kubernetes/pkg/api/v1.DeleteOptions", + "v1.PodStatus": "k8s.io/kubernetes/pkg/api/v1.PodStatus", + "v1.NodeStatus": "k8s.io/kubernetes/pkg/api/v1.NodeStatus", + "v1.ServiceSpec": "k8s.io/kubernetes/pkg/api/v1.ServiceSpec", + "v1.AttachedVolume": "k8s.io/kubernetes/pkg/api/v1.AttachedVolume", + "v1.PersistentVolume": "k8s.io/kubernetes/pkg/api/v1.PersistentVolume", + "v1.LimitRangeList": "k8s.io/kubernetes/pkg/api/v1.LimitRangeList", + "v1alpha1.Role": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.Role", + "v1.Affinity": "k8s.io/kubernetes/pkg/api/v1.Affinity", + "v1beta1.PodDisruptionBudget": "k8s.io/kubernetes/pkg/apis/policy/v1beta1.PodDisruptionBudget", + "v1alpha1.RoleBindingList": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.RoleBindingList", + "v1.PodAffinity": "k8s.io/kubernetes/pkg/api/v1.PodAffinity", + "v1beta1.SELinuxStrategyOptions": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.SELinuxStrategyOptions", + "v1.ResourceQuotaList": "k8s.io/kubernetes/pkg/api/v1.ResourceQuotaList", + "v1.PodList": "k8s.io/kubernetes/pkg/api/v1.PodList", + "v1.EnvVarSource": "k8s.io/kubernetes/pkg/api/v1.EnvVarSource", + "v1beta1.TokenReviewStatus": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1.TokenReviewStatus", + "v1.PersistentVolumeClaimList": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeClaimList", + "v1beta1.RoleList": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.RoleList", + "v1.ListMeta": "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", + "v1.ObjectMeta": "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", + "v1.APIGroupList": "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroupList", + "v2alpha1.Job": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.Job", + "v1.EnvFromSource": "k8s.io/kubernetes/pkg/api/v1.EnvFromSource", + "v1beta1.IngressStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressStatus", + "v1.Service": "k8s.io/kubernetes/pkg/api/v1.Service", + "v1beta1.DaemonSetStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DaemonSetStatus", + "v1alpha1.Subject": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.Subject", + "v1.HorizontalPodAutoscaler": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.HorizontalPodAutoscaler", + "v1.StatusCause": "k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause", + "v1.NodeSelectorRequirement": "k8s.io/kubernetes/pkg/api/v1.NodeSelectorRequirement", + "v1beta1.NetworkPolicyIngressRule": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicyIngressRule", + "v1beta1.ThirdPartyResource": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ThirdPartyResource", + "v1beta1.PodSecurityPolicy": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.PodSecurityPolicy", + "v1beta1.StatefulSet": "k8s.io/kubernetes/pkg/apis/apps/v1beta1.StatefulSet", + "v1.LabelSelector": "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector", + "v1.ScaleSpec": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.ScaleSpec", + "v1.DownwardAPIVolumeFile": "k8s.io/kubernetes/pkg/api/v1.DownwardAPIVolumeFile", + "v1beta1.HorizontalPodAutoscaler": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HorizontalPodAutoscaler", + "v1.AWSElasticBlockStoreVolumeSource": "k8s.io/kubernetes/pkg/api/v1.AWSElasticBlockStoreVolumeSource", + "v1.ComponentStatus": "k8s.io/kubernetes/pkg/api/v1.ComponentStatus", + "v2alpha1.JobSpec": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.JobSpec", + "v1.ContainerImage": "k8s.io/kubernetes/pkg/api/v1.ContainerImage", + "v1.ReplicationControllerStatus": "k8s.io/kubernetes/pkg/api/v1.ReplicationControllerStatus", + "v1.ResourceQuota": "k8s.io/kubernetes/pkg/api/v1.ResourceQuota", + "v1beta1.NetworkPolicyList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicyList", + "v1beta1.NonResourceAttributes": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.NonResourceAttributes", + "v1.JobCondition": "k8s.io/kubernetes/pkg/apis/batch/v1.JobCondition", + "v1.LabelSelectorRequirement": "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement", + "v1beta1.Deployment": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.Deployment", + "v1.LoadBalancerIngress": "k8s.io/kubernetes/pkg/api/v1.LoadBalancerIngress", + "v1.SecretList": "k8s.io/kubernetes/pkg/api/v1.SecretList", + "v1beta1.ReplicaSetSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ReplicaSetSpec", + "v1beta1.RoleBindingList": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.RoleBindingList", + "v1.ServicePort": "k8s.io/kubernetes/pkg/api/v1.ServicePort", + "v1.Namespace": "k8s.io/kubernetes/pkg/api/v1.Namespace", + "v1beta1.NetworkPolicyPeer": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicyPeer", + "v1.ReplicationControllerList": "k8s.io/kubernetes/pkg/api/v1.ReplicationControllerList", + "v1beta1.ReplicaSetCondition": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ReplicaSetCondition", + "v1.ReplicationControllerCondition": "k8s.io/kubernetes/pkg/api/v1.ReplicationControllerCondition", + "v1.DaemonEndpoint": "k8s.io/kubernetes/pkg/api/v1.DaemonEndpoint", + "v1beta1.NetworkPolicyPort": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicyPort", + "v1.NodeSystemInfo": "k8s.io/kubernetes/pkg/api/v1.NodeSystemInfo", + "v1.LimitRangeItem": "k8s.io/kubernetes/pkg/api/v1.LimitRangeItem", + "v1.ConfigMapVolumeSource": "k8s.io/kubernetes/pkg/api/v1.ConfigMapVolumeSource", + "v1beta1.ClusterRoleList": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.ClusterRoleList", + "v1beta1.ResourceAttributes": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.ResourceAttributes", + "v1.Pod": "k8s.io/kubernetes/pkg/api/v1.Pod", + "v1.FCVolumeSource": "k8s.io/kubernetes/pkg/api/v1.FCVolumeSource", + "v1beta1.SubresourceReference": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.SubresourceReference", + "v1.ResourceQuotaStatus": "k8s.io/kubernetes/pkg/api/v1.ResourceQuotaStatus", + "v1alpha1.RoleBinding": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.RoleBinding", + "v1.PodCondition": "k8s.io/kubernetes/pkg/api/v1.PodCondition", + "v1.GroupVersionForDiscovery": "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery", + "v1.NamespaceStatus": "k8s.io/kubernetes/pkg/api/v1.NamespaceStatus", + "v1.Job": "k8s.io/kubernetes/pkg/apis/batch/v1.Job", + "v1.PersistentVolumeClaimVolumeSource": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeClaimVolumeSource", + "v1.Handler": "k8s.io/kubernetes/pkg/api/v1.Handler", + "v1.ComponentStatusList": "k8s.io/kubernetes/pkg/api/v1.ComponentStatusList", + "v1.ServerAddressByClientCIDR": "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR", + "v1.PodAntiAffinity": "k8s.io/kubernetes/pkg/api/v1.PodAntiAffinity", + "v1.ISCSIVolumeSource": "k8s.io/kubernetes/pkg/api/v1.ISCSIVolumeSource", + "v1.ContainerStateRunning": "k8s.io/kubernetes/pkg/api/v1.ContainerStateRunning", + "v1.WeightedPodAffinityTerm": "k8s.io/kubernetes/pkg/api/v1.WeightedPodAffinityTerm", + "v1beta1.HostPortRange": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HostPortRange", + "v1.HorizontalPodAutoscalerSpec": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.HorizontalPodAutoscalerSpec", + "v1.HorizontalPodAutoscalerList": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.HorizontalPodAutoscalerList", + "v1beta1.RoleRef": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.RoleRef", + "v1.Probe": "k8s.io/kubernetes/pkg/api/v1.Probe", + "v1beta1.IngressTLS": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressTLS", + "v1beta1.ThirdPartyResourceList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ThirdPartyResourceList", + "v1beta1.DaemonSet": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DaemonSet", + "v1.APIGroup": "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup", + "v1beta1.Subject": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.Subject", + "v1beta1.DeploymentList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentList", + "v1.NodeAffinity": "k8s.io/kubernetes/pkg/api/v1.NodeAffinity", + "v1beta1.RollingUpdateDeployment": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.RollingUpdateDeployment", + "v1beta1.APIVersion": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.APIVersion", + "v1alpha1.CertificateSigningRequest": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1.CertificateSigningRequest", + "v1.CinderVolumeSource": "k8s.io/kubernetes/pkg/api/v1.CinderVolumeSource", + "v1.NamespaceSpec": "k8s.io/kubernetes/pkg/api/v1.NamespaceSpec", + "v1beta1.PodDisruptionBudgetSpec": "k8s.io/kubernetes/pkg/apis/policy/v1beta1.PodDisruptionBudgetSpec", + "v1.Patch": "k8s.io/apimachinery/pkg/apis/meta/v1.Patch", + "v1beta1.ClusterRoleBinding": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.ClusterRoleBinding", + "v1beta1.HorizontalPodAutoscalerSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HorizontalPodAutoscalerSpec", + "v1.PersistentVolumeClaimSpec": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeClaimSpec", + "v1.Secret": "k8s.io/kubernetes/pkg/api/v1.Secret", + "v1.NodeCondition": "k8s.io/kubernetes/pkg/api/v1.NodeCondition", + "v1.LocalObjectReference": "k8s.io/kubernetes/pkg/api/v1.LocalObjectReference", + "runtime.RawExtension": "k8s.io/apimachinery/pkg/runtime.RawExtension", + "v1.PreferredSchedulingTerm": "k8s.io/kubernetes/pkg/api/v1.PreferredSchedulingTerm", + "v1.RBDVolumeSource": "k8s.io/kubernetes/pkg/api/v1.RBDVolumeSource", + "v1.KeyToPath": "k8s.io/kubernetes/pkg/api/v1.KeyToPath", + "v1.ScaleStatus": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.ScaleStatus", + "v1alpha1.PolicyRule": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.PolicyRule", + "v1.EndpointPort": "k8s.io/kubernetes/pkg/api/v1.EndpointPort", + "v1beta1.IngressList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressList", + "v1.EndpointAddress": "k8s.io/kubernetes/pkg/api/v1.EndpointAddress", + "v1.NodeSelector": "k8s.io/kubernetes/pkg/api/v1.NodeSelector", + "v1beta1.StorageClassList": "k8s.io/kubernetes/pkg/apis/storage/v1beta1.StorageClassList", + "v1.ServiceList": "k8s.io/kubernetes/pkg/api/v1.ServiceList", + "v2alpha1.CronJobSpec": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.CronJobSpec", + "v1.ContainerStateTerminated": "k8s.io/kubernetes/pkg/api/v1.ContainerStateTerminated", + "v1beta1.TokenReview": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1.TokenReview", + "v1beta1.IngressBackend": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressBackend", + "v1.Time": "k8s.io/apimachinery/pkg/apis/meta/v1.Time", + "v1beta1.IngressSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressSpec", + "v2alpha1.JobTemplateSpec": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.JobTemplateSpec", + "v1.LimitRange": "k8s.io/kubernetes/pkg/api/v1.LimitRange", + "v1beta1.UserInfo": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1.UserInfo", + "v1.ResourceQuotaSpec": "k8s.io/kubernetes/pkg/api/v1.ResourceQuotaSpec", + "v1.ContainerPort": "k8s.io/kubernetes/pkg/api/v1.ContainerPort", + "v1beta1.HTTPIngressRuleValue": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HTTPIngressRuleValue", + "v1.AzureFileVolumeSource": "k8s.io/kubernetes/pkg/api/v1.AzureFileVolumeSource", + "v1beta1.NetworkPolicySpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicySpec", + "v1.PodTemplateSpec": "k8s.io/kubernetes/pkg/api/v1.PodTemplateSpec", + "v1.SecretVolumeSource": "k8s.io/kubernetes/pkg/api/v1.SecretVolumeSource", + "v1.PodSpec": "k8s.io/kubernetes/pkg/api/v1.PodSpec", + "v1.CephFSVolumeSource": "k8s.io/kubernetes/pkg/api/v1.CephFSVolumeSource", + "v1beta1.CPUTargetUtilization": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.CPUTargetUtilization", + "v1.Volume": "k8s.io/kubernetes/pkg/api/v1.Volume", + "v1beta1.Ingress": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.Ingress", + "v1beta1.HorizontalPodAutoscalerList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HorizontalPodAutoscalerList", + "v1.PersistentVolumeStatus": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeStatus", + "v1beta1.IDRange": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IDRange", + "v2alpha1.JobCondition": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.JobCondition", + "v1beta1.IngressRule": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressRule", + "v1alpha1.RoleRef": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.RoleRef", + "v1.PodAffinityTerm": "k8s.io/kubernetes/pkg/api/v1.PodAffinityTerm", + "v1.ObjectReference": "k8s.io/kubernetes/pkg/api/v1.ObjectReference", + "v1.ServiceStatus": "k8s.io/kubernetes/pkg/api/v1.ServiceStatus", + "v1.APIResource": "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource", + "v1beta1.Scale": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.Scale", + "v1.AzureDiskVolumeSource": "k8s.io/kubernetes/pkg/api/v1.AzureDiskVolumeSource", + "v1beta1.SubjectAccessReviewStatus": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.SubjectAccessReviewStatus", + "v1.ConfigMap": "k8s.io/kubernetes/pkg/api/v1.ConfigMap", + "v1.CrossVersionObjectReference": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.CrossVersionObjectReference", + "v1.APIVersions": "k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions", + "v1alpha1.ClusterRoleList": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.ClusterRoleList", + "v1.Node": "k8s.io/kubernetes/pkg/api/v1.Node", + "resource.Quantity": "k8s.io/kubernetes/pkg/api/resource.Quantity", + "v1.Event": "k8s.io/kubernetes/pkg/api/v1.Event", + "v1.JobStatus": "k8s.io/kubernetes/pkg/apis/batch/v1.JobStatus", + "v1.PersistentVolumeSpec": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeSpec", + "v1beta1.SubjectAccessReviewSpec": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.SubjectAccessReviewSpec", + "v1.ResourceFieldSelector": "k8s.io/kubernetes/pkg/api/v1.ResourceFieldSelector", + "v1.EndpointSubset": "k8s.io/kubernetes/pkg/api/v1.EndpointSubset", + "v1alpha1.CertificateSigningRequestSpec": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1.CertificateSigningRequestSpec", + "v1.HostPathVolumeSource": "k8s.io/kubernetes/pkg/api/v1.HostPathVolumeSource", + "v1.LoadBalancerStatus": "k8s.io/kubernetes/pkg/api/v1.LoadBalancerStatus", + "v1beta1.HTTPIngressPath": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HTTPIngressPath", + "v1beta1.Role": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.Role", + "v1beta1.DeploymentStrategy": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentStrategy", + "v1beta1.RunAsUserStrategyOptions": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.RunAsUserStrategyOptions", + "v1beta1.DeploymentSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentSpec", + "v1.ExecAction": "k8s.io/kubernetes/pkg/api/v1.ExecAction", + "v1beta1.PodSecurityPolicySpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.PodSecurityPolicySpec", + "v1.HorizontalPodAutoscalerStatus": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.HorizontalPodAutoscalerStatus", + "v1.PersistentVolumeList": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeList", + "v1alpha1.ClusterRole": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.ClusterRole", + "v1.JobSpec": "k8s.io/kubernetes/pkg/apis/batch/v1.JobSpec", + "v1beta1.DaemonSetSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DaemonSetSpec", + "v2alpha1.CronJobList": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.CronJobList", + "v1.Endpoints": "k8s.io/kubernetes/pkg/api/v1.Endpoints", + "v1.SELinuxOptions": "k8s.io/kubernetes/pkg/api/v1.SELinuxOptions", + "v1beta1.SelfSubjectAccessReviewSpec": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.SelfSubjectAccessReviewSpec", + "v1beta1.ScaleStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ScaleStatus", + "v1.NodeSelectorTerm": "k8s.io/kubernetes/pkg/api/v1.NodeSelectorTerm", + "v1alpha1.CertificateSigningRequestStatus": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1.CertificateSigningRequestStatus", + "v1.StatusDetails": "k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails", + "v2alpha1.JobStatus": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.JobStatus", + "v1beta1.DeploymentRollback": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentRollback", + "v1.GlusterfsVolumeSource": "k8s.io/kubernetes/pkg/api/v1.GlusterfsVolumeSource", + "v1.ServiceAccountList": "k8s.io/kubernetes/pkg/api/v1.ServiceAccountList", + "v1.JobList": "k8s.io/kubernetes/pkg/apis/batch/v1.JobList", + "v1.EventList": "k8s.io/kubernetes/pkg/api/v1.EventList", + "v1.ContainerStateWaiting": "k8s.io/kubernetes/pkg/api/v1.ContainerStateWaiting", + "v1.APIResourceList": "k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList", + "v1.ContainerStatus": "k8s.io/kubernetes/pkg/api/v1.ContainerStatus", + "v2alpha1.JobList": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.JobList", + "v1.ConfigMapKeySelector": "k8s.io/kubernetes/pkg/api/v1.ConfigMapKeySelector", + "v1.PhotonPersistentDiskVolumeSource": "k8s.io/kubernetes/pkg/api/v1.PhotonPersistentDiskVolumeSource", + "v1.PodTemplateList": "k8s.io/kubernetes/pkg/api/v1.PodTemplateList", + "v1.PersistentVolumeClaimStatus": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeClaimStatus", + "v1.ServiceAccount": "k8s.io/kubernetes/pkg/api/v1.ServiceAccount", + "v1alpha1.CertificateSigningRequestList": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1.CertificateSigningRequestList", + "v1beta1.SupplementalGroupsStrategyOptions": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.SupplementalGroupsStrategyOptions", + "v1.HTTPHeader": "k8s.io/kubernetes/pkg/api/v1.HTTPHeader", + "version.Info": "k8s.io/apimachinery/pkg/version.Info", + "v1.EventSource": "k8s.io/kubernetes/pkg/api/v1.EventSource", + "v1alpha1.ClusterRoleBindingList": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.ClusterRoleBindingList", + "v1.OwnerReference": "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference", + "v1beta1.ClusterRoleBindingList": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.ClusterRoleBindingList", + "v1beta1.ScaleSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ScaleSpec", + "v1.GitRepoVolumeSource": "k8s.io/kubernetes/pkg/api/v1.GitRepoVolumeSource", + "v1beta1.NetworkPolicy": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicy", + "v1.ConfigMapEnvSource": "k8s.io/kubernetes/pkg/api/v1.ConfigMapEnvSource", + "v1.PodTemplate": "k8s.io/kubernetes/pkg/api/v1.PodTemplate", + "v1beta1.DeploymentCondition": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentCondition", + "v1beta1.PodDisruptionBudgetStatus": "k8s.io/kubernetes/pkg/apis/policy/v1beta1.PodDisruptionBudgetStatus", + "v1.EnvVar": "k8s.io/kubernetes/pkg/api/v1.EnvVar", + "v1.LimitRangeSpec": "k8s.io/kubernetes/pkg/api/v1.LimitRangeSpec", + "v1.DownwardAPIVolumeSource": "k8s.io/kubernetes/pkg/api/v1.DownwardAPIVolumeSource", + "v1.NodeDaemonEndpoints": "k8s.io/kubernetes/pkg/api/v1.NodeDaemonEndpoints", + "v1.ComponentCondition": "k8s.io/kubernetes/pkg/api/v1.ComponentCondition", + "v1alpha1.CertificateSigningRequestCondition": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1.CertificateSigningRequestCondition", + "v1.SecurityContext": "k8s.io/kubernetes/pkg/api/v1.SecurityContext", + "v1beta1.LocalSubjectAccessReview": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.LocalSubjectAccessReview", + "v1beta1.StatefulSetSpec": "k8s.io/kubernetes/pkg/apis/apps/v1beta1.StatefulSetSpec", + "v1.NodeAddress": "k8s.io/kubernetes/pkg/api/v1.NodeAddress", + "v1.QuobyteVolumeSource": "k8s.io/kubernetes/pkg/api/v1.QuobyteVolumeSource", + "v1.Capabilities": "k8s.io/kubernetes/pkg/api/v1.Capabilities", + "v1.GCEPersistentDiskVolumeSource": "k8s.io/kubernetes/pkg/api/v1.GCEPersistentDiskVolumeSource", + "v1beta1.ReplicaSet": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ReplicaSet", + "v1beta1.HorizontalPodAutoscalerStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HorizontalPodAutoscalerStatus", + "v1beta1.PolicyRule": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.PolicyRule", + "v1.ConfigMapList": "k8s.io/kubernetes/pkg/api/v1.ConfigMapList", + "v1.Lifecycle": "k8s.io/kubernetes/pkg/api/v1.Lifecycle", + "v1beta1.SelfSubjectAccessReview": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.SelfSubjectAccessReview", + "v2alpha1.CronJob": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.CronJob", + "v2alpha1.CronJobStatus": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.CronJobStatus", + "v1beta1.SubjectAccessReview": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.SubjectAccessReview", + "v1.Preconditions": "k8s.io/kubernetes/pkg/api/v1.Preconditions", + "v1beta1.DaemonSetList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DaemonSetList", + "v1.PersistentVolumeClaim": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeClaim", + "v1.Scale": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.Scale", + "v1beta1.StatefulSetStatus": "k8s.io/kubernetes/pkg/apis/apps/v1beta1.StatefulSetStatus", + "v1.NFSVolumeSource": "k8s.io/kubernetes/pkg/api/v1.NFSVolumeSource", + "v1.ObjectFieldSelector": "k8s.io/kubernetes/pkg/api/v1.ObjectFieldSelector", + "v1.ResourceRequirements": "k8s.io/kubernetes/pkg/api/v1.ResourceRequirements", + "v1.WatchEvent": "k8s.io/apimachinery/pkg/apis/meta/v1.WatchEvent", + "v1.ReplicationControllerSpec": "k8s.io/kubernetes/pkg/api/v1.ReplicationControllerSpec", + "v1.HTTPGetAction": "k8s.io/kubernetes/pkg/api/v1.HTTPGetAction", + "v1beta1.RollbackConfig": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.RollbackConfig", + "v1beta1.TokenReviewSpec": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1.TokenReviewSpec", + "v1.PodSecurityContext": "k8s.io/kubernetes/pkg/api/v1.PodSecurityContext", + "v1beta1.PodDisruptionBudgetList": "k8s.io/kubernetes/pkg/apis/policy/v1beta1.PodDisruptionBudgetList", + "v1.VolumeMount": "k8s.io/kubernetes/pkg/api/v1.VolumeMount", + "v1.ReplicationController": "k8s.io/kubernetes/pkg/api/v1.ReplicationController", + "v1.NamespaceList": "k8s.io/kubernetes/pkg/api/v1.NamespaceList", + "v1alpha1.ClusterRoleBinding": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.ClusterRoleBinding", + "v1.TCPSocketAction": "k8s.io/kubernetes/pkg/api/v1.TCPSocketAction", + "v1.Binding": "k8s.io/kubernetes/pkg/api/v1.Binding", + "v1beta1.ReplicaSetStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ReplicaSetStatus", + "intstr.IntOrString": "k8s.io/kubernetes/pkg/util/intstr.IntOrString", + "v1.EndpointsList": "k8s.io/kubernetes/pkg/api/v1.EndpointsList", + "v1.Container": "k8s.io/kubernetes/pkg/api/v1.Container", + "v1alpha1.RoleList": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.RoleList", + "v1.VsphereVirtualDiskVolumeSource": "k8s.io/kubernetes/pkg/api/v1.VsphereVirtualDiskVolumeSource", + "v1.NodeList": "k8s.io/kubernetes/pkg/api/v1.NodeList", + "v1.EmptyDirVolumeSource": "k8s.io/kubernetes/pkg/api/v1.EmptyDirVolumeSource", + "v1beta1.FSGroupStrategyOptions": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.FSGroupStrategyOptions", + "v1.Status": "k8s.io/apimachinery/pkg/apis/meta/v1.Status", + } + + for k, v := range compatibilityMap { + if _, found := s.Definitions[v]; !found { + continue + } + s.Definitions[k] = spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: spec.MustCreateRef("#/definitions/" + openapi.EscapeJsonPointer(v)), + Description: fmt.Sprintf("Deprecated. Please use %s instead.", v), + }, + } + } + return s, nil +} diff --git a/federation/cmd/federation-apiserver/app/server.go b/federation/cmd/federation-apiserver/app/server.go index 6ba72d8f946..65d01d99dc3 100644 --- a/federation/cmd/federation-apiserver/app/server.go +++ b/federation/cmd/federation-apiserver/app/server.go @@ -24,11 +24,13 @@ import ( "strings" "time" + "github.com/go-openapi/spec" "github.com/golang/glog" "github.com/pborman/uuid" "github.com/spf13/cobra" "github.com/spf13/pflag" + apimachineryopenapi "k8s.io/apimachinery/pkg/openapi" "k8s.io/apimachinery/pkg/runtime/schema" utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/sets" @@ -176,6 +178,7 @@ func Run(s *options.ServerRunOptions) error { genericConfig.Authorizer = apiAuthorizer genericConfig.AdmissionControl = admissionController genericConfig.OpenAPIConfig = genericapiserver.DefaultOpenAPIConfig(openapi.GetOpenAPIDefinitions) + genericConfig.OpenAPIConfig.PostProcessSpec = postProcessOpenAPISpecForBackwardCompatibility genericConfig.OpenAPIConfig.SecurityDefinitions = securityDefinitions genericConfig.SwaggerConfig = genericapiserver.DefaultSwaggerConfig() genericConfig.LongRunningFunc = filters.BasicLongRunningRequestCheck( @@ -240,3 +243,174 @@ func (f *restOptionsFactory) GetRESTOptions(resource schema.GroupResource) (gene ResourcePrefix: f.storageFactory.ResourcePrefix(resource), }, nil } + +// PostProcessSpec adds removed definitions for backward compatibility +func postProcessOpenAPISpecForBackwardCompatibility(s *spec.Swagger) (*spec.Swagger, error) { + compatibilityMap := map[string]string{ + "v1beta1.ReplicaSetList": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList", + "v1.FlockerVolumeSource": "io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource", + "v1.FlexVolumeSource": "io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource", + "v1.SecretKeySelector": "io.k8s.kubernetes.pkg.api.v1.SecretKeySelector", + "v1.DeleteOptions": "io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions", + "v1.ServiceSpec": "io.k8s.kubernetes.pkg.api.v1.ServiceSpec", + "v1.NamespaceStatus": "io.k8s.kubernetes.pkg.api.v1.NamespaceStatus", + "v1.Affinity": "io.k8s.kubernetes.pkg.api.v1.Affinity", + "v1.PodAffinity": "io.k8s.kubernetes.pkg.api.v1.PodAffinity", + "v1.EnvVarSource": "io.k8s.kubernetes.pkg.api.v1.EnvVarSource", + "v1.ListMeta": "io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "v1.ObjectMeta": "io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "v1.APIGroupList": "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList", + "v1.EnvFromSource": "io.k8s.kubernetes.pkg.api.v1.EnvFromSource", + "v1.Service": "io.k8s.kubernetes.pkg.api.v1.Service", + "v1.HorizontalPodAutoscaler": "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler", + "v1.StatusCause": "io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause", + "v1.ObjectFieldSelector": "io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector", + "v1.QuobyteVolumeSource": "io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource", + "v1beta1.ReplicaSetSpec": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetSpec", + "v1.LabelSelector": "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "v1.DownwardAPIVolumeFile": "io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile", + "v1.GCEPersistentDiskVolumeSource": "io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource", + "v1beta1.ClusterCondition": "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterCondition", + "v1.JobCondition": "io.k8s.kubernetes.pkg.apis.batch.v1.JobCondition", + "v1.LabelSelectorRequirement": "io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement", + "v1beta1.Deployment": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment", + "v1.LoadBalancerIngress": "io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress", + "v1.SecretList": "io.k8s.kubernetes.pkg.api.v1.SecretList", + "v1.ServicePort": "io.k8s.kubernetes.pkg.api.v1.ServicePort", + "v1.Namespace": "io.k8s.kubernetes.pkg.api.v1.Namespace", + "v1beta1.ReplicaSetCondition": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetCondition", + "v1.CrossVersionObjectReference": "io.k8s.kubernetes.pkg.apis.autoscaling.v1.CrossVersionObjectReference", + "v1.ConfigMapVolumeSource": "io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource", + "v1.FCVolumeSource": "io.k8s.kubernetes.pkg.api.v1.FCVolumeSource", + "v1.GroupVersionForDiscovery": "io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery", + "v1beta1.ClusterStatus": "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterStatus", + "v1.Job": "io.k8s.kubernetes.pkg.apis.batch.v1.Job", + "v1.PersistentVolumeClaimVolumeSource": "io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource", + "v1.Handler": "io.k8s.kubernetes.pkg.api.v1.Handler", + "v1.ServerAddressByClientCIDR": "io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR", + "v1.PodAntiAffinity": "io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity", + "v1.ISCSIVolumeSource": "io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource", + "v1.WeightedPodAffinityTerm": "io.k8s.kubernetes.pkg.api.v1.WeightedPodAffinityTerm", + "v1.HorizontalPodAutoscalerSpec": "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec", + "v1.HorizontalPodAutoscalerList": "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList", + "v1.Probe": "io.k8s.kubernetes.pkg.api.v1.Probe", + "v1.APIGroup": "io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup", + "v1beta1.DeploymentList": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList", + "v1.NodeAffinity": "io.k8s.kubernetes.pkg.api.v1.NodeAffinity", + "v1.SecretEnvSource": "io.k8s.kubernetes.pkg.api.v1.SecretEnvSource", + "v1beta1.DeploymentStatus": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStatus", + "v1.CinderVolumeSource": "io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource", + "v1.NodeSelectorTerm": "io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm", + "v1.Patch": "io.k8s.apimachinery.pkg.apis.meta.v1.Patch", + "v1.SecretVolumeSource": "io.k8s.kubernetes.pkg.api.v1.SecretVolumeSource", + "v1.Secret": "io.k8s.kubernetes.pkg.api.v1.Secret", + "v1.NodeSelector": "io.k8s.kubernetes.pkg.api.v1.NodeSelector", + "runtime.RawExtension": "io.k8s.apimachinery.pkg.runtime.RawExtension", + "v1.PreferredSchedulingTerm": "io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm", + "v1beta1.ClusterList": "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterList", + "v1.KeyToPath": "io.k8s.kubernetes.pkg.api.v1.KeyToPath", + "intstr.IntOrString": "io.k8s.apimachinery.pkg.util.intstr.IntOrString", + "v1beta1.ClusterSpec": "io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterSpec", + "v1.ServiceList": "io.k8s.kubernetes.pkg.api.v1.ServiceList", + "v1beta1.DeploymentStrategy": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStrategy", + "v1beta1.IngressBackend": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressBackend", + "v1.Time": "io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "v1.ContainerPort": "io.k8s.kubernetes.pkg.api.v1.ContainerPort", + "v1beta1.HTTPIngressRuleValue": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressRuleValue", + "v1.AzureFileVolumeSource": "io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource", + "v1.PodTemplateSpec": "io.k8s.kubernetes.pkg.api.v1.PodTemplateSpec", + "v1.PodSpec": "io.k8s.kubernetes.pkg.api.v1.PodSpec", + "v1beta1.ReplicaSetStatus": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetStatus", + "v1.CephFSVolumeSource": "io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource", + "v1.Volume": "io.k8s.kubernetes.pkg.api.v1.Volume", + "v1beta1.Ingress": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress", + "v1.PodAffinityTerm": "io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm", + "v1.ObjectReference": "io.k8s.kubernetes.pkg.api.v1.ObjectReference", + "v1.ServiceStatus": "io.k8s.kubernetes.pkg.api.v1.ServiceStatus", + "v1.APIResource": "io.k8s.apimachinery.pkg.apis.meta.v1.APIResource", + "v1.AzureDiskVolumeSource": "io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource", + "v1.ConfigMap": "io.k8s.kubernetes.pkg.api.v1.ConfigMap", + "v1beta1.IngressSpec": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressSpec", + "v1.APIVersions": "io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions", + "resource.Quantity": "io.k8s.apimachinery.pkg.api.resource.Quantity", + "v1.Event": "io.k8s.kubernetes.pkg.api.v1.Event", + "v1.JobStatus": "io.k8s.kubernetes.pkg.apis.batch.v1.JobStatus", + "v1beta1.ServerAddressByClientCIDR": "io.k8s.kubernetes.federation.apis.federation.v1beta1.ServerAddressByClientCIDR", + "v1.LocalObjectReference": "io.k8s.kubernetes.pkg.api.v1.LocalObjectReference", + "v1.HostPathVolumeSource": "io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource", + "v1.LoadBalancerStatus": "io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus", + "v1beta1.HTTPIngressPath": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressPath", + "v1beta1.DeploymentSpec": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentSpec", + "v1.ExecAction": "io.k8s.kubernetes.pkg.api.v1.ExecAction", + "v1.HorizontalPodAutoscalerStatus": "io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus", + "v1.JobSpec": "io.k8s.kubernetes.pkg.apis.batch.v1.JobSpec", + "v1beta1.DaemonSetSpec": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetSpec", + "v1.SELinuxOptions": "io.k8s.kubernetes.pkg.api.v1.SELinuxOptions", + "v1beta1.IngressTLS": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressTLS", + "v1beta1.ScaleStatus": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleStatus", + "v1.NamespaceSpec": "io.k8s.kubernetes.pkg.api.v1.NamespaceSpec", + "v1.StatusDetails": "io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails", + "v1beta1.IngressList": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressList", + "v1beta1.DeploymentRollback": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback", + "v1.GlusterfsVolumeSource": "io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource", + "v1.JobList": "io.k8s.kubernetes.pkg.apis.batch.v1.JobList", + "v1.EventList": "io.k8s.kubernetes.pkg.api.v1.EventList", + "v1beta1.IngressRule": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressRule", + "v1.APIResourceList": "io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList", + "v1.ConfigMapKeySelector": "io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector", + "v1.PhotonPersistentDiskVolumeSource": "io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource", + "v1.HTTPHeader": "io.k8s.kubernetes.pkg.api.v1.HTTPHeader", + "version.Info": "io.k8s.apimachinery.pkg.version.Info", + "v1.EventSource": "io.k8s.kubernetes.pkg.api.v1.EventSource", + "v1.OwnerReference": "io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference", + "v1beta1.ScaleSpec": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleSpec", + "v1.GitRepoVolumeSource": "io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource", + "v1.ConfigMapEnvSource": "io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource", + "v1beta1.DeploymentCondition": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentCondition", + "v1.EnvVar": "io.k8s.kubernetes.pkg.api.v1.EnvVar", + "v1.DownwardAPIVolumeSource": "io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource", + "v1.SecurityContext": "io.k8s.kubernetes.pkg.api.v1.SecurityContext", + "v1beta1.IngressStatus": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressStatus", + "v1beta1.Cluster": "io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster", + "v1.Capabilities": "io.k8s.kubernetes.pkg.api.v1.Capabilities", + "v1.AWSElasticBlockStoreVolumeSource": "io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource", + "v1beta1.ReplicaSet": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet", + "v1.ConfigMapList": "io.k8s.kubernetes.pkg.api.v1.ConfigMapList", + "v1.Lifecycle": "io.k8s.kubernetes.pkg.api.v1.Lifecycle", + "v1beta1.Scale": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale", + "v1beta1.DaemonSet": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet", + "v1beta1.RollingUpdateDeployment": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDeployment", + "v1beta1.DaemonSetStatus": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetStatus", + "v1.Preconditions": "io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions", + "v1beta1.DaemonSetList": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList", + "v1.RBDVolumeSource": "io.k8s.kubernetes.pkg.api.v1.RBDVolumeSource", + "v1.NFSVolumeSource": "io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource", + "v1.NodeSelectorRequirement": "io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement", + "v1.ResourceRequirements": "io.k8s.kubernetes.pkg.api.v1.ResourceRequirements", + "v1.WatchEvent": "io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent", + "v1.HTTPGetAction": "io.k8s.kubernetes.pkg.api.v1.HTTPGetAction", + "v1beta1.RollbackConfig": "io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollbackConfig", + "v1.PodSecurityContext": "io.k8s.kubernetes.pkg.api.v1.PodSecurityContext", + "v1.VolumeMount": "io.k8s.kubernetes.pkg.api.v1.VolumeMount", + "v1.NamespaceList": "io.k8s.kubernetes.pkg.api.v1.NamespaceList", + "v1.TCPSocketAction": "io.k8s.kubernetes.pkg.api.v1.TCPSocketAction", + "v1.ResourceFieldSelector": "io.k8s.kubernetes.pkg.api.v1.ResourceFieldSelector", + "v1.Container": "io.k8s.kubernetes.pkg.api.v1.Container", + "v1.VsphereVirtualDiskVolumeSource": "io.k8s.kubernetes.pkg.api.v1.VsphereVirtualDiskVolumeSource", + "v1.EmptyDirVolumeSource": "io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource", + "v1.Status": "io.k8s.apimachinery.pkg.apis.meta.v1.Status", + } + + for k, v := range compatibilityMap { + if _, found := s.Definitions[v]; !found { + continue + } + s.Definitions[k] = spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: spec.MustCreateRef("#/definitions/" + apimachineryopenapi.EscapeJsonPointer(v)), + Description: fmt.Sprintf("Deprecated. Please use %s instead.", v), + }, + } + } + return s, nil +} diff --git a/pkg/genericapiserver/endpoints/openapi/openapi.go b/pkg/genericapiserver/endpoints/openapi/openapi.go index d08ee19dec8..7f24adabbc2 100644 --- a/pkg/genericapiserver/endpoints/openapi/openapi.go +++ b/pkg/genericapiserver/endpoints/openapi/openapi.go @@ -27,7 +27,6 @@ import ( "github.com/go-openapi/spec" "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/openapi" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/util/trie" @@ -170,308 +169,3 @@ func (d *DefinitionNamer) GetDefinitionName(servePath string, name string) (stri } return friendlyName(name), nil } - -// PostProcessSpec finalize OpenAPI spec and add removed definition for backward compatibility -func PostProcessSpec(s *spec.Swagger) (*spec.Swagger, error) { - compatibilityMap := map[string]string{ - "v1beta1.DeploymentStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentStatus", - "v1beta1.ReplicaSetList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ReplicaSetList", - "v1beta1.Eviction": "k8s.io/kubernetes/pkg/apis/policy/v1beta1.Eviction", - "v1beta1.StatefulSetList": "k8s.io/kubernetes/pkg/apis/apps/v1beta1.StatefulSetList", - "v1beta1.RoleBinding": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.RoleBinding", - "v1beta1.PodSecurityPolicyList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.PodSecurityPolicyList", - "v1.NodeSpec": "k8s.io/kubernetes/pkg/api/v1.NodeSpec", - "v1.FlockerVolumeSource": "k8s.io/kubernetes/pkg/api/v1.FlockerVolumeSource", - "v1.ContainerState": "k8s.io/kubernetes/pkg/api/v1.ContainerState", - "v1beta1.ClusterRole": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.ClusterRole", - "v1beta1.StorageClass": "k8s.io/kubernetes/pkg/apis/storage/v1beta1.StorageClass", - "v1.FlexVolumeSource": "k8s.io/kubernetes/pkg/api/v1.FlexVolumeSource", - "v1.SecretKeySelector": "k8s.io/kubernetes/pkg/api/v1.SecretKeySelector", - "v1.DeleteOptions": "k8s.io/kubernetes/pkg/api/v1.DeleteOptions", - "v1.PodStatus": "k8s.io/kubernetes/pkg/api/v1.PodStatus", - "v1.NodeStatus": "k8s.io/kubernetes/pkg/api/v1.NodeStatus", - "v1.ServiceSpec": "k8s.io/kubernetes/pkg/api/v1.ServiceSpec", - "v1.AttachedVolume": "k8s.io/kubernetes/pkg/api/v1.AttachedVolume", - "v1.PersistentVolume": "k8s.io/kubernetes/pkg/api/v1.PersistentVolume", - "v1.LimitRangeList": "k8s.io/kubernetes/pkg/api/v1.LimitRangeList", - "v1alpha1.Role": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.Role", - "v1.Affinity": "k8s.io/kubernetes/pkg/api/v1.Affinity", - "v1beta1.PodDisruptionBudget": "k8s.io/kubernetes/pkg/apis/policy/v1beta1.PodDisruptionBudget", - "v1alpha1.RoleBindingList": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.RoleBindingList", - "v1.PodAffinity": "k8s.io/kubernetes/pkg/api/v1.PodAffinity", - "v1beta1.SELinuxStrategyOptions": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.SELinuxStrategyOptions", - "v1.ResourceQuotaList": "k8s.io/kubernetes/pkg/api/v1.ResourceQuotaList", - "v1.PodList": "k8s.io/kubernetes/pkg/api/v1.PodList", - "v1.EnvVarSource": "k8s.io/kubernetes/pkg/api/v1.EnvVarSource", - "v1beta1.TokenReviewStatus": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1.TokenReviewStatus", - "v1.PersistentVolumeClaimList": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeClaimList", - "v1beta1.RoleList": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.RoleList", - "v1.ListMeta": "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", - "v1.ObjectMeta": "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", - "v1.APIGroupList": "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroupList", - "v2alpha1.Job": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.Job", - "v1.EnvFromSource": "k8s.io/kubernetes/pkg/api/v1.EnvFromSource", - "v1beta1.IngressStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressStatus", - "v1.Service": "k8s.io/kubernetes/pkg/api/v1.Service", - "v1beta1.DaemonSetStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DaemonSetStatus", - "v1alpha1.Subject": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.Subject", - "v1.HorizontalPodAutoscaler": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.HorizontalPodAutoscaler", - "v1.StatusCause": "k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause", - "v1.NodeSelectorRequirement": "k8s.io/kubernetes/pkg/api/v1.NodeSelectorRequirement", - "v1beta1.NetworkPolicyIngressRule": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicyIngressRule", - "v1beta1.ThirdPartyResource": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ThirdPartyResource", - "v1beta1.PodSecurityPolicy": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.PodSecurityPolicy", - "v1beta1.StatefulSet": "k8s.io/kubernetes/pkg/apis/apps/v1beta1.StatefulSet", - "v1.LabelSelector": "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector", - "v1.ScaleSpec": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.ScaleSpec", - "v1.DownwardAPIVolumeFile": "k8s.io/kubernetes/pkg/api/v1.DownwardAPIVolumeFile", - "v1beta1.HorizontalPodAutoscaler": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HorizontalPodAutoscaler", - "v1.AWSElasticBlockStoreVolumeSource": "k8s.io/kubernetes/pkg/api/v1.AWSElasticBlockStoreVolumeSource", - "v1.ComponentStatus": "k8s.io/kubernetes/pkg/api/v1.ComponentStatus", - "v2alpha1.JobSpec": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.JobSpec", - "v1.ContainerImage": "k8s.io/kubernetes/pkg/api/v1.ContainerImage", - "v1.ReplicationControllerStatus": "k8s.io/kubernetes/pkg/api/v1.ReplicationControllerStatus", - "v1.ResourceQuota": "k8s.io/kubernetes/pkg/api/v1.ResourceQuota", - "v1beta1.NetworkPolicyList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicyList", - "v1beta1.NonResourceAttributes": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.NonResourceAttributes", - "v1.JobCondition": "k8s.io/kubernetes/pkg/apis/batch/v1.JobCondition", - "v1.LabelSelectorRequirement": "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement", - "v1beta1.Deployment": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.Deployment", - "v1.LoadBalancerIngress": "k8s.io/kubernetes/pkg/api/v1.LoadBalancerIngress", - "v1.SecretList": "k8s.io/kubernetes/pkg/api/v1.SecretList", - "v1beta1.ReplicaSetSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ReplicaSetSpec", - "v1beta1.RoleBindingList": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.RoleBindingList", - "v1.ServicePort": "k8s.io/kubernetes/pkg/api/v1.ServicePort", - "v1.Namespace": "k8s.io/kubernetes/pkg/api/v1.Namespace", - "v1beta1.NetworkPolicyPeer": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicyPeer", - "v1.ReplicationControllerList": "k8s.io/kubernetes/pkg/api/v1.ReplicationControllerList", - "v1beta1.ReplicaSetCondition": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ReplicaSetCondition", - "v1.ReplicationControllerCondition": "k8s.io/kubernetes/pkg/api/v1.ReplicationControllerCondition", - "v1.DaemonEndpoint": "k8s.io/kubernetes/pkg/api/v1.DaemonEndpoint", - "v1beta1.NetworkPolicyPort": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicyPort", - "v1.NodeSystemInfo": "k8s.io/kubernetes/pkg/api/v1.NodeSystemInfo", - "v1.LimitRangeItem": "k8s.io/kubernetes/pkg/api/v1.LimitRangeItem", - "v1.ConfigMapVolumeSource": "k8s.io/kubernetes/pkg/api/v1.ConfigMapVolumeSource", - "v1beta1.ClusterRoleList": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.ClusterRoleList", - "v1beta1.ResourceAttributes": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.ResourceAttributes", - "v1.Pod": "k8s.io/kubernetes/pkg/api/v1.Pod", - "v1.FCVolumeSource": "k8s.io/kubernetes/pkg/api/v1.FCVolumeSource", - "v1beta1.SubresourceReference": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.SubresourceReference", - "v1.ResourceQuotaStatus": "k8s.io/kubernetes/pkg/api/v1.ResourceQuotaStatus", - "v1alpha1.RoleBinding": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.RoleBinding", - "v1.PodCondition": "k8s.io/kubernetes/pkg/api/v1.PodCondition", - "v1.GroupVersionForDiscovery": "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery", - "v1.NamespaceStatus": "k8s.io/kubernetes/pkg/api/v1.NamespaceStatus", - "v1.Job": "k8s.io/kubernetes/pkg/apis/batch/v1.Job", - "v1.PersistentVolumeClaimVolumeSource": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeClaimVolumeSource", - "v1.Handler": "k8s.io/kubernetes/pkg/api/v1.Handler", - "v1.ComponentStatusList": "k8s.io/kubernetes/pkg/api/v1.ComponentStatusList", - "v1.ServerAddressByClientCIDR": "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR", - "v1.PodAntiAffinity": "k8s.io/kubernetes/pkg/api/v1.PodAntiAffinity", - "v1.ISCSIVolumeSource": "k8s.io/kubernetes/pkg/api/v1.ISCSIVolumeSource", - "v1.ContainerStateRunning": "k8s.io/kubernetes/pkg/api/v1.ContainerStateRunning", - "v1.WeightedPodAffinityTerm": "k8s.io/kubernetes/pkg/api/v1.WeightedPodAffinityTerm", - "v1beta1.HostPortRange": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HostPortRange", - "v1.HorizontalPodAutoscalerSpec": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.HorizontalPodAutoscalerSpec", - "v1.HorizontalPodAutoscalerList": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.HorizontalPodAutoscalerList", - "v1beta1.RoleRef": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.RoleRef", - "v1.Probe": "k8s.io/kubernetes/pkg/api/v1.Probe", - "v1beta1.IngressTLS": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressTLS", - "v1beta1.ThirdPartyResourceList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ThirdPartyResourceList", - "v1beta1.DaemonSet": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DaemonSet", - "v1.APIGroup": "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup", - "v1beta1.Subject": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.Subject", - "v1beta1.DeploymentList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentList", - "v1.NodeAffinity": "k8s.io/kubernetes/pkg/api/v1.NodeAffinity", - "v1beta1.RollingUpdateDeployment": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.RollingUpdateDeployment", - "v1beta1.APIVersion": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.APIVersion", - "v1alpha1.CertificateSigningRequest": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1.CertificateSigningRequest", - "v1.CinderVolumeSource": "k8s.io/kubernetes/pkg/api/v1.CinderVolumeSource", - "v1.NamespaceSpec": "k8s.io/kubernetes/pkg/api/v1.NamespaceSpec", - "v1beta1.PodDisruptionBudgetSpec": "k8s.io/kubernetes/pkg/apis/policy/v1beta1.PodDisruptionBudgetSpec", - "v1.Patch": "k8s.io/apimachinery/pkg/apis/meta/v1.Patch", - "v1beta1.ClusterRoleBinding": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.ClusterRoleBinding", - "v1beta1.HorizontalPodAutoscalerSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HorizontalPodAutoscalerSpec", - "v1.PersistentVolumeClaimSpec": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeClaimSpec", - "v1.Secret": "k8s.io/kubernetes/pkg/api/v1.Secret", - "v1.NodeCondition": "k8s.io/kubernetes/pkg/api/v1.NodeCondition", - "v1.LocalObjectReference": "k8s.io/kubernetes/pkg/api/v1.LocalObjectReference", - "runtime.RawExtension": "k8s.io/apimachinery/pkg/runtime.RawExtension", - "v1.PreferredSchedulingTerm": "k8s.io/kubernetes/pkg/api/v1.PreferredSchedulingTerm", - "v1.RBDVolumeSource": "k8s.io/kubernetes/pkg/api/v1.RBDVolumeSource", - "v1.KeyToPath": "k8s.io/kubernetes/pkg/api/v1.KeyToPath", - "v1.ScaleStatus": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.ScaleStatus", - "v1alpha1.PolicyRule": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.PolicyRule", - "v1.EndpointPort": "k8s.io/kubernetes/pkg/api/v1.EndpointPort", - "v1beta1.IngressList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressList", - "v1.EndpointAddress": "k8s.io/kubernetes/pkg/api/v1.EndpointAddress", - "v1.NodeSelector": "k8s.io/kubernetes/pkg/api/v1.NodeSelector", - "v1beta1.StorageClassList": "k8s.io/kubernetes/pkg/apis/storage/v1beta1.StorageClassList", - "v1.ServiceList": "k8s.io/kubernetes/pkg/api/v1.ServiceList", - "v2alpha1.CronJobSpec": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.CronJobSpec", - "v1.ContainerStateTerminated": "k8s.io/kubernetes/pkg/api/v1.ContainerStateTerminated", - "v1beta1.TokenReview": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1.TokenReview", - "v1beta1.IngressBackend": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressBackend", - "v1.Time": "k8s.io/apimachinery/pkg/apis/meta/v1.Time", - "v1beta1.IngressSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressSpec", - "v2alpha1.JobTemplateSpec": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.JobTemplateSpec", - "v1.LimitRange": "k8s.io/kubernetes/pkg/api/v1.LimitRange", - "v1beta1.UserInfo": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1.UserInfo", - "v1.ResourceQuotaSpec": "k8s.io/kubernetes/pkg/api/v1.ResourceQuotaSpec", - "v1.ContainerPort": "k8s.io/kubernetes/pkg/api/v1.ContainerPort", - "v1beta1.HTTPIngressRuleValue": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HTTPIngressRuleValue", - "v1.AzureFileVolumeSource": "k8s.io/kubernetes/pkg/api/v1.AzureFileVolumeSource", - "v1beta1.NetworkPolicySpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicySpec", - "v1.PodTemplateSpec": "k8s.io/kubernetes/pkg/api/v1.PodTemplateSpec", - "v1.SecretVolumeSource": "k8s.io/kubernetes/pkg/api/v1.SecretVolumeSource", - "v1.PodSpec": "k8s.io/kubernetes/pkg/api/v1.PodSpec", - "v1.CephFSVolumeSource": "k8s.io/kubernetes/pkg/api/v1.CephFSVolumeSource", - "v1beta1.CPUTargetUtilization": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.CPUTargetUtilization", - "v1.Volume": "k8s.io/kubernetes/pkg/api/v1.Volume", - "v1beta1.Ingress": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.Ingress", - "v1beta1.HorizontalPodAutoscalerList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HorizontalPodAutoscalerList", - "v1.PersistentVolumeStatus": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeStatus", - "v1beta1.IDRange": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IDRange", - "v2alpha1.JobCondition": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.JobCondition", - "v1beta1.IngressRule": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.IngressRule", - "v1alpha1.RoleRef": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.RoleRef", - "v1.PodAffinityTerm": "k8s.io/kubernetes/pkg/api/v1.PodAffinityTerm", - "v1.ObjectReference": "k8s.io/kubernetes/pkg/api/v1.ObjectReference", - "v1.ServiceStatus": "k8s.io/kubernetes/pkg/api/v1.ServiceStatus", - "v1.APIResource": "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource", - "v1beta1.Scale": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.Scale", - "v1.AzureDiskVolumeSource": "k8s.io/kubernetes/pkg/api/v1.AzureDiskVolumeSource", - "v1beta1.SubjectAccessReviewStatus": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.SubjectAccessReviewStatus", - "v1.ConfigMap": "k8s.io/kubernetes/pkg/api/v1.ConfigMap", - "v1.CrossVersionObjectReference": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.CrossVersionObjectReference", - "v1.APIVersions": "k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions", - "v1alpha1.ClusterRoleList": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.ClusterRoleList", - "v1.Node": "k8s.io/kubernetes/pkg/api/v1.Node", - "resource.Quantity": "k8s.io/kubernetes/pkg/api/resource.Quantity", - "v1.Event": "k8s.io/kubernetes/pkg/api/v1.Event", - "v1.JobStatus": "k8s.io/kubernetes/pkg/apis/batch/v1.JobStatus", - "v1.PersistentVolumeSpec": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeSpec", - "v1beta1.SubjectAccessReviewSpec": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.SubjectAccessReviewSpec", - "v1.ResourceFieldSelector": "k8s.io/kubernetes/pkg/api/v1.ResourceFieldSelector", - "v1.EndpointSubset": "k8s.io/kubernetes/pkg/api/v1.EndpointSubset", - "v1alpha1.CertificateSigningRequestSpec": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1.CertificateSigningRequestSpec", - "v1.HostPathVolumeSource": "k8s.io/kubernetes/pkg/api/v1.HostPathVolumeSource", - "v1.LoadBalancerStatus": "k8s.io/kubernetes/pkg/api/v1.LoadBalancerStatus", - "v1beta1.HTTPIngressPath": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HTTPIngressPath", - "v1beta1.Role": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.Role", - "v1beta1.DeploymentStrategy": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentStrategy", - "v1beta1.RunAsUserStrategyOptions": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.RunAsUserStrategyOptions", - "v1beta1.DeploymentSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentSpec", - "v1.ExecAction": "k8s.io/kubernetes/pkg/api/v1.ExecAction", - "v1beta1.PodSecurityPolicySpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.PodSecurityPolicySpec", - "v1.HorizontalPodAutoscalerStatus": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.HorizontalPodAutoscalerStatus", - "v1.PersistentVolumeList": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeList", - "v1alpha1.ClusterRole": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.ClusterRole", - "v1.JobSpec": "k8s.io/kubernetes/pkg/apis/batch/v1.JobSpec", - "v1beta1.DaemonSetSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DaemonSetSpec", - "v2alpha1.CronJobList": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.CronJobList", - "v1.Endpoints": "k8s.io/kubernetes/pkg/api/v1.Endpoints", - "v1.SELinuxOptions": "k8s.io/kubernetes/pkg/api/v1.SELinuxOptions", - "v1beta1.SelfSubjectAccessReviewSpec": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.SelfSubjectAccessReviewSpec", - "v1beta1.ScaleStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ScaleStatus", - "v1.NodeSelectorTerm": "k8s.io/kubernetes/pkg/api/v1.NodeSelectorTerm", - "v1alpha1.CertificateSigningRequestStatus": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1.CertificateSigningRequestStatus", - "v1.StatusDetails": "k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails", - "v2alpha1.JobStatus": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.JobStatus", - "v1beta1.DeploymentRollback": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentRollback", - "v1.GlusterfsVolumeSource": "k8s.io/kubernetes/pkg/api/v1.GlusterfsVolumeSource", - "v1.ServiceAccountList": "k8s.io/kubernetes/pkg/api/v1.ServiceAccountList", - "v1.JobList": "k8s.io/kubernetes/pkg/apis/batch/v1.JobList", - "v1.EventList": "k8s.io/kubernetes/pkg/api/v1.EventList", - "v1.ContainerStateWaiting": "k8s.io/kubernetes/pkg/api/v1.ContainerStateWaiting", - "v1.APIResourceList": "k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList", - "v1.ContainerStatus": "k8s.io/kubernetes/pkg/api/v1.ContainerStatus", - "v2alpha1.JobList": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.JobList", - "v1.ConfigMapKeySelector": "k8s.io/kubernetes/pkg/api/v1.ConfigMapKeySelector", - "v1.PhotonPersistentDiskVolumeSource": "k8s.io/kubernetes/pkg/api/v1.PhotonPersistentDiskVolumeSource", - "v1.PodTemplateList": "k8s.io/kubernetes/pkg/api/v1.PodTemplateList", - "v1.PersistentVolumeClaimStatus": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeClaimStatus", - "v1.ServiceAccount": "k8s.io/kubernetes/pkg/api/v1.ServiceAccount", - "v1alpha1.CertificateSigningRequestList": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1.CertificateSigningRequestList", - "v1beta1.SupplementalGroupsStrategyOptions": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.SupplementalGroupsStrategyOptions", - "v1.HTTPHeader": "k8s.io/kubernetes/pkg/api/v1.HTTPHeader", - "version.Info": "k8s.io/apimachinery/pkg/version.Info", - "v1.EventSource": "k8s.io/kubernetes/pkg/api/v1.EventSource", - "v1alpha1.ClusterRoleBindingList": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.ClusterRoleBindingList", - "v1.OwnerReference": "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference", - "v1beta1.ClusterRoleBindingList": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.ClusterRoleBindingList", - "v1beta1.ScaleSpec": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ScaleSpec", - "v1.GitRepoVolumeSource": "k8s.io/kubernetes/pkg/api/v1.GitRepoVolumeSource", - "v1beta1.NetworkPolicy": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.NetworkPolicy", - "v1.ConfigMapEnvSource": "k8s.io/kubernetes/pkg/api/v1.ConfigMapEnvSource", - "v1.PodTemplate": "k8s.io/kubernetes/pkg/api/v1.PodTemplate", - "v1beta1.DeploymentCondition": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DeploymentCondition", - "v1beta1.PodDisruptionBudgetStatus": "k8s.io/kubernetes/pkg/apis/policy/v1beta1.PodDisruptionBudgetStatus", - "v1.EnvVar": "k8s.io/kubernetes/pkg/api/v1.EnvVar", - "v1.LimitRangeSpec": "k8s.io/kubernetes/pkg/api/v1.LimitRangeSpec", - "v1.DownwardAPIVolumeSource": "k8s.io/kubernetes/pkg/api/v1.DownwardAPIVolumeSource", - "v1.NodeDaemonEndpoints": "k8s.io/kubernetes/pkg/api/v1.NodeDaemonEndpoints", - "v1.ComponentCondition": "k8s.io/kubernetes/pkg/api/v1.ComponentCondition", - "v1alpha1.CertificateSigningRequestCondition": "k8s.io/kubernetes/pkg/apis/certificates/v1alpha1.CertificateSigningRequestCondition", - "v1.SecurityContext": "k8s.io/kubernetes/pkg/api/v1.SecurityContext", - "v1beta1.LocalSubjectAccessReview": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.LocalSubjectAccessReview", - "v1beta1.StatefulSetSpec": "k8s.io/kubernetes/pkg/apis/apps/v1beta1.StatefulSetSpec", - "v1.NodeAddress": "k8s.io/kubernetes/pkg/api/v1.NodeAddress", - "v1.QuobyteVolumeSource": "k8s.io/kubernetes/pkg/api/v1.QuobyteVolumeSource", - "v1.Capabilities": "k8s.io/kubernetes/pkg/api/v1.Capabilities", - "v1.GCEPersistentDiskVolumeSource": "k8s.io/kubernetes/pkg/api/v1.GCEPersistentDiskVolumeSource", - "v1beta1.ReplicaSet": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ReplicaSet", - "v1beta1.HorizontalPodAutoscalerStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.HorizontalPodAutoscalerStatus", - "v1beta1.PolicyRule": "k8s.io/kubernetes/pkg/apis/rbac/v1beta1.PolicyRule", - "v1.ConfigMapList": "k8s.io/kubernetes/pkg/api/v1.ConfigMapList", - "v1.Lifecycle": "k8s.io/kubernetes/pkg/api/v1.Lifecycle", - "v1beta1.SelfSubjectAccessReview": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.SelfSubjectAccessReview", - "v2alpha1.CronJob": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.CronJob", - "v2alpha1.CronJobStatus": "k8s.io/kubernetes/pkg/apis/batch/v2alpha1.CronJobStatus", - "v1beta1.SubjectAccessReview": "k8s.io/kubernetes/pkg/apis/authorization/v1beta1.SubjectAccessReview", - "v1.Preconditions": "k8s.io/kubernetes/pkg/api/v1.Preconditions", - "v1beta1.DaemonSetList": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.DaemonSetList", - "v1.PersistentVolumeClaim": "k8s.io/kubernetes/pkg/api/v1.PersistentVolumeClaim", - "v1.Scale": "k8s.io/kubernetes/pkg/apis/autoscaling/v1.Scale", - "v1beta1.StatefulSetStatus": "k8s.io/kubernetes/pkg/apis/apps/v1beta1.StatefulSetStatus", - "v1.NFSVolumeSource": "k8s.io/kubernetes/pkg/api/v1.NFSVolumeSource", - "v1.ObjectFieldSelector": "k8s.io/kubernetes/pkg/api/v1.ObjectFieldSelector", - "v1.ResourceRequirements": "k8s.io/kubernetes/pkg/api/v1.ResourceRequirements", - "v1.WatchEvent": "k8s.io/apimachinery/pkg/apis/meta/v1.WatchEvent", - "v1.ReplicationControllerSpec": "k8s.io/kubernetes/pkg/api/v1.ReplicationControllerSpec", - "v1.HTTPGetAction": "k8s.io/kubernetes/pkg/api/v1.HTTPGetAction", - "v1beta1.RollbackConfig": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.RollbackConfig", - "v1beta1.TokenReviewSpec": "k8s.io/kubernetes/pkg/apis/authentication/v1beta1.TokenReviewSpec", - "v1.PodSecurityContext": "k8s.io/kubernetes/pkg/api/v1.PodSecurityContext", - "v1beta1.PodDisruptionBudgetList": "k8s.io/kubernetes/pkg/apis/policy/v1beta1.PodDisruptionBudgetList", - "v1.VolumeMount": "k8s.io/kubernetes/pkg/api/v1.VolumeMount", - "v1.ReplicationController": "k8s.io/kubernetes/pkg/api/v1.ReplicationController", - "v1.NamespaceList": "k8s.io/kubernetes/pkg/api/v1.NamespaceList", - "v1alpha1.ClusterRoleBinding": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.ClusterRoleBinding", - "v1.TCPSocketAction": "k8s.io/kubernetes/pkg/api/v1.TCPSocketAction", - "v1.Binding": "k8s.io/kubernetes/pkg/api/v1.Binding", - "v1beta1.ReplicaSetStatus": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.ReplicaSetStatus", - "intstr.IntOrString": "k8s.io/kubernetes/pkg/util/intstr.IntOrString", - "v1.EndpointsList": "k8s.io/kubernetes/pkg/api/v1.EndpointsList", - "v1.Container": "k8s.io/kubernetes/pkg/api/v1.Container", - "v1alpha1.RoleList": "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1.RoleList", - "v1.VsphereVirtualDiskVolumeSource": "k8s.io/kubernetes/pkg/api/v1.VsphereVirtualDiskVolumeSource", - "v1.NodeList": "k8s.io/kubernetes/pkg/api/v1.NodeList", - "v1.EmptyDirVolumeSource": "k8s.io/kubernetes/pkg/api/v1.EmptyDirVolumeSource", - "v1beta1.FSGroupStrategyOptions": "k8s.io/kubernetes/pkg/apis/extensions/v1beta1.FSGroupStrategyOptions", - "v1.Status": "k8s.io/apimachinery/pkg/apis/meta/v1.Status", - } - - for k, v := range compatibilityMap { - if _, found := s.Definitions[v]; !found { - continue - } - s.Definitions[k] = spec.Schema{ - SchemaProps: spec.SchemaProps{ - Ref: spec.MustCreateRef("#/definitions/" + openapi.EscapeJsonPointer(v)), - Description: fmt.Sprintf("Deprecated. Please use %s instead.", v), - }, - } - } - return s, nil -} diff --git a/pkg/genericapiserver/server/config.go b/pkg/genericapiserver/server/config.go index a2c9fe6d3b6..c62e17ad021 100644 --- a/pkg/genericapiserver/server/config.go +++ b/pkg/genericapiserver/server/config.go @@ -231,7 +231,6 @@ func DefaultOpenAPIConfig(getDefinitions openapicommon.GetOpenAPIDefinitions) *o GetOperationIDAndTags: apiopenapi.GetOperationIDAndTags, GetDefinitionName: defNamer.GetDefinitionName, GetDefinitions: getDefinitions, - PostProcessSpec: apiopenapi.PostProcessSpec, } } From 09c5a912e236dfb46226dd9d35a45b6d671150c1 Mon Sep 17 00:00:00 2001 From: mbohlool Date: Wed, 1 Feb 2017 15:57:06 -0800 Subject: [PATCH 2/3] Update federation openapi spec --- federation/apis/openapi-spec/swagger.json | 608 ++++++++++++++++++++++ 1 file changed, 608 insertions(+) diff --git a/federation/apis/openapi-spec/swagger.json b/federation/apis/openapi-spec/swagger.json index adc76ea4511..3ef8e95544c 100644 --- a/federation/apis/openapi-spec/swagger.json +++ b/federation/apis/openapi-spec/swagger.json @@ -10384,6 +10384,10 @@ } }, "definitions": { + "intstr.IntOrString": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.util.intstr.IntOrString instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.util.intstr.IntOrString" + }, "io.k8s.apimachinery.pkg.api.resource.Quantity": { "type": "string" }, @@ -14335,6 +14339,610 @@ "type": "string" } } + }, + "resource.Quantity": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.api.resource.Quantity instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity" + }, + "runtime.RawExtension": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.runtime.RawExtension instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension" + }, + "v1.APIGroup": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + }, + "v1.APIGroupList": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroupList" + }, + "v1.APIResource": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.APIResource instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" + }, + "v1.APIResourceList": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + }, + "v1.APIVersions": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIVersions" + }, + "v1.AWSElasticBlockStoreVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.AWSElasticBlockStoreVolumeSource" + }, + "v1.Affinity": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Affinity instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Affinity" + }, + "v1.AzureDiskVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.AzureDiskVolumeSource" + }, + "v1.AzureFileVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.AzureFileVolumeSource" + }, + "v1.Capabilities": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Capabilities instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Capabilities" + }, + "v1.CephFSVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.CephFSVolumeSource" + }, + "v1.CinderVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.CinderVolumeSource" + }, + "v1.ConfigMap": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ConfigMap instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ConfigMap" + }, + "v1.ConfigMapEnvSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ConfigMapEnvSource" + }, + "v1.ConfigMapKeySelector": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ConfigMapKeySelector" + }, + "v1.ConfigMapList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ConfigMapList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ConfigMapList" + }, + "v1.ConfigMapVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ConfigMapVolumeSource" + }, + "v1.Container": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Container instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Container" + }, + "v1.ContainerPort": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ContainerPort instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ContainerPort" + }, + "v1.CrossVersionObjectReference": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.autoscaling.v1.CrossVersionObjectReference instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.autoscaling.v1.CrossVersionObjectReference" + }, + "v1.DeleteOptions": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + }, + "v1.DownwardAPIVolumeFile": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeFile" + }, + "v1.DownwardAPIVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.DownwardAPIVolumeSource" + }, + "v1.EmptyDirVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.EmptyDirVolumeSource" + }, + "v1.EnvFromSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.EnvFromSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.EnvFromSource" + }, + "v1.EnvVar": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.EnvVar instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.EnvVar" + }, + "v1.EnvVarSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.EnvVarSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.EnvVarSource" + }, + "v1.Event": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Event instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Event" + }, + "v1.EventList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.EventList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.EventList" + }, + "v1.EventSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.EventSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.EventSource" + }, + "v1.ExecAction": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ExecAction instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ExecAction" + }, + "v1.FCVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.FCVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.FCVolumeSource" + }, + "v1.FlexVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.FlexVolumeSource" + }, + "v1.FlockerVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.FlockerVolumeSource" + }, + "v1.GCEPersistentDiskVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.GCEPersistentDiskVolumeSource" + }, + "v1.GitRepoVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.GitRepoVolumeSource" + }, + "v1.GlusterfsVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.GlusterfsVolumeSource" + }, + "v1.GroupVersionForDiscovery": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" + }, + "v1.HTTPGetAction": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.HTTPGetAction instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.HTTPGetAction" + }, + "v1.HTTPHeader": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.HTTPHeader instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.HTTPHeader" + }, + "v1.Handler": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Handler instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Handler" + }, + "v1.HorizontalPodAutoscaler": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscaler" + }, + "v1.HorizontalPodAutoscalerList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerList" + }, + "v1.HorizontalPodAutoscalerSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerSpec" + }, + "v1.HorizontalPodAutoscalerStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.autoscaling.v1.HorizontalPodAutoscalerStatus" + }, + "v1.HostPathVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.HostPathVolumeSource" + }, + "v1.ISCSIVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ISCSIVolumeSource" + }, + "v1.Job": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.batch.v1.Job instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.batch.v1.Job" + }, + "v1.JobCondition": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.batch.v1.JobCondition instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.batch.v1.JobCondition" + }, + "v1.JobList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.batch.v1.JobList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.batch.v1.JobList" + }, + "v1.JobSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.batch.v1.JobSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.batch.v1.JobSpec" + }, + "v1.JobStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.batch.v1.JobStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.batch.v1.JobStatus" + }, + "v1.KeyToPath": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.KeyToPath instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.KeyToPath" + }, + "v1.LabelSelector": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" + }, + "v1.LabelSelectorRequirement": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + }, + "v1.Lifecycle": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Lifecycle instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Lifecycle" + }, + "v1.ListMeta": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + }, + "v1.LoadBalancerIngress": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.LoadBalancerIngress" + }, + "v1.LoadBalancerStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.LoadBalancerStatus" + }, + "v1.LocalObjectReference": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.LocalObjectReference instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.LocalObjectReference" + }, + "v1.NFSVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.NFSVolumeSource" + }, + "v1.Namespace": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Namespace instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Namespace" + }, + "v1.NamespaceList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.NamespaceList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.NamespaceList" + }, + "v1.NamespaceSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.NamespaceSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.NamespaceSpec" + }, + "v1.NamespaceStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.NamespaceStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.NamespaceStatus" + }, + "v1.NodeAffinity": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.NodeAffinity instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.NodeAffinity" + }, + "v1.NodeSelector": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.NodeSelector instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.NodeSelector" + }, + "v1.NodeSelectorRequirement": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.NodeSelectorRequirement" + }, + "v1.NodeSelectorTerm": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.NodeSelectorTerm" + }, + "v1.ObjectFieldSelector": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ObjectFieldSelector" + }, + "v1.ObjectMeta": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "v1.ObjectReference": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ObjectReference instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ObjectReference" + }, + "v1.OwnerReference": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" + }, + "v1.Patch": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.Patch instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + }, + "v1.PersistentVolumeClaimVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PersistentVolumeClaimVolumeSource" + }, + "v1.PhotonPersistentDiskVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource" + }, + "v1.PodAffinity": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.PodAffinity instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PodAffinity" + }, + "v1.PodAffinityTerm": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PodAffinityTerm" + }, + "v1.PodAntiAffinity": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PodAntiAffinity" + }, + "v1.PodSecurityContext": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.PodSecurityContext instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PodSecurityContext" + }, + "v1.PodSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.PodSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PodSpec" + }, + "v1.PodTemplateSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.PodTemplateSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PodTemplateSpec" + }, + "v1.Preconditions": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions" + }, + "v1.PreferredSchedulingTerm": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm" + }, + "v1.Probe": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Probe instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Probe" + }, + "v1.QuobyteVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource" + }, + "v1.RBDVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.RBDVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.RBDVolumeSource" + }, + "v1.ResourceFieldSelector": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ResourceFieldSelector instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ResourceFieldSelector" + }, + "v1.ResourceRequirements": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ResourceRequirements instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ResourceRequirements" + }, + "v1.SELinuxOptions": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.SELinuxOptions instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.SELinuxOptions" + }, + "v1.Secret": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Secret instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Secret" + }, + "v1.SecretEnvSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.SecretEnvSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.SecretEnvSource" + }, + "v1.SecretKeySelector": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.SecretKeySelector instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.SecretKeySelector" + }, + "v1.SecretList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.SecretList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.SecretList" + }, + "v1.SecretVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.SecretVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.SecretVolumeSource" + }, + "v1.SecurityContext": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.SecurityContext instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.SecurityContext" + }, + "v1.ServerAddressByClientCIDR": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" + }, + "v1.Service": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Service instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Service" + }, + "v1.ServiceList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ServiceList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ServiceList" + }, + "v1.ServicePort": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ServicePort instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ServicePort" + }, + "v1.ServiceSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ServiceSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ServiceSpec" + }, + "v1.ServiceStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.ServiceStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ServiceStatus" + }, + "v1.Status": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.Status instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + }, + "v1.StatusCause": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" + }, + "v1.StatusDetails": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails" + }, + "v1.TCPSocketAction": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.TCPSocketAction instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.TCPSocketAction" + }, + "v1.Time": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.Time instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time" + }, + "v1.Volume": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.Volume instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.Volume" + }, + "v1.VolumeMount": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.VolumeMount instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.VolumeMount" + }, + "v1.VsphereVirtualDiskVolumeSource": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.VsphereVirtualDiskVolumeSource instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.VsphereVirtualDiskVolumeSource" + }, + "v1.WatchEvent": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + }, + "v1.WeightedPodAffinityTerm": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.api.v1.WeightedPodAffinityTerm instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.WeightedPodAffinityTerm" + }, + "v1beta1.Cluster": { + "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster instead.", + "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.Cluster" + }, + "v1beta1.ClusterCondition": { + "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterCondition instead.", + "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterCondition" + }, + "v1beta1.ClusterList": { + "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterList" + }, + "v1beta1.ClusterSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterSpec" + }, + "v1beta1.ClusterStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ClusterStatus" + }, + "v1beta1.DaemonSet": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSet" + }, + "v1beta1.DaemonSetList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetList" + }, + "v1beta1.DaemonSetSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetSpec" + }, + "v1beta1.DaemonSetStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DaemonSetStatus" + }, + "v1beta1.Deployment": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Deployment" + }, + "v1beta1.DeploymentCondition": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentCondition instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentCondition" + }, + "v1beta1.DeploymentList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentList" + }, + "v1beta1.DeploymentRollback": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentRollback" + }, + "v1beta1.DeploymentSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentSpec" + }, + "v1beta1.DeploymentStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStatus" + }, + "v1beta1.DeploymentStrategy": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStrategy instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.DeploymentStrategy" + }, + "v1beta1.HTTPIngressPath": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressPath instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressPath" + }, + "v1beta1.HTTPIngressRuleValue": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressRuleValue instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.HTTPIngressRuleValue" + }, + "v1beta1.Ingress": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress" + }, + "v1beta1.IngressBackend": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressBackend instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressBackend" + }, + "v1beta1.IngressList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressList" + }, + "v1beta1.IngressRule": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressRule instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressRule" + }, + "v1beta1.IngressSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressSpec" + }, + "v1beta1.IngressStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressStatus" + }, + "v1beta1.IngressTLS": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressTLS instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.IngressTLS" + }, + "v1beta1.ReplicaSet": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSet" + }, + "v1beta1.ReplicaSetCondition": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetCondition instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetCondition" + }, + "v1beta1.ReplicaSetList": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetList" + }, + "v1beta1.ReplicaSetSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetSpec" + }, + "v1beta1.ReplicaSetStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ReplicaSetStatus" + }, + "v1beta1.RollbackConfig": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollbackConfig instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollbackConfig" + }, + "v1beta1.RollingUpdateDeployment": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDeployment instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.RollingUpdateDeployment" + }, + "v1beta1.Scale": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Scale" + }, + "v1beta1.ScaleSpec": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleSpec instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleSpec" + }, + "v1beta1.ScaleStatus": { + "description": "Deprecated. Please use io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleStatus instead.", + "$ref": "#/definitions/io.k8s.kubernetes.pkg.apis.extensions.v1beta1.ScaleStatus" + }, + "v1beta1.ServerAddressByClientCIDR": { + "description": "Deprecated. Please use io.k8s.kubernetes.federation.apis.federation.v1beta1.ServerAddressByClientCIDR instead.", + "$ref": "#/definitions/io.k8s.kubernetes.federation.apis.federation.v1beta1.ServerAddressByClientCIDR" + }, + "version.Info": { + "description": "Deprecated. Please use io.k8s.apimachinery.pkg.version.Info instead.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.version.Info" } }, "securityDefinitions": { From 7c4faba1a169e686a52892bb46a836f9696bc6e4 Mon Sep 17 00:00:00 2001 From: mbohlool Date: Wed, 1 Feb 2017 16:24:04 -0800 Subject: [PATCH 3/3] Update bazel --- cmd/kube-apiserver/app/BUILD | 2 ++ federation/cmd/federation-apiserver/app/BUILD | 2 ++ pkg/genericapiserver/endpoints/openapi/BUILD | 1 - 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cmd/kube-apiserver/app/BUILD b/cmd/kube-apiserver/app/BUILD index e255e465aac..224cd149c5a 100644 --- a/cmd/kube-apiserver/app/BUILD +++ b/cmd/kube-apiserver/app/BUILD @@ -54,10 +54,12 @@ go_library( "//plugin/pkg/admission/securitycontext/scdeny:go_default_library", "//plugin/pkg/admission/serviceaccount:go_default_library", "//plugin/pkg/admission/storageclass/default:go_default_library", + "//vendor:github.com/go-openapi/spec", "//vendor:github.com/golang/glog", "//vendor:github.com/pborman/uuid", "//vendor:github.com/spf13/cobra", "//vendor:github.com/spf13/pflag", + "//vendor:k8s.io/apimachinery/pkg/openapi", "//vendor:k8s.io/apimachinery/pkg/runtime/schema", "//vendor:k8s.io/apimachinery/pkg/util/errors", "//vendor:k8s.io/apimachinery/pkg/util/net", diff --git a/federation/cmd/federation-apiserver/app/BUILD b/federation/cmd/federation-apiserver/app/BUILD index c1181936c13..83f8db55fe9 100644 --- a/federation/cmd/federation-apiserver/app/BUILD +++ b/federation/cmd/federation-apiserver/app/BUILD @@ -63,10 +63,12 @@ go_library( "//plugin/pkg/admission/deny:go_default_library", "//plugin/pkg/admission/gc:go_default_library", "//plugin/pkg/admission/namespace/lifecycle:go_default_library", + "//vendor:github.com/go-openapi/spec", "//vendor:github.com/golang/glog", "//vendor:github.com/pborman/uuid", "//vendor:github.com/spf13/cobra", "//vendor:github.com/spf13/pflag", + "//vendor:k8s.io/apimachinery/pkg/openapi", "//vendor:k8s.io/apimachinery/pkg/runtime/schema", "//vendor:k8s.io/apimachinery/pkg/util/errors", "//vendor:k8s.io/apimachinery/pkg/util/sets", diff --git a/pkg/genericapiserver/endpoints/openapi/BUILD b/pkg/genericapiserver/endpoints/openapi/BUILD index d691380367d..076eab64240 100644 --- a/pkg/genericapiserver/endpoints/openapi/BUILD +++ b/pkg/genericapiserver/endpoints/openapi/BUILD @@ -16,7 +16,6 @@ go_library( "//vendor:github.com/emicklei/go-restful", "//vendor:github.com/go-openapi/spec", "//vendor:k8s.io/apimachinery/pkg/apis/meta/v1", - "//vendor:k8s.io/apimachinery/pkg/openapi", "//vendor:k8s.io/apimachinery/pkg/runtime", "//vendor:k8s.io/apimachinery/pkg/runtime/schema", "//vendor:k8s.io/apiserver/pkg/util/trie",