| File: Resources\VolumeMountV1.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> /// Represents a volume mount configuration in a Kubernetes container. /// </summary> /// <remarks> /// This class is used to specify how a volume is mounted into a container, /// including the path within the container, any sub-paths, mount propagation settings, /// and read-only configurations. /// </remarks> [YamlSerializable] public sealed class VolumeMountV1 { /// <summary> /// Gets or sets the name of the volume mount. /// This property specifies the identifier for the volume to be mounted, /// which is used to reference it within the container. /// </summary> [YamlMember(Alias = "name")] public string Name { get; set; } = null!; /// <summary> /// Gets or sets the path within the container at which the volume will be mounted. /// </summary> [YamlMember(Alias = "mountPath")] public string MountPath { get; set; } = null!; /// <summary> /// Specifies the relative path within the volume from which the container will access data. /// This property allows you to mount a specific subdirectory of a volume rather than the root directory. /// </summary> [YamlMember(Alias = "subPath")] public string SubPath { get; set; } = null!; /// <summary> /// Specifies the mount propagation behavior for the volume mount. /// Defines how mounts are propagated from the host to the container and vice versa. /// This property is typically used to control sharing of volumes between containers /// and impacts the way the volume is mounted in the container environment. /// Can be set to specific propagation modes such as "HostToContainer", /// "Bidirectional", or left null for default behavior. /// </summary> [YamlMember(Alias = "mountPropagation")] public string? MountPropagation { get; set; } /// <summary> /// Gets or sets the sub-path expression within the volume mount. /// This property allows dynamic sub-paths to be specified using /// environment variable substitutions and provides flexibility /// for configuring paths at runtime. /// </summary> [YamlMember(Alias = "subPathExpr")] public string? SubPathExpr { get; set; } /// <summary> /// Gets or sets a value indicating whether the volume mount is read-only. /// </summary> /// <remarks> /// When set to true, the volume is mounted in a read-only mode where write operations are not allowed. /// This property can be null to indicate the absence of an explicit read-only configuration. /// </remarks> [YamlMember(Alias = "readOnly")] public bool? ReadOnly { get; set; } /// <summary> /// Gets or sets the recursive read-only mode configuration for the volume mount. /// This property determines if the volume should be mounted in recursive read-only /// mode, which enforces read-only access on all subdirectories and files within the volume. /// </summary> [YamlMember(Alias = "recursiveReadOnly")] public string? RecursiveReadOnly { get; set; } }