Documentation
¶
Index ¶
- Constants
- Variables
- func Convert_v1alpha1_ControlPlaneConfiguration_To_v1alpha2_ControlPlaneConfiguration(in *ControlPlaneConfiguration, out *v1alpha2.ControlPlaneConfiguration, ...) error
- func Convert_v1alpha1_CritBootstrapServerConfiguration_To_v1alpha2_CritBootstrapServerConfiguration(in *CritBootstrapServerConfiguration, ...) error
- func Convert_v1alpha1_EtcdConfiguration_To_v1alpha2_EtcdConfiguration(in *EtcdConfiguration, out *v1alpha2.EtcdConfiguration, s conversion.Scope) error
- func Convert_v1alpha1_KubeAPIServerConfiguration_To_v1alpha2_KubeAPIServerConfiguration(in *KubeAPIServerConfiguration, out *v1alpha2.KubeAPIServerConfiguration, ...) error
- func Convert_v1alpha1_KubeControllerManagerConfiguration_To_v1alpha2_KubeControllerManagerConfiguration(in *KubeControllerManagerConfiguration, ...) error
- func Convert_v1alpha1_KubeSchedulerConfiguration_To_v1alpha2_KubeSchedulerConfiguration(in *KubeSchedulerConfiguration, out *v1alpha2.KubeSchedulerConfiguration, ...) error
- func Convert_v1alpha1_NodeConfiguration_To_v1alpha2_NodeConfiguration(in *NodeConfiguration, out *v1alpha2.NodeConfiguration, s conversion.Scope) error
- func Convert_v1alpha1_WorkerConfiguration_To_v1alpha2_WorkerConfiguration(in *WorkerConfiguration, out *v1alpha2.WorkerConfiguration, s conversion.Scope) error
- func Convert_v1alpha2_ControlPlaneConfiguration_To_v1alpha1_ControlPlaneConfiguration(in *v1alpha2.ControlPlaneConfiguration, out *ControlPlaneConfiguration, ...) error
- func Convert_v1alpha2_CritBootstrapServerConfiguration_To_v1alpha1_CritBootstrapServerConfiguration(in *v1alpha2.CritBootstrapServerConfiguration, ...) error
- func Convert_v1alpha2_EtcdConfiguration_To_v1alpha1_EtcdConfiguration(in *v1alpha2.EtcdConfiguration, out *EtcdConfiguration, s conversion.Scope) error
- func Convert_v1alpha2_KubeAPIServerConfiguration_To_v1alpha1_KubeAPIServerConfiguration(in *v1alpha2.KubeAPIServerConfiguration, out *KubeAPIServerConfiguration, ...) error
- func Convert_v1alpha2_KubeControllerManagerConfiguration_To_v1alpha1_KubeControllerManagerConfiguration(in *v1alpha2.KubeControllerManagerConfiguration, ...) error
- func Convert_v1alpha2_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration(in *v1alpha2.KubeSchedulerConfiguration, out *KubeSchedulerConfiguration, ...) error
- func Convert_v1alpha2_NodeConfiguration_To_v1alpha1_NodeConfiguration(in *v1alpha2.NodeConfiguration, out *NodeConfiguration, s conversion.Scope) error
- func Convert_v1alpha2_WorkerConfiguration_To_v1alpha1_WorkerConfiguration(in *v1alpha2.WorkerConfiguration, out *WorkerConfiguration, s conversion.Scope) error
- func RegisterConversions(s *runtime.Scheme) error
- func RegisterDefaults(scheme *runtime.Scheme) error
- func SetDefaults_ControlPlaneConfiguration(obj *ControlPlaneConfiguration)
- func SetDefaults_KubeletConfiguration(obj *kubeletconfigv1beta1.KubeletConfiguration)
- func SetDefaults_NodeConfiguration(obj *NodeConfiguration)
- func SetDefaults_WorkerConfiguration(obj *WorkerConfiguration)
- func SetObjectDefaults_ControlPlaneConfiguration(in *ControlPlaneConfiguration)
- func SetObjectDefaults_WorkerConfiguration(in *WorkerConfiguration)
- type APIEndpoint
- type ContainerRuntime
- type ControlPlaneConfiguration
- type CritBootstrapServerConfiguration
- type EtcdConfiguration
- type HostPathMount
- type KubeAPIServerConfiguration
- type KubeControllerManagerConfiguration
- type KubeSchedulerConfiguration
- type NodeConfiguration
- type WorkerConfiguration
Constants ¶
const ( DefaultIPTablesMasqueradeBit = 14 DefaultIPTablesDropBit = 15 )
const GroupName = "crit.criticalstack.com"
GroupName is the group name used in this package.
Variables ¶
var ( // DefaultEvictionHard includes default options for hard eviction. DefaultEvictionHard = map[string]string{ "memory.available": "100Mi", "nodefs.available": "10%", "nodefs.inodesFree": "5%", "imagefs.available": "15%", } // Refer to [Node Allocatable](https://git.k8s.io/community/contributors/design-proposals/node/node-allocatable.md) doc for more information. DefaultNodeAllocatableEnforcement = []string{"pods"} )
var ( // SchemeGroupVersion is group version used to register these objects. SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} // SchemeBuilder is a type to collect functions that add data to an API // object through a scheme. SchemeBuilder runtime.SchemeBuilder // AddToScheme applies all the stored functions in the localSchemeBuilder // to the scheme. AddToScheme = localSchemeBuilder.AddToScheme )
Functions ¶
func Convert_v1alpha1_ControlPlaneConfiguration_To_v1alpha2_ControlPlaneConfiguration ¶
func Convert_v1alpha1_ControlPlaneConfiguration_To_v1alpha2_ControlPlaneConfiguration(in *ControlPlaneConfiguration, out *v1alpha2.ControlPlaneConfiguration, s conversion.Scope) error
func Convert_v1alpha1_CritBootstrapServerConfiguration_To_v1alpha2_CritBootstrapServerConfiguration ¶
func Convert_v1alpha1_CritBootstrapServerConfiguration_To_v1alpha2_CritBootstrapServerConfiguration(in *CritBootstrapServerConfiguration, out *v1alpha2.CritBootstrapServerConfiguration, s conversion.Scope) error
func Convert_v1alpha1_EtcdConfiguration_To_v1alpha2_EtcdConfiguration ¶
func Convert_v1alpha1_EtcdConfiguration_To_v1alpha2_EtcdConfiguration(in *EtcdConfiguration, out *v1alpha2.EtcdConfiguration, s conversion.Scope) error
Convert_v1alpha1_EtcdConfiguration_To_v1alpha2_EtcdConfiguration is an autogenerated conversion function.
func Convert_v1alpha1_KubeAPIServerConfiguration_To_v1alpha2_KubeAPIServerConfiguration ¶
func Convert_v1alpha1_KubeAPIServerConfiguration_To_v1alpha2_KubeAPIServerConfiguration(in *KubeAPIServerConfiguration, out *v1alpha2.KubeAPIServerConfiguration, s conversion.Scope) error
Convert_v1alpha1_KubeAPIServerConfiguration_To_v1alpha2_KubeAPIServerConfiguration is an autogenerated conversion function.
func Convert_v1alpha1_KubeControllerManagerConfiguration_To_v1alpha2_KubeControllerManagerConfiguration ¶
func Convert_v1alpha1_KubeControllerManagerConfiguration_To_v1alpha2_KubeControllerManagerConfiguration(in *KubeControllerManagerConfiguration, out *v1alpha2.KubeControllerManagerConfiguration, s conversion.Scope) error
Convert_v1alpha1_KubeControllerManagerConfiguration_To_v1alpha2_KubeControllerManagerConfiguration is an autogenerated conversion function.
func Convert_v1alpha1_KubeSchedulerConfiguration_To_v1alpha2_KubeSchedulerConfiguration ¶
func Convert_v1alpha1_KubeSchedulerConfiguration_To_v1alpha2_KubeSchedulerConfiguration(in *KubeSchedulerConfiguration, out *v1alpha2.KubeSchedulerConfiguration, s conversion.Scope) error
Convert_v1alpha1_KubeSchedulerConfiguration_To_v1alpha2_KubeSchedulerConfiguration is an autogenerated conversion function.
func Convert_v1alpha1_NodeConfiguration_To_v1alpha2_NodeConfiguration ¶
func Convert_v1alpha1_NodeConfiguration_To_v1alpha2_NodeConfiguration(in *NodeConfiguration, out *v1alpha2.NodeConfiguration, s conversion.Scope) error
func Convert_v1alpha1_WorkerConfiguration_To_v1alpha2_WorkerConfiguration ¶
func Convert_v1alpha1_WorkerConfiguration_To_v1alpha2_WorkerConfiguration(in *WorkerConfiguration, out *v1alpha2.WorkerConfiguration, s conversion.Scope) error
func Convert_v1alpha2_ControlPlaneConfiguration_To_v1alpha1_ControlPlaneConfiguration ¶
func Convert_v1alpha2_ControlPlaneConfiguration_To_v1alpha1_ControlPlaneConfiguration(in *v1alpha2.ControlPlaneConfiguration, out *ControlPlaneConfiguration, s conversion.Scope) error
func Convert_v1alpha2_CritBootstrapServerConfiguration_To_v1alpha1_CritBootstrapServerConfiguration ¶
func Convert_v1alpha2_CritBootstrapServerConfiguration_To_v1alpha1_CritBootstrapServerConfiguration(in *v1alpha2.CritBootstrapServerConfiguration, out *CritBootstrapServerConfiguration, s conversion.Scope) error
func Convert_v1alpha2_EtcdConfiguration_To_v1alpha1_EtcdConfiguration ¶
func Convert_v1alpha2_EtcdConfiguration_To_v1alpha1_EtcdConfiguration(in *v1alpha2.EtcdConfiguration, out *EtcdConfiguration, s conversion.Scope) error
Convert_v1alpha2_EtcdConfiguration_To_v1alpha1_EtcdConfiguration is an autogenerated conversion function.
func Convert_v1alpha2_KubeAPIServerConfiguration_To_v1alpha1_KubeAPIServerConfiguration ¶
func Convert_v1alpha2_KubeAPIServerConfiguration_To_v1alpha1_KubeAPIServerConfiguration(in *v1alpha2.KubeAPIServerConfiguration, out *KubeAPIServerConfiguration, s conversion.Scope) error
func Convert_v1alpha2_KubeControllerManagerConfiguration_To_v1alpha1_KubeControllerManagerConfiguration ¶
func Convert_v1alpha2_KubeControllerManagerConfiguration_To_v1alpha1_KubeControllerManagerConfiguration(in *v1alpha2.KubeControllerManagerConfiguration, out *KubeControllerManagerConfiguration, s conversion.Scope) error
func Convert_v1alpha2_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration ¶
func Convert_v1alpha2_KubeSchedulerConfiguration_To_v1alpha1_KubeSchedulerConfiguration(in *v1alpha2.KubeSchedulerConfiguration, out *KubeSchedulerConfiguration, s conversion.Scope) error
func Convert_v1alpha2_NodeConfiguration_To_v1alpha1_NodeConfiguration ¶
func Convert_v1alpha2_NodeConfiguration_To_v1alpha1_NodeConfiguration(in *v1alpha2.NodeConfiguration, out *NodeConfiguration, s conversion.Scope) error
Convert_v1alpha2_NodeConfiguration_To_v1alpha1_NodeConfiguration is an autogenerated conversion function.
func Convert_v1alpha2_WorkerConfiguration_To_v1alpha1_WorkerConfiguration ¶
func Convert_v1alpha2_WorkerConfiguration_To_v1alpha1_WorkerConfiguration(in *v1alpha2.WorkerConfiguration, out *WorkerConfiguration, s conversion.Scope) error
func RegisterConversions ¶
RegisterConversions adds conversion functions to the given scheme. Public to allow building arbitrary schemes.
func RegisterDefaults ¶
RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.
func SetDefaults_ControlPlaneConfiguration ¶
func SetDefaults_ControlPlaneConfiguration(obj *ControlPlaneConfiguration)
func SetDefaults_KubeletConfiguration ¶
func SetDefaults_KubeletConfiguration(obj *kubeletconfigv1beta1.KubeletConfiguration)
func SetDefaults_NodeConfiguration ¶
func SetDefaults_NodeConfiguration(obj *NodeConfiguration)
func SetDefaults_WorkerConfiguration ¶
func SetDefaults_WorkerConfiguration(obj *WorkerConfiguration)
func SetObjectDefaults_ControlPlaneConfiguration ¶
func SetObjectDefaults_ControlPlaneConfiguration(in *ControlPlaneConfiguration)
func SetObjectDefaults_WorkerConfiguration ¶
func SetObjectDefaults_WorkerConfiguration(in *WorkerConfiguration)
Types ¶
type APIEndpoint ¶
type APIEndpoint struct {
// The hostname on which the API server is serving.
Host string `json:"host"`
// The port on which the API server is serving.
Port int `json:"port"`
}
APIEndpoint represents a reachable Kubernetes API endpoint.
func (*APIEndpoint) DeepCopy ¶
func (in *APIEndpoint) DeepCopy() *APIEndpoint
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIEndpoint.
func (*APIEndpoint) DeepCopyInto ¶
func (in *APIEndpoint) DeepCopyInto(out *APIEndpoint)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (APIEndpoint) IsZero ¶
func (v APIEndpoint) IsZero() bool
IsZero returns true if host and the port are zero values.
func (APIEndpoint) String ¶
func (v APIEndpoint) String() string
String returns a formatted version HOST:PORT of this APIEndpoint.
type ContainerRuntime ¶
type ContainerRuntime string
const ( Containerd ContainerRuntime = "containerd" Docker ContainerRuntime = "docker" CRIO ContainerRuntime = "crio" )
func (ContainerRuntime) CRISocket ¶
func (cr ContainerRuntime) CRISocket() string
type ControlPlaneConfiguration ¶
type ControlPlaneConfiguration struct {
metav1.TypeMeta `json:",inline"`
// ClusterName
// Default: "crit"
// +optional
ClusterName string `json:"clusterName,omitempty"`
// ControlPlaneEndpoint is the IP address or DNS name that represents the
// control plane.
// +optional
ControlPlaneEndpoint string `json:"controlPlaneEndpoint,omitempty"`
// APIServerURL is the kube-apiserver URL.
// +optional
APIServerURL string `json:"apiServerURL,omitempty"`
CoreDNSVersion string `json:"coreDNSVersion,omitempty"`
Verbosity int `json:"verbosity,omitempty"`
CritBootstrapServerConfiguration CritBootstrapServerConfiguration `json:"critBootstrapServer,omitempty"`
EtcdConfiguration EtcdConfiguration `json:"etcd,omitempty"`
KubeAPIServerConfiguration KubeAPIServerConfiguration `json:"kubeAPIServer,omitempty"`
KubeControllerManagerConfiguration KubeControllerManagerConfiguration `json:"kubeControllerManager,omitempty"`
KubeSchedulerConfiguration KubeSchedulerConfiguration `json:"kubeScheduler,omitempty"`
NodeConfiguration NodeConfiguration `json:"node,omitempty"`
}
func (*ControlPlaneConfiguration) DeepCopy ¶
func (in *ControlPlaneConfiguration) DeepCopy() *ControlPlaneConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControlPlaneConfiguration.
func (*ControlPlaneConfiguration) DeepCopyInto ¶
func (in *ControlPlaneConfiguration) DeepCopyInto(out *ControlPlaneConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ControlPlaneConfiguration) DeepCopyObject ¶
func (in *ControlPlaneConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CritBootstrapServerConfiguration ¶
type CritBootstrapServerConfiguration struct {
// TODO(chrism): maybe add option to disable
ImageRegistry string `json:"imageRegistry,omitempty"`
Version string `json:"version,omitempty"`
BindPort int `json:"bindPort,omitempty"`
CloudProvider string `json:"cloudProvider,omitempty"`
ExtraArgs map[string]string `json:"extraArgs,omitempty"`
}
func (*CritBootstrapServerConfiguration) DeepCopy ¶
func (in *CritBootstrapServerConfiguration) DeepCopy() *CritBootstrapServerConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CritBootstrapServerConfiguration.
func (*CritBootstrapServerConfiguration) DeepCopyInto ¶
func (in *CritBootstrapServerConfiguration) DeepCopyInto(out *CritBootstrapServerConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type EtcdConfiguration ¶
type EtcdConfiguration struct {
Endpoints []string `json:"endpoints,omitempty"`
CAFile string `json:"caFile,omitempty"`
CertFile string `json:"certFile,omitempty"`
KeyFile string `json:"keyFile,omitempty"`
// CAKey is the etcd CA private key. It is only used to encrypt e2db
// tables, so any file containing data to be used as a secret can be
// provided here to enable e2db table encryption for shared cluster files.
CAKey string `json:"caKey,omitempty"`
}
func (*EtcdConfiguration) ClientAddr ¶
func (ec *EtcdConfiguration) ClientAddr() string
func (*EtcdConfiguration) DeepCopy ¶
func (in *EtcdConfiguration) DeepCopy() *EtcdConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdConfiguration.
func (*EtcdConfiguration) DeepCopyInto ¶
func (in *EtcdConfiguration) DeepCopyInto(out *EtcdConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HostPathMount ¶
type HostPathMount struct {
// Name of the volume inside the pod template.
Name string `json:"name,omitempty"`
// HostPath is the path in the host that will be mounted inside
// the pod.
HostPath string `json:"hostPath,omitempty"`
// MountPath is the path inside the pod where hostPath will be mounted.
MountPath string `json:"mountPath,omitempty"`
// ReadOnly controls write access to the volume
ReadOnly bool `json:"readOnly,omitempty"`
HostPathType corev1.HostPathType `json:"hostPathType,omitempty"`
}
HostPathMount contains elements describing volumes that are mounted from the host.
func (*HostPathMount) DeepCopy ¶
func (in *HostPathMount) DeepCopy() *HostPathMount
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPathMount.
func (*HostPathMount) DeepCopyInto ¶
func (in *HostPathMount) DeepCopyInto(out *HostPathMount)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeAPIServerConfiguration ¶
type KubeAPIServerConfiguration struct {
BindPort int `json:"bindPort,omitempty"`
ExtraArgs map[string]string `json:"extraArgs,omitempty"`
ExtraVolumes []HostPathMount `json:"extraVolumes,omitempty"`
FeatureGates map[string]bool `json:"featureGates,omitempty"`
ExtraSANs []string `json:"extraSans,omitempty"`
}
func (*KubeAPIServerConfiguration) DeepCopy ¶
func (in *KubeAPIServerConfiguration) DeepCopy() *KubeAPIServerConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeAPIServerConfiguration.
func (*KubeAPIServerConfiguration) DeepCopyInto ¶
func (in *KubeAPIServerConfiguration) DeepCopyInto(out *KubeAPIServerConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeControllerManagerConfiguration ¶
type KubeControllerManagerConfiguration struct {
ExtraArgs map[string]string `json:"extraArgs,omitempty"`
ExtraVolumes []HostPathMount `json:"extraVolumes,omitempty"`
FeatureGates map[string]bool `json:"featureGates,omitempty"`
}
func (*KubeControllerManagerConfiguration) DeepCopy ¶
func (in *KubeControllerManagerConfiguration) DeepCopy() *KubeControllerManagerConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerConfiguration.
func (*KubeControllerManagerConfiguration) DeepCopyInto ¶
func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerManagerConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeSchedulerConfiguration ¶
type KubeSchedulerConfiguration struct {
ExtraArgs map[string]string `json:"extraArgs,omitempty"`
ExtraVolumes []HostPathMount `json:"extraVolumes,omitempty"`
FeatureGates map[string]bool `json:"featureGates,omitempty"`
}
func (*KubeSchedulerConfiguration) DeepCopy ¶
func (in *KubeSchedulerConfiguration) DeepCopy() *KubeSchedulerConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeSchedulerConfiguration.
func (*KubeSchedulerConfiguration) DeepCopyInto ¶
func (in *KubeSchedulerConfiguration) DeepCopyInto(out *KubeSchedulerConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeConfiguration ¶
type NodeConfiguration struct {
KubernetesVersion string `json:"kubernetesVersion,omitempty"`
Hostname string `json:"hostname,omitempty"`
KubeDir string `json:"kubeDir,omitempty"`
HostIPv4 string `json:"hostIPv4,omitempty"`
KubeProxyMode string `json:"kubeProxyMode,omitempty"`
DNSDomain string `json:"dnsDomain,omitempty"`
PodSubnet string `json:"podSubnet,omitempty"`
ServiceSubnet string `json:"serviceSubnet,omitempty"`
CloudProvider string `json:"cloudProvider,omitempty"`
ContainerRuntime ContainerRuntime `json:"containerRuntime,omitempty"`
Taints []corev1.Taint `json:"taints,omitempty"`
KubeletConfiguration *kubeletconfigv1beta1.KubeletConfiguration `json:"kubelet,omitempty"`
KubeletExtraArgs map[string]string `json:"kubeletExtraArgs,omitempty"`
}
func (*NodeConfiguration) DeepCopy ¶
func (in *NodeConfiguration) DeepCopy() *NodeConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfiguration.
func (*NodeConfiguration) DeepCopyInto ¶
func (in *NodeConfiguration) DeepCopyInto(out *NodeConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type WorkerConfiguration ¶
type WorkerConfiguration struct {
metav1.TypeMeta `json:",inline"`
ClusterName string `json:"clusterName,omitempty"`
ControlPlaneEndpoint string `json:"controlPlaneEndpoint,omitempty"`
APIServerURL string `json:"apiServerURL,omitempty"`
BootstrapServerURL string `json:"bootstrapServerURL,omitempty"`
BootstrapToken string `json:"bootstrapToken,omitempty"`
CACert string `json:"caCert,omitempty"`
NodeConfiguration NodeConfiguration `json:"node,omitempty"`
}
func (*WorkerConfiguration) DeepCopy ¶
func (in *WorkerConfiguration) DeepCopy() *WorkerConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkerConfiguration.
func (*WorkerConfiguration) DeepCopyInto ¶
func (in *WorkerConfiguration) DeepCopyInto(out *WorkerConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*WorkerConfiguration) DeepCopyObject ¶
func (in *WorkerConfiguration) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.