Nominally kept up-to-date as we work, sometimes pushed post-release.
om
went 1.0.0 on May 7, 2019
As of that release, om
is semantically versioned.
When consuming om
in your CI system,
it is now safe to pin to a particular minor version line (major.minor.patch)
without fear of breaking changes.
Any changes to the om
commands are considered a part of the om
API.
Any changes to om
commands will be released according to the semver versioning scheme defined above.
The exceptions to this rule are any commands marked as "EXPERIMENTAL"
- "EXPERIMENTAL" commands work, and pull information from the API
same as any other. The format in which the information is returned, however,
is subject to change without announcing a breaking change
by creating a major or minor bump of the semver version.
When the
om
team is comfortable enough with the command output, the "EXPERIMENTAL" mark will be removed.
Any changes to the om
filename as presented in the Github Release page.
Changes internal to om
will NOT be included as a part of the om API.
The om
team reserves the right to change any internal structs or structures
as long as the outputs and behavior of the commands remain the same.
NOTE: Additional documentation for om commands leveraged by Pivotal Platform Automation can be found in Pivotal Documentation.
om
is versioned independently from platform-automation.
- Use environment variables
to set what Ops Manager
om
is targeting. For example:Note the additional space before the$ export OM_PASSWORD=example-password om -e env.yml deployed-products
export
command. This ensures that commands are not kept inbash
history. The environment variableOM_PASSWORD
will overwrite the password value inenv.yml
.
- Fixed a bug in
om vm-lifecycle upgrade-opsman
that occurred when both the input and currently-installed versions of Ops Manager were identical 3.0.X+LTS-T versions.- In previous versions of om that had the bug, this scenario would always cause Ops Manager to be reinstalled, even if
the
--recreate
flag wasn't used. - This release restores the intended behavior: printing a message and exiting early if the
--recreate
flag isn't passed, and reinstalling Ops Manager if it is.
- In previous versions of om that had the bug, this scenario would always cause Ops Manager to be reinstalled, even if
the
- Add support for AWS Assume Role.
- #595: Add
--all-inactive
option to delete CAs. This adds an optional flag toom delete-certificate-authority
that finds all the inactive certificate authorities and deletes them rather than requiring that the operator specify the GUID. - #596: Update activate-certificate-authority to activate latest inactive CA without passing CA GUID.
- Handle 207 multi-status warning message in
activate-certificate-authority, create-certificate-authority, generate-certificate-authority and regenerate-certificates
commands.
- vSphere usernames containing URI-reserved characters are now URI-encoded for use in requests.
- #591: added support for jammy stemcell
- This version of OM is built with Go 1.19.1.
- #586: Fixes om nom panic when OpsMan instance does not have a public IP address. @crhntr
Note: the previous version (7.7.0) erroneously claimed to have included the om nom bugfix when it actually didn't. This version (7.8.0) has been confirmed to contain the fix. @Spimtav
- #582: Include builds for M1 architecture in Mac and Linux builds. This may require changes to CI that pulls artifacts from GitHub releases.
- #586: Fixes
om nom
panic when OpsMan instance does not have a public IP address.
- #583: Added rotation procedure to
expiring-certificates
- Fixed
acceptance/download_product_azure_test.go
: Specify --overwrite to overwrite existing blobs, this was needed since the last update to az cliv2.34.0
introduced a breaking change to prevent silent overwrites. (Azure/azure-cli#21477)
- Merged PR by @iplay88keys from #408 that adds flags to the product-metadata command which parses hidden version names (ie: build suffixes in tile metadata) from TanzuNet. This helps users specify the correct product during workflows like "om stage-product".
- Added escaping for passwords in vSphere clients.
- Better handling of bad gateway responses like "connection refused".
- #576: Fixes a bug introduced by escaping strings on variable values, this has been reversed and should close #572 and #573.
- #570: Fixes a problem on
vm-lifecycle create-vm
, which, under specific circumstances on Azure, would lead to the creation of a VM without public IP address when such configuration was specified as part of the configuration.
- #555: Added new functionality to read files using the
--data
flag incurl
command.
Fixes included in this release:
- #552: Fixed typo in error message for command
vm-lifecycle
. - #545: Adjusted message for
s3-disable-ssl
parameter indownload-product
command. - #566: Fixed link to
Platform automation
docs.
- Deleted an unnecessary verification on which we were throwing an error when a user specified both the variables
ServiceAccountName
andServiceAccount
, now you can specify both variables and no error will be thrown. For more information, see discussion here
We fixed an error that occured while parsing a string with double quotes.
We increased the tolerance of the acceptance suite by capturing additional test states.
-
Before version 7.0, om had been using UAA's default
token_format
(jwt
), and the optionaltoken_format
parameter went unused.However in version 7.0, incidental to switching to the uaa-go library, om started requesting
opaque
access tokens from UAA to access Ops Manager instead ofjwt
ones. This wasn't deliberate, and didn't even make the release notes.These implicitly revocable tokens may be contributing to a hard-to-repro issue around parallel access in a customer environment.
This release explicitly requests
jwt
access tokens, restoring the pre-7.0 behavior and potentially addressing said parallel-access issue.
-
An Ops Manager VM on Vsphere can be created with the property
disk_size
. This allows a user to assign a size larger than the default 160 (GB).Usage:
--- opsman-configuration: vsphere: disk_size: 200 vm_name: ops-manager-vm cpu: 4 memory: 16 disk_type: thin dns: 8.8.8.8 gateway: 192.168.10.1 hostname: ops-manager.example.com netmask: 255.255.255.192 network: example-virtual-network ntp: ntp.ubuntu.com private_ip: 10.0.0.10 ssh_public_key: ssh-rsa ...... vcenter: ca_cert: cert datacenter: example-dc datastore: example-ds-1 folder: /example-dc/vm/Folder url: vcenter.example.com username: ((vcenter-username)) password: ((vcenter-password)) resource_pool: /example-dc/host/example-cluster/Resources/example-pool
-
An Ops Manager VM on Azure can be created with the property
tags
. This allows a user to assign tags to the Ops Manager VM.Usage:
--- opsman-configuration: azure: tags: Key=Value vm_name: ops-manager-vm boot_disk_size: 200 tenant_id: 3e52862f-a01e-4b97-98d5-f31a409df682 subscription_id: 90f35f10-ea9e-4e80-aac4-d6778b995532 client_id: 5782deb6-9195-4827-83ae-a13fda90aa0d client_secret: ((opsman-client-secret)) location: westus resource_group: res-group storage_account: opsman ssh_public_key: ssh-rsa ...... subnet_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Network/virtualNetworks/<VNET>/subnets/<SUBNET> private_ip: 10.0.0.3
-
om curl
defaults to POST method when data provided. [#533]
- The output from
download-product
is compatible withassign-multi-stemcell
. [#539]
-
An Ops Manager VM on GCP can be created with the property
hostname
. This allows a user to assign a custom internal hostname for the VM. [#531]Usage:
--- opsman-configuration: gcp: boot_disk_size: 100 custom_cpu: 4 custom_memory: 16 gcp_service_account: ((service_account_key)) project: ((project)) public_ip: ((ops_manager_public_ip)) region: ((region)) ssh_public_key: ((ops_manager_ssh_public_key)) tags: ((ops_manager_tags)) vm_name: ((environment_name))-ops-manager-vm vpc_subnet: ((management_subnet_name)) zone: ((availability_zones.0)) hostname: testing.some.domain
- Always generate
assign-stemcell.yml
indownload-product
.
- The
nom
alias was not apart of the config file block list.
- The oauth handler created a client with a request and connection timeout. When that timeout occurred and a retry happened (usually in the command logic) the HTTP client would be reused. The previous timeout would be propagated. This will not create a new HTTP client each time.
-
om configure-opsman
can now set the UAA token expirations and timeouts. For example,tokens-expiration: access_token_expiration: 10 refresh_token_expiration: 10 session_idle_timeout: 10
- When using a long running command (ie
apply-changes
) the UAA token could expire. Now once the token expires, it will refress with the UAA, so no disruption occurs.
- When using the
stemcell-heavy
in adownload-product
config file, it would error withcannot have an argument
error. [#521]
- Some of the
-c
short flags were conflicting with short values.
-
Because of code changes in
om
, the long command line flags no longer support single dash assignment. For example, if you had been doing:om --env env.yml diagnostic-report -format json
You now have to:
om --env env.yml diagnostic-report --format json
-
Some commands have different
short
command line flags. For example:om --env env.yml apply-changes -sdp
Must now be called like
om --env env.yml apply-changes -s
List of changes:
command original short new short global -tr n/a apply-changes -sdp -s configure-authentication -dp -d configure-ldap-authentication -dp -d configure-saml-authentication -dp -d import-installation -pi -p upload-product -pi -p
-
om bosh-env
now supports being able to--unset
environment variables. This can also unset--bosh
and--credhub
vars only when used with the new--unset
flag. This resolved issue #457. Thanks to @iplay88keys for the PR! -
Format of the
help
command has been changed. This is due to a transition tojessevdk/go-flags
frompivotal-cf/jhanda
-
vm-lifecyle
command had been added. This command will create, delete, or upgrade the Ops Manager VM. For users of Platform Automation will recognize this command. It is theom
equivalent ofp-automator
.Most of these subcommands require the IAAS CLI to be installed. These clis are:
IAAS Required CLI Version AWS aws v1.18.163+ Azure az v2.13.0+ GCP gcloud v315.0.0+ Openstack openstack n/a vSphere govc 0.23.0+ -
vm-lifecycle create-vm
will create an Ops Manager VM on a given IAAS. NOTE: this command requires the relevant IAAS CLI to be installed. -
vm-lifecycle delete-vm
will delete an Ops Manager VM on a given IAAS. NOTE: this command requires the relevant IAAS CLI to be installed. -
vm-lifecycle export-opsman-config
will export anopsman.yml
(for use increate-vm
anddelete-vm
) for an existing Ops Manager VM. -
vm-lifecycle prepare-tasks-with-secrets
modifies a Concourse task to include configuration secrets asparams
. -
vm-lifecycle upgrade-opsman
is a command that will calldelete-vm
,create-vm
, andimport-installation
, with additional safeguards to prevent accidental deletion of importan Ops Manager VM data. This command is idempotent, has strict command line requirements, and tracks state via a state file.
om products
has been added. This combines the functionality of staged-products, available-products, and deployed-products and gives a default view that displays all three. This resolved issue #458. Thanks to @iplay88keys for the PR!om bosh-env
now supports the--credhub
and--bosh
flags. If provided, only the vars for the provided flags will be printed. Default behavior of printing both sets of vars remains the same. This resolved issue #466. Thanks to @iplay88keys for the PR!
These deprecations were added to eventually minimize
some of the ever-growing command overhead in om
deployed-products
has been deprecated in favor ofom products --deployed
available-products
has been deprecated in favor ofom products --available
staged-products
has been deprecated in favor ofom products --staged
upload-stemcell
when providing--stemcell
it always required an absolute path. This has been fixed, so any stemcell path can be used. Fixed #498.
pending-changes
would always fail if installation incomplete, product unconfigured, or stemcell missing regardless of whether the--check
flag (exit 1 if there are pending changes) was set. This has been fixed so that the implied and intended behavior is reflected in the ouput of the command.
- When using
stage-product
, the--product-version
can use the placeholderlatest
. This finds the highest semvered available product (of--product-name
) version to stage. - When using
stage-product
the config file provided can be any config file, just as long as it hasproduct-version
andproduct-name
.
-
tl;dr: Collections are hard.
We are reverting code for handling collections when updating their values. As of recently, we tried to make collection property updating for products more idempotent. This required logic to associate collections in a config file with their potential GUID in the already configured product. This logic introduced edge cases, which we missed. We tried to fix them, but kept running into them. We've made the decision to revert the logic to its original state. Please see the original issue #207 for more information.
bosh diff --check
will now return exit status 2 instead of exit status 1. This is so the 'diff' exit status is more easily differentiated from an 'error' exit status.
- When using collection with secrets, the GUID matching for maintaining GUIDs across updates faulted only when the tile was being upgraded and migrating said property. Related issue #514.
interpolate
behavior has been improved in all commands that perform interpolation. All interpolation inom
is now dual-pass; what would have previously been the final output is interpolated again. This allows the use of mapping-variables, vars that have other vars as their values. For a detailed example, see the new test for this feature, found ininterpolate/interpolate_suite_test.go
.- This is intended to allow the use of vars files
to map from automatically generated vars-names,
such as those created by
staged-config
andconfig-template
. - Also, note that Ops Files are only applied on the first pass, as they're not idempotent in the way that substituion is.
- Similarly, the --path argument for
om interpolate
is only applied on the second pass. - We are aware that other CLI tools that use interpolation behavior
don't do this, and may not wish to -
for example, both
fly
andbosh
communicate with servers that also understand the ((double-paren)) var syntax, and so possibly have cases for passing these things along unresolved. As far as we know, this is not true of any use ofom
. - We actually can't think of any case where this would be undesirable, even in the other tools we just mentioned. If you can, please open an issue!
- This is intended to allow the use of vars files
to map from automatically generated vars-names,
such as those created by
configure-product
will no longer assign a new guid for unnamed collections conatin:- non-configurable properties that haven't changed
- secret/credential properties that haven't changed
-
configure-product
will no longer assign a new guid for unnamed collections- the decorating collection with guid logic will associate existing collection item guids based on (in order)
- equivalent item values
- equal logical keys (in order; ie. 'name' will be used over 'Filename' if both exist)
name
key
- fields ending in
name
(eg:sqlServerName
)
This addresses #207; improving GitOps style workflows
- the decorating collection with guid logic will associate existing collection item guids based on (in order)
- When using
cache-cleanup
, globbing was not correctly done for files that contain the metadata prefix. This meant that files with[pivnet-slug,pivnet-version]
will still laying around.
- [
--source pivnet
only]download-product
now supports the--check-already-uploaded
flag. If a valid env file is provided with the flag,download-product
will attempt to check if the product is already present on the Ops Manager. If the product is already present,download-product
will not attempt to download from Tanzu Network. This task is compatible with the--stemcell-ias
flag. If provided, the task will also check if the stemcell is already uploaded before attempting to download from Tanzu Network
download-product
will now correctly cache if downloading from a blobstore whenCACHE_CLEANUP='I acknowledge this will delete files in the output directories'
is set.
- With some code refactoring,
we've introduced support for
--vars
,--vars-file
, and--vars-env
into places it was missing before. download-product
can now provide a separate--stemcell-output-directory
for the downloaded stemcell to exist after downloading. This was added to take advantage of Concourse 5.0+'s ability to overlap the cache in the output.- [
download-product
] To allowpas-windows
to count as a cache hit even after winfs has been injected, the shasum check on the cache has been removed.download-product
will still check the shasum after the product has been downloaded from Tanzu Network - [
download-product
] A new env var,CACHE_CLEANUP
has been added. WhenCACHE_CLEANUP='I acknowledge this will delete files in the output directories'
it will delete all products that do not match the slug and version in the output directory so the local (or Concourse) cache can remain clean. This env var will also clean up all old stemcells from theoutput-directory
(orstemcell-directory
if defined) if--stemcell-iaas
is provided. certificate-authority
no longer requires--id
if there is only one certificate authority on the targeted Ops Manager. This resolves PR #501
- With some code refactoring,
we removed the short form of
-v
for--product-version
found indownload-product
andstage-product
.
- Removed deprecated
tile-metadata
command. Please useproduct-metadata
command. - Removed deprecated
update-ssl-certificate
command. Please useconfigure-opsman
command. - Removed depreated
--download-stemcell
flag fromdownload-product
. If the--stemcell-iaas
is defined, it will always download the stemcell, and has done so, for a long time.
- Everything marked as
**EXPERIMENTAL**
has been promoted to officially supported.bosh-diff
commandconfig-template
commandOM_VARS_ENV
global flagOM_VARS_ENV
flag underconfigure-*-authentication
commands
- The
config-template
command will now generate one ops file for each collection when the--size-of-collections
flag is provided. The number of elements in each of those ops files is now based on that flag rather than having an ops file for each number up to the--size-of-collections
value. The default behaviour ofconfig-template
without the--size-of-collections
flag remains unchanged.
-
apply-changes --product-name <product> --config config.yml
with errands defined inconfig.yml
that were not in theproduct-name
list would fail. An explicit breakdown of how these flags interact:apply-changes
with theproduct-name
flag(s) defined--config config.yml
with different products defined than provided in theproduct-name
list:- Succeeds with a warning message, but does not apply the errand, if a product exists in the
config.yml
file, but was not passed in theproduct-name
list. - Fails if any products in the
product-name
list also exist in theconfig.yml
but do not exist on Ops Manager as staged/installed.
- Succeeds with a warning message, but does not apply the errand, if a product exists in the
--config config.yml
has no product defined: succeeds.--config config.yml
with same products defined as provided in theproduct-name
list: succeeds.
apply-chages
with NOproduct-name
flag(s) defined--config config.yml
with different products defined than what exists in Ops Manager: failure.- If applying changes to all products, the products in
config.yml
must be staged/installed.
- If applying changes to all products, the products in
--config config.yml
has no product defined: succeeds.--config config.yml
with same products defined as what exists in Ops Manager (does not need to include all staged/installed products): succeeds.
-
interpolate
will no longer append a newline to end of the output
download-product
now supports defining a customstemcell-version
in the config file. This flag is--stemcell-version
, and requires--stemcell-iaas
to be set. If--stemcell-version
is not set, butstemcell-iaas
is set, the command will download the latest stemcell for the product.bosh-diff
now supports the--check
flag. If set, the command will fail if there are differences returned. This resolves issue #488]stage-product
now accepts a config file to define command line args. This matches patterns for automation available in other commands.
configure-opsman
command has been added. This allows configuration of several Ops Manager settings. Most were previously not available to configure through anom
command, thoughssl-certificate
was also configurable withupdate-ssl-certificate
. For config examples, see the docs for the command. Supported top-level-keys:ssl-certificate
pivotal-network-settings
rbac-settings
banner-settings
syslog-settings
- EXPERIMENTAL
config-template
now supports ops manager syslog in tiles. In the tile metadata, this property is turned on with theopsmanager_syslog: true
field. Tiles with this property enabled will now add the section toproduct.yml
and create defaults indefault-vars.yml
. - Added shorthand flag consistency to multiple commands.
--vars-file
shorthand is-l
and--var
shorthand is-v
- EXPERIMENTAL
config-template
can specify the number of collection ops files using--size-of-collections
. Some use cases required that collections generate more ops-file for usage. The default value is still10
. config-template
has been updated to include placeholders fornetwork_name
,singleton_availability_zone
, andservice_network_name
inrequired-vars.yml
when appropriate.- When using
apply-changes --recreate
, Ops Manager will recreate director VM on OM 2.9+ If a product name is passed (apply-changes --product-name <product> --recreate
), only the product VMs will be recreated. When usingapply-changes --recreate --skip-deploy-products
, only the director VM will be recreated. This resolves issue #468
-
Cleaned up all the interpolation to be more consistent with the behaviour of the
bosh
CLI.For example,
# with a variable $ om interpolate -c <(echo "person: ((person))") -v person="{foo: bar}" person: foo: bar # with an env var $ PREFIX_person="{foo: bar}" om interpolate -c <(echo "person: ((person))") --vars-env PREFIX person: foo: bar
We did maintain, when using environment variables or var (
-v
), a multiline string needs to be maintained. Thebosh
does not support this.
-
config-template
Bug Fix: Required collections now parametrize correctly inproduct.yml
. In the om issue forp-dataflow
, the following was incorrectly returned:.properties.maven_repositories: value: - key: spring password: ((password)) url: https://repo.spring.io/libs-release username: username
config-template
now returns the following correct subsection inproduct.yml
:.properties.maven_repositories: value: - key: spring password: secret: ((password)) url: https://repo.spring.io/libs-release username: username
if you have used the workaround described in the issue (storing the value as a JSON object) you will need to update the credential in Credhub to not be a JSON object.
-
config-template
generatedresource-vars.yml
that had the potential to conflict with property names (spring cloud dataflow had a configurable property calledmax_in_flight
which is also a resource config property).config-template
now prepends all resource-vars withresource-var-
. This prevents this entire class of conflicts. If usingconfig-template
to update vars/ops-files/etc, check your resource var names in any files vars may be drawn from. This resolves om issue #484.
update-ssl-certificate
has been deprecated in favor ofconfigure-opsman
. This was done to allow extensibility for other endpoints on the Settings page. Please note thatconfigure-opsman
requires a config file, and does not acceptcertificate-pem
orprivate-key-pem
as command line arguments. For config example, see the docs for the command.
configure-authentication
now supports theOM_DECRYPTION_PASSPHRASE
environment variable.
configure-director
now correctly handles when you don't name your iaas_configurationdefault
on vSphere. Previously, naming a configuration anything other thandefault
would result in an extra, emptydefault
configuration. This closes issue #469.- Downloading a stemcell associated with a product will try to download the light or heavy stemcell.
If anyone has experienced the recent issue with
download-product
and the AWS heavy stemcell, this will resolve your issue. Please remove any custom globbing that might've been added to circumvent this issue. For example,stemcall-iaas: light*aws
should just bestemcell-iaas: aws
now. - Heavy stemcells could not be downloaded.
Support has now been added.
Force download of the heavy stemcell (if available) with the
--stemcell-heavy
flag.
-
interpolate
now supports the dot notation to reference array values. For example,$ echo "person: ((people.1))" | om interpolate -c - -l <(echo "people: [Bob, Susie, Diane]") person: Susie
- To mitigate confusion, the
pivnet-file-glob
param fordownload-product
now has an alias offile-glob
. update-ssl-certificate
now supports passingcertificate-pem
andprivate-key-pem
as--config
arguments. The command also supports the--vars-file
flag for interpolation. This closes issue #463.
-
The experimental command
product-diff
had been renamedbosh-diff
and now includes the director diff. This includes property, runtime config, cloud config, and CPI config differences. When the command is used, it will display the director and all products by default. The--director
flag can be used to show only the director diff. The--product-name
flag can be used to show one or more specific products.For example,
om bosh-diff --director --product-name cf --product-name p-healthwatch
will show the director, Pivotal Application Service, and Pivotal Healthwatch differences.
- The experimental command
product-diff
has been added. It gets the manifest diff for a specified set of products. This might be useful as a sanity review before apply-changes; see the detailed documentation for details/provisos. - EXPERIMENTAL
config-template
now includes the option to use a local product file with--product-path
. This resolves issue #413. apply-changes
can for recreate the VMs that will apply with--recreate-vms
. This is useful for the three-Rs of security, to ensure the repaving.
- The environment variable
OM_VARS_ENV
was not enabled on all commands that allows--vars-env
.
-
We'd like to welcome back the
revert-staged-changes
command. It requires an API endpoint released in Ops Manager versions 2.5.21+, 2.6.13+, or 2.7.2+. This now reverts changes like the the equivalant "Revert" button in the UI. Appropriate messages and warnings will appear from the command of what action has been taken.In v3.0.0, we removed
revert-staged-changes
because it had stopped working. (The necessary Ops Manager API wasn't present, so it was trying to automate through the UI - unsuccessfully).
- Maybe not technically a bug, but:
some commands you love (
pre-deploy-check
,staged-config
, andstaged-director-config
) no longer have the EXPERIMENTAL tag. Nothing has changed with them, we literally just forgot to remove these ages ago.
interpolate
command now has order precedence when a file or stdin is provided.--config
with a file always takes precedence--config -
will read directly from STDIN- STDIN provided with no
--config
will use STDIN
- when using
--ignore-verifier-warnings
withconfigure-director
the HTTP Status 207 will be ignored when interacting with IAAS endpoints.
- EXPERIMENTAL
config-template
now includesmax-in-flight
for all resources. (PR: @jghiloni) - When using
configure-product
andconfigure-director
, theadditional_vm_extensions
for a resource will have the following behaviour:- If not set in config file, the value from Ops Manager will be persisted.
- If defined in the config file and an emtpy array (
[]
), the values on Ops Manager will be removed. - If defined in the file with a value (
["web_lb"]
), these values will be set on Ops Manager.
configure-authentication
,configure-ldap-authentication
, andconfigure-saml-authentication
now support the--var
,--vars-file
, and--vars-env
flags.- EXPERIMENTAL
config-template
now supports the--config
,--var
,--vars-file
, and--vars-env
flags. (PR: @jghiloni)
-
download-product
supports GCS (Google Cloud Storage) for Tanzu Network download artifacts.An example config,
pivnet-file-glob: "*.tgz" pivnet-product-slug: pivotal-telemetry-collector product-version: "1.0.1" output-directory: /tmp source: gcs gcs-bucket: some-bucket gcs-service-account-json: | {account-JSON} gcs-project-id: project-id
This will download the
[pivotal-telemetry-collector,1.0.1]telemetry-collector-1.0.1.tgz
from thesome-bucket
bucket from the GCS account. -
download-product
supports Azure Storage. for Tanzu Network download artifacts.pivnet-file-glob: "*.tgz" pivnet-product-slug: pivotal-telemetry-collector product-version: "1.0.1" output-directory: /tmp source: azure azure-container: pivnet-blobs azure-storage-account: some-storage-account azure-key: "storage-account-key"
This will download the
[[pivotal-telemetry-collector,1.0.1]telemetry-collector-1.0.1.tgz
from thepivnet-blobs
container from thesome-storage-account
storage account from Azure Storage. -
The commands
disable-director-verifiers
anddisable-product-verifiers
have been added. They allow verifiers that are preventing Apply Changes from succeeding to be disabled. This feature should be used with caution, as the verifiers can provide useful feedback on mis-configuration. -
When using
staged-director-config
andconfigure-director
, theiaas_configuration_name
will be used to assign an IAAS to an availability zone. This provides support for multiple iaas configurations on vSphere and Openstack. Prior to this, theiass_configuration_guid
had to be discovered prior to assigning an availability zone; now the name can be used in one step. -
We've also made miscellanious improvements to warning and error messages, and to documentation.
- The
ca-cert
option works in theenv.yml
. A filename or string value can be used.
apply-changes
will no longer reattach when it finds an already running installation. to re-enable this feature, provide the--reattach
flag. This makes the behavior ofapply-changes
easier to anticipate and specify whether applying all changes or applying changes to a particular product.
- EXPERIMENTAL
config-template
now accepts--pivnet-file-glob
instead of--product-file-glob
. This is to create consistency with thedownload-product
command's naming conventions. (PR: @poligraph)
staged-config
will now work again for Ops Manager versions <= 2.3. This solves issue #419
configure-director
now will configure VM Extensions before setting Resource Config. This fixes issue #411
-
expiring-certificates
command was added. This command returns a list of certificates from an Ops Manager expiring within a specified (--expires-within/-e
) time frame. Default: "3m" (3 months) Root CAs cannot be included in this list until Ops Manager 2.7. -
configure-product
andstaged-config
now have support for the/syslog_configurations
endpoint. This affects tiles, such as the Metrics tile, that do not return these properties nested in theproduct-properties
section. This provides a solution for issue 331. An example of this inside of your product config:syslog-properties: address: example.com custom_rsyslog_configuration: null enabled: true forward_debug_logs: false permitted_peer: null port: "4444" queue_size: null ssl_ca_certificate: null tls_enabled: false transport_protocol: tcp
-
generate-certificate
can now accept multiple--domains | -d
flags. Comma separated values can be passed with a single--domains | -d
flag, or using a--domains | -d
flag for each value. (PR: @jghiloni) Example:om -e env.yml generate-certificate -d "example1.com" --domains "example2.com" \ -d "example3.com,*.example4.com" --domains "example5.com,*.example6.com"
-
product-metadata
has been added to replacetile-metadata
. This was done to increase naming consistency. Both commands currently exist and do exactly the same thing. (PR: @jghiloni) -
EXPERIMENTAL
config-template
now supports the--exclude-version
flag. If provided, the command will exclude the version directory in the--output-directory
tree. The contents will with or without the flag will remain the same. Please note including the--exclude-version
flag will make it more difficult to track changes between versions unless using a version control system (such as git). (PR: @jghiloni) -
EXPERIMENTAL
config-template
supports--pivnet-disable-ssl
to skip SSL validation. -
When interacting with an OpsManager, that OpsManager may have a custom CA cert. In the global options
--ca-cert
has been added to allow the usage of that custom CA cert. The value of--ca-cert
can be a file or command line string.
- When using
config-template
(EXPERIMENTAL) ordownload-product
, the--pivnet-skip-ssl
is honored when capturing the token.
tile-metadata
has been deprecated in favor ofproduct-metadata
. This was done to increase naming consistency. Both commands currently exist and do exactly the same thing. Thetile-metadata
command will be removed in a future release.
-
TLS v1.2 is the minimum version supported when connecting to an Ops Manager
-
EXPERIMENTAL
config-template
now will provide required-vars in addition to default-vars. -
EXPERIMENTAL
config-template
will define vars with an_
instead of a/
. This is an aesthetically motivated change. Ops files are denoted with/
, so changing the vars separators to_
makes this easier to differentiate. -
EXPERIMENTAL
config-template
outputproduct-default-vars.yml
has been changed todefault-vars.yml
-
staged-config
includes the propertymax_in_flight
will be included in theresource-config
section of a job. -
configure-product
can set the propertymax_in_flight
in theresource-config
section of a job.The legal values are:
- an integer for the number of VMs (ie
2
) - a percentage of 1-100 (ie
20%
) - the default value specified in tile (
default
) For example,
resource-config: diego_cells: instances: 10 max_in_flight: 10
- an integer for the number of VMs (ie
pivnet-api-token
is now optional indownload-product
if a source is defined. (PR: @vchrisb)configure-authentication
,configure-ldap-authentication
, andconfigure-saml-authentication
can create a UAA client on the Ops Manager vm. The client_secret will be the value provided to this optionprecreated-client-secret
.- add support for NSX and NSXT in Ops Manager 2.7+
-
remove
--skip-unchanged-products
fromapply-changes
This option has had issues with consistent successful behaviour. For example, if the apply changes fails for any reason, the subsequent apply changes cannot pick where it left off. This usually happens in the case of errands that are used for services.We are working on scoping a selective deploy feature that makes sense for users. We would love to have feedback from users about this.
-
remove revert-staged-changes unstage-product will revert the changes if the tile has not been installed. There is currently no replacement for this command, however, it was not working for newer versions of Ops Manager, and did nothing. This resolves issue #399
apply-changes
will error with product not found if that product has not been staged.upload-stemcell
now accepts--floating false
in addition tofloating=false
. This was done to offer consistency between all of the flags on the command.configure-director
had a bug in whichiaas_configurations
could not be set on AWS/GCP/Azure because "POST" was unsupported for these IAASes (Multiple IAAS Configurations only work for vSphere and Openstack).configure-director
will now check if the endpoint is supported. If it is not supported, it will construct a payload, and selectively configure iaas_configuration as if it were nested underproperties-configuration
. The behavior of this command remains the same. IAAS Configuration may still be set viaiaas_configurations
ORproperties.iaas_configuration
Was a release to make sure that brew upgrade
works.
configure-ldap-authentication
andconfigure-saml-authentication
can create a UAA client on the Ops Manager vm. The client_secret will be the value provided to this optionprecreated-client-secret
. This is supported in OpsManager 2.5+.- A homebrew formula has been added!
It should support both linux and mac brew.
Since, we don't have our own
tap
, we've used a simpler method:brew tap pivotal-cf/om https://github.com/pivotal-cf/om brew install om
- The order of vm types and resources was being applied in the correct order. Now vm types will be applied then resources, so that resource can use the vm type.
- When using
bosh-env
, a check is done to ensure the SSH private key exists. If does not the command will exit 1. - EXPERIMENTAL
config-template
will enforce the default value for a property to always beconfigurable: false
. This is inline with the OpsManager behaviour.
- The artifacts on the Github Release include
.tar.gz
(for mac and linux) and.zip
(windows) for compression. It also allows support for usinggoreleaser
(in CI) to create other package manager artifacts --brew
. This will break globs that were permissive. For example*linux*
, will download the binary and the.tar.gz
, use*linux*[^.gz]
to just download the binary. Our semver API declaration has been updated to reflect this.
- Both
om configure-ldap-authentication
andom configure-saml-authentication
will now automatically create a BOSH UAA admin client as documented here. This is only supported in OpsManager 2.4 and greater. You may specify the flagskip-create-bosh-admin-client
to skip creating this client. If the command is run for an OpsManager less than 2.4, the client will not be created and a warning will be printed. However, it is recommended that you create this client. For example, your SAML or LDAP may become unavailable, you may need to sideload patches to the BOSH director, etc. Further, in order to perform automated operations on the BOSH director, you will need this BOSH UAA client. After the client has been created, you can find the client ID and secret by following steps three and four found here. om interpolate
now allows for the-v
flag to allow variables to be passed via command line. Command line args > file args > env vars. If a user passes a var multiple times via command line, the right-most version of that var will be the one that takes priority, and will be interpolated.om configure-director
now supports custom VM types. (PR: @jghiloni) Refer to the VM Types Bosh documentation for IaaS specific use cases. For further info:configure-director
readme. Please note this is an advanced feature, and should be used at your own discretion.download-product
will now return adownload-file.json
ifstemcell-iaas
is defined but the product has no stemcell. Previously, this would exit gracefully, but not return a file.
- (EXPERIMENTAL)
pre-deploy-check
has been added as a new command. This command can be run at any time. It will scan the director and any staged tiles in an Ops Manager environment for invalid or missing properties. It displays these errors in a list format for the user to manually (or automatedly) update the configuration. This command will also return anexit status 1
; this command can be a gatekeeper in CI before running anapply-changes
download-product
will now include theproduct-version
indownload-file.json
(PR: @vchrisb)
-
Extra values passed in the env file will now fail if they are not recognized properties. This closes issue #258
-
Non-string environment variables can now be read and passed as strings to Ops Manager. For example, if your environment variable (
OM_NAME
) is set to"123"
(with quotes escaped), it will be evaluated in your config file with the quotes.Given
config.yml
value: ((NAME))
om interpolate -c config.yml --vars-env OM
Will evaluate to:
value: "123"
This closes issue #352
-
the file outputted by
download-product
will now use theproduct-name
as defined in the downloaded-product, not from the Tanzu Network slug. This fixes a mismatch between the two as documented in issue #351 -
bosh-env
will now setBOSH_ALL_PROXY
without a trailing slash if one is provided. This closes issue #350
om
will now follow conventional Semantic Versioning, with breaking changes in major bumps, non-breaking changes for minor bumps, and bug fixes for patches.delete-installation
now has a force flag. The flag is required to run this command quietly, as it was working before. The reason behind this is it was easy to delete your installation without any confirmation.staged-director-config
no longer supports--include-credentials
this functionality has been replaced by--no-redact
. This can be paired with--include-placeholders
to return a interpolate-able config with all the available secrets from a running OpsMan. This closes issue #356. The OpsMan API changed so that IAAS Configurations were redacted at the API level.
-
new command
diagnostic-report
returns the full OpsMan diagnostic report which holds general information about the targeted OpsMan's state. Documentation on the report's payload can be found here. -
om interpolate
now can take input from stdin. This can be used in conjunction with the newdiagnostic-report
command to extract a specific section or value from the report, simply by using the pipe operator. For example,om -e env.yml diagnostic-report | om interpolate --path /versions
This will return the
versions
block of the json payload:installation_schema_version: "2.6" javascript_migrations_version: v1 metadata_version: "2.6" release_version: 2.6.0-build.77
-
staged-director-config
now checksint
s andbool
s when filtering secrets -
configure-director
andstaged-director
now supportiaas-configurations
. This allows OpsManager 2.2+ to have multiple IAASes configured. Please see the API documentation for your version of OpsMan for what IAASes are supported.If you are using
iaas_configuration
in yourproperties-configuration
and useiaas-configurations
you'll receive an error message that only one method of configuration can be used.
- new command
assign-multi-stemcell
supports the OpsMan 2.6+. This allows multiple stemcells to be assgined to a single product. For example, for productfoo
, you could assign Ubuntu Trusty 3586.96 and Windows 2019 2019.2, using the command,om assign-multi-stemcell --product foo --stemcell ubuntu-trusty:3586.96 --stemcell windows2019:2019.2
. upload-stemcell
will not upload the same stemcell (unless using--force
) for OpsMan 2.6+. The API has changed that list the stemcells associated with a product. This command is still backwards compatible with OpsMan 2.1+, just has logic specific for 2.6+.
- WasabiAiR/stow#197 has been merged! This should make
om
go get
-able again.
- the
upload-product
flag--sha256
has been changed to--shasum
.upload-stemcell
used the--shasum
flag, and this change adds parity between the two. Using--shasum
instead of--sha256
also future-proofs the flag when sha256 is no longer the de facto way of defining shasums.
download-product
now supports skipping ssl validation when specifying--pivnet-disable-ssl
download-product
ensures sha sum checking when downloading the file from Pivotal Networkupload-stemcell
now supports a--config
(-c
) flag to define all command line arguments in a config file. This givesupload-stemcell
feature parity withupload-product
- Improved info messaging for
download-product
to explicitly state whether downloading from pivnet or S3
- configure-director now has the option to
ignore-verifier-warnings
. (PR: @Logiraptor) This is an advanced feature that should only be used if the user knows how to disable verifiers in OpsManager. This flag will only disable verifiers for configure-director, and will not disable the warnings for apply-changes. - There's now a shell-completion script; see the readme for details.
- We have totally replaced the code and behavior
of the EXPERIMENTAL
config-template
command. It now contains the bones of the tile-config-generator. We expect to further refine (and make breaking changes to) this command in future releases.
- download-product's prefix format and behavior has changed.
- the prefix format is now
[example-product,1.2.3]original-filename.pivotal
. - the prefix is added to all product files if
s3-bucket
is set in the config when downloading from Pivnet.
- the prefix format is now
- download-product now supports downloading stemcells from S3, too.
- download-product allows use of an instance iam account when
s3-auth-method: iam
is set. - apply-changes now has the ability to define errands via a config file when running (as a one-off errand run). The apply-changes readme details how this config file should look.
- pending-changes now supports a
--check
flag, that will return an exit code 0(pass) or 1(fail) when running the command, to allow you to fail in CI if there are pending changes in the deployment. - download-product will now create a config file (
assign-stemcell.yml
) that can be fed intoassign-stemcell
. It will have the appropriate format with the information it received from download-product
- when trying to delete a product on Ops Manager during a selective deploy (
apply-changes --product-name tile
), OpsManager would fail toapply-changes
due to a change to the version string for 2.5 (would include the build number). A change was made to the info service to accept the new semver formatting as well as the old versioning. - upload-product (among other things) is no longer sensitive to subdirectories in tile metadata directories
- to support 2.5, new semver versioning for OpsManager was added in addition to supporting the current versioning format. (PR: @jplebre & @edwardecook)
To anyone who is having go install fail, it will fail until WasabiAiR/stow#199 is merged.
Here is the error you are probably seeing.
$ go install
# github.com/pivotal-cf/om/commands
commands/s3_client.go:62:3: undefined: s3.ConfigV2Signing
to work around, you can include om
in your project without using go get
or go install
. you will need to add the following to your go.mod
:
replace github.com/graymeta/stow => github.com/jtarchie/stow v0.0.0-20190209005554-0bff39424d5b
download-product
would panic if the product was already downloaded and you asked for a stemcell. This has been fixed to behave appropriately
The behavior of download-product
in this release is not final. Please hold off on using this feature until a release without this warning.
download-product
will now enforce a prefix of{product-slug}-{semver-version}
when downloading from pivnet. The original filename is preserved after the prefix. If the original filename already matches the intended format, there will be no change. Any regexes that strictly enforce the original filename at the beginning of the regex will be broken. Please update accordingly. This change was done in order to encourage tile teams to change their file names to be more consistent. Ops Manager itself has already agreed to implement this change in newer versions.
- add support for the
selected_option
field when callingstaged-config
to have better support for selectors.- this support also extends to
configure-product
, which will accept bothselected_option
andoption_value
as the machine readable value.
- this support also extends to
download-product
now has support for downloading from an external s3 compatible blobstore using the--blobstore s3
flag.staged-director-config
now supports ano-redact
flag that will return all of the credentials from an Ops Manager director, if the user has proper permissions to do so. It is recommended to use the admin user.
The behavior of download-product
in this release is not final. Please hold off on using this feature until a release without this warning.
import-installation
provides validation on the installation file to ensure- it exists
- it is a valid zip file
- it contains the
installation.yml
artifact indicative of an exported installation
- Fixed typo in
configure-director
vmextensions
configure-director
and staged-director-config
now include a properties-configuration
.
The following keys have recently been removed from the top level configuration: director-configuration, iaas-configuration, security-configuration, syslog-configuration.
To fix this error, move the above keys under 'properties-configuration' and change their dashes to underscores.
The old configuration file would contain the keys at the top level.
director-configuration: {}
iaas-configuration: {}
network-assignment: {}
networks-configuration: {}
resource-configuration: {}
security-configuration: {}
syslog-configuration: {}
vmextensions-configuration: []
They'll need to be moved to the new 'properties-configuration', with their dashes turn to underscore. For example, 'director-configuration' becomes 'director_configuration'. The new configration file will look like.
az-configuration: {}
network-assignment: {}
networks-configuration: {}
properties-configuration:
director_configuration: {}
security_configuration: {}
syslog_configuration: {}
iaas_configuration: {}
dns_configuration: {}
resource-configuration: {}
vmextensions-configuration: []
- The package manager has been migrated from
dep
togo mod
. It now requires golang 1.11.4+. For information on go modules usage, see the golang wiki.
import-installation
will now retry 3 times (it uses the polling interval configuration) if it suspects that nginx has not come up yet. This fixes an issue with opsman if you tried to import an installation with a custom SSL Cert for opsman.- When using
configure-product
on opsman 2.1, it would fail because the completeness check does not work. To disable add the fieldvalidate-config-complete: false
to your config file. - fix the nil pointer dereference issue in
staged-products
whenom
cannot reach OpsManager
download-product
supports grabbing for a version via a regular expression. Using--product-version-regex
sorts the versions returned by semver and returns the highest matching version to the regex. The sort ignores non-semver version numbers -- similar to the pivnet resource behaviour.download-product
no longer requiresdownload-stemcell
to be set when specifyingstemcell-iaas
. It is there for backwards compatibility, but it is a no-op.- added more copy for the help message of
bosh-env
- fix documentation for
vm-extensions
usage
-
Increased the default connect-timeout from
5
seconds to10
. This should alleviate reliability issues some have seen in CI. -
Adds several commands (
delete-ssl-certificate
,ssl-certificate
,update-ssl-certificate
) around managing the Ops Manager VM's TLS cert. These new commands are courtesy of a PR, and we're still tinkering a bit (especially in terms of how they communicate in the case of a default cert, given that the Ops Manager API doesn't even bother returning a cert in that case). There should be a fast-to-follow release with these commands more polished; if we'd planned better we might have marked these as experimental until we were done tinkering with them, but we don't see any reason to delay releasing this time.
stage-product
&configure-product
&configure-director
: Now errors ifapply-changes
is running. [a3ebd5241d2aba3b93ec642255e0b9c11686d996]
configure-ldap-authentication
: add the command to configure ldap auth during initial setup
assign-stemcell
: fix a message format
- download-product now outputs
product_path
,product_slug
,stemcell_path
, andstemcell_version
instead of justproduct
andstemcell
. This will help compatability withassign-stemcell
.
- removed individual configuration flags for configure-director [commit]
- removed individual configuration flags for configure-product [commit]
- add more intelligent timeouts for commands
- fail fast if a key is not defined in configuration files for configure-product and configure-director
- add
assign-stemcell
command to associate a specified stemcell to the product
- fix stemcell version check logic in
download-product
command -- stemcells can now be downloaded even if they don't have a minor version (e.g. version 97)
- The decryption passphrase check was returning dial timeout errors more frequently. Three HTTP retries were added if dial timeout occurs. [Fixes #283]
- removed command
configure-bosh
, use commandconfigure-director
for configuring the bosh directory on OpsMan - removed command
set-errand-state
, use theerrand-config
with your config with the commandconfigure-product
- add command
download-product
, it can download product and associated stemcell from Pivnet - add
--path
to commandinterpolate
so individual values can be extracted out
- automatic decryption passphrase unlock will only attempt doing so once on the first HTTP call #283
- when using command
configure-product
, collections won't fail whenguid
cannot be associated #274
config-template
(EXPERIMENTAL) &staged-config
&staged-director-config
: pluralize--include-placeholders
flagimport-installation
: removeddecryption-passphrase
from the arguments. Globaldecryption-passphrase
flag is required when using this command
- update command documentation to reflect various command flags change.
configure-product
: handles collection types correctly by decorate collection with guidstaged-director-config
: fix failed api request against azurecurl
: close http response body to avoid potential resource leaks
configure-product
: allowproduct-name
be read from config fileinterpolation
: added--vars-env
support tointerpolation
configure-authentication
&configure-saml-authentication
&import-installation
: allow the commandline flag been passed through config fileconfigure-director
: able to add/modify/remove vm extensionsstaged-config
: able to get errand state for the productapply-changes
: addedskip-unchanged-products
staged-config
: addproduct-name
top-level-key in the returned payload to work better withconfigure-product
upload-product
: able to validatesha256
andproduct-version
before uploading- global: added a
decryption-passphrase
to unlock the opsman vm if it is rebooted (if provided)
Fix tile-metadata
command for some tiles that were failing due to it attempting to parse the metadata directory itself as a file - via @chendrix and @aegershman
BACKWARDS INCOMPATIBILITIES:
om interpolate
no longer takes--output-file
flag.om interpolate
takes ops-files with-o
instead of--ops
.om --format=json COMMAND
is no longer supported. This flag should not have been global as it is only supported on some commands. The flag is now supported on certain commands and needs to be called:om COMMAND --format=json
. The commands that output intable
format will continue to do so by default.
FEATURES:
om configure-product
accepts ops-files.