octocatalog-diff 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.version +1 -0
- data/LICENSE +20 -0
- data/README.md +82 -0
- data/bin/octocatalog-diff +75 -0
- data/doc/advanced-bootstrap.md +33 -0
- data/doc/advanced-cache-dir.md +24 -0
- data/doc/advanced-catalog-only.md +37 -0
- data/doc/advanced-ci.md +13 -0
- data/doc/advanced-dynamic-ignores.md +123 -0
- data/doc/advanced-future-parser.md +11 -0
- data/doc/advanced-ignores.md +224 -0
- data/doc/advanced-output-formats.md +96 -0
- data/doc/advanced-output-hacks.md +45 -0
- data/doc/advanced-override-facts.md +67 -0
- data/doc/advanced-pe-enc.md +52 -0
- data/doc/advanced-puppet-master.md +50 -0
- data/doc/advanced-puppet-versions.md +9 -0
- data/doc/advanced-storeconfigs.md +72 -0
- data/doc/advanced-using-without-git.md +15 -0
- data/doc/advanced.md +43 -0
- data/doc/basic.md +70 -0
- data/doc/configuration-enc.md +69 -0
- data/doc/configuration-hiera.md +103 -0
- data/doc/configuration-puppetdb.md +49 -0
- data/doc/configuration.md +51 -0
- data/doc/dev/README.md +1 -0
- data/doc/dev/coverage.md +34 -0
- data/doc/dev/how-to-add-options.md +83 -0
- data/doc/dev/integration-tests.md +63 -0
- data/doc/dev/releasing.md +19 -0
- data/doc/installation.md +49 -0
- data/doc/limitations.md +34 -0
- data/doc/optionsref.md +947 -0
- data/doc/requirements.md +16 -0
- data/doc/roadmap.md +26 -0
- data/doc/similar.md +17 -0
- data/doc/troubleshooting.md +54 -0
- data/lib/octocatalog-diff.rb +12 -0
- data/lib/octocatalog-diff/bootstrap.rb +53 -0
- data/lib/octocatalog-diff/catalog-diff/cli.rb +205 -0
- data/lib/octocatalog-diff/catalog-diff/cli/catalogs.rb +240 -0
- data/lib/octocatalog-diff/catalog-diff/cli/diffs.rb +145 -0
- data/lib/octocatalog-diff/catalog-diff/cli/helpers/fact_override.rb +99 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options.rb +173 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/basedir.rb +14 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/bootstrap_environment.rb +18 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/bootstrap_script.rb +14 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/bootstrap_then_exit.rb +12 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/bootstrapped_dirs.rb +18 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/cached_master_dir.rb +21 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/catalog_only.rb +14 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/color.rb +13 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/compare_file_text.rb +15 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/debug.rb +12 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/display_datatype_changes.rb +16 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/display_detail_add.rb +12 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/display_source_file_line.rb +12 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/enc.rb +31 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/existing_catalogs.rb +25 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/fact_file.rb +23 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/fact_override.rb +19 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/facts_terminus.rb +16 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/from_puppetdb.rb +13 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/header.rb +24 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/hiera_config.rb +18 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/hiera_path_strip.rb +12 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/hostname.rb +13 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/ignore.rb +24 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/ignore_attr.rb +16 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/ignore_tags.rb +23 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/include_tags.rb +12 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/master_cache_branch.rb +12 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/output_file.rb +15 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/output_format.rb +15 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/parallel.rb +12 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/parser.rb +48 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/pass_env_vars.rb +19 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_ssl_ca.rb +15 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_ssl_client_cert.rb +14 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_ssl_client_key.rb +14 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_token.rb +15 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_token_file.rb +17 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/pe_enc_url.rb +19 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_binary.rb +16 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_master.rb +16 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_master_api_version.rb +20 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_master_ssl_ca.rb +19 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_master_ssl_client_cert.rb +19 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppet_master_ssl_client_key.rb +19 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_ca.rb +15 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_cert.rb +14 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_key.rb +14 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_password.rb +14 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_ssl_client_password_file.rb +13 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/puppetdb_url.rb +18 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/quiet.rb +12 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/retry_failed_catalog.rb +13 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/safe_to_delete_cached_master_dir.rb +15 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/storeconfigs.rb +12 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/suppress_absent_file_details.rb +14 -0
- data/lib/octocatalog-diff/catalog-diff/cli/options/to_from_branch.rb +16 -0
- data/lib/octocatalog-diff/catalog-diff/cli/printer.rb +52 -0
- data/lib/octocatalog-diff/catalog-diff/differ.rb +615 -0
- data/lib/octocatalog-diff/catalog-diff/display.rb +125 -0
- data/lib/octocatalog-diff/catalog-diff/display/json.rb +25 -0
- data/lib/octocatalog-diff/catalog-diff/display/text.rb +452 -0
- data/lib/octocatalog-diff/catalog-util/bootstrap.rb +145 -0
- data/lib/octocatalog-diff/catalog-util/builddir.rb +289 -0
- data/lib/octocatalog-diff/catalog-util/cached_master_directory.rb +169 -0
- data/lib/octocatalog-diff/catalog-util/command.rb +96 -0
- data/lib/octocatalog-diff/catalog-util/enc.rb +77 -0
- data/lib/octocatalog-diff/catalog-util/enc/noop.rb +22 -0
- data/lib/octocatalog-diff/catalog-util/enc/pe.rb +99 -0
- data/lib/octocatalog-diff/catalog-util/enc/pe/v1.rb +61 -0
- data/lib/octocatalog-diff/catalog-util/enc/script.rb +88 -0
- data/lib/octocatalog-diff/catalog-util/facts.rb +89 -0
- data/lib/octocatalog-diff/catalog-util/fileresources.rb +83 -0
- data/lib/octocatalog-diff/catalog-util/git.rb +65 -0
- data/lib/octocatalog-diff/catalog.rb +209 -0
- data/lib/octocatalog-diff/catalog/computed.rb +205 -0
- data/lib/octocatalog-diff/catalog/json.rb +30 -0
- data/lib/octocatalog-diff/catalog/noop.rb +19 -0
- data/lib/octocatalog-diff/catalog/puppetdb.rb +82 -0
- data/lib/octocatalog-diff/catalog/puppetmaster.rb +121 -0
- data/lib/octocatalog-diff/external/pson/LICENSE +17 -0
- data/lib/octocatalog-diff/external/pson/README.md +20 -0
- data/lib/octocatalog-diff/external/pson/common.rb +370 -0
- data/lib/octocatalog-diff/external/pson/pure.rb +15 -0
- data/lib/octocatalog-diff/external/pson/pure/generator.rb +395 -0
- data/lib/octocatalog-diff/external/pson/pure/parser.rb +307 -0
- data/lib/octocatalog-diff/external/pson/version.rb +8 -0
- data/lib/octocatalog-diff/facts.rb +125 -0
- data/lib/octocatalog-diff/facts/json.rb +20 -0
- data/lib/octocatalog-diff/facts/puppetdb.rb +59 -0
- data/lib/octocatalog-diff/facts/yaml.rb +29 -0
- data/lib/octocatalog-diff/puppetdb.rb +163 -0
- data/lib/octocatalog-diff/util/colored.rb +20 -0
- data/lib/octocatalog-diff/util/httparty.rb +158 -0
- data/lib/octocatalog-diff/util/parallel.rb +170 -0
- data/lib/octocatalog-diff/util/puppetversion.rb +24 -0
- data/lib/octocatalog-diff/version.rb +7 -0
- 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`)
|
data/doc/installation.md
ADDED
@@ -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).
|
data/doc/limitations.md
ADDED
@@ -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)
|
data/doc/optionsref.md
ADDED
@@ -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>
|