| File: Resources\ReplicaSetSpecV1.cs | Web Access |
| Project: src\src\Aspire.Hosting.Kubernetes\Aspire.Hosting.Kubernetes.csproj (Aspire.Hosting.Kubernetes) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using YamlDotNet.Serialization; namespace Aspire.Hosting.Kubernetes.Resources; /// <summary> /// Defines the specification for a Kubernetes ReplicaSet. /// </summary> /// <remarks> /// A ReplicaSet ensures that a specified number of pod replicas are running at any given time. /// This specification provides the desired state for a ReplicaSet, including pod templates, replica count, and label selectors. /// </remarks> [YamlSerializable] public sealed class ReplicaSetSpecV1 { /// <summary> /// Gets or sets the template that defines the specification of the pods to be created. /// </summary> /// <remarks> /// The template is a PodTemplateSpec object that includes the pod-specific metadata and desired state configuration. /// It is used to define the settings for pods generated by the ReplicaSet. /// </remarks> [YamlMember(Alias = "template")] public PodTemplateSpecV1 Template { get; set; } = new(); /// <summary> /// Gets or sets the label selector for this ReplicaSet specification. /// This selector is used to identify and target which set of Pods the ReplicaSet will manage. /// </summary> /// <remarks> /// The selector contains criteria for filtering resources based on their labels. It may include: /// - MatchLabels: Specifies the labels that must explicitly match. /// - MatchExpressions: Allows defining complex rules for label matching. /// Both components can be used together to create comprehensive selection criteria. /// </remarks> [YamlMember(Alias = "selector")] public LabelSelectorV1 Selector { get; set; } = new(); /// <summary> /// Specifies the minimum time, in seconds, a pod should remain in the Ready state before it is considered available. /// </summary> /// <remarks> /// This property is used to define a stabilization period for newly created pods in a ReplicaSet. /// Pods must remain in the Ready state for at least the specified number of seconds before being considered available for scaling decisions or readiness. /// A value of null or 0 indicates no stabilization period is required. /// </remarks> [YamlMember(Alias = "minReadySeconds")] public int? MinReadySeconds { get; set; } /// <summary> /// Gets or sets the desired number of replicas for the ReplicaSet. /// </summary> /// <remarks> /// This property specifies the number of pod replicas that should be maintained by the ReplicaSet. /// If not specified, the default value is determined by the Kubernetes control plane. /// </remarks> [YamlMember(Alias = "replicas")] public int? Replicas { get; set; } }