Skip to content

Helm chart: per-pod media LoadBalancer, signaling port default and disabled preStop hook #115

Open

Description

@rsubrama83

Found while updating the AKS docs (#114). None of these have been verified against a cluster.

1. external.yaml renders every media Service with the same name

templates/external.yaml loops scale.maxReplicaCount times. Each iteration emits a Service named {{ $fullName }}-external, and there is no --- separator between iterations (unlike service.yaml). With more than one replica this either fails to render or leaves only one media port/pod mapping. Meanwhile each bot advertises InstancePublicPort + podNumber (AzureSettings.cs), so pods other than the surviving one would get no media.

Suggested fix: name the Service {{ $fullName }}-external-{{ $i }} and add --- between iterations. Check with helm template ... -s templates/external.yaml --set scale.maxReplicaCount=3.

2. The default internal.port doesn't match the Services' target port

The bot serves plain HTTP on CallSignalingPort + 1 (AppHost.cs), and the deployment sets CallSignalingPort from internal.port. The per-pod and routing Services hard-code targetPort: 81. This only works with internal.port=80, which the CI sets but values.yaml doesn't (default 9441 → HTTP on 9442).

Suggested fix: set the values.yaml default to 80, or derive targetPort from internal.port + 1.

3. The preStop hook is commented out

The halt_termination.ps1 preStop hook in templates/deployment.yaml is commented out. Without it, terminationGracePeriod doesn't wait for ongoing calls, so scaling down or rolling updates can drop calls that are in progress.

Suggested fix: re-enable the hook, or document why it is disabled.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions