func Convert_v1_PodSecurityContext_To_api_PodSecurityContext(in *PodSecurityContext, out *api.PodSecurityContext, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*PodSecurityContext))(in) } out.SupplementalGroups = in.SupplementalGroups if in.SELinuxOptions != nil { out.SELinuxOptions = new(api.SELinuxOptions) if err := Convert_v1_SELinuxOptions_To_api_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil { return err } } else { out.SELinuxOptions = nil } if in.RunAsUser != nil { out.RunAsUser = new(int64) *out.RunAsUser = *in.RunAsUser } else { out.RunAsUser = nil } if in.RunAsNonRoot != nil { out.RunAsNonRoot = new(bool) *out.RunAsNonRoot = *in.RunAsNonRoot } else { out.RunAsNonRoot = nil } if in.FSGroup != nil { out.FSGroup = new(int64) *out.FSGroup = *in.FSGroup } else { out.FSGroup = nil } return nil }
func Convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec(in *ReplicationControllerSpec, out *api.ReplicationControllerSpec, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*ReplicationControllerSpec))(in) } out.Replicas = int(*in.Replicas) if in.Selector != nil { out.Selector = make(map[string]string) for key, val := range in.Selector { out.Selector[key] = val } } else { out.Selector = nil } //if in.TemplateRef != nil { // out.TemplateRef = new(api.ObjectReference) // if err := Convert_v1_ObjectReference_To_api_ObjectReference(in.TemplateRef, out.TemplateRef, s); err != nil { // return err // } //} else { // out.TemplateRef = nil //} if in.Template != nil { out.Template = new(api.PodTemplateSpec) if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil { return err } } else { out.Template = nil } return nil }
func Convert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec(in *DeploymentSpec, out *extensions.DeploymentSpec, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*DeploymentSpec))(in) } if in.Replicas != nil { out.Replicas = int(*in.Replicas) } if in.Selector != nil { out.Selector = make(map[string]string) for key, val := range in.Selector { out.Selector[key] = val } } else { out.Selector = nil } if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } if err := Convert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { return err } if in.UniqueLabelKey != nil { out.UniqueLabelKey = *in.UniqueLabelKey } return nil }
func autoConvert_v1alpha1_KubeProxyConfiguration_To_componentconfig_KubeProxyConfiguration(in *KubeProxyConfiguration, out *componentconfig.KubeProxyConfiguration, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*KubeProxyConfiguration))(in) } if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil { return err } out.BindAddress = in.BindAddress out.CleanupIPTables = in.CleanupIPTables out.HealthzBindAddress = in.HealthzBindAddress out.HealthzPort = int(in.HealthzPort) out.HostnameOverride = in.HostnameOverride out.IPTablesSyncePeriodSeconds = int(in.IPTablesSyncePeriodSeconds) out.KubeAPIBurst = int(in.KubeAPIBurst) out.KubeAPIQPS = int(in.KubeAPIQPS) out.KubeconfigPath = in.KubeconfigPath out.MasqueradeAll = in.MasqueradeAll out.Master = in.Master if in.OOMScoreAdj != nil { out.OOMScoreAdj = new(int) *out.OOMScoreAdj = int(*in.OOMScoreAdj) } else { out.OOMScoreAdj = nil } out.Mode = componentconfig.ProxyMode(in.Mode) out.PortRange = in.PortRange out.ResourceContainer = in.ResourceContainer out.UDPTimeoutMilliseconds = int(in.UDPTimeoutMilliseconds) return nil }
func autoConvert_v1alpha1_RawPod_To_metrics_RawPod(in *RawPod, out *metrics.RawPod, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*RawPod))(in) } if err := api.Convert_unversioned_TypeMeta_To_unversioned_TypeMeta(&in.TypeMeta, &out.TypeMeta, s); err != nil { return err } return nil }
// rawExtensionToEmbeddedObject does the conversion you would expect from the name, using the information // given in conversion.Scope. It's placed in all schemes as a ConversionFunc to enable plugins; // see the comment for RawExtension. func (self *Scheme) rawExtensionToEmbeddedObject(in *RawExtension, out *EmbeddedObject, s conversion.Scope) error { if len(in.RawJSON) == 0 || (len(in.RawJSON) == 4 && string(in.RawJSON) == "null") { out.Object = nil return nil } // Figure out the type and kind of the output object. inGroupVersionString, outGroupVersionString, scheme := self.fromScope(s) dataKind, err := scheme.raw.DataKind(in.RawJSON) if err != nil { return err } inVersion, err := unversioned.ParseGroupVersion(inGroupVersionString) if err != nil { return err } outVersion, err := unversioned.ParseGroupVersion(outGroupVersionString) if err != nil { return err } // We have to make this object ourselves because we don't store the version field for // plugin objects. inObj, err := scheme.New(inVersion.WithKind(dataKind.Kind)) if err != nil { return err } err = DecodeInto(scheme, in.RawJSON, inObj) if err != nil { return err } // Make the desired internal version, and do the conversion. outObj, err := scheme.New(outVersion.WithKind(dataKind.Kind)) if err != nil { return err } err = scheme.Convert(inObj, outObj) if err != nil { return err } // Last step, clear the Kind field; that should always be blank in memory. err = s.Convert( &emptyPlugin{PluginBase: PluginBase{Kind: ""}}, outObj, conversion.SourceToDest|conversion.IgnoreMissingFields|conversion.AllowDifferentFieldTypeNames, ) if err != nil { return err } out.Object = outObj return nil }
func Convert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy(in *DeploymentStrategy, out *extensions.DeploymentStrategy, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*DeploymentStrategy))(in) } out.Type = extensions.DeploymentStrategyType(in.Type) if in.RollingUpdate != nil { out.RollingUpdate = new(extensions.RollingUpdateDeployment) if err := Convert_v1beta1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment(in.RollingUpdate, out.RollingUpdate, s); err != nil { return err } } else { out.RollingUpdate = nil } return nil }
// embeddedObjectToRawExtension does the conversion you would expect from the name, using the information // given in conversion.Scope. It's placed in the DefaultScheme as a ConversionFunc to enable plugins; // see the comment for RawExtension. func (self *Scheme) embeddedObjectToRawExtension(in *EmbeddedObject, out *RawExtension, s conversion.Scope) error { if in.Object == nil { out.RawJSON = []byte("null") return nil } // Figure out the type and kind of the output object. _, outGroupVersionString, scheme := self.fromScope(s) objKind, err := scheme.raw.ObjectKind(in.Object) if err != nil { return err } outVersion, err := unversioned.ParseGroupVersion(outGroupVersionString) if err != nil { return err } // Manufacture an object of this type and kind. outObj, err := scheme.New(outVersion.WithKind(objKind.Kind)) if err != nil { return err } // Manually do the conversion. err = s.Convert(in.Object, outObj, 0) if err != nil { return err } // Copy the kind field into the output object. err = s.Convert( &emptyPlugin{PluginBase: PluginBase{Kind: objKind.Kind}}, outObj, conversion.SourceToDest|conversion.IgnoreMissingFields|conversion.AllowDifferentFieldTypeNames, ) if err != nil { return err } // Because we provide the correct version, EncodeToVersion will not attempt a conversion. raw, err := scheme.EncodeToVersion(outObj, outVersion.String()) if err != nil { // TODO: if this fails, create an Unknown-- maybe some other // component will understand it. return err } out.RawJSON = raw return nil }
func Convert_v1_ResourceList_To_api_ResourceList(in *ResourceList, out *api.ResourceList, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*ResourceList))(in) } if *in == nil { return nil } converted := make(api.ResourceList) for key, val := range *in { value := val.Copy() // TODO(#18538): We round up resource values to milli scale to maintain API compatibility. // In the future, we should instead reject values that need rounding. const milliScale = 3 value.Amount.Round(value.Amount, milliScale, inf.RoundUp) converted[api.ResourceName(key)] = *value } *out = converted return nil }
func Convert_v1beta1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment(in *RollingUpdateDeployment, out *extensions.RollingUpdateDeployment, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*RollingUpdateDeployment))(in) } if err := s.Convert(in.MaxUnavailable, &out.MaxUnavailable, 0); err != nil { return err } if err := s.Convert(in.MaxSurge, &out.MaxSurge, 0); err != nil { return err } out.MinReadySeconds = int(in.MinReadySeconds) return nil }
func Convert_v1_PodSpec_To_api_PodSpec(in *PodSpec, out *api.PodSpec, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*PodSpec))(in) } if in.Volumes != nil { out.Volumes = make([]api.Volume, len(in.Volumes)) for i := range in.Volumes { if err := Convert_v1_Volume_To_api_Volume(&in.Volumes[i], &out.Volumes[i], s); err != nil { return err } } } else { out.Volumes = nil } if in.Containers != nil { out.Containers = make([]api.Container, len(in.Containers)) for i := range in.Containers { if err := Convert_v1_Container_To_api_Container(&in.Containers[i], &out.Containers[i], s); err != nil { return err } } } else { out.Containers = nil } out.RestartPolicy = api.RestartPolicy(in.RestartPolicy) if in.TerminationGracePeriodSeconds != nil { out.TerminationGracePeriodSeconds = new(int64) *out.TerminationGracePeriodSeconds = *in.TerminationGracePeriodSeconds } else { out.TerminationGracePeriodSeconds = nil } if in.ActiveDeadlineSeconds != nil { out.ActiveDeadlineSeconds = new(int64) *out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds } else { out.ActiveDeadlineSeconds = nil } out.DNSPolicy = api.DNSPolicy(in.DNSPolicy) if in.NodeSelector != nil { out.NodeSelector = make(map[string]string) for key, val := range in.NodeSelector { out.NodeSelector[key] = val } } else { out.NodeSelector = nil } // We support DeprecatedServiceAccount as an alias for ServiceAccountName. // If both are specified, ServiceAccountName (the new field) wins. out.ServiceAccountName = in.ServiceAccountName if in.ServiceAccountName == "" { out.ServiceAccountName = in.DeprecatedServiceAccount } out.NodeName = in.NodeName if in.SecurityContext != nil { out.SecurityContext = new(api.PodSecurityContext) if err := Convert_v1_PodSecurityContext_To_api_PodSecurityContext(in.SecurityContext, out.SecurityContext, s); err != nil { return err } } // the host namespace fields have to be handled specially for backward compatibility // with v1.0.0 if out.SecurityContext == nil { out.SecurityContext = new(api.PodSecurityContext) } out.SecurityContext.HostNetwork = in.HostNetwork out.SecurityContext.HostPID = in.HostPID out.SecurityContext.HostIPC = in.HostIPC if in.ImagePullSecrets != nil { out.ImagePullSecrets = make([]api.LocalObjectReference, len(in.ImagePullSecrets)) for i := range in.ImagePullSecrets { if err := Convert_v1_LocalObjectReference_To_api_LocalObjectReference(&in.ImagePullSecrets[i], &out.ImagePullSecrets[i], s); err != nil { return err } } } else { out.ImagePullSecrets = nil } return nil }
// fromScope gets the input version, desired output version, and desired Scheme // from a conversion.Scope. func (self *Scheme) fromScope(s conversion.Scope) (inVersion, outVersion string, scheme *Scheme) { scheme = self inVersion = s.Meta().SrcVersion outVersion = s.Meta().DestVersion return inVersion, outVersion, scheme }
// The following two PodSpec conversions functions where copied from pkg/api/conversion.go // for the generated functions to work properly. // This should be fixed: https://github.com/kubernetes/kubernetes/issues/12977 func Convert_api_PodSpec_To_v1_PodSpec(in *api.PodSpec, out *v1.PodSpec, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*api.PodSpec))(in) } if in.Volumes != nil { out.Volumes = make([]v1.Volume, len(in.Volumes)) for i := range in.Volumes { if err := Convert_api_Volume_To_v1_Volume(&in.Volumes[i], &out.Volumes[i], s); err != nil { return err } } } else { out.Volumes = nil } if in.Containers != nil { out.Containers = make([]v1.Container, len(in.Containers)) for i := range in.Containers { if err := Convert_api_Container_To_v1_Container(&in.Containers[i], &out.Containers[i], s); err != nil { return err } } } else { out.Containers = nil } out.RestartPolicy = v1.RestartPolicy(in.RestartPolicy) if in.TerminationGracePeriodSeconds != nil { out.TerminationGracePeriodSeconds = new(int64) *out.TerminationGracePeriodSeconds = *in.TerminationGracePeriodSeconds } else { out.TerminationGracePeriodSeconds = nil } if in.ActiveDeadlineSeconds != nil { out.ActiveDeadlineSeconds = new(int64) *out.ActiveDeadlineSeconds = *in.ActiveDeadlineSeconds } else { out.ActiveDeadlineSeconds = nil } out.DNSPolicy = v1.DNSPolicy(in.DNSPolicy) if in.NodeSelector != nil { out.NodeSelector = make(map[string]string) for key, val := range in.NodeSelector { out.NodeSelector[key] = val } } else { out.NodeSelector = nil } out.ServiceAccountName = in.ServiceAccountName // DeprecatedServiceAccount is an alias for ServiceAccountName. out.DeprecatedServiceAccount = in.ServiceAccountName out.NodeName = in.NodeName if in.SecurityContext != nil { out.SecurityContext = new(v1.PodSecurityContext) if err := Convert_api_PodSecurityContext_To_v1_PodSecurityContext(in.SecurityContext, out.SecurityContext, s); err != nil { return err } out.HostNetwork = in.SecurityContext.HostNetwork out.HostPID = in.SecurityContext.HostPID out.HostIPC = in.SecurityContext.HostIPC } if in.ImagePullSecrets != nil { out.ImagePullSecrets = make([]v1.LocalObjectReference, len(in.ImagePullSecrets)) for i := range in.ImagePullSecrets { if err := Convert_api_LocalObjectReference_To_v1_LocalObjectReference(&in.ImagePullSecrets[i], &out.ImagePullSecrets[i], s); err != nil { return err } } } else { out.ImagePullSecrets = nil } return nil }