gardener: github.com/gardener/gardener/pkg/gardenlet/apis/config Index | Files | Directories

package config

import "github.com/gardener/gardener/pkg/gardenlet/apis/config"

Index

Package Files

doc.go register.go types.go zz_generated.deepcopy.go

Constants

const GroupName = "gardenlet.config.gardener.cloud"

GroupName is the group name use in this package

Variables

var (
    // SchemeBuilder used to register the Shoot resource.
    SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
    // AddToScheme is a pointer to SchemeBuilder.AddToScheme.
    AddToScheme = SchemeBuilder.AddToScheme
)
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}

SchemeGroupVersion is group version used to register these objects

func Kind Uses

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns a Group qualified GroupKind

func Resource Uses

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

type BackupBucketControllerConfiguration Uses

type BackupBucketControllerConfiguration struct {
    // ConcurrentSyncs is the number of workers used for the controller to work on events.
    ConcurrentSyncs *int
}

BackupBucketControllerConfiguration defines the configuration of the BackupBucket controller.

func (*BackupBucketControllerConfiguration) DeepCopy Uses

func (in *BackupBucketControllerConfiguration) DeepCopy() *BackupBucketControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupBucketControllerConfiguration.

func (*BackupBucketControllerConfiguration) DeepCopyInto Uses

func (in *BackupBucketControllerConfiguration) DeepCopyInto(out *BackupBucketControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BackupEntryControllerConfiguration Uses

type BackupEntryControllerConfiguration struct {
    // ConcurrentSyncs is the number of workers used for the controller to work on events.
    ConcurrentSyncs *int
    // DeletionGracePeriodHours holds the period in number of days to delete the Backup Infrastructure after deletion timestamp is set.
    // If value is set to 0 then the BackupEntryController will trigger deletion immediately.
    DeletionGracePeriodHours *int
}

BackupEntryControllerConfiguration defines the configuration of the BackupEntry controller.

func (*BackupEntryControllerConfiguration) DeepCopy Uses

func (in *BackupEntryControllerConfiguration) DeepCopy() *BackupEntryControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupEntryControllerConfiguration.

func (*BackupEntryControllerConfiguration) DeepCopyInto Uses

func (in *BackupEntryControllerConfiguration) DeepCopyInto(out *BackupEntryControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConditionThreshold Uses

type ConditionThreshold struct {
    // Type is the type of the condition to define the threshold for.
    Type string
    // Duration is the duration how long the condition can stay in the progressing state.
    Duration *metav1.Duration
}

ConditionThreshold defines the duration how long a flappy condition stays in progressing state.

func (*ConditionThreshold) DeepCopy Uses

func (in *ConditionThreshold) DeepCopy() *ConditionThreshold

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConditionThreshold.

func (*ConditionThreshold) DeepCopyInto Uses

func (in *ConditionThreshold) DeepCopyInto(out *ConditionThreshold)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControllerInstallationCareControllerConfiguration Uses

type ControllerInstallationCareControllerConfiguration struct {
    // ConcurrentSyncs is the number of workers used for the controller to work on
    // events.
    ConcurrentSyncs *int
    // SyncPeriod is the duration how often the existing resources are reconciled (how
    // often the health check of ControllerInstallations is performed.
    SyncPeriod *metav1.Duration
}

ControllerInstallationCareControllerConfiguration defines the configuration of the ControllerInstallationCare controller.

func (*ControllerInstallationCareControllerConfiguration) DeepCopy Uses

func (in *ControllerInstallationCareControllerConfiguration) DeepCopy() *ControllerInstallationCareControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerInstallationCareControllerConfiguration.

func (*ControllerInstallationCareControllerConfiguration) DeepCopyInto Uses

func (in *ControllerInstallationCareControllerConfiguration) DeepCopyInto(out *ControllerInstallationCareControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControllerInstallationControllerConfiguration Uses

type ControllerInstallationControllerConfiguration struct {
    // ConcurrentSyncs is the number of workers used for the controller to work on
    // events.
    ConcurrentSyncs *int
}

ControllerInstallationControllerConfiguration defines the configuration of the ControllerInstallation controller.

func (*ControllerInstallationControllerConfiguration) DeepCopy Uses

func (in *ControllerInstallationControllerConfiguration) DeepCopy() *ControllerInstallationControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerInstallationControllerConfiguration.

func (*ControllerInstallationControllerConfiguration) DeepCopyInto Uses

func (in *ControllerInstallationControllerConfiguration) DeepCopyInto(out *ControllerInstallationControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ControllerInstallationRequiredControllerConfiguration Uses

type ControllerInstallationRequiredControllerConfiguration struct {
    // ConcurrentSyncs is the number of workers used for the controller to work on
    // events.
    ConcurrentSyncs *int
}

ControllerInstallationRequiredControllerConfiguration defines the configuration of the ControllerInstallationRequired controller.

func (*ControllerInstallationRequiredControllerConfiguration) DeepCopy Uses

func (in *ControllerInstallationRequiredControllerConfiguration) DeepCopy() *ControllerInstallationRequiredControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerInstallationRequiredControllerConfiguration.

func (*ControllerInstallationRequiredControllerConfiguration) DeepCopyInto Uses

func (in *ControllerInstallationRequiredControllerConfiguration) DeepCopyInto(out *ControllerInstallationRequiredControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GardenClientConnection Uses

type GardenClientConnection struct {
    componentbaseconfig.ClientConnectionConfiguration
    // GardenClusterAddress is the external address that the gardenlets can use to remotely connect to the Garden
    // cluster. It is needed in case the gardenlet deploys itself into shooted seeds.
    GardenClusterAddress *string
    // GardenClusterCACert is the external address that the gardenlets can use to remotely connect to the Garden
    // cluster. It is needed in case the gardenlet deploys itself into shooted seeds.
    GardenClusterCACert []byte
    // BootstrapKubeconfig is a reference to a secret that contains a data key 'kubeconfig' whose value
    // is a kubeconfig that can be used for bootstrapping. If `kubeconfig` is given then only this kubeconfig
    // will be considered.
    BootstrapKubeconfig *corev1.SecretReference
    // KubeconfigSecret is the reference to a secret object that stores the gardenlet's kubeconfig that
    // it uses to communicate with the garden cluster. If `kubeconfig` is given then only this kubeconfig
    // will be considered.
    KubeconfigSecret *corev1.SecretReference
}

GardenClientConnection specifies the kubeconfig file and the client connection settings for the proxy server to use when communicating with the garden apiserver.

func (*GardenClientConnection) DeepCopy Uses

func (in *GardenClientConnection) DeepCopy() *GardenClientConnection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GardenClientConnection.

func (*GardenClientConnection) DeepCopyInto Uses

func (in *GardenClientConnection) DeepCopyInto(out *GardenClientConnection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GardenletConfiguration Uses

type GardenletConfiguration struct {
    metav1.TypeMeta
    // GardenClientConnection specifies the kubeconfig file and the client connection settings
    // for the proxy server to use when communicating with the garden apiserver.
    GardenClientConnection *GardenClientConnection
    // SeedClientConnection specifies the client connection settings for the proxy server
    // to use when communicating with the seed apiserver.
    SeedClientConnection *SeedClientConnection
    // ShootClientConnection specifies the client connection settings for the proxy server
    // to use when communicating with the shoot apiserver.
    ShootClientConnection *ShootClientConnection
    // Controllers defines the configuration of the controllers.
    Controllers *GardenletControllerConfiguration
    // LeaderElection defines the configuration of leader election client.
    LeaderElection *LeaderElectionConfiguration
    // LogLevel is the level/severity for the logs. Must be one of [info,debug,error].
    LogLevel *string
    // KubernetesLogLevel is the log level used for Kubernetes' k8s.io/klog functions.
    KubernetesLogLevel *klog.Level
    // Server defines the configuration of the HTTP server.
    Server *ServerConfiguration
    // FeatureGates is a map of feature names to bools that enable or disable alpha/experimental
    // features. This field modifies piecemeal the built-in default values from
    // "github.com/gardener/gardener/pkg/gardenlet/features/features.go".
    // Default: nil
    FeatureGates map[string]bool
    // SeedConfig contains configuration for the seed cluster. May not be set if seed selector is set.
    // In this case the gardenlet creates the `Seed` object itself based on the provided config.
    SeedConfig *SeedConfig
    // SeedSelector contains an optional list of labels on `Seed` resources that shall be managed by
    // this gardenlet instance. In this case the `Seed` object is not managed by the Gardenlet and must
    // be created by an operator/administrator.
    SeedSelector *metav1.LabelSelector
}

GardenletConfiguration defines the configuration for the Gardenlet.

func (*GardenletConfiguration) DeepCopy Uses

func (in *GardenletConfiguration) DeepCopy() *GardenletConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GardenletConfiguration.

func (*GardenletConfiguration) DeepCopyInto Uses

func (in *GardenletConfiguration) DeepCopyInto(out *GardenletConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*GardenletConfiguration) DeepCopyObject Uses

func (in *GardenletConfiguration) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type GardenletControllerConfiguration Uses

type GardenletControllerConfiguration struct {
    // BackupBucket defines the configuration of the BackupBucket controller.
    BackupBucket *BackupBucketControllerConfiguration
    // BackupEntry defines the configuration of the BackupEntry controller.
    BackupEntry *BackupEntryControllerConfiguration
    // ControllerInstallation defines the configuration of the ControllerInstallation controller.
    ControllerInstallation *ControllerInstallationControllerConfiguration
    // ControllerInstallationCare defines the configuration of the ControllerInstallationCare controller.
    ControllerInstallationCare *ControllerInstallationCareControllerConfiguration
    // ControllerInstallationRequired defines the configuration of the ControllerInstallationRequired controller.
    ControllerInstallationRequired *ControllerInstallationRequiredControllerConfiguration
    // Seed defines the configuration of the Seed controller.
    Seed *SeedControllerConfiguration
    // Shoot defines the configuration of the Shoot controller.
    Shoot *ShootControllerConfiguration
    // ShootCare defines the configuration of the ShootCare controller.
    ShootCare *ShootCareControllerConfiguration
    // ShootStateSync defines the configuration of the ShootState controller.
    ShootStateSync *ShootStateSyncControllerConfiguration
    // SeedAPIServerNetworkPolicy defines the configuration of the SeedAPIServerNetworkPolicy controller.
    SeedAPIServerNetworkPolicy *SeedAPIServerNetworkPolicyControllerConfiguration
}

GardenletControllerConfiguration defines the configuration of the controllers.

func (*GardenletControllerConfiguration) DeepCopy Uses

func (in *GardenletControllerConfiguration) DeepCopy() *GardenletControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GardenletControllerConfiguration.

func (*GardenletControllerConfiguration) DeepCopyInto Uses

func (in *GardenletControllerConfiguration) DeepCopyInto(out *GardenletControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPSServer Uses

type HTTPSServer struct {
    // Server is the configuration for the bind address and the port.
    Server
    // TLSServer contains information about the TLS configuration for a HTTPS server. If empty then a proper server
    // certificate will be self-generated during startup.
    TLS *TLSServer
}

HTTPSServer is the configuration for the HTTPSServer server.

func (*HTTPSServer) DeepCopy Uses

func (in *HTTPSServer) DeepCopy() *HTTPSServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPSServer.

func (*HTTPSServer) DeepCopyInto Uses

func (in *HTTPSServer) DeepCopyInto(out *HTTPSServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LeaderElectionConfiguration Uses

type LeaderElectionConfiguration struct {
    componentbaseconfig.LeaderElectionConfiguration
    // LockObjectNamespace defines the namespace of the lock object.
    LockObjectNamespace *string
    // LockObjectName defines the lock object name.
    LockObjectName *string
}

LeaderElectionConfiguration defines the configuration of leader election clients for components that can run with leader election enabled.

func (*LeaderElectionConfiguration) DeepCopy Uses

func (in *LeaderElectionConfiguration) DeepCopy() *LeaderElectionConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionConfiguration.

func (*LeaderElectionConfiguration) DeepCopyInto Uses

func (in *LeaderElectionConfiguration) DeepCopyInto(out *LeaderElectionConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SeedAPIServerNetworkPolicyControllerConfiguration Uses

type SeedAPIServerNetworkPolicyControllerConfiguration struct {
    // ConcurrentSyncs is the number of workers used for the controller to work on events.
    ConcurrentSyncs *int
}

SeedAPIServerNetworkPolicyControllerConfiguration defines the configuration of the SeedAPIServerNetworkPolicy controller.

func (*SeedAPIServerNetworkPolicyControllerConfiguration) DeepCopy Uses

func (in *SeedAPIServerNetworkPolicyControllerConfiguration) DeepCopy() *SeedAPIServerNetworkPolicyControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedAPIServerNetworkPolicyControllerConfiguration.

func (*SeedAPIServerNetworkPolicyControllerConfiguration) DeepCopyInto Uses

func (in *SeedAPIServerNetworkPolicyControllerConfiguration) DeepCopyInto(out *SeedAPIServerNetworkPolicyControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SeedClientConnection Uses

type SeedClientConnection struct {
    componentbaseconfig.ClientConnectionConfiguration
}

SeedClientConnection specifies the client connection settings for the proxy server to use when communicating with the seed apiserver.

func (*SeedClientConnection) DeepCopy Uses

func (in *SeedClientConnection) DeepCopy() *SeedClientConnection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedClientConnection.

func (*SeedClientConnection) DeepCopyInto Uses

func (in *SeedClientConnection) DeepCopyInto(out *SeedClientConnection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SeedConfig Uses

type SeedConfig struct {
    gardencorev1beta1.Seed
}

SeedConfig contains configuration for the seed cluster.

func (*SeedConfig) DeepCopy Uses

func (in *SeedConfig) DeepCopy() *SeedConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedConfig.

func (*SeedConfig) DeepCopyInto Uses

func (in *SeedConfig) DeepCopyInto(out *SeedConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SeedControllerConfiguration Uses

type SeedControllerConfiguration struct {
    // ConcurrentSyncs is the number of workers used for the controller to work on
    // events.
    ConcurrentSyncs *int
    // SyncPeriod is the duration how often the existing resources are reconciled.
    SyncPeriod *metav1.Duration
}

SeedControllerConfiguration defines the configuration of the Seed controller.

func (*SeedControllerConfiguration) DeepCopy Uses

func (in *SeedControllerConfiguration) DeepCopy() *SeedControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeedControllerConfiguration.

func (*SeedControllerConfiguration) DeepCopyInto Uses

func (in *SeedControllerConfiguration) DeepCopyInto(out *SeedControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Server Uses

type Server struct {
    // BindAddress is the IP address on which to listen for the specified port.
    BindAddress string
    // Port is the port on which to serve unsecured, unauthenticated access.
    Port int
}

Server contains information for HTTP(S) server configuration.

func (*Server) DeepCopy Uses

func (in *Server) DeepCopy() *Server

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Server.

func (*Server) DeepCopyInto Uses

func (in *Server) DeepCopyInto(out *Server)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerConfiguration Uses

type ServerConfiguration struct {
    // HTTPS is the configuration for the HTTPS server.
    HTTPS HTTPSServer
}

ServerConfiguration contains details for the HTTP(S) servers.

func (*ServerConfiguration) DeepCopy Uses

func (in *ServerConfiguration) DeepCopy() *ServerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerConfiguration.

func (*ServerConfiguration) DeepCopyInto Uses

func (in *ServerConfiguration) DeepCopyInto(out *ServerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ShootCareControllerConfiguration Uses

type ShootCareControllerConfiguration struct {
    // ConcurrentSyncs is the number of workers used for the controller to work on
    // events.
    ConcurrentSyncs *int
    // SyncPeriod is the duration how often the existing resources are reconciled (how
    // often the health check of Shoot clusters is performed (only if no operation is
    // already running on them).
    SyncPeriod *metav1.Duration
    // StaleExtensionHealthCheckThreshold configures the threshold when Gardener considers a Health check report of an
    // Extension CRD as outdated.
    // The StaleExtensionHealthCheckThreshold should have some leeway in case a Gardener extension is temporarily unavailable.
    // If not set, Gardener does not verify for outdated health check reports. This is for backwards-compatibility reasons
    // and will become default in a future version.
    StaleExtensionHealthCheckThreshold *metav1.Duration
    // ConditionThresholds defines the condition threshold per condition type.
    ConditionThresholds []ConditionThreshold
}

ShootCareControllerConfiguration defines the configuration of the ShootCare controller.

func (*ShootCareControllerConfiguration) DeepCopy Uses

func (in *ShootCareControllerConfiguration) DeepCopy() *ShootCareControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootCareControllerConfiguration.

func (*ShootCareControllerConfiguration) DeepCopyInto Uses

func (in *ShootCareControllerConfiguration) DeepCopyInto(out *ShootCareControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ShootClientConnection Uses

type ShootClientConnection struct {
    componentbaseconfig.ClientConnectionConfiguration
}

ShootClientConnection specifies the client connection settings for the proxy server to use when communicating with the shoot apiserver.

func (*ShootClientConnection) DeepCopy Uses

func (in *ShootClientConnection) DeepCopy() *ShootClientConnection

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootClientConnection.

func (*ShootClientConnection) DeepCopyInto Uses

func (in *ShootClientConnection) DeepCopyInto(out *ShootClientConnection)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ShootControllerConfiguration Uses

type ShootControllerConfiguration struct {
    // ConcurrentSyncs is the number of workers used for the controller to work on
    // events.
    ConcurrentSyncs *int
    // ReconcileInMaintenanceOnly determines whether Shoot reconciliations happen only
    // during its maintenance time window.
    ReconcileInMaintenanceOnly *bool
    // RespectSyncPeriodOverwrite determines whether a sync period overwrite of a
    // Shoot (via annotation) is respected or not. Defaults to false.
    RespectSyncPeriodOverwrite *bool
    // RetryDuration is the maximum duration how often a reconciliation will be retried
    // in case of errors.
    RetryDuration *metav1.Duration
    // SyncPeriod is the duration how often the existing resources are reconciled.
    SyncPeriod *metav1.Duration
}

ShootControllerConfiguration defines the configuration of the CloudProfile controller.

func (*ShootControllerConfiguration) DeepCopy Uses

func (in *ShootControllerConfiguration) DeepCopy() *ShootControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootControllerConfiguration.

func (*ShootControllerConfiguration) DeepCopyInto Uses

func (in *ShootControllerConfiguration) DeepCopyInto(out *ShootControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ShootStateSyncControllerConfiguration Uses

type ShootStateSyncControllerConfiguration struct {
    // ConcurrentSyncs is the number of workers used for the controller to work on
    // events.
    ConcurrentSyncs *int
    // SyncPeriod is the duration how often the existing extension resources are
    // synced to the ShootState resource
    SyncPeriod *metav1.Duration
}

ShootStateSyncControllerConfiguration defines the configuration of the ShootStateController controller.

func (*ShootStateSyncControllerConfiguration) DeepCopy Uses

func (in *ShootStateSyncControllerConfiguration) DeepCopy() *ShootStateSyncControllerConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShootStateSyncControllerConfiguration.

func (*ShootStateSyncControllerConfiguration) DeepCopyInto Uses

func (in *ShootStateSyncControllerConfiguration) DeepCopyInto(out *ShootStateSyncControllerConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TLSServer Uses

type TLSServer struct {
    // ServerCertPath is the path to the server certificate file.
    ServerCertPath string
    // ServerKeyPath is the path to the private key file.
    ServerKeyPath string
}

TLSServer contains information about the TLS configuration for a HTTPS server.

func (*TLSServer) DeepCopy Uses

func (in *TLSServer) DeepCopy() *TLSServer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSServer.

func (*TLSServer) DeepCopyInto Uses

func (in *TLSServer) DeepCopyInto(out *TLSServer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Directories

PathSynopsis
helper
v1alpha1
validation

Package config imports 7 packages (graph) and is imported by 11 packages. Updated 2020-07-07. Refresh now. Tools for package owners.