The growing trend of remote work, accelerated by the global pandemic, has brought about a significant shift in how businesses operate. One of the most compelling shifts is the rise of asynchronous collaboration, where teams work independently, communicating and contributing at their own pace. The command-line interface (CLI) tool Helm, designed to package and manage Kubernetes applications, is ideally positioned to facilitate this new way of working.

Helm, often referred to as the 'package manager for Kubernetes,' streamlines application deployment, versioning, and updates. However, its full potential is yet to be unlocked. Making value mandatory in Helm can greatly enhance its applicability and importance in today's distributed work environment. Let's delve into why and how this can be achieved.

Understanding Value in Helm
In the context of Helm, value refers to the dynamic aspects of a package. Values allow users to customize the behavior and configuration of an application without altering its core code. By making value mandatory, we ensure that users engage with these customization options, leading to more robust and tailored deployments.

Mandatory values can drive standardization and consistency within an organization. They can also promote best practices and predefined configurations, reducing the risk of errors or suboptimal deployments. Moreover, they encourage users to critically think about how they utilize this powerful feature of Helm.
Defining Default Mandatory Values

Default mandatory values provide a starting point for users, ensuring that everyone begins with a well-thought-out configuration. These defaults can be based on industry standards, best practices, or the specific needs of the organization. Tools like Kubeέλinter can help identify and enforce these defaults.
For instance, a default mandatory value might include setting a resource limit and request for all containers in an application. This prevents resources from being monopolized and ensures fair sharing across applications. Similarly, default log levels or monitoring configurations can be enforced for better observability.
Enforcing Mandatory Values at Installation

Helm can be augmented to enforce mandatory values at installation time. This ensures that users cannot proceed with an installation until they have addressed the required values. This enforcement can be achieved through pre-install hooks, custom validation scripts, or evenSpectator, a Helm plugin that enhances the installation process with user-defined, custom logic.
By forcing users to engage with the mandatory values at the start of the installation process, you ensure that they understand and adjust the configuration to suit their needs. This proactive engagement can significantly improve the quality of the resultant deployments.
Leveraging Mandatory Values for Security and Compliance

Mandatory values can play a pivotal role in ensuring security and compliance. They can enforce rules about secret management, network policies, or even security-related configurations like pod security standards.
For example, mandatory values can ensure that all secrets are managed centrally using a tool like HashiCorp's Vault, rather than hardcoding them into the application. They can also enforce network policies that restrict traffic to only those services necessary for operation, enhancing the security posture of the entire system.









Mandatory Values for OVA and CBB Templates
Operator Virtual Assets (OVAs) and Custom Built Binaries (CBBs) in Helm allow users to package and distribute Kubernetes applications in a structured, versioned format. Mandatory values can be used to enforce specific configurations or validate input for these templates.
For instance, mandatory values can ensure that users provide all required information for VPC configurations when using an OVA for Amazon EKS, or ensure that the correct version of a dependency is specified when using a CBB. This ensures that the resultant application is both secure and functional.
By making value mandatory in Helm, we can promote best practices, enhance security, and improve the overall quality and robustness of Kubernetes deployments. It's a small change that can yield significant benefits in today's asynchronous work environment. So, why not start exploring this capability today and see how it can transform your organization's approach to Kubernetes?