| File: Resources\ConfigMapV1.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 Kubernetes ConfigMap resource. /// </summary> /// <remarks> /// A ConfigMap is used to store non-confidential data in key-value pairs. /// Applications running in a Kubernetes cluster can consume this configuration data. /// Derived from the BaseKubernetesResource class, this class includes properties specific to ConfigMap resources, /// such as BinaryData, Data, and Immutable, while also inheriting common Kubernetes resource properties like Kind, ApiVersion, and Metadata. /// </remarks> [YamlSerializable] public sealed class ConfigMap() : BaseKubernetesResource("v1", "ConfigMap") { /// <summary> /// Represents a collection of binary data entries as key-value pairs within a ConfigMap object. /// </summary> /// <remarks> /// The BinaryData property is used to store binary data in a Kubernetes ConfigMap. /// Each entry consists of a unique string key and its corresponding base64-encoded binary value. /// Keys must follow the Kubernetes naming conventions. /// This property is read-only in the object and needs to be initialized when configuring the ConfigMap. /// </remarks> [YamlMember(Alias = "binaryData")] public Dictionary<string, string> BinaryData { get; } = []; /// <summary> /// Represents a collection of key-value pairs where both the keys and the values are strings. /// </summary> /// <remarks> /// The Data property is used to store non-binary configuration data in a ConfigMap resource. /// Keys must be alphanumeric strings, and values can represent textual configuration details. /// This property is a central feature of Kubernetes ConfigMaps, enabling applications /// to access configuration data at runtime without requiring changes to application code. /// Note that this property is immutable and initialized as an empty dictionary. /// </remarks> [YamlMember(Alias = "data")] public Dictionary<string, string> Data { get; } = []; /// <summary> /// Gets or sets a value indicating whether the ConfigMap is immutable. /// </summary> /// <remarks> /// When set to true, the ConfigMap becomes immutable, meaning its data and binaryData fields cannot /// be modified after creation. This ensures that the resource remains unchanged, which is particularly /// useful for use cases where the ConfigMap data must not be altered, such as configuration storage /// for applications. When this property is null or false, the ConfigMap can be updated as usual. /// </remarks> [YamlMember(Alias = "immutable")] public bool? Immutable { get; set; } }