Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

consul: probe consul namespace feature before using namespace api #10715

Merged
merged 2 commits into from
Jun 7, 2021

Commits on Jun 7, 2021

  1. consul: probe consul namespace feature before using namespace api

    This PR changes Nomad's wrapper around the Consul NamespaceAPI so that
    it will detect if the Consul Namespaces feature is enabled before making
    a request to the Namespaces API. Namespaces are not enabled in Consul OSS,
    and require a suitable license to be used with Consul ENT.
    
    Previously Nomad would check for a 404 status code when makeing a request
    to the Namespaces API to "detect" if Consul OSS was being used. This does
    not work for Consul ENT with Namespaces disabled, which returns a 500.
    
    Now we avoid requesting the namespace API altogether if Consul is detected
    to be the OSS sku, or if the Namespaces feature is not licensed. Since
    Consul can be upgraded from OSS to ENT, or a new license applied, we cache
    the value for 1 minute, refreshing on demand if expired.
    
    Fixes hashicorp/nomad-enterprise#575
    
    Note that the ticket originally describes using attributes from #10688.
    This turns out not to be possible due to a chicken-egg situation between
    bootstrapping the agent and setting up the consul client. Also fun: the
    Consul fingerprinter creates its own Consul client, because there is no
    [currently] no way to pass the agent's client through the fingerprint factory.
    shoenig committed Jun 7, 2021
    Configuration menu
    Copy the full SHA
    0bc8a33 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4b3ed53 View commit details
    Browse the repository at this point in the history