Skip to main content

WorkloadDeployedDto

Namespace: Meshmakers.Octo.Communication.Contracts.DataTransferObjects

Payload for the operator's WorkloadDeployedAsync callback. Carries everything the operator needs to helm upgrade --install a workload: chart reference (resolved from the workload's HelmRepositoryConfiguration), base values, and structured overrides. Secret-flagged overrides are decrypted by the controller before being placed on the wire — the wire itself is SignalR-over-TLS.

public record WorkloadDeployedDto : IEquatable<WorkloadDeployedDto>

Inheritance Object → WorkloadDeployedDto
Implements IEquatable<WorkloadDeployedDto>

Properties​

TenantId​

Tenant the workload belongs to.

public string TenantId { get; set; }

Property Value​

String

PoolRtId​

Runtime entity id of the pool that manages this workload. The canonical pool identity on the wire and the source of truth for every derived Kubernetes pool identifier on the operator side. See DeployedPoolDto.PoolRtId for the rationale.

public string PoolRtId { get; set; }

Property Value​

String

WorkloadName​

User-facing workload name from the CK entity. Preserved for display and SignalR lookup; the operator does not derive any Kubernetes identifier from it — Helm release / secret names are built from WorkloadDeployedDto.WorkloadRtId instead.

public string WorkloadName { get; set; }

Property Value​

String

WorkloadRtId​

Runtime entity id of the workload. Drives the Helm release name (and therefore the secret name and identity labels) on the operator side, and is projected into the rendered Helm values as adapterRtId so the adapter pod can identify itself to the controller. RtIds are 24-character lowercase hex strings so they are always RFC 1123 valid without sanitisation.

public string WorkloadRtId { get; set; }

Property Value​

String

WorkloadType​

Discriminator between Adapter and Application. The operator uses this to apply type-specific defaults if needed.

public WorkloadTypeDto WorkloadType { get; set; }

Property Value​

WorkloadTypeDto

RepositoryUrl​

Helm repository URL the chart is pulled from. Typically a public or private GitHub Pages site. Resolved from the workload's HelmRepositoryConfiguration by the controller.

public string RepositoryUrl { get; set; }

Property Value​

String

RepositoryUsername​

Optional basic-auth username for private repositories.

public string RepositoryUsername { get; set; }

Property Value​

String

RepositoryPassword​

Optional basic-auth password / PAT for private repositories. Decrypted server-side before being placed on the wire.

public string RepositoryPassword { get; set; }

Property Value​

String

ChartName​

Chart name within the repository (e.g. voest-app).

public string ChartName { get; set; }

Property Value​

String

ChartVersion​

Chart version (e.g. 1.2.3).

public string ChartVersion { get; set; }

Property Value​

String

IsReconciliation​

True when this deploy restores what was already supposed to be running rather than acting on a release decision — currently the controller's pending-workload reconcile on pool re-registration (AB#4894).

It only matters for a workload with an empty WorkloadDeployedDto.ChartVersion: "newest in the repository" is resolved by the operator at helm upgrade time, so an unpinned workload would come back on whatever is newest at the instant an unrelated platform event happened to re-register its pool — a version change nobody asked for (AB#4955). On a reconciliation the operator therefore re-uses the chart version of the release it already has installed, and only falls back to "newest" when there is nothing installed to read a version from.

Defaults to false, so a user-triggered deploy keeps meaning "give me the newest chart" and an operator that pre-dates this flag behaves exactly as before.

public bool IsReconciliation { get; set; }

Property Value​

Boolean

ValuesYaml​

Base values.yaml content as a YAML string. May be empty when only structured overrides are used. Acts as the base layer of Helm values; WorkloadDeployedDto.Values is deep-merged on top.

public string ValuesYaml { get; set; }

Property Value​

String

Values​

Structured value overrides. Secret-flagged entries have their ValueOverrideDto.Value already decrypted.

public IReadOnlyList<ValueOverrideDto> Values { get; set; }

Property Value​

IReadOnlyList<ValueOverrideDto>

ReceivesClusterSecrets​

When true, the operator may inject cluster-internal credentials (MongoDB user/admin passwords, CrateDB password, RabbitMQ password) from its own configuration as secret-flagged value overrides at deploy time. Only relevant for adapters running in the same cluster as the OctoMesh core services. Defaults to false so untrusted / edge workloads do not receive cluster credentials by accident.

public bool ReceivesClusterSecrets { get; set; }

Property Value​

Boolean

IngressEnabled​

When true, the operator projects ingress.enabled=true plus publicUri (built from WorkloadDeployedDto.Hostname) into the workload's Helm values. Cluster-wide ingress defaults (class name, cert-manager cluster-issuer, TLS) come from the operator configuration and are not overridable per workload. Defaults to false so workloads stay cluster-internal unless explicitly opted in.

public bool IngressEnabled { get; set; }

Property Value​

Boolean

Hostname​

Public hostname for the workload when WorkloadDeployedDto.IngressEnabled is true (e.g. adapter.staging.octo-mesh.com). For Adapter workloads the chart additionally scopes the path to /{tenantId}; Application workloads use the root path. Ignored when WorkloadDeployedDto.IngressEnabled is false.

public string Hostname { get; set; }

Property Value​

String

Hibernated​

When true, the workload is currently hibernated (scaled to 0 replicas by the on-demand lifecycle, AB#4914/AB#4917) and this deploy must not resurrect it: the operator passes --set replicaCount=0 so the helm upgrade keeps the workload down. A deploy that is supposed to wake the workload goes through the controller's wake gate first, which clears the hibernated state before the deploy is sent. Defaults to false.

public bool Hibernated { get; set; }

Property Value​

Boolean

Constructors​

WorkloadDeployedDto()​

public WorkloadDeployedDto()