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
omteam 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
omis targeting. For example:Note the additional space before the$ export OM_PASSWORD=example-password om -e env.yml deployed-productsexportcommand. This ensures that commands are not kept inbashhistory. The environment variableOM_PASSWORDwill overwrite the password value inenv.yml.
-
Add
deploy-in-parallelsupport toconfigure-productandstaged-config. This Ops Manager 3.3+ setting allows configuring whether a staged product should deploy in parallel with other products during Apply Changes. Setdeploy-in-parallel: truein the product config YAML. Thestaged-configcommand now outputs the currentdeploy-in-parallelsetting when present. Uses the newPUT /api/v1/staged/products/{product_guid}endpoint. -
Add documentation and test coverage for
product_deploy_parallelisminconfigure-directorandstaged-director-config. This Ops Manager 3.3+ property controls the maximum number of product deployment tasks that run in parallel during Apply Changes. Set it underproperties-configuration.director_configuration.product_deploy_parallelismin the director config YAML.
- Fixed a bug in
om vm-lifecycle upgrade-opsmanthat 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
--recreateflag wasn't used. - This release restores the intended behavior: printing a message and exiting early if the
--recreateflag 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-inactiveoption to delete CAs. This adds an optional flag toom delete-certificate-authoritythat 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-certificatescommands.
- 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 nompanic 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.0introduced 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
--dataflag incurlcommand.
Fixes included in this release:
- #552: Fixed typo in error message for command
vm-lifecycle. - #545: Adjusted message for
s3-disable-sslparameter indownload-productcommand. - #566: Fixed link to
Platform automationdocs.
- Deleted an unnecessary verification on which we were throwing an error when a user specified both the variables
ServiceAccountNameandServiceAccount, 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_formatparameter went unused.However in version 7.0, incidental to switching to the uaa-go library, om started requesting
opaqueaccess tokens from UAA to access Ops Manager instead ofjwtones. 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
jwtaccess 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 curldefaults to POST method when data provided. [#533]
- The output from
download-productis 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.ymlindownload-product.
- The
nomalias 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-opsmancan 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-heavyin adownload-productconfig file, it would error withcannot have an argumenterror. [#521]
- Some of the
-cshort 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
shortcommand 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-envnow supports being able to--unsetenvironment variables. This can also unset--boshand--credhubvars only when used with the new--unsetflag. This resolved issue #457. Thanks to @iplay88keys for the PR! -
Format of the
helpcommand has been changed. This is due to a transition tojessevdk/go-flagsfrompivotal-cf/jhanda -
vm-lifecylecommand 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 theomequivalent 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-vmwill create an Ops Manager VM on a given IAAS. NOTE: this command requires the relevant IAAS CLI to be installed. -
vm-lifecycle delete-vmwill delete an Ops Manager VM on a given IAAS. NOTE: this command requires the relevant IAAS CLI to be installed. -
vm-lifecycle export-opsman-configwill export anopsman.yml(for use increate-vmanddelete-vm) for an existing Ops Manager VM. -
vm-lifecycle prepare-tasks-with-secretsmodifies a Concourse task to include configuration secrets asparams. -
vm-lifecycle upgrade-opsmanis 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 productshas 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-envnow supports the--credhuband--boshflags. 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-productshas been deprecated in favor ofom products --deployedavailable-productshas been deprecated in favor ofom products --availablestaged-productshas been deprecated in favor ofom products --staged
upload-stemcellwhen providing--stemcellit always required an absolute path. This has been fixed, so any stemcell path can be used. Fixed #498.
pending-changeswould always fail if installation incomplete, product unconfigured, or stemcell missing regardless of whether the--checkflag (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-versioncan use the placeholderlatest. This finds the highest semvered available product (of--product-name) version to stage. - When using
stage-productthe config file provided can be any config file, just as long as it hasproduct-versionandproduct-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 --checkwill 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.
interpolatebehavior has been improved in all commands that perform interpolation. All interpolation inomis 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-configandconfig-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 interpolateis 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
flyandboshcommunicate 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-productwill 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-productwill 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)
namekey- 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 pivnetonly]download-productnow supports the--check-already-uploadedflag. If a valid env file is provided with the flag,download-productwill attempt to check if the product is already present on the Ops Manager. If the product is already present,download-productwill not attempt to download from Tanzu Network. This task is compatible with the--stemcell-iasflag. If provided, the task will also check if the stemcell is already uploaded before attempting to download from Tanzu Network
download-productwill 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-envinto places it was missing before. download-productcan now provide a separate--stemcell-output-directoryfor 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-windowsto count as a cache hit even after winfs has been injected, the shasum check on the cache has been removed.download-productwill still check the shasum after the product has been downloaded from Tanzu Network - [
download-product] A new env var,CACHE_CLEANUPhas 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-directoryif defined) if--stemcell-iaasis provided. certificate-authorityno longer requires--idif 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
-vfor--product-versionfound indownload-productandstage-product.
- Removed deprecated
tile-metadatacommand. Please useproduct-metadatacommand. - Removed deprecated
update-ssl-certificatecommand. Please useconfigure-opsmancommand. - Removed depreated
--download-stemcellflag fromdownload-product. If the--stemcell-iaasis 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-diffcommandconfig-templatecommandOM_VARS_ENVglobal flagOM_VARS_ENVflag underconfigure-*-authenticationcommands
- The
config-templatecommand will now generate one ops file for each collection when the--size-of-collectionsflag 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-collectionsvalue. The default behaviour ofconfig-templatewithout the--size-of-collectionsflag remains unchanged.
-
apply-changes --product-name <product> --config config.ymlwith errands defined inconfig.ymlthat were not in theproduct-namelist would fail. An explicit breakdown of how these flags interact:apply-changeswith theproduct-nameflag(s) defined--config config.ymlwith different products defined than provided in theproduct-namelist:- Succeeds with a warning message, but does not apply the errand, if a product exists in the
config.ymlfile, but was not passed in theproduct-namelist. - Fails if any products in the
product-namelist also exist in theconfig.ymlbut 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.ymlhas no product defined: succeeds.--config config.ymlwith same products defined as provided in theproduct-namelist: succeeds.
apply-chageswith NOproduct-nameflag(s) defined--config config.ymlwith different products defined than what exists in Ops Manager: failure.- If applying changes to all products, the products in
config.ymlmust be staged/installed.
- If applying changes to all products, the products in
--config config.ymlhas no product defined: succeeds.--config config.ymlwith same products defined as what exists in Ops Manager (does not need to include all staged/installed products): succeeds.
-
interpolatewill no longer append a newline to end of the output
download-productnow supports defining a customstemcell-versionin the config file. This flag is--stemcell-version, and requires--stemcell-iaasto be set. If--stemcell-versionis not set, butstemcell-iaasis set, the command will download the latest stemcell for the product.bosh-diffnow supports the--checkflag. If set, the command will fail if there are differences returned. This resolves issue #488]stage-productnow accepts a config file to define command line args. This matches patterns for automation available in other commands.
configure-opsmancommand has been added. This allows configuration of several Ops Manager settings. Most were previously not available to configure through anomcommand, thoughssl-certificatewas also configurable withupdate-ssl-certificate. For config examples, see the docs for the command. Supported top-level-keys:ssl-certificatepivotal-network-settingsrbac-settingsbanner-settingssyslog-settings
- EXPERIMENTAL
config-templatenow supports ops manager syslog in tiles. In the tile metadata, this property is turned on with theopsmanager_syslog: truefield. Tiles with this property enabled will now add the section toproduct.ymland create defaults indefault-vars.yml. - Added shorthand flag consistency to multiple commands.
--vars-fileshorthand is-land--varshorthand is-v - EXPERIMENTAL
config-templatecan 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-templatehas been updated to include placeholders fornetwork_name,singleton_availability_zone, andservice_network_nameinrequired-vars.ymlwhen 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
boshCLI.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. Theboshdoes not support this.
-
config-templateBug 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: usernameconfig-templatenow returns the following correct subsection inproduct.yml:.properties.maven_repositories: value: - key: spring password: secret: ((password)) url: https://repo.spring.io/libs-release username: usernameif 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-templategeneratedresource-vars.ymlthat had the potential to conflict with property names (spring cloud dataflow had a configurable property calledmax_in_flightwhich is also a resource config property).config-templatenow prepends all resource-vars withresource-var-. This prevents this entire class of conflicts. If usingconfig-templateto 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-certificatehas been deprecated in favor ofconfigure-opsman. This was done to allow extensibility for other endpoints on the Settings page. Please note thatconfigure-opsmanrequires a config file, and does not acceptcertificate-pemorprivate-key-pemas command line arguments. For config example, see the docs for the command.
configure-authenticationnow supports theOM_DECRYPTION_PASSPHRASEenvironment variable.
configure-directornow correctly handles when you don't name your iaas_configurationdefaulton vSphere. Previously, naming a configuration anything other thandefaultwould result in an extra, emptydefaultconfiguration. 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-productand 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*awsshould just bestemcell-iaas: awsnow. - Heavy stemcells could not be downloaded.
Support has now been added.
Force download of the heavy stemcell (if available) with the
--stemcell-heavyflag.
-
interpolatenow 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-globparam fordownload-productnow has an alias offile-glob. update-ssl-certificatenow supports passingcertificate-pemandprivate-key-pemas--configarguments. The command also supports the--vars-fileflag for interpolation. This closes issue #463.
-
The experimental command
product-diffhad been renamedbosh-diffand 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--directorflag can be used to show only the director diff. The--product-nameflag can be used to show one or more specific products.For example,
om bosh-diff --director --product-name cf --product-name p-healthwatchwill show the director, Pivotal Application Service, and Pivotal Healthwatch differences.
- The experimental command
product-diffhas 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-templatenow includes the option to use a local product file with--product-path. This resolves issue #413. apply-changescan 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_ENVwas not enabled on all commands that allows--vars-env.
-
We'd like to welcome back the
revert-staged-changescommand. 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-changesbecause 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.
interpolatecommand now has order precedence when a file or stdin is provided.--configwith a file always takes precedence--config -will read directly from STDIN- STDIN provided with no
--configwill use STDIN
- when using
--ignore-verifier-warningswithconfigure-directorthe HTTP Status 207 will be ignored when interacting with IAAS endpoints.
- EXPERIMENTAL
config-templatenow includesmax-in-flightfor all resources. (PR: @jghiloni) - When using
configure-productandconfigure-director, theadditional_vm_extensionsfor 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-authenticationnow support the--var,--vars-file, and--vars-envflags.- EXPERIMENTAL
config-templatenow supports the--config,--var,--vars-file, and--vars-envflags. (PR: @jghiloni)
-
download-productsupports 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.tgzfrom thesome-bucketbucket from the GCS account. -
download-productsupports 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.tgzfrom thepivnet-blobscontainer from thesome-storage-accountstorage account from Azure Storage. -
The commands
disable-director-verifiersanddisable-product-verifiershave 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-configandconfigure-director, theiaas_configuration_namewill 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_guidhad 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-certoption works in theenv.yml. A filename or string value can be used.
apply-changeswill no longer reattach when it finds an already running installation. to re-enable this feature, provide the--reattachflag. This makes the behavior ofapply-changeseasier to anticipate and specify whether applying all changes or applying changes to a particular product.
- EXPERIMENTAL
config-templatenow accepts--pivnet-file-globinstead of--product-file-glob. This is to create consistency with thedownload-productcommand's naming conventions. (PR: @poligraph)
staged-configwill now work again for Ops Manager versions <= 2.3. This solves issue #419
configure-directornow will configure VM Extensions before setting Resource Config. This fixes issue #411
-
expiring-certificatescommand 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-productandstaged-confignow have support for the/syslog_configurationsendpoint. This affects tiles, such as the Metrics tile, that do not return these properties nested in theproduct-propertiessection. 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-certificatecan now accept multiple--domains | -dflags. Comma separated values can be passed with a single--domains | -dflag, or using a--domains | -dflag 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-metadatahas 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-templatenow supports the--exclude-versionflag. If provided, the command will exclude the version directory in the--output-directorytree. The contents will with or without the flag will remain the same. Please note including the--exclude-versionflag will make it more difficult to track changes between versions unless using a version control system (such as git). (PR: @jghiloni) -
EXPERIMENTAL
config-templatesupports--pivnet-disable-sslto skip SSL validation. -
When interacting with an OpsManager, that OpsManager may have a custom CA cert. In the global options
--ca-certhas been added to allow the usage of that custom CA cert. The value of--ca-certcan be a file or command line string.
- When using
config-template(EXPERIMENTAL) ordownload-product, the--pivnet-skip-sslis honored when capturing the token.
tile-metadatahas been deprecated in favor ofproduct-metadata. This was done to increase naming consistency. Both commands currently exist and do exactly the same thing. Thetile-metadatacommand will be removed in a future release.
-
TLS v1.2 is the minimum version supported when connecting to an Ops Manager
-
EXPERIMENTAL
config-templatenow will provide required-vars in addition to default-vars. -
EXPERIMENTAL
config-templatewill 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-templateoutputproduct-default-vars.ymlhas been changed todefault-vars.yml -
staged-configincludes the propertymax_in_flightwill be included in theresource-configsection of a job. -
configure-productcan set the propertymax_in_flightin theresource-configsection 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-tokenis now optional indownload-productif a source is defined. (PR: @vchrisb)configure-authentication,configure-ldap-authentication, andconfigure-saml-authenticationcan 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-productsfromapply-changesThis 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-changeswill error with product not found if that product has not been staged.upload-stemcellnow accepts--floating falsein addition tofloating=false. This was done to offer consistency between all of the flags on the command.configure-directorhad a bug in whichiaas_configurationscould not be set on AWS/GCP/Azure because "POST" was unsupported for these IAASes (Multiple IAAS Configurations only work for vSphere and Openstack).configure-directorwill 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_configurationsORproperties.iaas_configuration
Was a release to make sure that brew upgrade works.
configure-ldap-authenticationandconfigure-saml-authenticationcan 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-templatewill 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-authenticationandom configure-saml-authenticationwill 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-clientto 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 interpolatenow allows for the-vflag 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-directornow supports custom VM types. (PR: @jghiloni) Refer to the VM Types Bosh documentation for IaaS specific use cases. For further info:configure-directorreadme. Please note this is an advanced feature, and should be used at your own discretion.download-productwill now return adownload-file.jsonifstemcell-iaasis defined but the product has no stemcell. Previously, this would exit gracefully, but not return a file.
- (EXPERIMENTAL)
pre-deploy-checkhas 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-productwill now include theproduct-versionindownload-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.ymlvalue: ((NAME))
om interpolate -c config.yml --vars-env OMWill evaluate to:
value: "123"
This closes issue #352
-
the file outputted by
download-productwill now use theproduct-nameas defined in the downloaded-product, not from the Tanzu Network slug. This fixes a mismatch between the two as documented in issue #351 -
bosh-envwill now setBOSH_ALL_PROXYwithout a trailing slash if one is provided. This closes issue #350
omwill now follow conventional Semantic Versioning, with breaking changes in major bumps, non-breaking changes for minor bumps, and bug fixes for patches.delete-installationnow 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-configno longer supports--include-credentialsthis functionality has been replaced by--no-redact. This can be paired with--include-placeholdersto 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-reportreturns 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 interpolatenow can take input from stdin. This can be used in conjunction with the newdiagnostic-reportcommand 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 /versionsThis will return the
versionsblock 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-confignow checksints andbools when filtering secrets -
configure-directorandstaged-directornow 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_configurationin yourproperties-configurationand useiaas-configurationsyou'll receive an error message that only one method of configuration can be used.
- new command
assign-multi-stemcellsupports 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-stemcellwill 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
omgo get-able again.
- the
upload-productflag--sha256has been changed to--shasum.upload-stemcellused the--shasumflag, and this change adds parity between the two. Using--shasuminstead of--sha256also future-proofs the flag when sha256 is no longer the de facto way of defining shasums.
download-productnow supports skipping ssl validation when specifying--pivnet-disable-ssldownload-productensures sha sum checking when downloading the file from Pivotal Networkupload-stemcellnow supports a--config(-c) flag to define all command line arguments in a config file. This givesupload-stemcellfeature parity withupload-product- Improved info messaging for
download-productto 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-templatecommand. 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-bucketis 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: iamis 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
--checkflag, 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-changesdue 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-productwould 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-productwill 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_optionfield when callingstaged-configto have better support for selectors.- this support also extends to
configure-product, which will accept bothselected_optionandoption_valueas the machine readable value.
- this support also extends to
download-productnow has support for downloading from an external s3 compatible blobstore using the--blobstore s3flag.staged-director-confignow supports ano-redactflag 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-installationprovides validation on the installation file to ensure- it exists
- it is a valid zip file
- it contains the
installation.ymlartifact indicative of an exported installation
- Fixed typo in
configure-directorvmextensions
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
deptogo mod. It now requires golang 1.11.4+. For information on go modules usage, see the golang wiki.
import-installationwill 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-producton opsman 2.1, it would fail because the completeness check does not work. To disable add the fieldvalidate-config-complete: falseto your config file. - fix the nil pointer dereference issue in
staged-productswhenomcannot reach OpsManager
download-productsupports grabbing for a version via a regular expression. Using--product-version-regexsorts 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-productno longer requiresdownload-stemcellto 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-extensionsusage
-
Increased the default connect-timeout from
5seconds 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-changesis 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_versioninstead of justproductandstemcell. 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-stemcellcommand to associate a specified stemcell to the product
- fix stemcell version check logic in
download-productcommand -- 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-directorfor configuring the bosh directory on OpsMan - removed command
set-errand-state, use theerrand-configwith your config with the commandconfigure-product
- add command
download-product, it can download product and associated stemcell from Pivnet - add
--pathto commandinterpolateso 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 whenguidcannot be associated #274
config-template(EXPERIMENTAL) &staged-config&staged-director-config: pluralize--include-placeholdersflagimport-installation: removeddecryption-passphrasefrom the arguments. Globaldecryption-passphraseflag 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-namebe read from config fileinterpolation: added--vars-envsupport tointerpolationconfigure-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-productsstaged-config: addproduct-nametop-level-key in the returned payload to work better withconfigure-productupload-product: able to validatesha256andproduct-versionbefore uploading- global: added a
decryption-passphraseto 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 interpolateno longer takes--output-fileflag.om interpolatetakes ops-files with-oinstead of--ops.om --format=json COMMANDis 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 intableformat will continue to do so by default.
FEATURES:
om configure-productaccepts ops-files.