Skip to content
Snippets Groups Projects
  • Sami Hiltunen's avatar
    d5105cd6
    Match Praefect's configuration format in Omnibus · d5105cd6
    Sami Hiltunen authored
    The configuration formats of Praefect and Omnibus deviate from each
    other creating a few problems:
    
    1. Configuration keys for the same option differ between the context of
       Omnibus and Praefect creating confusion for the user.
    
    2. Each new key added requires duplicate work to map the different keys
       into Omnibus.
    
    This change introduces praefect['configuration'] matching configuration
    in Omnibus with Praefect's own format. The previous configuration keys
    are remapped into this new format to assist administrators during the
    transition period.
    
    The tomlrb gem does not supporting encoding TOML, so the tomlib gem has
    been added as a dependency. The configuration values are now serialized
    directly into TOML instead of using a template.
    
    Removes unneeded values allowing Praefect's own source to be the single
    source of truth for configuration.
    
    Updates tests because the new serialization method does not output empty
    config sections.
    
    Guards are included to prevent errors with latency configurations that
    must be arrays where the previous configuration expected a string until
    such time as Praefect's own validation subroutines are implemented.
    
    Closes https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/7422
    
    Changelog: changed
    d5105cd6
    History
    Match Praefect's configuration format in Omnibus
    Sami Hiltunen authored
    The configuration formats of Praefect and Omnibus deviate from each
    other creating a few problems:
    
    1. Configuration keys for the same option differ between the context of
       Omnibus and Praefect creating confusion for the user.
    
    2. Each new key added requires duplicate work to map the different keys
       into Omnibus.
    
    This change introduces praefect['configuration'] matching configuration
    in Omnibus with Praefect's own format. The previous configuration keys
    are remapped into this new format to assist administrators during the
    transition period.
    
    The tomlrb gem does not supporting encoding TOML, so the tomlib gem has
    been added as a dependency. The configuration values are now serialized
    directly into TOML instead of using a template.
    
    Removes unneeded values allowing Praefect's own source to be the single
    source of truth for configuration.
    
    Updates tests because the new serialization method does not output empty
    config sections.
    
    Guards are included to prevent errors with latency configurations that
    must be arrays where the previous configuration expected a string until
    such time as Praefect's own validation subroutines are implemented.
    
    Closes https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/7422
    
    Changelog: changed
This project manages its dependencies using Bundler. Learn more
Gemfile.lock 14.38 KiB
GIT
  remote: https://gitlab.com/gitlab-org/omnibus.git
  revision: 0451fe3967044496e8b0fc47b0f5d64fa1832ffc
  tag: 8.2.1.10
  specs:
    omnibus (8.2.1)
      aws-sdk-s3 (~> 1)
      chef-cleanroom (~> 1.0)
      chef-utils (>= 15.4)
      contracts (>= 0.16.0, < 0.17.0)
      ffi-yajl (~> 2.2)
      mixlib-shellout (>= 2.0, < 4.0)
      mixlib-versioning
      ohai (>= 15, < 18)
      pedump
      ruby-progressbar (~> 1.7)
      thor (>= 0.18, < 2.0)

GEM
  remote: https://packagecloud.io/cinc-project/stable/
  specs:
    chef (17.10.0)
      addressable
      aws-sdk-s3 (~> 1.91)
      aws-sdk-secretsmanager (~> 1.46)
      chef-config (= 17.10.0)
      chef-utils (= 17.10.0)
      chef-vault
      chef-zero (>= 14.0.11)
      corefoundation (~> 0.3.4)
      diff-lcs (>= 1.2.4, < 1.6.0, != 1.4.0)
      erubis (~> 2.7)
      ffi (>= 1.5.0)
      ffi-libarchive (~> 1.0, >= 1.0.3)
      ffi-yajl (~> 2.2)
      iniparse (~> 1.4)
      inspec-core (~> 4.23)
      license-acceptance (>= 1.0.5, < 3)
      mixlib-archive (>= 0.4, < 2.0)
      mixlib-authentication (>= 2.1, < 4)
      mixlib-cli (>= 2.1.1, < 3.0)
      mixlib-log (>= 2.0.3, < 4.0)
      mixlib-shellout (>= 3.1.1, < 4.0)
      net-sftp (>= 2.1.2, < 4.0)
      ohai (~> 17.0)
      plist (~> 3.2)
      proxifier (~> 1.0)
      syslog-logger (~> 1.6)
      train-core (~> 3.2, >= 3.2.28)
      train-winrm (>= 0.2.5)
      uuidtools (>= 2.1.5, < 3.0)
      vault (~> 0.16)
    chef-cli (5.6.1)
      addressable (>= 2.3.5, < 2.9)
      chef (>= 16.0)
      cookbook-omnifetch (~> 0.5)
      diff-lcs (>= 1.0, < 1.4)
      ffi-yajl (>= 1.0, < 3.0)
      license-acceptance (>= 1.0.11, < 3)
      minitar (~> 0.6)
      mixlib-cli (>= 1.7, < 3.0)
      mixlib-shellout (>= 2.0, < 4.0)
      pastel (~> 0.7)
      solve (> 2.0, < 5.0)
    chef-config (17.10.0)
      addressable
      chef-utils (= 17.10.0)
      fuzzyurl
      mixlib-config (>= 2.2.12, < 4.0)
      mixlib-shellout (>= 2.0, < 4.0)
      tomlrb (~> 1.2)
    chef-utils (17.10.0)
      concurrent-ruby
    chef-zero (15.0.11)
      ffi-yajl (~> 2.2)
      hashie (>= 2.0, < 5.0)
      mixlib-log (>= 2.0, < 4.0)
      rack (~> 2.0, >= 2.0.6)
      uuidtools (~> 2.1)
      webrick
    inspec-core (4.56.20)
      addressable (~> 2.4)
      chef-telemetry (~> 1.0, >= 1.0.8)
      faraday (>= 0.9.0, < 1.5)
      faraday_middleware (~> 1.0)
      hashie (>= 3.4, < 5.0)
      license-acceptance (>= 0.2.13, < 3.0)
      method_source (>= 0.8, < 2.0)
      mixlib-log (~> 3.0)
      multipart-post (~> 2.0)
      parallel (~> 1.9)
      parslet (>= 1.5, < 2.0)
      pry (~> 0.13)
      rspec (>= 3.9, <= 3.11)
      rspec-its (~> 1.2)
      rubyzip (>= 1.2.2, < 3.0)
      semverse (~> 3.0)
      sslshake (~> 1.2)
      thor (>= 0.20, < 2.0)
      tomlrb (>= 1.2, < 2.1)
      train-core (~> 3.0)
      tty-prompt (~> 0.17)
      tty-table (~> 0.10)
    mixlib-versioning (1.2.12)
    unf_ext (0.0.7.2)

GEM
  remote: https://rubygems.org/
  specs:
    abstract_type (0.0.7)
    activesupport (6.1.3.1)
      concurrent-ruby (~> 1.0, >= 1.0.2)
      i18n (>= 1.6, < 2)
      minitest (>= 5.1)
      tzinfo (~> 2.0)
      zeitwerk (~> 2.3)
    adamantium (0.2.0)
      ice_nine (~> 0.11.0)
      memoizable (~> 0.4.0)
    addressable (2.8.1)
      public_suffix (>= 2.0.2, < 6.0)
    ast (2.4.2)
    awesome_print (1.9.2)
    aws-eventstream (1.2.0)
    aws-partitions (1.584.0)
    aws-sdk-core (3.130.2)
      aws-eventstream (~> 1, >= 1.0.2)
      aws-partitions (~> 1, >= 1.525.0)
      aws-sigv4 (~> 1.1)
      jmespath (~> 1.0)
    aws-sdk-ec2 (1.327.0)
      aws-sdk-core (~> 3, >= 3.127.0)
      aws-sigv4 (~> 1.1)
    aws-sdk-kms (1.48.0)
      aws-sdk-core (~> 3, >= 3.120.0)
      aws-sigv4 (~> 1.1)
    aws-sdk-marketplacecatalog (1.22.0)
      aws-sdk-core (~> 3, >= 3.127.0)
      aws-sigv4 (~> 1.1)
    aws-sdk-s3 (1.103.0)
      aws-sdk-core (~> 3, >= 3.120.0)
      aws-sdk-kms (~> 1)
      aws-sigv4 (~> 1.4)
    aws-sdk-secretsmanager (1.60.0)
      aws-sdk-core (~> 3, >= 3.127.0)
      aws-sigv4 (~> 1.1)
    aws-sigv4 (1.5.0)
      aws-eventstream (~> 1, >= 1.0.2)
    binding_ninja (0.2.3)
    builder (3.2.4)
    chef-cleanroom (1.0.5)
    chef-telemetry (1.1.1)
      chef-config
      concurrent-ruby (~> 1.0)
    chef-vault (4.1.10)
    chefspec (9.3.3)
      chef (>= 15)
      chef-cli
      fauxhai-ng (>= 7.5)
      rspec (~> 3.0)
    citrus (3.0.2)
    claide (1.1.0)
    claide-plugins (0.9.2)
      cork
      nap
      open4 (~> 1.3)
    coderay (1.1.3)
    colored2 (3.1.2)
    concord (0.1.5)
      adamantium (~> 0.2.0)
      equalizer (~> 0.0.9)
    concurrent-ruby (1.1.8)
    contracts (0.16.1)
    cookbook-omnifetch (0.11.1)
      mixlib-archive (>= 0.4, < 2.0)
    corefoundation (0.3.13)
      ffi (>= 1.15.0)
    cork (0.3.0)
      colored2 (~> 3.1)
    danger (8.6.1)
      claide (~> 1.0)
      claide-plugins (>= 0.9.2)
      colored2 (~> 3.1)
      cork (~> 0.1)
      faraday (>= 0.9.0, < 2.0)
      faraday-http-cache (~> 2.0)
      git (~> 1.7)
      kramdown (~> 2.3)
      kramdown-parser-gfm (~> 1.0)
      no_proxy_fix
      octokit (~> 4.7)
      terminal-table (>= 1, < 4)
    danger-gitlab (8.0.0)
      danger
      gitlab (~> 4.2, >= 4.2.0)
    debug (1.6.1)
      irb (>= 1.3.6)
      reline (>= 0.3.1)
    diff-lcs (1.3)
    docile (1.4.0)
    docker-api (2.0.0)
      excon (>= 0.47.0)
      multi_json
    domain_name (0.5.20190701)
      unf (>= 0.0.5, < 1.0.0)
    equalizer (0.0.11)
    erubi (1.11.0)
    erubis (2.7.0)
    excon (0.76.0)
    fantaskspec (1.2.0)
      rake (>= 10.0)
      rspec (~> 3.4)
    faraday (1.4.3)
      faraday-em_http (~> 1.0)
      faraday-em_synchrony (~> 1.0)
      faraday-excon (~> 1.1)
      faraday-net_http (~> 1.0)
      faraday-net_http_persistent (~> 1.1)
      multipart-post (>= 1.2, < 3)
      ruby2_keywords (>= 0.0.4)
    faraday-em_http (1.0.0)
    faraday-em_synchrony (1.0.0)
    faraday-excon (1.1.0)
    faraday-http-cache (2.4.1)
      faraday (>= 0.8)
    faraday-net_http (1.0.1)
    faraday-net_http_persistent (1.2.0)
    faraday_middleware (1.2.0)
      faraday (~> 1.0)
    fauxhai-ng (8.7.0)
      net-ssh
    ffi (1.15.5)
    ffi-compiler (1.0.1)
      ffi (>= 1.0.0)
      rake
    ffi-libarchive (1.1.3)
      ffi (~> 1.0)
    ffi-yajl (2.4.0)
      libyajl2 (>= 1.2)
    fuzzyurl (0.9.0)
    git (1.11.0)
      rchardet (~> 1.8)
    gitlab (4.19.0)
      httparty (~> 0.20)
      terminal-table (>= 1.5.1)
    gitlab-dangerfiles (3.5.0)
      danger (>= 8.4.5)
      danger-gitlab (>= 8.0.0)
      rake
    gitlab-styles (9.0.0)
      rubocop (~> 1.36.0)
      rubocop-gitlab-security (~> 0.1.1)
      rubocop-graphql (~> 0.14)
      rubocop-performance (~> 1.14)
      rubocop-rails (~> 2.15)
      rubocop-rspec (~> 2.12)
    gssapi (1.3.1)
      ffi (>= 1.0.1)
    gyoku (1.4.0)
      builder (>= 2.1.2)
      rexml (~> 3.0)
    hashie (4.1.0)
    highline (2.0.3)
    http (5.1.0)
      addressable (~> 2.8)
      http-cookie (~> 1.0)
      http-form_data (~> 2.2)
      llhttp-ffi (~> 0.4.0)
    http-accept (1.7.0)
    http-cookie (1.0.5)
      domain_name (~> 0.5)
    http-form_data (2.3.0)
    httparty (0.20.0)
      mime-types (~> 3.0)
      multi_xml (>= 0.5.2)
    httpclient (2.8.3)
    i18n (1.8.10)
      concurrent-ruby (~> 1.0)
    ice_nine (0.11.2)
    iniparse (1.5.0)
    io-console (0.5.11)
    iostruct (0.0.4)
    ipaddress (0.8.3)
    irb (1.4.1)
      reline (>= 0.3.0)
    jmespath (1.6.1)
    json (2.6.1)
    json_pure (2.3.1)
    knapsack (1.17.1)
      rake
    kramdown (2.4.0)
      rexml
    kramdown-parser-gfm (1.1.0)
      kramdown (~> 2.0)
    libyajl2 (2.1.0)
    license-acceptance (2.1.13)
      pastel (~> 0.7)
      tomlrb (>= 1.2, < 3.0)
      tty-box (~> 0.6)
      tty-prompt (~> 0.20)
    little-plugger (1.1.4)
    llhttp-ffi (0.4.0)
      ffi-compiler (~> 1.0)
      rake (~> 13.0)
    logging (2.3.0)
      little-plugger (~> 1.1)
      multi_json (~> 1.14)
    memoizable (0.4.2)
      thread_safe (~> 0.3, >= 0.3.1)
    method_source (1.0.0)
    mime-types (3.3.1)
      mime-types-data (~> 3.2015)
    mime-types-data (3.2020.0512)
    minitar (0.9)
    minitest (5.14.4)
    mixlib-archive (1.1.7)
      mixlib-log
    mixlib-authentication (3.0.10)
    mixlib-cli (2.1.8)
    mixlib-config (3.0.9)
      tomlrb
    mixlib-log (3.0.9)
    mixlib-shellout (3.2.7)
      chef-utils
    molinillo (0.8.0)
    multi_json (1.15.0)
    multi_xml (0.6.0)
    multipart-post (2.1.1)
    nap (1.1.0)
    net-scp (3.0.0)
      net-ssh (>= 2.6.5, < 7.0.0)
    net-sftp (3.0.0)
      net-ssh (>= 5.0.0, < 7.0.0)
    net-ssh (6.1.0)
    netrc (0.11.0)
    no_proxy_fix (0.1.2)
    nori (2.6.0)
    octokit (4.25.1)
      faraday (>= 1, < 3)
      sawyer (~> 0.9)
    ohai (17.9.0)
      chef-config (>= 14.12, < 18)
      chef-utils (>= 16.0, < 18)
      ffi (~> 1.9)
      ffi-yajl (~> 2.2)
      ipaddress
      mixlib-cli (>= 1.7.0)
      mixlib-config (>= 2.0, < 4.0)
      mixlib-log (>= 2.0.1, < 4.0)
      mixlib-shellout (~> 3.2, >= 3.2.5)
      plist (~> 3.1)
      train-core
      wmi-lite (~> 1.0)
    omnibus-ctl (0.3.6)
    open4 (1.3.4)
    package_cloud (0.3.09)
      highline (~> 2.0.0)
      json_pure (~> 2.3.0)
      rainbow (= 2.2.2)
      rest-client (~> 2.0)
      thor (~> 1.2)
    parallel (1.19.2)
    parser (3.1.2.1)
      ast (~> 2.4.1)
    parslet (1.8.2)
    pastel (0.8.0)
      tty-color (~> 0.5)
    pedump (0.6.5)
      awesome_print
      iostruct (>= 0.0.4)
      multipart-post (>= 2.0.0)
      rainbow
      zhexdump (>= 0.0.2)
    plist (3.6.0)
    proc_to_ast (0.1.0)
      coderay
      parser
      unparser
    procto (0.0.3)
    proxifier (1.0.3)
    pry (0.14.1)
      coderay (~> 1.1)
      method_source (~> 1.0)
    public_suffix (5.0.0)
    rack (2.2.4)
    rainbow (2.2.2)
      rake
    rake (13.0.6)
    rchardet (1.8.0)
    regexp_parser (2.1.1)
    reline (0.3.1)
      io-console (~> 0.5)
    rest-client (2.1.0)
      http-accept (>= 1.7.0, < 2.0)
      http-cookie (>= 1.0.2, < 2.0)
      mime-types (>= 1.16, < 4.0)
      netrc (~> 0.8)
    retriable (3.1.2)
    rexml (3.2.5)
    rspec (3.11.0)
      rspec-core (~> 3.11.0)
      rspec-expectations (~> 3.11.0)
      rspec-mocks (~> 3.11.0)
    rspec-core (3.11.0)
      rspec-support (~> 3.11.0)
    rspec-expectations (3.11.1)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.11.0)
    rspec-its (1.3.0)
      rspec-core (>= 3.0.0)
      rspec-expectations (>= 3.0.0)
    rspec-mocks (3.11.2)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.11.0)
    rspec-parameterized (0.4.2)
      binding_ninja (>= 0.2.3)
      parser
      proc_to_ast
      rspec (>= 2.13, < 4)
      unparser
    rspec-support (3.11.1)
    rspec_junit_formatter (0.4.1)
      rspec-core (>= 2, < 4, != 2.12.0)
    rubocop (1.36.0)
      json (~> 2.3)
      parallel (~> 1.10)
      parser (>= 3.1.2.1)
      rainbow (>= 2.2.2, < 4.0)
      regexp_parser (>= 1.8, < 3.0)
      rexml (>= 3.2.5, < 4.0)
      rubocop-ast (>= 1.20.1, < 2.0)
      ruby-progressbar (~> 1.7)
      unicode-display_width (>= 1.4.0, < 3.0)
    rubocop-ast (1.21.0)
      parser (>= 3.1.1.0)
    rubocop-gitlab-security (0.1.1)
      rubocop (>= 0.51)
    rubocop-graphql (0.14.5)
      rubocop (>= 0.87, < 2)
    rubocop-performance (1.15.0)
      rubocop (>= 1.7.0, < 2.0)
      rubocop-ast (>= 0.4.0)
    rubocop-rails (2.16.0)
      activesupport (>= 4.2.0)
      rack (>= 1.1)
      rubocop (>= 1.33.0, < 2.0)
    rubocop-rspec (2.13.1)
      rubocop (~> 1.33)
    ruby-progressbar (1.11.0)
    ruby2_keywords (0.0.5)
    rubyntlm (0.6.3)
    rubyzip (2.3.2)
    sawyer (0.9.2)
      addressable (>= 2.3.5)
      faraday (>= 0.17.3, < 3)
    semverse (3.0.0)
    simplecov (0.21.2)
      docile (~> 1.1)
      simplecov-html (~> 0.11)
      simplecov_json_formatter (~> 0.1)
    simplecov-cobertura (2.1.0)
      rexml
      simplecov (~> 0.19)
    simplecov-html (0.12.3)
    simplecov_json_formatter (0.1.4)
    solve (4.0.4)
      molinillo (~> 0.6)
      semverse (>= 1.1, < 4.0)
    sslshake (1.3.1)
    strings (0.2.1)
      strings-ansi (~> 0.2)
      unicode-display_width (>= 1.5, < 3.0)
      unicode_utils (~> 1.4)
    strings-ansi (0.2.0)
    syslog-logger (1.6.8)
    terminal-table (1.8.0)
      unicode-display_width (~> 1.1, >= 1.1.1)
    thor (1.2.1)
    thread_safe (0.3.6)
    toml-rb (2.2.0)
      citrus (~> 3.0, > 3.0)
    tomlib (0.5.0)
    tomlrb (1.3.0)
    train-core (3.9.2)
      addressable (~> 2.5)
      ffi (!= 1.13.0)
      json (>= 1.8, < 3.0)
      mixlib-shellout (>= 2.0, < 4.0)
      net-scp (>= 1.2, < 4.0)
      net-ssh (>= 2.9, < 7.0)
    train-winrm (0.2.13)
      winrm (>= 2.3.6, < 3.0)
      winrm-elevated (~> 1.2.2)
      winrm-fs (~> 1.0)
    tty-box (0.7.0)
      pastel (~> 0.8)
      strings (~> 0.2.0)
      tty-cursor (~> 0.7)
    tty-color (0.6.0)
    tty-cursor (0.7.1)
    tty-prompt (0.23.1)
      pastel (~> 0.8)
      tty-reader (~> 0.8)
    tty-reader (0.9.0)
      tty-cursor (~> 0.7)
      tty-screen (~> 0.8)
      wisper (~> 2.0)
    tty-screen (0.8.1)
    tty-table (0.12.0)
      pastel (~> 0.8)
      strings (~> 0.2.0)
      tty-screen (~> 0.8)
    tzinfo (2.0.4)
      concurrent-ruby (~> 1.0)
    unf (0.1.4)
      unf_ext
    unicode-display_width (1.8.0)
    unicode_utils (1.4.0)
    unparser (0.4.7)
      abstract_type (~> 0.0.7)
      adamantium (~> 0.2.0)
      concord (~> 0.1.5)
      diff-lcs (~> 1.3)
      equalizer (~> 0.0.9)
      parser (>= 2.6.5)
      procto (~> 0.0.2)
    uuidtools (2.2.0)
    vault (0.16.0)
      aws-sigv4
    webrick (1.7.0)
    winrm (2.3.6)
      builder (>= 2.1.2)
      erubi (~> 1.8)
      gssapi (~> 1.2)
      gyoku (~> 1.0)
      httpclient (~> 2.2, >= 2.2.0.2)
      logging (>= 1.6.1, < 3.0)
      nori (~> 2.0)
      rubyntlm (~> 0.6.0, >= 0.6.3)
    winrm-elevated (1.2.3)
      erubi (~> 1.8)
      winrm (~> 2.0)
      winrm-fs (~> 1.0)
    winrm-fs (1.3.5)
      erubi (~> 1.8)
      logging (>= 1.6.1, < 3.0)
      rubyzip (~> 2.0)
      winrm (~> 2.0)
    wisper (2.0.1)
    wmi-lite (1.0.7)
    yard (0.9.26)
    zeitwerk (2.4.2)
    zhexdump (0.0.2)

PLATFORMS
  ruby

DEPENDENCIES
  aws-sdk-ec2
  aws-sdk-marketplacecatalog
  chef (~> 17.10.0)!
  chef-cli (~> 5.6.1)!
  chef-utils!
  chefspec
  debug
  docker-api
  fantaskspec
  gitlab
  gitlab-dangerfiles (~> 3.0)
  gitlab-styles (~> 9.0)
  http
  json
  knapsack
  mixlib-versioning!
  ohai (~> 17.0)
  omnibus!
  omnibus-ctl (= 0.3.6)
  package_cloud
  rainbow (~> 2.2)
  rake
  retriable
  rspec
  rspec-parameterized
  rspec_junit_formatter
  simplecov-cobertura
  thor (~> 1.2)
  toml-rb
  tomlib (~> 0.5.0)
  yard

BUNDLED WITH
   2.3.22