For the complete documentation index, see llms.txt. This page is also available as Markdown.

What can I deploy in Kubernetes?

Differences between managed and unmanaged workloads.

Harness deployments involve different strategies and steps. These strategies and steps support different Kubernetes objects as managed and unmanaged workloads.

This topic describes the differences between Harness managed and unmanaged workloads and the objects supported by each deployment strategy.

Managed and Unmanaged Workloads

In Harness, a managed Kubernetes workload is a Kubernetes object deployed and managed to steady state. If steady state is not reached, the deployment is considered a failure and the Failure Strategy is executed (typically rollback).

An unmanaged workload is a workload deployed separate from your primary workload, such as Kubernetes Jobs. Harness does not track these workload versions or perform rollback on them.

Canary and Blue Green Strategies

Harness Canary and Blue Green steps support a single Deployment. You cannot deploy 0 or more than 1 Deployment.

Rolling (Rollout) Strategy

Rolling strategy steps support Deployment, or DaemonSet as managed workloads, but not other workloads such as Jobs.

Apply Step

The Apply Step can deploy any workloads or objects in any strategy as a managed workload. You can select whether or not to skip steady state check.

OpenShift

Harness supports OpenShift DeploymentConfig in OpenShift clusters as a managed workload across Canary, Blue Green, and Rolling deployment strategies. Use apiVersion: apps.openshift.io/v1 and not apiVersion: v1.

Deploy Unmanaged Workloads using Annotation

To deploy an object outside of the managed workloads in any strategy, you use the Harness annotation to make it unmanaged: harness.io/direct-apply: "true"|"false". Set to true to make a manifest an unmanaged workload.

For example, Harness Canary and Blue Green steps support a single Deployment, but you can deploy additional workloads as unmanaged using the harness.io/direct-apply annotation.

The following tables list the differences between the managed and unmanaged workloads for the different Kubernetes steps.

Managed Workloads Table

In Harness, a managed Kubernetes workload is a Kubernetes object deployed and managed to steady state. If steady state is not reached, the deployment is considered a failure and the Failure Strategy is executed (typically rollback).

Apply

Rolling

Rollback

Blue Green

Canary

Scale

Deployment

Yes

Yes

Yes

Yes

1 Deployment allowed

Yes

1 Deployment allowed

Yes

DaemonSet

Yes

Yes

Yes

No

No

Yes

HorizontalPodAutoscaler

No

No

No

Yes

Behind the feature flag, CDS_SUPPORT_HPA_AND_PDB_NG.

Yes

Behind the feature flag, CDS_SUPPORT_HPA_AND_PDB_NG.

No

PodDisruptionBudget

No

No

No

Yes

Behind the feature flag, CDS_SUPPORT_HPA_AND_PDB_NG.

Yes

Behind the feature flag, CDS_SUPPORT_HPA_AND_PDB_NG.

No

CRDs

Yes

Yes

Yes

No

No

No

Any Object

Yes

No

No

No

No

No

Unmanaged Workloads Table

To deploy an object outside of the managed workloads in any strategy, you use the Harness annotation to make it unmanaged: harness.io/direct-apply: "true"|"false". Set to true to make a manifest an unmanaged workload.

For example, Harness Canary and Blue/Green steps support a single Deployment but you can deploy additional workloads as unmanaged using the harness.io/direct-apply:true annotation.

Apply

Rolling

Rollback

Blue Green

Canary

Scale

Any Object

Yes

Yes

No

Yes:

1 Deployment allowed

Yes:

1 Deployment allowed

No

Last updated

Was this helpful?