Skipper Commands

22. Package Commands

Skipper’s package commands include the following:spring-doc.cn

This command searches existing packages.spring-doc.cn

NAME

package search - Search for packages.spring-doc.cn

SYNOPSYS

package search [[--name] string] [--details]spring-doc.cn

OPTIONS
--name string

wildcard expression to search for the package name
[Optional, default = <none>]
spring-doc.cn

--details boolean

to set for more detailed package metadata
[Optional, default = false]
spring-doc.cn

ALSO KNOWN AS

package listspring-doc.cn

The search or its alias list command shows all the packages available to be installed by the Skipper server, as shown (with output) in the following example:spring-doc.cn

skipper:>package search
╔═════════════════╤═══════╤════════════════════════════════════════════════════════════════════════════════╗
║      Name       │Version│                                  Description                                   ║
╠═════════════════╪═══════╪════════════════════════════════════════════════════════════════════════════════╣
║helloworld       │1.0.0  │The app has two endpoints, /about and /greeting in English.  Maven resource.    ║
║helloworld       │1.0.1  │The app has two endpoints, /about and /greeting in Portuguese.  Maven resource. ║
║helloworld-docker│1.0.1  │The app has two endpoints, /about and /greeting in Portuguese.  Docker resource.║
║helloworld-docker│1.0.0  │The app has two endpoints, /about and /greeting in English.  Docker resource.   ║
╚═════════════════╧═══════╧════════════════════════════════════════════════════════════════════════════════╝
skipper:>package list
╔═════════════════╤═══════╤════════════════════════════════════════════════════════════════════════════════╗
║      Name       │Version│                                  Description                                   ║
╠═════════════════╪═══════╪════════════════════════════════════════════════════════════════════════════════╣
║helloworld       │1.0.0  │The app has two endpoints, /about and /greeting in English.  Maven resource.    ║
║helloworld       │1.0.1  │The app has two endpoints, /about and /greeting in Portuguese.  Maven resource. ║
║helloworld-docker│1.0.1  │The app has two endpoints, /about and /greeting in Portuguese.  Docker resource.║
║helloworld-docker│1.0.0  │The app has two endpoints, /about and /greeting in English.  Docker resource.   ║
╚═════════════════╧═══════╧════════════════════════════════════════════════════════════════════════════════╝

The search command can use --name option to search for the package name containing the given option value, as shown (with output) in the following example:spring-doc.cn

skipper:>package search --name helloworld-
╔═════════════════╤═══════╤════════════════════════════════════════════════════════════════════════════════╗
║      Name       │Version│                                  Description                                   ║
╠═════════════════╪═══════╪════════════════════════════════════════════════════════════════════════════════╣
║helloworld-docker│1.0.0  │The app has two endpoints, /about and /greeting in English.  Docker resource.   ║
║helloworld-docker│1.0.1  │The app has two endpoints, /about and /greeting in Portuguese.  Docker resource.║
╚═════════════════╧═══════╧════════════════════════════════════════════════════════════════════════════════╝

To search for more details of the packages, the --details option can be used, as shown (with output) in the following example:spring-doc.cn

skipper:>package search --name helloworld- --details
╔════════════════╤═════════════════════════════════════════════════════════════════════════════╗
║      Name      │                                    Value                                    ║
╠════════════════╪═════════════════════════════════════════════════════════════════════════════╣
║apiVersion      │v1                                                                           ║
║origin          │A sample repository for using Skipper                                        ║
║repositoryId    │1                                                                            ║
║kind            │skipper                                                                      ║
║name            │helloworld-docker                                                            ║
║version         │1.0.0                                                                        ║
║packageSourceUrl│https://github.com/markpollack/skipper-sample-repository                     ║
║packageHomeUrl  │https://github.com/markpollack/skipper-sample-repository                     ║
║tags            │web, demo, docker, helloworld                                                ║
║maintainer      │https://github.com/markpollack                                               ║
║description     │The app has two endpoints, /about and /greeting in English.  Docker resource.║
║sha256          │                                                                             ║
║iconUrl         │                                                                             ║
╚════════════════╧═════════════════════════════════════════════════════════════════════════════╝

╔════════════════╤════════════════════════════════════════════════════════════════════════════════╗
║      Name      │                                     Value                                      ║
╠════════════════╪════════════════════════════════════════════════════════════════════════════════╣
║apiVersion      │v1                                                                              ║
║origin          │A sample repository for using Skipper                                           ║
║repositoryId    │1                                                                               ║
║kind            │skipper                                                                         ║
║name            │helloworld-docker                                                               ║
║version         │1.0.1                                                                           ║
║packageSourceUrl│https://github.com/markpollack/skipper-sample-repository                        ║
║packageHomeUrl  │https://github.com/markpollack/skipper-sample-repository                        ║
║tags            │web, demo, docker, helloworld                                                   ║
║maintainer      │https://github.com/markpollack                                                  ║
║description     │The app has two endpoints, /about and /greeting in Portuguese.  Docker resource.║
║sha256          │                                                                                ║
║iconUrl         │                                                                                ║
╚════════════════╧════════════════════════════════════════════════════════════════════════════════╝

22.2. Upload

This command uploads a package .zip file, as shown (with output) in the following example:spring-doc.cn

NAME

package upload - Upload a package.spring-doc.cn

SYNOPSYS

package upload [--path] string [[--repo-name] string]spring-doc.cn

OPTIONS
--path string

the package to be uploaded
[Mandatory]
spring-doc.cn

--repo-name string

the local repository name to upload to
[Optional, default = <none>]
spring-doc.cn

skipper:>package upload --path /path-to-package/mypackage-1.0.0.zip
Package uploaded successfully:[mypackage:1.0.0]

If no --repo-name is set, the upload command uses local as the repository to upload.spring-doc.cn

22.3. Install

This command installs a package, as shown (with output) in the following example:spring-doc.cn

NAME

package install - Install a package.spring-doc.cn

SYNOPSYS

package install [--package-name] string [[--package-version] string] [[--file] file] [[--properties] string] [--release-name] string [[--platform-name] string]spring-doc.cn

OPTIONS
--package-name string

name of the package to install
[Mandatory]
spring-doc.cn

--package-version string

version of the package to install, if not specified latest version will be used
[Optional, default = <none>]
spring-doc.cn

--file file

specify values in a YAML file
[Optional, default = <none>]
spring-doc.cn

--properties string

the comma separated set of properties to override during install
[Optional, default = <none>]
spring-doc.cn

--release-name string

the release name to use
[Mandatory]
spring-doc.cn

--platform-name string

the platform name to use
[Optional, default = default]
spring-doc.cn

skipper:>package install --release-name helloworldlocal --package-name helloworld --package-version 1.0.0 --properties spec.applicationProperties.server.port=8099
Released helloworldlocal. Now at version v1.

If no package-version is specified, then the latest package version by the given package-name is considered.spring-doc.cn

If no platform-name is specified, the platform name, default, is used.spring-doc.cn

The properties can either be provided through comma separated YAML string by using the --properties option or through a YAML file by using the --file option.spring-doc.cn

22.4. Delete

This command deletes a package.spring-doc.cn

NAME

package delete - Delete a package.spring-doc.cn

SYNOPSYS

package delete [--package-name] stringspring-doc.cn

OPTIONS
--package-name string

the package name to be deleted
[Mandatory]
spring-doc.cn

You can only delete a package that is in a local (database backed) repository, as shown (with output) in the following example:spring-doc.cn

skipper:>package delete --package-name helloworld
Can not delete package [helloworld], associated repository [experimental] is remote.

23. Release Commands

Skipper’s release commands include the following:spring-doc.cn

23.1. List

This command lists the latest deployed or failed release.spring-doc.cn

NAME

release list - List the latest version of releases with status of deployed or failed.spring-doc.cn

SYNOPSYS

release list [[--release-name] string]spring-doc.cn

OPTIONS
--release-name string

wildcard expression to search by release name
[Optional, default = <none>]
spring-doc.cn

Listing the latest deployed or failed release, as shown (with output) in the following example:spring-doc.cn

skipper:>release list
╔═══════════════╤═══════╤═════════════════════════╤════════╤═══════════╤══════════════╤════════════╤══════════════════════════════════════════════════════════════════════════════╗
║     Name      │Version│      Last updated       │ Status │  Package  │   Package    │  Platform  │                               Platform Status                                ║
║               │       │                         │        │   Name    │   Version    │    Name    │                                                                              ║
╠═══════════════╪═══════╪═════════════════════════╪════════╪═══════════╪══════════════╪════════════╪══════════════════════════════════════════════════════════════════════════════╣
║helloworldlocal│3      │Mon Oct 30 17:57:41 IST  │DEPLOYED│helloworld │1.0.0         │default     │[helloworldlocal.helloworld-v3], State =                                      ║
║               │       │2017                     │        │           │              │            │[helloworldlocal.helloworld-v3-0=deployed]                                    ║
╚═══════════════╧═══════╧═════════════════════════╧════════╧═══════════╧══════════════╧════════════╧══════════════════════════════════════════════════════════════════════════════╝

23.2. Status

This command shows a release status.spring-doc.cn

NAME

release status - Status for a last known release version.spring-doc.cn

SYNOPSYS

release status [--release-name] string [[--release-version] integer]spring-doc.cn

OPTIONS
--release-name string

release name
[Mandatory]
[may not be null]
spring-doc.cn

--release-version integer

the specific release version.
[Optional, default = <none>]
spring-doc.cn

Shows the status of a specific release and version, as shown (with output) in the following example:spring-doc.cn

skipper:>release status --release-name helloworldlocal
╔═══════════════╤═══════════════════════════════════════════════════════════════════════════════════╗
║Last Deployed  │Mon Oct 30 17:53:50 IST 2017                                                       ║
║Status         │DEPLOYED                                                                           ║
║Platform Status│All applications have been successfully deployed.                                  ║
║               │[helloworldlocal.helloworld-v2], State = [helloworldlocal.helloworld-v2-0=deployed]║
╚═══════════════╧═══════════════════════════════════════════════════════════════════════════════════╝

If no --release-version specified, the latest release version is used. The following example shows the command with the --release-version option:spring-doc.cn

skipper:>release status --release-name helloworldlocal --release-version 1
╔═══════════════╤════════════════════════════════════════════════════════════════════════╗
║Last Deployed  │Mon Oct 30 17:52:57 IST 2017                                            ║
║Status         │DELETED                                                                 ║
║Platform Status│The applications are known to the system, but is not currently deployed.║
║               │[helloworldlocal.helloworld-v1], State = [unknown]                      ║
╚═══════════════╧════════════════════════════════════════════════════════════════════════╝

23.3. Upgrade

This command upgrades a package.spring-doc.cn

NAME

release upgrade - Upgrade a release.spring-doc.cn

SYNOPSYS

release upgrade [--release-name] string [--package-name] string [[--package-version] string] [[--file] file] [[--properties] string] [[--timeout-expression] string]spring-doc.cn

OPTIONS
--release-name string

The name of the release to upgrade
[Mandatory]
spring-doc.cn

--package-name string

the name of the package to use for the upgrade
[Mandatory]
spring-doc.cn

--package-version string

the version of the package to use for the upgrade, if not specified latest version will be used
[Optional, default = <none>]
spring-doc.cn

--file file

specify values in a YAML file
[Optional, default = <none>]
spring-doc.cn

--properties string

the comma separated set of properties to override during upgrade
[Optional, default = <none>]
spring-doc.cn

--timeout-expression string

the expression for upgrade timeout
[Optional, default = <none>]
spring-doc.cn

--force	force upgrade
	[Optional, default = false]
--app-names  string
	application names to force upgrade. If no specific list is provided, all the apps in the packages are force upgraded
	[Optional, default = <none>]

Upgrades a package, as shown (with output) in the following example:spring-doc.cn

skipper:>release upgrade --release-name helloworldlocal --package-name helloworld --package-version 1.0.0 --properties spec.applicationProperties.server.port=9090
helloworldpcf has been upgraded.  Now at version v2.

The manifest for this release would look like this:spring-doc.cn

"apiVersion": "skipper.spring.io/v1"
"kind": "SpringCloudDeployerApplication"
"metadata":
  "name": "helloworld"
  "type": "demo"
"spec":
  "resource": "maven://org.springframework.cloud.samples:spring-cloud-skipper-samples-helloworld"
  "version": "1.0.0.RELEASE"
  "applicationProperties":
    "server.port": "9090"
  "deploymentProperties": !!null "null"

If no package-version is specified, the latest package version by the given --package-name option is considered. The properties can either be provided through comma separated YAML string by using the --properties option or through a YAML file by using the --file option.spring-doc.cn

An upgrade can be done by overriding the package version or by keeping the existing package version but overriding the properties. When overriding the package version, it needs to accompany with the corresponding properties as the existing properties are not carried over. In a future release, we plan to introduce a --reuse-properties command that will carry the current release properties over to the next release to be made.

For instance, if the package version is not changed but only other properties are changed, the manifest would add the new properties with the existing properties of the same package version.spring-doc.cn

skipper:>release upgrade --release-name helloworldlocal --package-name helloworld --package-version 1.0.0 --properties spec.applicationProperties.log.level=DEBUG
helloworldpcf has been upgraded.  Now at version v3.
"apiVersion": "skipper.spring.io/v1"
"kind": "SpringCloudDeployerApplication"
"metadata":
  "name": "helloworld"
  "type": "demo"
"spec":
  "resource": "maven://org.springframework.cloud.samples:spring-cloud-skipper-samples-helloworld"
  "version": "1.0.0.RELEASE"
  "applicationProperties":
    "server.port": "9090"
    "log.level": "DEBUG"
  "deploymentProperties": !!null "null"

Instead, if the upgrade is performed with a new package version as follows,spring-doc.cn

skipper:>release upgrade --release-name helloworldlocal --package-name helloworld --package-version 1.0.1
helloworldpcf has been upgraded.  Now at version v3.

Since the package version is changed, the manifest wouldn’t carry the properties from the existing release.spring-doc.cn

skipper:>manifest get helloworldlocal
"apiVersion": "skipper.spring.io/v1"
"kind": "SpringCloudDeployerApplication"
"metadata":
  "name": "helloworld"
  "type": "demo"
"spec":
  "resource": "maven://org.springframework.cloud.samples:spring-cloud-skipper-samples-helloworld"
  "version": "1.0.1.RELEASE"
  "applicationProperties": !!null "null"
  "deploymentProperties": !!null "null"

When performing an update on a package that contains nested packages, use the name of the package as a prefix in the property string or as the first level in the YAML document. For example, the ticktock package that contains a time and a log application, a command to upgrade the log application would be as follows:spring-doc.cn

skipper:>release upgrade --release-name ticktockskipper --package-name ticktock --file /home/mpollack/log-level-change.yml

where log-level-change.yml contains the following:spring-doc.cn

log:
  version: 1.1.1.RELEASE
  spec:
    applicationProperties:
      server.port: 9999
      endpoints.sensitive: false
      log.level: ERROR

Since it is a common use-case to change only the version of the application, the packages can list the version as a top-level property in the values.yml file. For example, in the test package ticktock (located here), values.yml contains the following:spring-doc.cn

version: 1.1.0.RELEASE
spec:
  applicationProperties:
    log.level: DEBUG
  deploymentProperties:
    memory: 1024m

You can then use the --properties option in the upgrade command, as shown in the following example:spring-doc.cn

skipper:>release upgrade --release-name ticktockskipper --package-name ticktock --properties log.version=1.1.1.RELEASE

You can use --timeout-expression to alter timeout setting used to wait healthy applications when server is in state to do that. Global setting to override is spring.cloud.skipper.server.strategies.healthcheck.timeoutInMillis mentioned earlier. More about expression itself, see Timeout Expression.spring-doc.cn

skipper:>release upgrade --release-name ticktockskipper --package-name ticktock --timeout-expression=30s

The --force option is used to deploy new instances of currently deployed applications. In other words, Skipper will upgrade the application again even if the manifest is unchanged. This behavior is needed in the case when configuration information is obtained by the application itself at startup time, for example from Spring Cloud Config Server. You can specify which applications for force upgrade by using the option --app-names. If you do not specify any application names, all the applications will be force upgraded. You can specify --force and --app-names options together with --properties or --file options.spring-doc.cn

Following example describes force upgrade:spring-doc.cn

First, install the package ticktock that has time and log apps.spring-doc.cn

skipper:>package upload --repo-name local --path spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/ticktock/ticktock-1.0.0.zip
Package uploaded successfully:[ticktock:1.0.0]

skipper:>package install --package-name ticktock --release-name a1
Released a1. Now at version v1.

skipper:>release list
╔════╤═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤═════════════╤═════════════════════════════════════════════╗
║Name│Version│        Last updated        │ Status │Package Name│Package Version│Platform Name│               Platform Status               ║
╠════╪═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪═════════════╪═════════════════════════════════════════════╣
║a1  │1      │Thu Sep 13 08:34:50 IST 2018│DEPLOYED│ticktock    │1.0.0          │default      │[a1.log-v1], State = [a1.log-v1-0=deployed]  ║
║    │       │                            │        │            │               │             │[a1.time-v1], State = [a1.time-v1-0=deployed]║
╚════╧═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧═════════════╧═════════════════════════════════════════════╝

skipper:>release history --release-name a1
╔═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤════════════════╗
║Version│        Last updated        │ Status │Package Name│Package Version│  Description   ║
╠═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪════════════════╣
║1      │Thu Sep 13 08:34:50 IST 2018│DEPLOYED│ticktock    │1.0.0          │Install complete║
╚═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧════════════════╝

Now, perform the upgrade even though there are no explicit differences between the latest and the current package.spring-doc.cn

skipper:>release upgrade --release-name a1 --package-name ticktock
Package to upgrade has no difference than existing deployed/deleted package. Not upgrading.

If the upgrade needs to be forced for all the apps of ticktock (for both time and log)spring-doc.cn

skipper:>release upgrade --release-name a1 --package-name ticktock --force
a1 has been upgraded.  Now at version v2.
skipper:>release history --release-name a1
╔═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤════════════════════════╗
║Version│        Last updated        │ Status │Package Name│Package Version│      Description       ║
╠═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪════════════════════════╣
║2      │Thu Sep 13 08:35:53 IST 2018│UNKNOWN │ticktock    │1.0.0          │Upgrade install underway║
║1      │Thu Sep 13 08:34:50 IST 2018│DEPLOYED│ticktock    │1.0.0          │Install complete        ║
╚═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧════════════════════════╝

skipper:>release history --release-name a1
╔═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤════════════════╗
║Version│        Last updated        │ Status │Package Name│Package Version│  Description   ║
╠═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪════════════════╣
║2      │Thu Sep 13 08:35:53 IST 2018│DEPLOYED│ticktock    │1.0.0          │Upgrade complete║
║1      │Thu Sep 13 08:34:50 IST 2018│DELETED │ticktock    │1.0.0          │Delete complete ║
╚═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧════════════════╝

If the force upgrade needs to be done for a specific list of applications, then --app-names option can be used.spring-doc.cn

skipper:>release upgrade --release-name a1 --package-name ticktock --force --app-names log
a1 has been upgraded.  Now at version v3.
skipper:>release history a1
╔═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤════════════════╗
║Version│        Last updated        │ Status │Package Name│Package Version│  Description   ║
╠═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪════════════════╣
║3      │Thu Sep 13 08:36:51 IST 2018│DEPLOYED│ticktock    │1.0.0          │Upgrade complete║
║2      │Thu Sep 13 08:35:53 IST 2018│DELETED │ticktock    │1.0.0          │Delete complete ║
║1      │Thu Sep 13 08:34:50 IST 2018│DELETED │ticktock    │1.0.0          │Delete complete ║
╚═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧════════════════╝

23.4. Rollback

This command rolls back the release.spring-doc.cn

NAME

release rollback - Rollback the release to a previous or a specific release.spring-doc.cn

SYNOPSYS

release rollback [--release-name] string [[--release-version] int] [[--timeout-expression] string]spring-doc.cn

OPTIONS
--release-name string

the name of the release to rollback
[Mandatory]
spring-doc.cn

--release-version int

the specific release version to rollback to. Not specifying the value rolls back to the previous release.
[Optional, default = 0]
spring-doc.cn

--timeout-expression string

the expression for rollback timeout
[Optional, default = <none>]
spring-doc.cn

Rolls back the release to a specific version, as shown (with output) in the following example:spring-doc.cn

skipper:>release rollback --release-name helloworldlocal --release-version 1
helloworldlocal has been rolled back.  Now at version v3.

If no --release-version is specified, then the rollback version is the previous stable release (either in DELETED or DEPLOYED status).spring-doc.cn

You can use --timeout-expression to alter timeout setting used to wait healthy applications when server is in state to do that. Global setting to override is spring.cloud.skipper.server.strategies.healthcheck.timeoutInMillis mentioned earlier. More about expression itself, see Timeout Expression.spring-doc.cn

23.5. History

This command shows the history of a specific release.spring-doc.cn

NAME

release history - List the history of versions for a given release.spring-doc.cn

SYNOPSYS

release history [--release-name] stringspring-doc.cn

OPTIONS
--release-name string

wildcard expression to search by release name
[Mandatory]
*[may not be null]
spring-doc.cn

Showing the history of a specific release, as shown (with output) in the following example:spring-doc.cn

skipper:>release history --release-name helloworldlocal
╔═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤════════════════╗
║Version│        Last updated        │ Status │Package Name│Package Version│  Description   ║
╠═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪════════════════╣
║3      │Mon Oct 30 17:57:41 IST 2017│DEPLOYED│helloworld  │1.0.0          │Upgrade complete║
║2      │Mon Oct 30 17:53:50 IST 2017│DELETED │helloworld  │1.0.0          │Delete complete ║
║1      │Mon Oct 30 17:52:57 IST 2017│DELETED │helloworld  │1.0.0          │Delete complete ║
╚═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧════════════════╝

23.6. Delete

This command deletes a specific release’s latest deployed revision.spring-doc.cn

NAME

release delete - Delete the release.spring-doc.cn

SYNOPSYS

release delete [--release-name] string [--delete-package]spring-doc.cn

OPTIONS
--release-name string

the name of the release to delete
[Mandatory]
spring-doc.cn

--delete-package delete the release package

[Optional, default = false]
spring-doc.cn

Deleting a specific release’s latest deployed revision, undeploying the application or applications, as shown (with output) in the following example:spring-doc.cn

skipper:>release delete --release-name helloworldlocal
helloworldlocal has been deleted.

23.7. Cancel

This command attempts cancellation of existing release operation.spring-doc.cn

NAME

release cancel - Request a cancellation of current release operation.spring-doc.cn

SYNOPSYS

release cancel [--release-name] stringspring-doc.cn

OPTIONS
--release-name string

the name of the release to cancel
[Mandatory]
spring-doc.cn

This command can be used to attempt a cancel for a running release operation if it supports it and release is currently in state where any type of cancellation can be attempted. For example during an upgrade server will delete old applications if new applications are detected healtly. Before state is transitioned to deleting old applications, it is possible to request cancellation of whole upgrade procedure.spring-doc.cn

One other use case is that if new applications are failed and server will timeout waiting healtly applications, it’s convenient to cancel operation without waiting full timeout to happen.spring-doc.cn

Here is an example how cancellation is attempted when upgraded applications fail:spring-doc.cn

skipper:>package install --package-name testapp --package-version 1.0.0 --release-name mytestapp
Released mytestapp. Now at version v1.

skipper:>release history --release-name mytestapp
╔═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤════════════════╗
║Version│        Last updated        │ Status │Package Name│Package Version│  Description   ║
╠═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪════════════════╣
║1      │Thu May 17 11:18:07 BST 2018│DEPLOYED│testapp     │1.0.0          │Install complete║
╚═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧════════════════╝

skipper:>release upgrade --package-name testapp --package-version 1.1.0 --release-name mytestapp
mytestapp has been upgraded.  Now at version v2.

skipper:>release history --release-name mytestapp
╔═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤════════════════════════╗
║Version│        Last updated        │ Status │Package Name│Package Version│      Description       ║
╠═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪════════════════════════╣
║2      │Thu May 17 11:18:52 BST 2018│UNKNOWN │testapp     │1.1.0          │Upgrade install underway║
║1      │Thu May 17 11:18:07 BST 2018│DEPLOYED│testapp     │1.0.0          │Install complete        ║
╚═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧════════════════════════╝

skipper:>release status --release-name mytestapp
╔═══════════════╤═══════════════════════════════════════════════════════════════╗
║Last Deployed  │Thu May 17 11:18:52 BST 2018                                   ║
║Status         │UNKNOWN                                                        ║
║Platform Status│All apps have failed deployment.                               ║
║               │[mytestapp.testapp-v2], State = [mytestapp.testapp-v2-0=failed]║
╚═══════════════╧═══════════════════════════════════════════════════════════════╝

skipper:>release cancel --release-name mytestapp
Cancel request for release mytestapp sent

skipper:>release history --release-name mytestapp
╔═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤═════════════════════════╗
║Version│        Last updated        │ Status │Package Name│Package Version│       Description       ║
╠═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪═════════════════════════╣
║2      │Thu May 17 11:18:52 BST 2018│FAILED  │testapp     │1.1.0          │Cancelled after 39563 ms.║
║1      │Thu May 17 11:18:07 BST 2018│DEPLOYED│testapp     │1.0.0          │Install complete         ║
╚═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧═════════════════════════╝

24. Manifest Commands

Skipper’s manifest has only one command: get.spring-doc.cn

24.1. Get

Thsi command shows a manifest.spring-doc.cn

NAME

manifest get - Get the manifest for a releasespring-doc.cn

SYNOPSYS

manifest get [--release-name] string [[--release-version] integer]spring-doc.cn

OPTIONS
--release-name string

release name
[Mandatory]
[may not be null]
spring-doc.cn

--release-version integer

specific release version.
[Optional, default = <none>]
spring-doc.cn

The manifest get command shows the manifest used for a specific release, as shown (with output) in the following example:spring-doc.cn

skipper:>manifest get --release-name helloworldk8s

---
# Source: template.yml
apiVersion: skipper.spring.io/v1
kind: SpringCloudDeployerApplication
metadata:
  name: helloworld-docker
spec:
  resource: docker:springcloud/spring-cloud-skipper-samples-helloworld:1.0.0.RELEASE
  applicationProperties:
  deploymentProperties:
    spring.cloud.deployer.kubernetes.createNodePort: 32123

25. Platform commands

Skipper’s platform has only one command: list.spring-doc.cn

25.1. List

This command lists platforms.spring-doc.cn

NAME

platform list - List platformsspring-doc.cn

SYNOPSYS

platform listspring-doc.cn

The platform list command shows the list all the available deployment platform accounts, as shown (with output) in the following example:spring-doc.cn

skipper:>platform list
╔════════╤════════════╤══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║  Name  │    Type    │                                                                         Description                                                                          ║
╠════════╪════════════╪══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╣
║default │local       │ShutdownTimeout = [30], EnvVarsToInherit = [TMP,LANG,LANGUAGE,LC_.*,PATH], JavaCmd =                                                                          ║
║        │            │[/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/bin/java], WorkingDirectoriesRoot = [/var/folders/t3/qf1wkpwj4lgd9gjccwk0wr7h0000gp/T], ║
║        │            │DeleteFilesOnExit = [true]                                                                                                                                    ║
║cf-dev  │cloudfoundry│org = [scdf-ci], space = [ilaya-space], url = [https://api.run.pivotal.io]                                                                                    ║
║minikube│kubernetes  │master url = [https://192.168.99.101:8443/], namespace = [default], api version = [v1]                                                                        ║
╚════════╧════════════╧══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝

26. Repository Commands

Skipper’s repository commands include the following:spring-doc.cn

26.1. List

This command list repositories.spring-doc.cn

NAME

repo list - List package repositoriesspring-doc.cn

SYNOPSYS

repo listspring-doc.cn

List repositories as shown (with output) in the following example:spring-doc.cn

skipper:>repo list
╔════════════╤═══════════════════════════════════════════════════════════╤═════╤═════╗
║    Name    │                            URL                            │Local│Order║
╠════════════╪═══════════════════════════════════════════════════════════╪═════╪═════╣
║experimental│https://skipper-repository.cfapps.io/repository/experimental│false│0    ║
║local       │https://10.55.13.45:7577                                    │true │1    ║
╚════════════╧═══════════════════════════════════════════════════════════╧═════╧═════╝

If a repository is local, it is backed by Skipper’s database and you can upload packages to the repository. If it is not local, it is a remote repository and you can only read packages. The packages in a remote repository are updated outside of Skipper’s control. The 1.0 release only polls the remote repository for contents upon server startup. Follow issue GH-262 for more on adding support for dynamic updating of remote repository metadata.spring-doc.cn

27. Skipper Server Commands

Skipper’s package commands include the following:spring-doc.cn

27.1. Config

This command configures the shell to reference the HTTP API endpoint of the Skipper Server.spring-doc.cn

NAME

skipper config - Configure the Spring Cloud Skipper REST server to use.spring-doc.cn

SYNOPSYS

skipper config [[--uri] string] [[--username] string] [[--password] string] [[--credentials-provider-command] string] [--skip-ssl-validation]spring-doc.cn

OPTIONS
--uri string

the location of the Spring Cloud Skipper REST endpoint
[Optional, default = localhost:7577/api]
spring-doc.cn

--username string

the username for authenticated access to the Admin REST endpoint
[Optional, default = <none>]
spring-doc.cn

--password string

the password for authenticated access to the Admin REST endpoint (valid only with a username)
[Optional, default = <none>]
spring-doc.cn

--credentials-provider-command string

a command to run that outputs the HTTP credentials used for authentication
[Optional, default = <none>]
spring-doc.cn

--skip-ssl-validation

accept any SSL certificate (even self-signed)
[Optional, default = <none>]
spring-doc.cn

Configures shell as shown in the following example:spring-doc.cn

skipper:>skipper config --uri https://localhost:8443/api

When using OAuth, you can use the username and password options.spring-doc.cn

From within the Skipper Shell you can also provide credentials, as shown in the following example:spring-doc.cn

skipper:> skipper config --uri https://localhost:7577/api --username my_username --password my_password

See the [configuration-security] section for more information.spring-doc.cn

27.2. Info

This command shows server info.spring-doc.cn

NAME

skipper info - Show the Skipper server being used.spring-doc.cn

SYNOPSYS

skipper infospring-doc.cn

Show which server version is being used, as shown (with output) in the following example:spring-doc.cn

skipper:>info
Spring Cloud Skipper Server v1.0.0.2.11.5

28. Generic Usage

This section contains generic notes about commands.spring-doc.cn

28.1. Timeout Expression

  • A regular long representation (using milliseconds as the default unit)spring-doc.cn

  • The standard ISO-8601 format used by java.util.Durationspring-doc.cn

  • A more readable format where the value and the unit are coupled (e.g. 10s means 10 seconds)spring-doc.cn

To specify a session timeout of 30 seconds, 30, PT30S and 30s are all equivalent. A read timeout of 500ms can be specified in any of the following form: 500, PT0.5S and 500ms.spring-doc.cn

You can also use any of the supported unit. These are:spring-doc.cn