DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Sponsored Content

From raw manifests to self-service Kubernetes apps: creating enterprise-ready open platforms

By 
DZone Staff user avatar
DZone Staff
·
Aug. 14, 26 · Interview
Likes (0)
Comment
Save
Tweet
Share
35 Views
Sponsored By: Nutanix
The following is sponsored content. It may not reflect the views of our editorial staff.

The Kubernetes scaling problem nobody talks about

Enterprise platform teams encounter the same pattern repeatedly: a Kubernetes platform works well enough that nobody wants to change it.

This happens gradually as teams make reasonable technology choices: selecting different ingress controllers, secrets management tools, CD platforms, or observability software. Individually, none of these decisions is a problem. Months later, however, they’ve created a Kubernetes environment that only a handful of people understand. As soon as that one person gets sick or leaves the company, maintaining or improving the platform becomes much more difficult.

Mark Dastmalchi-Round, a Solutions Architect at Nutanix with decades of experience in platform engineering, describes the pattern in blunt terms: “Configuration drift, exacerbated by the fact that multicloud is increasingly becoming the new reality.”

Over time, that drift compounds. Companies get acquired, technology merges, and silos form. Suddenly, organizations are managing clusters that look nothing alike and are often held together by institutional knowledge.

As a solution, proprietary overlays have sought to address these issues, with mixed results. They tend to reduce overall surface area (fewer choices lead to fewer points of divergence), but often at a cost to portability and extensibility, which is what made Kubernetes so attractive in the first place.

A more durable approach is to build on Kubernetes-native primitives, adding governance and operational consistency without replacing the workflows teams already use. The remainder of this article will demonstrate what that looks like in practice.

What an open platform actually means in enterprise Kubernetes

“Open platform” is a common phrase in the Kubernetes ecosystem, but it’s worth defining what that term actually means in practice.

Dastmalchi-Round defines an open platform as one that “exposes industry-standard APIs and, where possible, uses pure upstream open-source projects.” The distinction isn't whether the platform is open source. It's whether it relies on Kubernetes-native APIs and tooling or introduces proprietary CRDs, workflows, and CLIs that make migration difficult.

As he notes, "You can still get lock-in with open source, because if it is only one vendor's solution and they layer all of their stuff on top of standard tooling, you are now dependent on their abstractions."

The difference is easier to see when comparing an open platform with a proprietary overlay.

Comparing Open Kubernetes Platforms and Proprietary Overlays

Dimension

Open Platform (NKP)

Proprietary Overlay

Core CRDs

Standard upstream (Cluster API, FluxCD, Helm)

Vendor-specific, migration cost is high

GitOps engine

FluxCD (CNCF project)

Proprietary sync engine

App packaging

Helm + OCI (industry standard)

Custom catalog format

Monitoring stack

Pure upstream CNCF (Prometheus, Grafana)

Wrapped / vendor-branded

Exit cost

Clusters survive platform removal

Manifests tied to platform APIs

Third-party tooling

Works if it runs on Kubernetes

Requires certified integration

Nutanix Kubernetes Platform (NKP) applies these principles by building on upstream Kubernetes components rather than replacing them. As Dastmalchi-Round puts it, the real test is what survives if you remove the platform.

"With NKP, the clusters are pure upstream Kubernetes,” says Dastmalchi-Round. “The monitoring stack is pure upstream CNCF projects. GitOps is provided by FluxCD. Your manifests and charts are standard Helm." In other words, the operational tooling may change, but the underlying applications and deployment artifacts remain portable.

Raw manifests to managed artifacts: Helm and OCI packaging in NKP

Most enterprise teams start with a collection of Kubernetes YAML manifests that work for a single application or environment. While those manifests are typically stored in version control, they aren't easily reusable across environments, self-service for other teams, or packaged in a way that supports consistent versioning and rollback.

Helm addresses those limitations by packaging manifests into versioned, parameterized charts. For existing applications, the process typically starts by converting Kubernetes manifests into a standard Helm chart, either manually or with tools such as Helmify. The result is a familiar Helm project structure built around Chart.yaml, parameterized templates, and a values.yaml file, giving teams a reusable deployment artifact instead of a collection of static manifests.

Deployment-specific settings, such as image tags, replica counts, and resource limits, move into a values.yaml file, while the underlying templates remain unchanged.

Those deployment-specific settings are defined in the chart's values.yaml file. For example:

 
# values.yaml — the self-service interface for application teams

replicaCount: 2 

image:

  repository: registry.example.com/myapp

  tag: "2.1.0"

  pullPolicy: IfNotPresent 

resources:

  limits:

    cpu: 500m

    memory: 256Mi

  requests:

    cpu: 250m

    memory: 128Mi

ingress:

  enabled: true

  host: myapp.internal.example.com

  annotations:

    kubernetes.io/ingress.class: "traefik"

serviceAccount:

  create: true

  name: "myapp-sa"

Versioning makes deployments reproducible across environments while providing a clear history of releases. Teams can promote the same chart through development, staging, and production with confidence, then roll back to a previous version if needed.

OCI registries address the next challenge: distributing and versioning those charts. Instead of relying on a separate chart repository, teams can store Helm charts alongside container images as immutable, versioned artifacts. Because chart versions can't be overwritten, deployments are reproducible and easier to audit.

The approach also fits existing registry workflows. Organizations using Harbor, Amazon ECR, or similar registries can manage container images and Helm charts in the same place, using the same authentication, access controls, and security policies.

For example:

 
# Package the chart locally

helm package ./myapp --version 2.3.0

# Authenticate to the OCI registry (same registry as your container images)

helm registry login registry.example.com \

  --username $REGISTRY_USER \

  --password $REGISTRY_PASSWORD 

# Push is stored as an OCI artifact alongside container images

helm push myapp-2.3.0.tgz oci://registry.example.com/charts

# Any team can pull without touching the source repo

helm pull oci://registry.example.com/charts/myapp --version 2.1.0

# Inspect the chart before deploying

helm show values oci://registry.example.com/charts/myapp --version 2.1.0

The goal of packaging is to create a self-service deployment model. Once packaged, Helm charts are registered with the NKP catalog, where they appear alongside built-in platform applications as versioned deployment artifacts. Application teams can deploy them by configuring only the settings that vary between environments, while platform teams focus on maintaining reusable application catalogs instead of manually managing deployments.

FluxCD deployments, overrides, and upgrades

Once Helm charts are stored in an OCI registry, FluxCD keeps deployed clusters aligned with the desired state defined in Git. It continuously reconciles each cluster against that source of truth, automatically correcting configuration drift. In multi-cluster environments, each cluster follows the same reconciliation process using its own configuration.

NKP's FluxCD implementation centers on two resources: HelmRepository, which points to the OCI registry, and HelmRelease, which specifies the chart version, configuration values, and target namespace.

 
# Source: points FluxCD at your OCI chart registry

apiVersion: source.toolkit.fluxcd.io/v1beta3

kind: HelmRepository

metadata:

  name: internal-charts

  namespace: flux-system

spec:

  type: oci

  url: oci://registry.example.com/charts

  interval: 5m       # poll for new chart versions every 5 minutes

# Release: declares desired state for a specific deployment

apiVersion: helm.toolkit.fluxcd.io/v2beta3

kind: HelmRelease

metadata:

  name: myapp-production

  namespace: production

spec:

  interval: 10m

  chart:

    spec:

      chart: myapp

      version: "2.3.0"

      sourceRef:

        kind: HelmRepository

        name: internal-charts

        namespace: flux-system

  values:

    replicaCount: 3

    resources:

      limits:

        cpu: 1000m

        memory: 512Mi

    ingress:

      host: myapp.prod.example.com

Although teams interact with NKP through its web interface, those actions are ultimately represented as standard Kubernetes resources. Configuration changes become declarative objects that FluxCD reconciles like any other GitOps workflow, making the deployment model transparent and compatible with standard Kubernetes tooling without relying on proprietary deployment workflows.

Teams typically promote the same chart version from development to staging and production while applying environment-specific overrides through HelmRelease values rather than modifying the chart itself. Promotion becomes a Git commit instead of a manual deployment, with FluxCD automatically reconciling and applying the change.

FluxCD also provides continuous drift detection. If someone manually changes a resource in the cluster, FluxCD restores it to the state defined in Git during the next reconciliation cycle. Rolling back a deployment is simply a Git revert, with Git history providing a complete audit trail of configuration changes.

How to integrate third-party tools without losing openness

Enterprise platform teams are often asked to integrate tools such as vulnerability scanners, cost management dashboards, and application performance monitoring (APM) platforms. The tools themselves aren't the problem. The problem is managing each one through a separate deployment and maintenance process, increasing operational complexity over time.

NKP addresses this by treating third-party software like any other platform application. Whether it's an upstream open-source project or a commercial product distributed as a Helm chart, it follows the same Helm-over-OCI packaging model and is deployed and managed through FluxCD. The outcome is a consistent deployment and lifecycle workflow across both first- and third-party applications.

For example, an upstream Helm chart such as Redis can be published to the NKP catalog and managed through the same deployment workflow as a first-party application, avoiding the need for a separate integration process.

Because this approach relies on standard Kubernetes resources, Helm charts, Git, and Kubernetes RBAC, those workloads remain portable across platforms. As Dastmalchi-Round summarizes, "If it works on Kubernetes, it will work on NKP."

Dastmalchi-Round notes that the biggest integration challenges typically come from tools that rely on rigid deployment models, particularly older operator-based packages that expose little configuration. "A few years ago, there was a trend of people overusing the operator pattern for packaging applications," he says. "Operators have their uses, but when they became the distribution artifact, they often resulted in big, opaque blobs running in your cluster. If they didn't do exactly what you needed, you were out of luck." As more vendors have adopted Helm-based packaging, those limitations have become less common.

Examples of Third-Party Tool Integrations in NKP

Integration Type

Packaging Model

Configuration

Upgrade Path

NKP Catalog

Security scanner (e.g., Trivy)

Helm chart via OCI

values.yaml in Git

FluxCD HelmRelease bump

Yes

Custom Grafana dashboard

Helm chart + ConfigMap

Dashboard JSON in Git

Chart version update

Yes

Cost management (e.g., OpenCost)

Helm chart via OCI

values.yaml in Git

FluxCD HelmRelease bump

Yes

Service mesh (e.g. Istio)

Helm chart via OCI

IstioOperator CRDs in Git

Controlled chart upgrade

Yes

Legacy operator-only tool

Operator bundle

Operator-managed CRDs

Operator version update

Requires evaluation

In practice, the less a tool depends on proprietary deployment mechanisms, the easier it is to integrate, manage, and move between Kubernetes platforms.

Conclusion: the platform that gets out of the way

NKP doesn't replace Kubernetes workflows—it builds on them. Helm packages applications, OCI registries distribute them, Git defines the desired state, and FluxCD keeps deployments in sync. Instead of introducing proprietary workflows, NKP brings these familiar tools together with the governance, lifecycle management, and self-service capabilities required for enterprise-scale operations. It standardizes these workflows across any environment, including public clouds, on-premises, and edge locations.

For enterprise teams, the value lies in achieving consistency without sacrificing portability. As Dastmalchi-Round notes, the question isn't whether lock-in exists, but how costly it is to leave. By relying on upstream Kubernetes components, Helm charts, and GitOps workflows, organizations retain portable applications and deployment artifacts even if they choose a different platform in the future. 

In the end, an open platform shouldn’t be defined by its licensing model. It should be defined by how much of your platform remains yours if you decide to move on.


Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook