Allow to configure the chart for IPv6-only

What does this MR do?

Add support for IPv6-only clusters

  • All GitLab subcharts now bind IPv6 compatibly listeners by default.
  • KAS: Autodiscover own IP/host.
  • Spamcheck: Fix loading of custom config.
  • Go services: Use :{port} bind instead of 0.0.0.0:{port}. Both result in the same binds, but the later notation can be misleading.

The default configuration fits IPv4-only, IPv6-only and dual stack clusters.

Changelog: added

Related issues

Closes Deployment in a complete IPv6 only environment (#2778 - closed)

Author checklist

For general guidance, please follow our Contributing guide.

Required

For anything in this list which will not be completed, please provide a reason in the MR discussion.

  • Merge Request Title and Description are up to date, accurate, and descriptive.
  • MR targeting the appropriate branch.
  • MR has a green pipeline.
  • Documentation created/updated.
  • Tests added/updated, and test plan for scenarios not covered by automated tests.
  • Equivalent MR/issue for omnibus-gitlab opened.

Reviewers checklist

Test Plan

  1. Confirm CI passes (our CI clusters use IPv4 only)

  2. Setup a IPv6 (single stack) cluster.

    • Note: Some providers do not support IPv6 single stack cluster (e.g. GKE only supports dual stack). The config does not work out of the box on dual stack clusters, because of a known bug in webrick.

    • Example config for kind:

      kind: Cluster
      apiVersion: kind.x-k8s.io/v1alpha4
      networking:
        ipFamily: ipv6
      nodes:
      - role: control-plane
        extraPortMappings:
        - containerPort: 32080
          hostPort: 80
          listenAddress: "::"
        - containerPort: 32443
          hostPort: 443
          listenAddress: "::"
        - containerPort: 32022
          hostPort: 32022
          listenAddress: "::"
  3. Deploy the chart with the sample IPv6 values and confirm that all services come up operational.

What I tested:

  • Register a runner.
  • Push a commit via HTTPS.
  • Deploy a GitLab Pages site.
  • Connect a KAS agent.
Edited by Clemens Beck

Merge request reports

Loading