Skip to content

Disable Consul telemetry compatibility

Clemens Beck requested to merge consul-disable-compat-1-9 into master

What does this MR do?

Disable Consul telemetry compatibility

Disable telemetry compatibility to 1.9, which will not
be supported for Consul 1.13+.

Related Consul Docs:
  https://developer.hashicorp.com/consul/docs/v1.12.x/agent/config/config-files#telemetry-parameters

Closes: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/7278

Changelog: changed

This will unblock us from upgrading to 1.13+.

Related issues/MRs

Closes: #7278 (closed)

Relates: !6612 (merged)

Checklist

See Definition of done.

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

Required

  • MR title and description are up to date, accurate, and descriptive.
  • MR targeting the appropriate branch.
  • Latest Merge Result pipeline is green.
  • When ready for review, MR is labeled "~workflow::ready for review" per the Distribution MR workflow.

Testing

Run a consul cluster with nodes with mixed 1.9 compat.

You might adapt/use this docker compose for doing so:

docker-compose.yaml
version: '3.6'

networks:
  static-network:
    ipam:
      config:
        - subnet: 172.30.0.0/16

services: 
  consul1:
    # MR Image, not setting (disabling) compat 1.9 mode
    image: registry.gitlab.com/gitlab-org/omnibus-gitlab/gitlab-ee:15.11.2-rfbranch.862636659.f4f892fc-0
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        roles ['consul_role']
        consul['configuration'] = {
          server: true,
          retry_join: %w(172.30.0.4 172.30.0.3),
          bind_addr: '172.30.0.4'
        }
        gitlab_rails['auto_migrate'] = false
    networks:
      static-network:
        ipv4_address: '172.30.0.4'
  consul2:
    # Nightly Image, setting (enabling) compat 1.9 mode
    image: gitlab/gitlab-ee:nightly
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        roles ['consul_role']
        consul['configuration'] = {
          server: true,
          retry_join: %w(172.30.0.4 172.30.0.3),
          bind_addr: '172.30.0.3'
        }
        gitlab_rails['auto_migrate'] = false
    networks:
      static-network:
        ipv4_address: '172.30.0.3'

  • Verify compat mode is not set for nodes running the package/image from this MR
    docker exec <non-compat node> cat /var/opt/gitlab/consul/config.json | jq
  • Verify compat mode is set for nodes not running the package/image from this MR
    docker exec <compat node> cat /var/opt/gitlab/consul/config.json | jq
  • Verify the consul cluster is healthy
    docker exec <node> consul members
    # expects an empty array
    docker exec <node> curl "http://127.0.0.1:8500/v1/health/state/critical"

For GitLab team members

If you don't have access to this, the reviewer should trigger these jobs for you during the review process.

  • The manual Trigger:ee-package jobs have a green pipeline running against latest commit.
  • If config/software or config/patches directories are changed, make sure the build-package-on-all-os job within the Trigger:ee-package downstream pipeline succeeded.
  • If you are changing anything SSL related, then the Trigger:package:fips manual job within the Trigger:ee-package downstream pipeline must succeed.
  • If CI configuration is changed, the branch must be pushed to dev.gitlab.org to confirm regular branch builds aren't broken.

Expected (please provide an explanation if not completing)

  • Test plan indicating conditions for success has been posted and passes.
  • Documentation created/updated.
  • Tests added.
  • Integration tests added to GitLab QA.
  • Equivalent MR/issue for the GitLab Chart opened.
  • Validate potential values for new configuration settings. Formats such as integer 10, duration 10s, URI scheme://user:passwd@host:port may require quotation or other special handling when rendered in a template and written to a configuration file.
Edited by Clemens Beck

Merge request reports