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 ObjectWorkloadDeployedDto
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

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

Constructors

WorkloadDeployedDto()

public WorkloadDeployedDto()