RFC: Source column in the Parameter tab in the Host detail page

In the current implementation of the Parameter tab, we are planning to improve a column Source. It can display previous values of the parameter based on the source hierarchy. Sources could be host, group, OS, subnet, domain, location, or organization. (Hierarchy is hardcoded and cannot be changed in this example)

What would make sense for you to display in the Source column in the Parameter tab? (some information may appear on click)

  • (A) Type and specific source is enough e.g. Location: Brno
  • (B) First option and previous overriden source with value in popover
  • (C) First option and complete source history for the parameter with values displayed e.g. in a popover
0 voters

A


B

C

These mocks are rather illustrative.
Thank you, for taking the time to give us a quick feedback.

2 Likes

I voted for C, as it allows to see the current value and why it is set very easily and helps with debugging if it is not the expected value! A very small, but nice and useful enhancement, so thanks a lot!

Just something to think about, does someone else also expect to get to another page (i.e. the host group page) if it’s just the text in “link” blue in the table? :slight_smile:

For me it is just an indicator I can click on something, so getting the details pop-up is enough.
But you made me think that allowing to click in the details on the source to be send there would be nice as you can directly change the value there than.

1 Like

Oh yeah that sometimes might be very helpful :ok_hand:t2:

For option C, is it really a Source history? AFAIK we don’t store a history for parameters so what content should be there? It looks more like all layers, but those layers are still active. I like the concept and is very similar to puppet lookup --explain. For completeness, that output is:

# puppet lookup --explain nginx::ssl_protocols
Searching for "lookup_options"
  Global Data Provider (hiera configuration version 5)
    Using configuration "/etc/puppetlabs/puppet/hiera.yaml"
    Hierarchy entry "Per-node data"
      Path "/etc/puppetlabs/puppet/data/nodes/puppet.example.com.yaml"
        Original path: "nodes/%{trusted.certname}.yaml"
        No such key: "lookup_options"
  Environment Data Provider (hiera configuration version 5)
    Using configuration "/etc/puppetlabs/code/environments/production/hiera.yaml"
    Merge strategy hash
      Hierarchy entry "Per-node data"
        Path "/etc/puppetlabs/code/environments/production/data/nodes/puppet.example.com.yaml"
          Original path: "nodes/%{trusted.certname}.yaml"
          No such key: "lookup_options"
      Hierarchy entry "Per-OS major defaults"
        Path "/etc/puppetlabs/code/environments/production/data/os/CentOS-8.yaml"
          Original path: "os/%{facts.os.name}-%{facts.os.release.major}.yaml"
          Path not found
      Hierarchy entry "Per-OS defaults"
        Path "/etc/puppetlabs/code/environments/production/data/os/CentOS.yaml"
          Original path: "os/%{facts.os.name}.yaml"
          Path not found
      Hierarchy entry "Per-OS family major defaults"
        Path "/etc/puppetlabs/code/environments/production/data/osfamily/RedHat-8.yaml"
          Original path: "osfamily/%{facts.os.family}-%{facts.os.release.major}.yaml"
          Path not found
      Hierarchy entry "Per-OS family defaults"
        Path "/etc/puppetlabs/code/environments/production/data/osfamily/RedHat.yaml"
          Original path: "osfamily/%{facts.os.family}.yaml"
          No such key: "lookup_options"
      Hierarchy entry "Other YAML hierarchy levels"
        Path "/etc/puppetlabs/code/environments/production/data/common.yaml"
          Original path: "common.yaml"
          Found key: "lookup_options" value: {
            "profiles::base::packages" => {
              "merge" => "unique"
            }
          }
      Merged result: {
        "profiles::base::packages" => {
          "merge" => "unique"
        }
      }
  Module data provider for module "nginx" not found
Searching for "nginx::ssl_protocols"
  Global Data Provider (hiera configuration version 5)
    Using configuration "/etc/puppetlabs/puppet/hiera.yaml"
    Hierarchy entry "Per-node data"
      Path "/etc/puppetlabs/puppet/data/nodes/puppet.example.com.yaml"
        Original path: "nodes/%{trusted.certname}.yaml"
        No such key: "nginx::ssl_protocols"
  Environment Data Provider (hiera configuration version 5)
    Using configuration "/etc/puppetlabs/code/environments/production/hiera.yaml"
    Hierarchy entry "Per-node data"
      Path "/etc/puppetlabs/code/environments/production/data/nodes/puppet.example.com.yaml"
        Original path: "nodes/%{trusted.certname}.yaml"
        No such key: "nginx::ssl_protocols"
    Hierarchy entry "Per-OS major defaults"
      Path "/etc/puppetlabs/code/environments/production/data/os/CentOS-8.yaml"
        Original path: "os/%{facts.os.name}-%{facts.os.release.major}.yaml"
        Path not found
    Hierarchy entry "Per-OS defaults"
      Path "/etc/puppetlabs/code/environments/production/data/os/CentOS.yaml"
        Original path: "os/%{facts.os.name}.yaml"
        Path not found
    Hierarchy entry "Per-OS family major defaults"
      Path "/etc/puppetlabs/code/environments/production/data/osfamily/RedHat-8.yaml"
        Original path: "osfamily/%{facts.os.family}-%{facts.os.release.major}.yaml"
        Path not found
    Hierarchy entry "Per-OS family defaults"
      Path "/etc/puppetlabs/code/environments/production/data/osfamily/RedHat.yaml"
        Original path: "osfamily/%{facts.os.family}.yaml"
        No such key: "nginx::ssl_protocols"
    Hierarchy entry "Other YAML hierarchy levels"
      Path "/etc/puppetlabs/code/environments/production/data/common.yaml"
        Original path: "common.yaml"
        Found key: "nginx::ssl_protocols" value: "TLSv1.2"
1 Like