# NodeAffinityV1

- Kind: `class`
- Package: [Aspire.Hosting.Kubernetes](/reference/api/csharp/aspire.hosting.kubernetes.md)
- Version: `13.3.0-preview.1.26254.5`
- Namespace: `Aspire.Hosting.Kubernetes.Resources`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Aspire.Hosting.Kubernetes/Resources/NodeAffinityV1.cs)

Represents node affinity scheduling configuration for Kubernetes pods. This class defines the rules to determine node selection for a pod during scheduling. Node affinity allows a pod to specify constraints that limit the set of nodes it can be scheduled onto. This includes both hard requirements (requiredDuringSchedulingIgnoredDuringExecution) and soft preferences (preferredDuringSchedulingIgnoredDuringExecution).

## Definition

```csharp
namespace Aspire.Hosting.Kubernetes.Resources;

public sealed class NodeAffinityV1
{
    // ...
}
```

## Constructors

- [NodeAffinityV1](/reference/api/csharp/aspire.hosting.kubernetes/nodeaffinityv1/constructors.md#constructor)

## Properties

- [PreferredDuringSchedulingIgnoredDuringExecution](/reference/api/csharp/aspire.hosting.kubernetes/nodeaffinityv1/properties.md#preferredduringschedulingignoredduringexecution) : [List<PreferredSchedulingTermV1>](/reference/api/csharp/aspire.hosting.kubernetes/preferredschedulingtermv1.md) `get` -- A list of preferred scheduling terms that influence the scheduling of a pod while ignoring the execution of the scheduling preferences. Each term in the list defines a preference for scheduling pods onto nodes based on specific criteria and associated weights.
- [RequiredDuringSchedulingIgnoredDuringExecution](/reference/api/csharp/aspire.hosting.kubernetes/nodeaffinityv1/properties.md#requiredduringschedulingignoredduringexecution) : [NodeSelectorV1](/reference/api/csharp/aspire.hosting.kubernetes/nodeselectorv1.md) `get; set` -- Specifies node affinity rules that are required during scheduling but are not enforced during execution.
