octocatalog-diff 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. checksums.yaml +7 -0
  2. data/.version +1 -0
  3. data/LICENSE +20 -0
  4. data/README.md +82 -0
  5. data/bin/octocatalog-diff +75 -0
  6. data/doc/advanced-bootstrap.md +33 -0
  7. data/doc/advanced-cache-dir.md +24 -0
  8. data/doc/advanced-catalog-only.md +37 -0
  9. data/doc/advanced-ci.md +13 -0
  10. data/doc/advanced-dynamic-ignores.md +123 -0
  11. data/doc/advanced-future-parser.md +11 -0
  12. data/doc/advanced-ignores.md +224 -0
  13. data/doc/advanced-output-formats.md +96 -0
  14. data/doc/advanced-output-hacks.md +45 -0
  15. data/doc/advanced-override-facts.md +67 -0
  16. data/doc/advanced-pe-enc.md +52 -0
  17. data/doc/advanced-puppet-master.md +50 -0
  18. data/doc/advanced-puppet-versions.md +9 -0
  19. data/doc/advanced-storeconfigs.md +72 -0
  20. data/doc/advanced-using-without-git.md +15 -0
  21. data/doc/advanced.md +43 -0
  22. data/doc/basic.md +70 -0
  23. data/doc/configuration-enc.md +69 -0
  24. data/doc/configuration-hiera.md +103 -0
  25. data/doc/configuration-puppetdb.md +49 -0
  26. data/doc/configuration.md +51 -0
  27. data/doc/dev/README.md +1 -0
  28. data/doc/dev/coverage.md +34 -0
  29. data/doc/dev/how-to-add-options.md +83 -0
  30. data/doc/dev/integration-tests.md +63 -0
  31. data/doc/dev/releasing.md +19 -0
  32. data/doc/installation.md +49 -0
  33. data/doc/limitations.md +34 -0
  34. data/doc/optionsref.md +947 -0
  35. data/doc/requirements.md +16 -0
  36. data/doc/roadmap.md +26 -0
  37. data/doc/similar.md +17 -0
  38. data/doc/troubleshooting.md +54 -0
  39. data/lib/octocatalog-diff.rb +12 -0
  40. data/lib/octocatalog-diff/bootstrap.rb +53 -0
  41. data/lib/octocatalog-diff/catalog-diff/cli.rb +205 -0
  42. data/lib/octocatalog-diff/catalog-diff/cli/catalogs.rb +240 -0
  43. data/lib/octocatalog-diff/catalog-diff/cli/diffs.rb +145 -0
  44. data/lib/octocatalog-diff/catalog-diff/cli/helpers/fact_override.rb +99 -0
  45. data/lib/octocatalog-diff/catalog-diff/cli/options.rb +173 -0
  46. data/lib/octocatalog-diff/catalog-diff/cli/options/basedir.rb +14 -0
  47. data/lib/octocatalog-diff/catalog-diff/cli/options/bootstrap_environment.rb +18 -0
  48. data/lib/octocatalog-diff/catalog-diff/cli/options/bootstrap_script.rb +14 -0
  49. data/lib/octocatalog-diff/catalog-diff/cli/options/bootstrap_then_exit.rb +12 -0
  50. data/lib/octocatalog-diff/catalog-diff/cli/options/bootstrapped_dirs.rb +18 -0
  51. data/lib/octocatalog-diff/catalog-diff/cli/options/cached_master_dir.rb +21 -0
  52. data/lib/octocatalog-diff/catalog-diff/cli/options/catalog_only.rb +14 -0
  53. data/lib/octocatalog-diff/catalog-diff/cli/options/color.rb +13 -0
  54. data/lib/octocatalog-diff/catalog-diff/cli/options/compare_file_text.rb +15 -0
  55. data/lib/octocatalog-diff/catalog-diff/cli/options/debug.rb +12 -0
  56. data/lib/octocatalog-diff/catalog-diff/cli/options/display_datatype_changes.rb +16 -0
  57. data/lib/octocatalog-diff/catalog-diff/cli/options/display_detail_add.rb +12 -0
  58. data/lib/octocatalog-diff/catalog-diff/cli/options/display_source_file_line.rb +12 -0
  59. data/lib/octocatalog-diff/catalog-diff/cli/options/enc.rb +31 -0
  60. data/lib/octocatalog-diff/catalog-diff/cli/options/existing_catalogs.rb +25 -0
  61. data/lib/octocatalog-diff/catalog-diff/cli/options/fact_file.rb +23 -0
  62. data/lib/octocatalog-diff/catalog-diff/cli/options/fact_override.rb +19 -0
  63. data/lib/octocatalog-diff/catalog-diff/cli/options/facts_terminus.rb +16 -0
  64. data/lib/octocatalog-diff/catalog-diff/cli/options/from_puppetdb.rb +13 -0
  65. data/lib/octocatalog-diff/catalog-diff/cli/options/header.rb +24 -0
  66. data/lib/octocatalog-diff/catalog-diff/cli/options/hiera_config.rb +18 -0
  67. data/lib/octocatalog-diff/catalog-diff/cli/options/hiera_path_strip.rb +12 -0
  68. data/lib/octocatalog-diff/catalog-diff/cli/options/hostname.rb +13 -0
  69. data/lib/octocatalog-diff/catalog-diff/cli/options/ignore.rb +24 -0
  70. data/lib/octocatalog-diff/catalog-diff/cli/options/ignore_attr.rb +16 -0
  71. data/lib/octocatalog-diff/catalog-diff/cli/options/ignore_tags.rb +23 -0
  72. data/lib/octocatalog-diff/catalog-diff/cli/options/include_tags.rb +12 -0
  73. data/lib/octocatalog-diff/catalog-diff/cli/options/master_cache_branch.rb +12 -0
  74. data/lib/octocatalog-diff/catalog-diff/cli/options/output_file.rb +15 -0
  75. data/lib/octocatalog-diff/catalog-diff/cli/options/output_format.rb +15 -0
  76. data/lib/octocatalog-diff/catalog-diff/cli/options/parallel.rb +12 -0
  77. data/lib/octocatalog-diff/catalog-diff/cli/options/parser.rb +48 -0
  78. data/lib/octocatalog-diff/catalog-diff/cli/options/pass_env_vars.rb +19 -0
  79. data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_ssl_ca.rb +15 -0
  80. data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_ssl_client_cert.rb +14 -0
  81. data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_ssl_client_key.rb +14 -0
  82. data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_token.rb +15 -0
  83. data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_token_file.rb +17 -0
  84. data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_url.rb +19 -0
  85. data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_binary.rb +16 -0
  86. data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_master.rb +16 -0
  87. data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_master_api_version.rb +20 -0
  88. data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_master_ssl_ca.rb +19 -0
  89. data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_master_ssl_client_cert.rb +19 -0
  90. data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_master_ssl_client_key.rb +19 -0
  91. data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_ca.rb +15 -0
  92. data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_cert.rb +14 -0
  93. data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_key.rb +14 -0
  94. data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_password.rb +14 -0
  95. data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_password_file.rb +13 -0
  96. data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_url.rb +18 -0
  97. data/lib/octocatalog-diff/catalog-diff/cli/options/quiet.rb +12 -0
  98. data/lib/octocatalog-diff/catalog-diff/cli/options/retry_failed_catalog.rb +13 -0
  99. data/lib/octocatalog-diff/catalog-diff/cli/options/safe_to_delete_cached_master_dir.rb +15 -0
  100. data/lib/octocatalog-diff/catalog-diff/cli/options/storeconfigs.rb +12 -0
  101. data/lib/octocatalog-diff/catalog-diff/cli/options/suppress_absent_file_details.rb +14 -0
  102. data/lib/octocatalog-diff/catalog-diff/cli/options/to_from_branch.rb +16 -0
  103. data/lib/octocatalog-diff/catalog-diff/cli/printer.rb +52 -0
  104. data/lib/octocatalog-diff/catalog-diff/differ.rb +615 -0
  105. data/lib/octocatalog-diff/catalog-diff/display.rb +125 -0
  106. data/lib/octocatalog-diff/catalog-diff/display/json.rb +25 -0
  107. data/lib/octocatalog-diff/catalog-diff/display/text.rb +452 -0
  108. data/lib/octocatalog-diff/catalog-util/bootstrap.rb +145 -0
  109. data/lib/octocatalog-diff/catalog-util/builddir.rb +289 -0
  110. data/lib/octocatalog-diff/catalog-util/cached_master_directory.rb +169 -0
  111. data/lib/octocatalog-diff/catalog-util/command.rb +96 -0
  112. data/lib/octocatalog-diff/catalog-util/enc.rb +77 -0
  113. data/lib/octocatalog-diff/catalog-util/enc/noop.rb +22 -0
  114. data/lib/octocatalog-diff/catalog-util/enc/pe.rb +99 -0
  115. data/lib/octocatalog-diff/catalog-util/enc/pe/v1.rb +61 -0
  116. data/lib/octocatalog-diff/catalog-util/enc/script.rb +88 -0
  117. data/lib/octocatalog-diff/catalog-util/facts.rb +89 -0
  118. data/lib/octocatalog-diff/catalog-util/fileresources.rb +83 -0
  119. data/lib/octocatalog-diff/catalog-util/git.rb +65 -0
  120. data/lib/octocatalog-diff/catalog.rb +209 -0
  121. data/lib/octocatalog-diff/catalog/computed.rb +205 -0
  122. data/lib/octocatalog-diff/catalog/json.rb +30 -0
  123. data/lib/octocatalog-diff/catalog/noop.rb +19 -0
  124. data/lib/octocatalog-diff/catalog/puppetdb.rb +82 -0
  125. data/lib/octocatalog-diff/catalog/puppetmaster.rb +121 -0
  126. data/lib/octocatalog-diff/external/pson/LICENSE +17 -0
  127. data/lib/octocatalog-diff/external/pson/README.md +20 -0
  128. data/lib/octocatalog-diff/external/pson/common.rb +370 -0
  129. data/lib/octocatalog-diff/external/pson/pure.rb +15 -0
  130. data/lib/octocatalog-diff/external/pson/pure/generator.rb +395 -0
  131. data/lib/octocatalog-diff/external/pson/pure/parser.rb +307 -0
  132. data/lib/octocatalog-diff/external/pson/version.rb +8 -0
  133. data/lib/octocatalog-diff/facts.rb +125 -0
  134. data/lib/octocatalog-diff/facts/json.rb +20 -0
  135. data/lib/octocatalog-diff/facts/puppetdb.rb +59 -0
  136. data/lib/octocatalog-diff/facts/yaml.rb +29 -0
  137. data/lib/octocatalog-diff/puppetdb.rb +163 -0
  138. data/lib/octocatalog-diff/util/colored.rb +20 -0
  139. data/lib/octocatalog-diff/util/httparty.rb +158 -0
  140. data/lib/octocatalog-diff/util/parallel.rb +170 -0
  141. data/lib/octocatalog-diff/util/puppetversion.rb +24 -0
  142. data/lib/octocatalog-diff/version.rb +7 -0
  143. metadata +386 -0
@@ -0,0 +1,63 @@
1
+ # Integration tests
2
+
3
+ Integration tests are designed to run `octocatalog-diff` from beginning to end with options and fixtures to demonstrate a desired behavior.
4
+
5
+ The integration tests are found in [`/spec/octocatalog-diff/integration`](/spec/octocatalog-diff/integration).
6
+
7
+ ## Writing an integration test
8
+
9
+ We recommend using the provided [`integration_helper.rb`](/spec/octocatalog-diff/integration/integration_helper.rb) which provides some handy functions to reduce duplicative code, and hopefully make integration tests easier to write.
10
+
11
+ An integration test that compiles one or two catalogs from a repository will look like this:
12
+
13
+ ```ruby
14
+ describe 'whatever behavior' do
15
+ before(:all) do
16
+ @result = OctocatalogDiff::Integration.integration(
17
+ spec_repo: 'fact-overrides', # The repository directory in /spec/octocatalog-diff/fixtures/repos
18
+ spec_fact_file: 'valid-facts.yaml', # The fact file in /spec/octocatalog-diff/fixtures/facts
19
+ argv: '--debug --from-fact-override somekey=somevalue', # Command line arguments
20
+ )
21
+ # At this point @result is a hash containing these keys:
22
+ # @result[:logs] is a String containing everything printed to STDERR (Logger)
23
+ # @result[:output] is a String containing everything printed to STDOUT
24
+ # @result[:diffs] is an Array of differences
25
+ # @result[:exitcode] is a Fixnum representing the exit code: 0 = no changes, 1 = failure, 2 = success, with changes
26
+ # @result[:exception] contains any exception that was thrown
27
+ end
28
+
29
+ it 'should do whatever' do
30
+ # ...
31
+ end
32
+ end
33
+ ```
34
+
35
+ An integration test that uses already-compiled catalogs from the fixtures directory will look like this:
36
+
37
+ ```ruby
38
+ describe 'whatever behavior' do
39
+ before(:all) do
40
+ @result = OctocatalogDiff::Integration.integration(
41
+ spec_catalog_old: 'catalog-1.json', # The repository directory in /spec/octocatalog-diff/fixtures/catalogs
42
+ spec_catalog_new: 'catalog-2.json', # The repository directory in /spec/octocatalog-diff/fixtures/catalogs
43
+ argv: '--debug --display-format :color', # Command line arguments
44
+ )
45
+ # At this point @result is a hash containing these keys:
46
+ # @result[:logs] is a String containing everything printed to STDERR (Logger)
47
+ # @result[:output] is a String containing everything printed to STDOUT
48
+ # @result[:diffs] is an Array of differences
49
+ # @result[:exitcode] is a Fixnum representing the exit code: 0 = no changes, 1 = failure, 2 = success, with changes
50
+ # @result[:exception] contains any exception that was thrown
51
+ end
52
+
53
+ it 'should do whatever' do
54
+ # ...
55
+ end
56
+ end
57
+ ```
58
+
59
+ ## Hints for writing an integration test
60
+
61
+ 0. If your integration test deals only with the calculation or display of differences, and not catalog compilation, and you are compiling catalogs multiple times, prefer `spec_catalog_old` and `spec_catalog_new` to pass in pre-compiled catalogs. This will make the test run faster.
62
+
63
+ 0. It's a good idea to check the exit code in a test of its own, and then `pending` any subsequent tests if that exit code doesn't match. This way only one test, and not all the tests, will fail if the catalog compilation doesn't work.
@@ -0,0 +1,19 @@
1
+ # Releasing
2
+
3
+ The project maintainers are responsible for bumping the version number, regenerating auto-generated documentation, tagging the release, and uploading to rubygems.
4
+
5
+ 0. Ensure that all changes have been merged to master.
6
+ 0. If necessary, complete a Pull Request to update the [version file](/.version).
7
+ 0. Ensure the the master branch is checked out on your system.
8
+ 0. Run the release procedure:
9
+
10
+ ```
11
+ rake gem:release
12
+ ```
13
+
14
+ This rake task handles the following:
15
+
16
+ - Auto-generates the [options reference](/doc/optionsref.md) (`rake doc:build`)
17
+ - Build the gem file (`rake gem:build`)
18
+ - Tag the release in the repository (`rake gem:tag`)
19
+ - Upload the gem file to rubygems (`rake gem:push`)
@@ -0,0 +1,49 @@
1
+ # Installation
2
+
3
+ Before you get started, please make sure that you have the following:
4
+
5
+ - Ruby 2.0 or higher
6
+ - Mac OS, Linux, or other Unix-line operating system (Windows is not supported)
7
+ - Ability to install gems, e.g. with [rbenv](https://github.com/rbenv/rbenv) or [rvm](https://rvm.io/), or root privileges to install into the system Ruby
8
+ - Puppet agent for [Linux](https://docs.puppet.com/puppet/latest/reference/install_linux.html) or [Mac OS X](https://docs.puppet.com/puppet/latest/reference/install_osx.html), or installed as a gem - required if you are going to compile Puppet catalogs locally without querying a master
9
+
10
+ ## Installing from rubygems.org
11
+
12
+ `octocatalog-diff` is published on [rubygems](https://rubygems.org/gems/octocatalog-diff).
13
+
14
+ On a standard system with internet access, installation may be as simple as typing:
15
+
16
+ ```
17
+ gem install octocatalog-diff
18
+ ```
19
+
20
+ Once the gem is installed, please proceed to [Configuration](/doc/configuration.md).
21
+
22
+ For general information on installing gems, see: [RubyGems Basics](http://guides.rubygems.org/rubygems-basics/#installing-gems).
23
+
24
+ ## Installing from source
25
+
26
+ To install from source, you'll need a git client and internet access.
27
+
28
+ 0. Clone the repository
29
+
30
+ ```
31
+ git clone https://github.com/github/octocatalog-diff.git
32
+ ```
33
+
34
+ 0. Bootstrap the repository (this will install dependent gems in the project)
35
+
36
+ ```
37
+ cd octocatalog-diff
38
+ ./script/bootstrap
39
+ ```
40
+
41
+ 0. RECOMMENDED: Make sure the tests pass on your machine
42
+
43
+ ```
44
+ rake
45
+ ```
46
+
47
+ Note: If tests fail on your machine with a clean checkout of the master branch, we would definitely appreciate if you would report it. Please [open an issue](https://github.com/github/octocatalog-diff/issues/new) with the output and some information about your system (e.g. OS, ruby version, etc.) to let us know.
48
+
49
+ Once the code is downloaded and bootstrapped, please proceed to [Configuration](/doc/configuration.md).
@@ -0,0 +1,34 @@
1
+ # Limitations
2
+
3
+ Testing of Puppet catalogs is faster than running the agent, but you need to be careful of the following limitations:
4
+
5
+ 0. Facts are not taken from a live agent run
6
+
7
+ octocatalog-diff by default uses the facts reported from a node's more recent Puppet run. If you have made changes to custom facts, catalog testing will **NOT** be an adequate test of whether your custom facts worked. (You can still use octocatalog-diff to help predict changes to nodes based on changes to facts, by overriding facts on the command line.)
8
+
9
+ 0. Agents handle depenency ordering and implementation details
10
+
11
+ The catalog defines the state of the system, but it's up to the agent to determine how to bring the system to a point that matches the catalog. The agent is responsible for order of operations and actually making the change.
12
+
13
+ Two specific situations that catalog testing does **NOT** detect are:
14
+
15
+ - Dependency loops (e.g., you have made A require B, B require C, and C require A).
16
+
17
+ - Operations not supported by the provider. For example, assume that in your current Puppet manifests, you set the size of a file system to 100 GB. You change this in your new branch to 50 GB. octocatalog-diff will dutifully report this change to you. However, the agent will fail to make the change, because it is not possible to shrink a file system from 100 GB to 50 GB.
18
+
19
+ 0. Changes in underlying providers may not be noticed
20
+
21
+ Consider that you are using a Puppet module that creates a file system. The current implementation of that module checks to see if *any* file system is present on the device, and creates a new file system there if no file system was present. You upgrade the module, and the new version checks to see if *the specified* file system is present on the device, and reformats the device with the specified file system (regardless of whether there was no file system or if there was an existing file system of a different type). There would be no catalog changes (hence octocatalog-diff would report nothing) because the catalog simply instructs the agent to create a file system of the specified type at the defined location. However, the actual implementation of those instructions has changed dramatically.
22
+
23
+ In general catalog testing is great for:
24
+
25
+ - Refactoring classes and defined types (which do not have custom providers)
26
+ - Moving information around in hiera
27
+ - Generally adding, removing, or modifying standard Puppet resources
28
+ - Checking the net effect of any custom functions (`lib/puppet/parser/functions`) since these execute during catalog compilation
29
+
30
+ Catalog testing in general (including octocatalog-diff and similar tools) is generally inadequate for:
31
+
32
+ - Changes to custom facts
33
+ - Changes to any providers (includes upgrading any Puppet modules from Puppet Forge or other sources)
34
+ - Changes to order of operations (before, require, subscribe, notify)
@@ -0,0 +1,947 @@
1
+ <!--
2
+ This document is automatically generated via the `rake doc:build` task.
3
+ Please DO NOT edit this document manually, as your changes will be lost.
4
+ Formatting changes should be made to the template: /rake/templates/optionsref.erb
5
+ -->
6
+ # Command line options reference
7
+
8
+ ## Usage
9
+
10
+ ```
11
+ Usage: octocatalog-diff [command line options]
12
+ -n, --hostname HOSTNAME Use PuppetDB facts from last run of hostname
13
+ --basedir DIRNAME Use an alternate base directory (git checkout of puppet repository)
14
+ -f, --from FROM_BRANCH Branch you are coming from
15
+ -t, --to TO_BRANCH Branch you are going to
16
+ --from-catalog FILENAME Use a pre-compiled catalog 'from'
17
+ --to-catalog FILENAME Use a pre-compiled catalog 'to'
18
+ --bootstrap-script FILENAME Bootstrap script relative to checkout directory
19
+ --bootstrap-environment "key1=val1,key2=val2,..."
20
+ Bootstrap script environment variables in key=value format
21
+ --bootstrapped-from-dir DIRNAME
22
+ Use a pre-bootstrapped 'from' directory
23
+ --bootstrapped-to-dir DIRNAME
24
+ Use a pre-bootstrapped 'to' directory
25
+ --bootstrap-then-exit Bootstrap from-dir and/or to-dir and then exit
26
+ --[no-]color Enable/disable colors in output
27
+ -o, --output-file FILENAME Output results into FILENAME
28
+ --output-format FORMAT Output format: text,json
29
+ -d, --[no-]debug Print debugging messages to STDERR
30
+ -q, --[no-]quiet Quiet (no status messages except errors)
31
+ --ignore "Type1[Title1],Type2[Title2],..."
32
+ More resources to ignore in format type[title]
33
+ --[no-]include-tags Include changes to tags in the diff output
34
+ --fact-file FILENAME Fact file to use instead of node lookup
35
+ --master-cache-branch BRANCH Branch to cache
36
+ --safe-to-delete-cached-master-dir PATH
37
+ OK to delete cached master directory at this path
38
+ --cached-master-dir PATH Cache bootstrapped origin/master at this path
39
+ --hiera-config PATH Relative path to hiera YAML file
40
+ --no-hiera-config Disable hiera config file installation
41
+ --hiera-path-strip PATH Path prefix to strip when munging hiera.yaml
42
+ --ignore-attr "attr1,attr2,..."
43
+ Attributes to ignore
44
+ --[no-]display-source Show source file and line for each difference
45
+ --[no-]compare-file-text Compare text, not source location, of file resources
46
+ --[no-]storeconfigs Enable integration with puppetdb for collected resources
47
+ --retry-failed-catalog N Retry building a failed catalog N times
48
+ --no-enc Disable ENC
49
+ --enc PATH Path to ENC script, relative to checkout directory or absolute
50
+ --from-enc PATH Path to ENC script (for the from catalog only)
51
+ --to-enc PATH Path to ENC script (for the to catalog only)
52
+ --[no-]display-detail-add Display parameters and other details for added resources
53
+ --no-header Do not print a header
54
+ --default-header Print default header with output
55
+ --header STRING Specify header for output
56
+ --parser PARSER_NAME Specify parser (default, future)
57
+ --parser-from PARSER_NAME Specify parser (default, future)
58
+ --parser-to PARSER_NAME Specify parser (default, future)
59
+ --[no-]display-datatype-changes
60
+ Display changes in data type even when strings match
61
+ --[no-]catalog-only Only compile the catalog for the "to" branch but do not diff
62
+ --puppet-binary STRING Full path to puppet binary globally
63
+ --to-puppet-binary STRING Full path to puppet binary for the to branch
64
+ --from-puppet-binary STRING Full path to puppet binary for the from branch
65
+ --[no-]from-puppetdb Pull "from" catalog from PuppetDB instead of compiling
66
+ --[no-]parallel Enable or disable parallel processing
67
+ --puppetdb-ssl-ca FILENAME CA certificate that signed the PuppetDB certificate
68
+ --puppetdb-ssl-client-cert FILENAME
69
+ SSL client certificate to connect to PuppetDB
70
+ --puppetdb-ssl-client-password-file FILENAME
71
+ Read password for SSL client key from a file
72
+ --puppetdb-ssl-client-password PASSWORD
73
+ Password for SSL client key to connect to PuppetDB
74
+ --facts-terminus STRING Facts terminus: one of yaml, facter
75
+ --puppetdb-url URL PuppetDB base URL
76
+ --puppetdb-ssl-client-key FILENAME
77
+ SSL client key to connect to PuppetDB
78
+ --puppet-master-ssl-client-key STRING
79
+ Full path to key file for SSL client auth to Puppet Master globally
80
+ --to-puppet-master-ssl-client-key STRING
81
+ Full path to key file for SSL client auth to Puppet Master for the to branch
82
+ --from-puppet-master-ssl-client-key STRING
83
+ Full path to key file for SSL client auth to Puppet Master for the from branch
84
+ --puppet-master STRING Hostname or Hostname:PortNumber for Puppet Master globally
85
+ --to-puppet-master STRING Hostname or Hostname:PortNumber for Puppet Master for the to branch
86
+ --from-puppet-master STRING Hostname or Hostname:PortNumber for Puppet Master for the from branch
87
+ --puppet-master-api-version STRING
88
+ Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x) globally
89
+ --to-puppet-master-api-version STRING
90
+ Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x) for the to branch
91
+ --from-puppet-master-api-version STRING
92
+ Puppet Master API version (2 for Puppet 3.x, 3 for Puppet 4.x) for the from branch
93
+ --puppet-master-ssl-ca STRING
94
+ Full path to CA certificate that signed the Puppet Master certificate globally
95
+ --to-puppet-master-ssl-ca STRING
96
+ Full path to CA certificate that signed the Puppet Master certificate for the to branch
97
+ --from-puppet-master-ssl-ca STRING
98
+ Full path to CA certificate that signed the Puppet Master certificate for the from branch
99
+ --puppet-master-ssl-client-cert STRING
100
+ Full path to certificate file for SSL client auth to Puppet Master globally
101
+ --to-puppet-master-ssl-client-cert STRING
102
+ Full path to certificate file for SSL client auth to Puppet Master for the to branch
103
+ --from-puppet-master-ssl-client-cert STRING
104
+ Full path to certificate file for SSL client auth to Puppet Master for the from branch
105
+ --fact-override STRING1[,STRING2[,...]]
106
+ Override fact globally
107
+ --to-fact-override STRING1[,STRING2[,...]]
108
+ Override fact for the to branch
109
+ --from-fact-override STRING1[,STRING2[,...]]
110
+ Override fact for the from branch
111
+ --pe-enc-url URL Base URL for Puppet Enterprise ENC endpoint
112
+ --pe-enc-token-file PATH Path containing token for PE node classifier, relative or absolute
113
+ --pe-enc-token TOKEN Token to access the Puppet Enterprise ENC API
114
+ --pe-enc-ssl-ca FILENAME CA certificate that signed the ENC API certificate
115
+ --pe-enc-ssl-client-cert FILENAME
116
+ SSL client certificate to connect to PE ENC
117
+ --pe-enc-ssl-client-key FILENAME
118
+ SSL client key to connect to PE ENC
119
+ --no-ignore-tags Disable ignoring based on tags
120
+ --ignore-tags STRING1[,STRING2[,...]]
121
+ Specify tags to ignore
122
+ --[no-]suppress-absent-file-details
123
+ Suppress certain attributes of absent files
124
+ --pass-env-vars VAR1[,VAR2[,...]]
125
+ Environment variables to pass
126
+
127
+ ```
128
+
129
+ ## Detailed options description
130
+
131
+ <table>
132
+ <tr>
133
+ <th>Option</th>
134
+ <th>Description</th>
135
+ <th>Extended Description</th>
136
+ </tr>
137
+
138
+ <tr>
139
+ <td valign=top>
140
+ <pre><code>--basedir DIRNAME</code></pre>
141
+ </td>
142
+ <td valign=top>
143
+ Use an alternate base directory (git checkout of puppet repository)
144
+ </td>
145
+ <td valign=top>
146
+ Option to set the base checkout directory of puppet repository (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/basedir.rb">basedir.rb</a>)
147
+ </td>
148
+ </tr>
149
+
150
+ <tr>
151
+ <td valign=top>
152
+ <pre><code>--bootstrap-environment "key1=val1,key2=val2,..."</code></pre>
153
+ </td>
154
+ <td valign=top>
155
+ Bootstrap script environment variables in key=value format
156
+ </td>
157
+ <td valign=top>
158
+ Allow the bootstrap environment to be set up via the command line. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/bootstrap_environment.rb">bootstrap_environment.rb</a>)
159
+ </td>
160
+ </tr>
161
+
162
+ <tr>
163
+ <td valign=top>
164
+ <pre><code>--bootstrap-script FILENAME</code></pre>
165
+ </td>
166
+ <td valign=top>
167
+ Bootstrap script relative to checkout directory
168
+ </td>
169
+ <td valign=top>
170
+ Allow specification of a bootstrap script. This runs after checking out the directory, and before running
171
+ puppet there. Good for running librarian to install modules, and anything else site-specific that needs
172
+ to be done. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/bootstrap_script.rb">bootstrap_script.rb</a>)
173
+ </td>
174
+ </tr>
175
+
176
+ <tr>
177
+ <td valign=top>
178
+ <pre><code>--bootstrap-then-exit </code></pre>
179
+ </td>
180
+ <td valign=top>
181
+ Bootstrap from-dir and/or to-dir and then exit
182
+ </td>
183
+ <td valign=top>
184
+ Option to bootstrap directories and then exit (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/bootstrap_then_exit.rb">bootstrap_then_exit.rb</a>)
185
+ </td>
186
+ </tr>
187
+
188
+ <tr>
189
+ <td valign=top>
190
+ <pre><code>--bootstrapped-from-dir DIRNAME</code></pre>
191
+ </td>
192
+ <td valign=top>
193
+ Use a pre-bootstrapped 'from' directory
194
+ </td>
195
+ <td valign=top>
196
+ Allow (or create) directories that are already bootstrapped. Handy to allow "bootstrap once, build many"
197
+ to save time when diffing multiple catalogs on this system. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/bootstrapped_dirs.rb">bootstrapped_dirs.rb</a>)
198
+ </td>
199
+ </tr>
200
+
201
+ <tr>
202
+ <td valign=top>
203
+ <pre><code>--bootstrapped-to-dir DIRNAME</code></pre>
204
+ </td>
205
+ <td valign=top>
206
+ Use a pre-bootstrapped 'to' directory
207
+ </td>
208
+ <td valign=top>
209
+ Allow (or create) directories that are already bootstrapped. Handy to allow "bootstrap once, build many"
210
+ to save time when diffing multiple catalogs on this system. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/bootstrapped_dirs.rb">bootstrapped_dirs.rb</a>)
211
+ </td>
212
+ </tr>
213
+
214
+ <tr>
215
+ <td valign=top>
216
+ <pre><code>--cached-master-dir PATH</code></pre>
217
+ </td>
218
+ <td valign=top>
219
+ Cache bootstrapped origin/master at this path
220
+ </td>
221
+ <td valign=top>
222
+ Cache a bootstrapped checkout of 'master' and use that for time-saving when the SHA
223
+ has not changed. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/cached_master_dir.rb">cached_master_dir.rb</a>)
224
+ </td>
225
+ </tr>
226
+
227
+ <tr>
228
+ <td valign=top>
229
+ <pre><code>--catalog-only
230
+ --no-catalog-only </code></pre>
231
+ </td>
232
+ <td valign=top>
233
+ Only compile the catalog for the "to" branch but do not diff
234
+ </td>
235
+ <td valign=top>
236
+ When set, --catalog-only will only compile the catalog for the 'to' branch, and skip any
237
+ diffing activity. The catalog will be printed to STDOUT or written to the output file. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/catalog_only.rb">catalog_only.rb</a>)
238
+ </td>
239
+ </tr>
240
+
241
+ <tr>
242
+ <td valign=top>
243
+ <pre><code>--color
244
+ --no-color </code></pre>
245
+ </td>
246
+ <td valign=top>
247
+ Enable/disable colors in output
248
+ </td>
249
+ <td valign=top>
250
+ Color printing option (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/color.rb">color.rb</a>)
251
+ </td>
252
+ </tr>
253
+
254
+ <tr>
255
+ <td valign=top>
256
+ <pre><code>--compare-file-text
257
+ --no-compare-file-text </code></pre>
258
+ </td>
259
+ <td valign=top>
260
+ Compare text, not source location, of file resources
261
+ </td>
262
+ <td valign=top>
263
+ When a file is specified with `source => 'puppet:///modules/something/foo.txt'`, remove
264
+ the 'source' attribute and populate the 'content' attribute with the text of the file.
265
+ This allows for a diff of the content, rather than a diff of the location, which is
266
+ what is most often desired. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/compare_file_text.rb">compare_file_text.rb</a>)
267
+ </td>
268
+ </tr>
269
+
270
+ <tr>
271
+ <td valign=top>
272
+ <pre><code>-d
273
+ --debug
274
+ --no-debug </code></pre>
275
+ </td>
276
+ <td valign=top>
277
+ Print debugging messages to STDERR
278
+ </td>
279
+ <td valign=top>
280
+ Debugging option (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/debug.rb">debug.rb</a>)
281
+ </td>
282
+ </tr>
283
+
284
+ <tr>
285
+ <td valign=top>
286
+ <pre><code>--default-header </code></pre>
287
+ </td>
288
+ <td valign=top>
289
+ Print default header with output
290
+ </td>
291
+ <td valign=top>
292
+ Provide ability to set custom header or to display no header at all (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/header.rb">header.rb</a>)
293
+ </td>
294
+ </tr>
295
+
296
+ <tr>
297
+ <td valign=top>
298
+ <pre><code>--display-datatype-changes
299
+ --no-display-datatype-changes </code></pre>
300
+ </td>
301
+ <td valign=top>
302
+ Display changes in data type even when strings match
303
+ </td>
304
+ <td valign=top>
305
+ Toggle on or off the display of data type changes when the string representation
306
+ is the same. For example with this enabled, '42' (the string) and 42 (the integer)
307
+ will be displayed as a difference. With this disabled, this is not displayed as a
308
+ difference. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/display_datatype_changes.rb">display_datatype_changes.rb</a>)
309
+ </td>
310
+ </tr>
311
+
312
+ <tr>
313
+ <td valign=top>
314
+ <pre><code>--display-detail-add
315
+ --no-display-detail-add </code></pre>
316
+ </td>
317
+ <td valign=top>
318
+ Display parameters and other details for added resources
319
+ </td>
320
+ <td valign=top>
321
+ Provide ability to display details of 'added' resources in the output. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/display_detail_add.rb">display_detail_add.rb</a>)
322
+ </td>
323
+ </tr>
324
+
325
+ <tr>
326
+ <td valign=top>
327
+ <pre><code>--display-source
328
+ --no-display-source </code></pre>
329
+ </td>
330
+ <td valign=top>
331
+ Show source file and line for each difference
332
+ </td>
333
+ <td valign=top>
334
+ Display source filename and line number for diffs (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/display_source_file_line.rb">display_source_file_line.rb</a>)
335
+ </td>
336
+ </tr>
337
+
338
+ <tr>
339
+ <td valign=top>
340
+ <pre><code>--enc PATH</code></pre>
341
+ </td>
342
+ <td valign=top>
343
+ Path to ENC script, relative to checkout directory or absolute
344
+ </td>
345
+ <td valign=top>
346
+ Path to external node classifier, relative to the base directory of the checkout. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/enc.rb">enc.rb</a>)
347
+ </td>
348
+ </tr>
349
+
350
+ <tr>
351
+ <td valign=top>
352
+ <pre><code>--fact-file FILENAME</code></pre>
353
+ </td>
354
+ <td valign=top>
355
+ Fact file to use instead of node lookup
356
+ </td>
357
+ <td valign=top>
358
+ Allow an existing fact file to be provided, to avoid pulling facts from PuppetDB. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/fact_file.rb">fact_file.rb</a>)
359
+ </td>
360
+ </tr>
361
+
362
+ <tr>
363
+ <td valign=top>
364
+ <pre><code>--facts-terminus STRING</code></pre>
365
+ </td>
366
+ <td valign=top>
367
+ Facts terminus: one of yaml, facter
368
+ </td>
369
+ <td valign=top>
370
+ Get the facts terminus. Generally this is 'yaml' and a fact file will be loaded from PuppetDB or
371
+ elsewhere in the environment. However it can be set to 'facter' which will run facter on the host
372
+ on which this is running. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/facts_terminus.rb">facts_terminus.rb</a>)
373
+ </td>
374
+ </tr>
375
+
376
+ <tr>
377
+ <td valign=top>
378
+ <pre><code>-f FROM_BRANCH
379
+ --from FROM_BRANCH</code></pre>
380
+ </td>
381
+ <td valign=top>
382
+ Branch you are coming from
383
+ </td>
384
+ <td valign=top>
385
+ Set the 'from' and 'to' branches, which is used to compile catalogs. A branch of '.' means to use
386
+ the current contents of the base code directory without any git checkouts. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/to_from_branch.rb">to_from_branch.rb</a>)
387
+ </td>
388
+ </tr>
389
+
390
+ <tr>
391
+ <td valign=top>
392
+ <pre><code>--from-catalog FILENAME</code></pre>
393
+ </td>
394
+ <td valign=top>
395
+ Use a pre-compiled catalog 'from'
396
+ </td>
397
+ <td valign=top>
398
+ If pre-compiled catalogs are available, these can be used to short-circuit the build process.
399
+ These files must exist and be in Puppet catalog format. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/existing_catalogs.rb">existing_catalogs.rb</a>)
400
+ </td>
401
+ </tr>
402
+
403
+ <tr>
404
+ <td valign=top>
405
+ <pre><code>--from-enc PATH</code></pre>
406
+ </td>
407
+ <td valign=top>
408
+ Path to ENC script (for the from catalog only)
409
+ </td>
410
+ <td valign=top>
411
+ Path to external node classifier, relative to the base directory of the checkout. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/enc.rb">enc.rb</a>)
412
+ </td>
413
+ </tr>
414
+
415
+ <tr>
416
+ <td valign=top>
417
+ <pre><code>--from-puppetdb
418
+ --no-from-puppetdb </code></pre>
419
+ </td>
420
+ <td valign=top>
421
+ Pull "from" catalog from PuppetDB instead of compiling
422
+ </td>
423
+ <td valign=top>
424
+ Set --from-puppetdb to pull most recent catalog from PuppetDB instead of compiling (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/from_puppetdb.rb">from_puppetdb.rb</a>)
425
+ </td>
426
+ </tr>
427
+
428
+ <tr>
429
+ <td valign=top>
430
+ <pre><code>--header STRING</code></pre>
431
+ </td>
432
+ <td valign=top>
433
+ Specify header for output
434
+ </td>
435
+ <td valign=top>
436
+ Provide ability to set custom header or to display no header at all (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/header.rb">header.rb</a>)
437
+ </td>
438
+ </tr>
439
+
440
+ <tr>
441
+ <td valign=top>
442
+ <pre><code>--hiera-config PATH</code></pre>
443
+ </td>
444
+ <td valign=top>
445
+ Relative path to hiera YAML file
446
+ </td>
447
+ <td valign=top>
448
+ Specify a relative path to the Hiera yaml file (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/hiera_config.rb">hiera_config.rb</a>)
449
+ </td>
450
+ </tr>
451
+
452
+ <tr>
453
+ <td valign=top>
454
+ <pre><code>--hiera-path-strip PATH</code></pre>
455
+ </td>
456
+ <td valign=top>
457
+ Path prefix to strip when munging hiera.yaml
458
+ </td>
459
+ <td valign=top>
460
+ Specify the path to strip off the datadir to munge hiera.yaml file (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/hiera_path_strip.rb">hiera_path_strip.rb</a>)
461
+ </td>
462
+ </tr>
463
+
464
+ <tr>
465
+ <td valign=top>
466
+ <pre><code>-n HOSTNAME
467
+ --hostname HOSTNAME</code></pre>
468
+ </td>
469
+ <td valign=top>
470
+ Use PuppetDB facts from last run of hostname
471
+ </td>
472
+ <td valign=top>
473
+ Set hostname, which is used to look up facts in PuppetDB, and in the header of diff display. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/hostname.rb">hostname.rb</a>)
474
+ </td>
475
+ </tr>
476
+
477
+ <tr>
478
+ <td valign=top>
479
+ <pre><code>--ignore "Type1[Title1],Type2[Title2],..."</code></pre>
480
+ </td>
481
+ <td valign=top>
482
+ More resources to ignore in format type[title]
483
+ </td>
484
+ <td valign=top>
485
+ Options used when comparing catalogs - set ignored changes. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/ignore.rb">ignore.rb</a>)
486
+ </td>
487
+ </tr>
488
+
489
+ <tr>
490
+ <td valign=top>
491
+ <pre><code>--ignore-attr "attr1,attr2,..."</code></pre>
492
+ </td>
493
+ <td valign=top>
494
+ Attributes to ignore
495
+ </td>
496
+ <td valign=top>
497
+ Specify attributes to ignore (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/ignore_attr.rb">ignore_attr.rb</a>)
498
+ </td>
499
+ </tr>
500
+
501
+ <tr>
502
+ <td valign=top>
503
+ <pre><code>--ignore-tags STRING1[,STRING2[,...]]</code></pre>
504
+ </td>
505
+ <td valign=top>
506
+ Specify tags to ignore
507
+ </td>
508
+ <td valign=top>
509
+ Provide ability to set one or more tags, which will cause catalog-diff
510
+ to ignore any changes for any defined type where this tag is set. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/ignore_tags.rb">ignore_tags.rb</a>)
511
+ </td>
512
+ </tr>
513
+
514
+ <tr>
515
+ <td valign=top>
516
+ <pre><code>--include-tags
517
+ --no-include-tags </code></pre>
518
+ </td>
519
+ <td valign=top>
520
+ Include changes to tags in the diff output
521
+ </td>
522
+ <td valign=top>
523
+ Options used when comparing catalogs - tags are generally ignored; you can un-ignore them. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/include_tags.rb">include_tags.rb</a>)
524
+ </td>
525
+ </tr>
526
+
527
+ <tr>
528
+ <td valign=top>
529
+ <pre><code>--master-cache-branch BRANCH</code></pre>
530
+ </td>
531
+ <td valign=top>
532
+ Branch to cache
533
+ </td>
534
+ <td valign=top>
535
+ Allow override of the branch that is cached. This defaults to 'origin/master'. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/master_cache_branch.rb">master_cache_branch.rb</a>)
536
+ </td>
537
+ </tr>
538
+
539
+ <tr>
540
+ <td valign=top>
541
+ <pre><code>--no-enc </code></pre>
542
+ </td>
543
+ <td valign=top>
544
+ Disable ENC
545
+ </td>
546
+ <td valign=top>
547
+ Path to external node classifier, relative to the base directory of the checkout. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/enc.rb">enc.rb</a>)
548
+ </td>
549
+ </tr>
550
+
551
+ <tr>
552
+ <td valign=top>
553
+ <pre><code>--no-header </code></pre>
554
+ </td>
555
+ <td valign=top>
556
+ Do not print a header
557
+ </td>
558
+ <td valign=top>
559
+ Provide ability to set custom header or to display no header at all (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/header.rb">header.rb</a>)
560
+ </td>
561
+ </tr>
562
+
563
+ <tr>
564
+ <td valign=top>
565
+ <pre><code>--no-hiera-config </code></pre>
566
+ </td>
567
+ <td valign=top>
568
+ Disable hiera config file installation
569
+ </td>
570
+ <td valign=top>
571
+ Specify a relative path to the Hiera yaml file (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/hiera_config.rb">hiera_config.rb</a>)
572
+ </td>
573
+ </tr>
574
+
575
+ <tr>
576
+ <td valign=top>
577
+ <pre><code>--no-ignore-tags </code></pre>
578
+ </td>
579
+ <td valign=top>
580
+ Disable ignoring based on tags
581
+ </td>
582
+ <td valign=top>
583
+ Provide ability to set one or more tags, which will cause catalog-diff
584
+ to ignore any changes for any defined type where this tag is set. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/ignore_tags.rb">ignore_tags.rb</a>)
585
+ </td>
586
+ </tr>
587
+
588
+ <tr>
589
+ <td valign=top>
590
+ <pre><code>-o FILENAME
591
+ --output-file FILENAME</code></pre>
592
+ </td>
593
+ <td valign=top>
594
+ Output results into FILENAME
595
+ </td>
596
+ <td valign=top>
597
+ Output file option (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/output_file.rb">output_file.rb</a>)
598
+ </td>
599
+ </tr>
600
+
601
+ <tr>
602
+ <td valign=top>
603
+ <pre><code>--output-format FORMAT</code></pre>
604
+ </td>
605
+ <td valign=top>
606
+ Output format: text,json
607
+ </td>
608
+ <td valign=top>
609
+ Output format option (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/output_format.rb">output_format.rb</a>)
610
+ </td>
611
+ </tr>
612
+
613
+ <tr>
614
+ <td valign=top>
615
+ <pre><code>--parallel
616
+ --no-parallel </code></pre>
617
+ </td>
618
+ <td valign=top>
619
+ Enable or disable parallel processing
620
+ </td>
621
+ <td valign=top>
622
+ Disable or enable parallel processing of catalogs. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/parallel.rb">parallel.rb</a>)
623
+ </td>
624
+ </tr>
625
+
626
+ <tr>
627
+ <td valign=top>
628
+ <pre><code>--parser PARSER_NAME</code></pre>
629
+ </td>
630
+ <td valign=top>
631
+ Specify parser (default, future)
632
+ </td>
633
+ <td valign=top>
634
+ Enable future parser for both branches or for just one (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/parser.rb">parser.rb</a>)
635
+ </td>
636
+ </tr>
637
+
638
+ <tr>
639
+ <td valign=top>
640
+ <pre><code>--parser-from PARSER_NAME</code></pre>
641
+ </td>
642
+ <td valign=top>
643
+ Specify parser (default, future)
644
+ </td>
645
+ <td valign=top>
646
+ Enable future parser for both branches or for just one (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/parser.rb">parser.rb</a>)
647
+ </td>
648
+ </tr>
649
+
650
+ <tr>
651
+ <td valign=top>
652
+ <pre><code>--parser-to PARSER_NAME</code></pre>
653
+ </td>
654
+ <td valign=top>
655
+ Specify parser (default, future)
656
+ </td>
657
+ <td valign=top>
658
+ Enable future parser for both branches or for just one (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/parser.rb">parser.rb</a>)
659
+ </td>
660
+ </tr>
661
+
662
+ <tr>
663
+ <td valign=top>
664
+ <pre><code>--pass-env-vars VAR1[,VAR2[,...]]</code></pre>
665
+ </td>
666
+ <td valign=top>
667
+ Environment variables to pass
668
+ </td>
669
+ <td valign=top>
670
+ One or more environment variables that should be made available to the Puppet binary when parsing
671
+ the catalog. For example, --pass-env-vars FOO,BAR will make the FOO and BAR environment variables
672
+ available. Setting these variables is your responsibility outside of octocatalog-diff. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/pass_env_vars.rb">pass_env_vars.rb</a>)
673
+ </td>
674
+ </tr>
675
+
676
+ <tr>
677
+ <td valign=top>
678
+ <pre><code>--pe-enc-ssl-ca FILENAME</code></pre>
679
+ </td>
680
+ <td valign=top>
681
+ CA certificate that signed the ENC API certificate
682
+ </td>
683
+ <td valign=top>
684
+ Specify the CA certificate for the Puppet Enterprise ENC. If specified, this will enable SSL verification
685
+ that the certificate being presented has been signed by this CA, and that the common name
686
+ matches the name you are using to connecting. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_ssl_ca.rb">pe_enc_ssl_ca.rb</a>)
687
+ </td>
688
+ </tr>
689
+
690
+ <tr>
691
+ <td valign=top>
692
+ <pre><code>--pe-enc-ssl-client-cert FILENAME</code></pre>
693
+ </td>
694
+ <td valign=top>
695
+ SSL client certificate to connect to PE ENC
696
+ </td>
697
+ <td valign=top>
698
+ Specify the client certificate for connecting to the Puppet Enterprise ENC. This must be specified along with
699
+ --pe-enc-ssl-client-key in order to work. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_ssl_client_cert.rb">pe_enc_ssl_client_cert.rb</a>)
700
+ </td>
701
+ </tr>
702
+
703
+ <tr>
704
+ <td valign=top>
705
+ <pre><code>--pe-enc-ssl-client-key FILENAME</code></pre>
706
+ </td>
707
+ <td valign=top>
708
+ SSL client key to connect to PE ENC
709
+ </td>
710
+ <td valign=top>
711
+ Specify the client key for connecting to Puppet Enterprise ENC. This must be specified along with
712
+ --pe-enc-ssl-client-cert in order to work. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_ssl_client_key.rb">pe_enc_ssl_client_key.rb</a>)
713
+ </td>
714
+ </tr>
715
+
716
+ <tr>
717
+ <td valign=top>
718
+ <pre><code>--pe-enc-token TOKEN</code></pre>
719
+ </td>
720
+ <td valign=top>
721
+ Token to access the Puppet Enterprise ENC API
722
+ </td>
723
+ <td valign=top>
724
+ Specify the access token to access the Puppet Enterprise ENC. Refer to
725
+ https://docs.puppet.com/pe/latest/nc_forming_requests.html#authentication for
726
+ details on generating and obtaining a token. Use this option to specify the text
727
+ of the token. (Use --pe-enc-token-file to read the content of the token from a file.) (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_token.rb">pe_enc_token.rb</a>)
728
+ </td>
729
+ </tr>
730
+
731
+ <tr>
732
+ <td valign=top>
733
+ <pre><code>--pe-enc-token-file PATH</code></pre>
734
+ </td>
735
+ <td valign=top>
736
+ Path containing token for PE node classifier, relative or absolute
737
+ </td>
738
+ <td valign=top>
739
+ Specify the access token to access the Puppet Enterprise ENC. Refer to
740
+ https://docs.puppet.com/pe/latest/nc_forming_requests.html#authentication for
741
+ details on generating and obtaining a token. Use this option if the token is stored
742
+ in a file, to read the content of the token from the file. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_token_file.rb">pe_enc_token_file.rb</a>)
743
+ </td>
744
+ </tr>
745
+
746
+ <tr>
747
+ <td valign=top>
748
+ <pre><code>--pe-enc-url URL</code></pre>
749
+ </td>
750
+ <td valign=top>
751
+ Base URL for Puppet Enterprise ENC endpoint
752
+ </td>
753
+ <td valign=top>
754
+ Specify the URL to the Puppet Enterprise ENC API. By default, the node classifier service
755
+ listens on port 4433 and all endpoints are relative to the /classifier-api/ path. That means
756
+ the likely value for this option will be something like:
757
+ https://your-pe-console-server:4433/classifier-api (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_url.rb">pe_enc_url.rb</a>)
758
+ </td>
759
+ </tr>
760
+
761
+ <tr>
762
+ <td valign=top>
763
+ <pre><code>--puppetdb-ssl-ca FILENAME</code></pre>
764
+ </td>
765
+ <td valign=top>
766
+ CA certificate that signed the PuppetDB certificate
767
+ </td>
768
+ <td valign=top>
769
+ Specify the CA certificate for PuppetDB. If specified, this will enable SSL verification
770
+ that the certificate being presented has been signed by this CA, and that the common name
771
+ matches the name you are using to connecting. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_ca.rb">puppetdb_ssl_ca.rb</a>)
772
+ </td>
773
+ </tr>
774
+
775
+ <tr>
776
+ <td valign=top>
777
+ <pre><code>--puppetdb-ssl-client-cert FILENAME</code></pre>
778
+ </td>
779
+ <td valign=top>
780
+ SSL client certificate to connect to PuppetDB
781
+ </td>
782
+ <td valign=top>
783
+ Specify the client certificate for connecting to PuppetDB. This must be specified along with
784
+ --puppetdb-ssl-client-key in order to work. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_cert.rb">puppetdb_ssl_client_cert.rb</a>)
785
+ </td>
786
+ </tr>
787
+
788
+ <tr>
789
+ <td valign=top>
790
+ <pre><code>--puppetdb-ssl-client-key FILENAME</code></pre>
791
+ </td>
792
+ <td valign=top>
793
+ SSL client key to connect to PuppetDB
794
+ </td>
795
+ <td valign=top>
796
+ Specify the client key for connecting to PuppetDB. This must be specified along with
797
+ --puppetdb-ssl-client-cert in order to work. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_key.rb">puppetdb_ssl_client_key.rb</a>)
798
+ </td>
799
+ </tr>
800
+
801
+ <tr>
802
+ <td valign=top>
803
+ <pre><code>--puppetdb-ssl-client-password PASSWORD</code></pre>
804
+ </td>
805
+ <td valign=top>
806
+ Password for SSL client key to connect to PuppetDB
807
+ </td>
808
+ <td valign=top>
809
+ Specify the password for a PEM or PKCS12 private key on the command line.
810
+ Note that `--puppetdb-ssl-client-password-file` is slightly more secure because
811
+ the text of the password won't appear in the process list. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_password.rb">puppetdb_ssl_client_password.rb</a>)
812
+ </td>
813
+ </tr>
814
+
815
+ <tr>
816
+ <td valign=top>
817
+ <pre><code>--puppetdb-ssl-client-password-file FILENAME</code></pre>
818
+ </td>
819
+ <td valign=top>
820
+ Read password for SSL client key from a file
821
+ </td>
822
+ <td valign=top>
823
+ Specify the password for a PEM or PKCS12 private key, by reading it from a file. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_password_file.rb">puppetdb_ssl_client_password_file.rb</a>)
824
+ </td>
825
+ </tr>
826
+
827
+ <tr>
828
+ <td valign=top>
829
+ <pre><code>--puppetdb-url URL</code></pre>
830
+ </td>
831
+ <td valign=top>
832
+ PuppetDB base URL
833
+ </td>
834
+ <td valign=top>
835
+ Specify the base URL for PuppetDB. This will generally look like https://puppetdb.yourdomain.com:8081 (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_url.rb">puppetdb_url.rb</a>)
836
+ </td>
837
+ </tr>
838
+
839
+ <tr>
840
+ <td valign=top>
841
+ <pre><code>-q
842
+ --quiet
843
+ --no-quiet </code></pre>
844
+ </td>
845
+ <td valign=top>
846
+ Quiet (no status messages except errors)
847
+ </td>
848
+ <td valign=top>
849
+ Quiet option (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/quiet.rb">quiet.rb</a>)
850
+ </td>
851
+ </tr>
852
+
853
+ <tr>
854
+ <td valign=top>
855
+ <pre><code>--retry-failed-catalog N</code></pre>
856
+ </td>
857
+ <td valign=top>
858
+ Retry building a failed catalog N times
859
+ </td>
860
+ <td valign=top>
861
+ Transient errors can cause catalog compilation problems. This adds an option to retry
862
+ a failed catalog multiple times before kicking out an error message. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/retry_failed_catalog.rb">retry_failed_catalog.rb</a>)
863
+ </td>
864
+ </tr>
865
+
866
+ <tr>
867
+ <td valign=top>
868
+ <pre><code>--safe-to-delete-cached-master-dir PATH</code></pre>
869
+ </td>
870
+ <td valign=top>
871
+ OK to delete cached master directory at this path
872
+ </td>
873
+ <td valign=top>
874
+ By specifying a directory path here, you are explicitly giving permission to the program
875
+ to delete it if it believes it needs to be created (e.g., if the SHA has changed of the
876
+ cached directory). (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/safe_to_delete_cached_master_dir.rb">safe_to_delete_cached_master_dir.rb</a>)
877
+ </td>
878
+ </tr>
879
+
880
+ <tr>
881
+ <td valign=top>
882
+ <pre><code>--storeconfigs
883
+ --no-storeconfigs </code></pre>
884
+ </td>
885
+ <td valign=top>
886
+ Enable integration with puppetdb for collected resources
887
+ </td>
888
+ <td valign=top>
889
+ Set storeconfigs (integration with PuppetDB for collected resources) (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/storeconfigs.rb">storeconfigs.rb</a>)
890
+ </td>
891
+ </tr>
892
+
893
+ <tr>
894
+ <td valign=top>
895
+ <pre><code>--suppress-absent-file-details
896
+ --no-suppress-absent-file-details </code></pre>
897
+ </td>
898
+ <td valign=top>
899
+ Suppress certain attributes of absent files
900
+ </td>
901
+ <td valign=top>
902
+ If enabled, this option will suppress changes to certain attributes of a file, if the
903
+ file is specified to be 'absent' in the target catalog. Suppressed changes in this case
904
+ include user, group, mode, and content, because a removed file has none of those. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/suppress_absent_file_details.rb">suppress_absent_file_details.rb</a>)
905
+ </td>
906
+ </tr>
907
+
908
+ <tr>
909
+ <td valign=top>
910
+ <pre><code>-t TO_BRANCH
911
+ --to TO_BRANCH</code></pre>
912
+ </td>
913
+ <td valign=top>
914
+ Branch you are going to
915
+ </td>
916
+ <td valign=top>
917
+ Set the 'from' and 'to' branches, which is used to compile catalogs. A branch of '.' means to use
918
+ the current contents of the base code directory without any git checkouts. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/to_from_branch.rb">to_from_branch.rb</a>)
919
+ </td>
920
+ </tr>
921
+
922
+ <tr>
923
+ <td valign=top>
924
+ <pre><code>--to-catalog FILENAME</code></pre>
925
+ </td>
926
+ <td valign=top>
927
+ Use a pre-compiled catalog 'to'
928
+ </td>
929
+ <td valign=top>
930
+ If pre-compiled catalogs are available, these can be used to short-circuit the build process.
931
+ These files must exist and be in Puppet catalog format. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/existing_catalogs.rb">existing_catalogs.rb</a>)
932
+ </td>
933
+ </tr>
934
+
935
+ <tr>
936
+ <td valign=top>
937
+ <pre><code>--to-enc PATH</code></pre>
938
+ </td>
939
+ <td valign=top>
940
+ Path to ENC script (for the to catalog only)
941
+ </td>
942
+ <td valign=top>
943
+ Path to external node classifier, relative to the base directory of the checkout. (<a href="../lib/octocatalog-diff/catalog-diff/cli/options/enc.rb">enc.rb</a>)
944
+ </td>
945
+ </tr>
946
+
947
+ </table>