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

node_group function and node_group resource are inconsistent #92

Open
bastelfreak opened this issue Jul 19, 2024 · 0 comments
Open

node_group function and node_group resource are inconsistent #92

bastelfreak opened this issue Jul 19, 2024 · 0 comments
Labels

Comments

@bastelfreak
Copy link
Contributor

Describe the Bug

From https://www.puppet.com/docs/pe/2023.7/groups_endpoint#get_v1_groups-get-v1-groups-response-format:

The classifier API endpoint /v1/groups has different attributes per group. One is config_data. We can verify this on PE 2019/2021/2023:

cert="$(puppet config print hostcert)"
cacert="$(puppet config print localcacert)"
key="$(puppet config print hostprivkey)"
uri="https://$(puppet config print server):4433/classifier-api/v1/groups"
curl --silent --header "$type_header" --cert "$cert" --cacert "$cacert" --key "$key" "$uri" | jq '.[] | select(.name=="PE Master")'

Which gives us:

{
  "parent": "e60ebca5-1cc0-44da-93d8-53a91d2ff448",
  "environment_trumps": false,
  "name": "PE Master",
  "rule": [
    "or",
    [
      "and",
      [
        "=",
        [
          "trusted",
          "extensions",
          "pp_auth_role"
        ],
        "pe_compiler"
      ]
    ],
    [
      "=",
      "name",
      "pe.tim.betadots.training"
    ]
  ],
  "variables": {
    "pe_master": true
  },
  "id": "0588e587-f8e6-446d-98b1-fe5ce24bd513",
  "environment": "production",
  "last_edited": "2024-07-19T10:53:20.184Z",
  "serial_number": 6,
  "classes": {
    "pe_repo": {},
    "pe_repo::platform::el_8_x86_64": {},
    "pe_repo::platform::windows_x86_64": {},
    "pe_repo::platform::windowsfips_x86_64": {},
    "puppet_enterprise::profile::master": {
      "replication_mode": "none"
    }
  },
  "config_data": {
    "puppet_enterprise::profile::master": {
      "code_manager_auto_configure": true,
      "r10k_remote": "https://github.com/bastelfreak/testcontrolrepo"
    },
    "pe_repo": {
      "compile_master_pool_address": "pe.tim.betadots.training"
    }
  }
}

but:

# puppet resource node_group 'PE Master'
node_group { 'PE Master':
  ensure               => 'present',
  classes              => {
  'pe_repo' => {

  },
  'pe_repo::platform::el_8_x86_64' => {

  },
  'pe_repo::platform::windows_x86_64' => {

  },
  'pe_repo::platform::windowsfips_x86_64' => {

  },
  'puppet_enterprise::profile::master' => {
    'replication_mode' => 'none'
  }
},
  data                 => {
  'pe_repo' => {
    'compile_master_pool_address' => 'pe.tim.betadots.training'
  },
  'puppet_enterprise::profile::master' => {
    'code_manager_auto_configure' => true,
    'r10k_remote' => 'https://github.com/bastelfreak/testcontrolrepo'
  }
},
  environment          => 'production',
  id                   => '0588e587-f8e6-446d-98b1-fe5ce24bd513',
  override_environment => 'false',
  parent               => 'PE Infrastructure',
  provider             => 'https',
  rule                 => ['or',
  ['and',
    ['=',
      ['trusted', 'extensions', 'pp_auth_role'],
      'pe_compiler']],
  ['=', 'name', 'pe.tim.betadots.training']],
  variables            => {
  'pe_master' => true
},
}

It's inconsistent. The node_group resource type uses data. The node_group() function uses config_data. I've scenarios where we use the node_group() function to get information about a group, modify it, write it back. This gets a bit complicated when function and resource type aren't consistent.

Expected Behavior

A clear and concise description of what you expected to happen.

Steps to Reproduce

See above.

Environment

  • PE 2019/2021/2023
  • puppetlabs/node_manager v1.0.1

Additional Context

Add any other context about the problem here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant