Start up the server and shell as in the three-second tour.
Now you can install and then update the Hello World application.
Start by running the package install
command, as shown (with its output) in the following example:
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.
You can now curl the greeting
endpoint, as shown (with its output) in the following example:
$ curl http://localhost:8099/greeting Hello World! $ curl http://localhost:8099/about Hello World v1.0.0.RELEASE
We use a YAML file to update the release.
This application contains a Spring Boot @ConfigurationProperty
, named helloworld.greeting
, so we set that along with a standard Spring Boot property: endpoints.sensitive=false
.
We also bump the memory up to 2G, make the Boot actuator endpoint not sensitive, and set the port to 8100.
The helloworld-upgrade-local.yml
file contains the following code:
spec: applicationProperties: server.port: 8100 endpoints.sensitive: false helloworld.greeting: yo deploymentProperties: spring.cloud.deployer.memory: 2048m
The following example shows the release upgrade
command, with its output:
skipper:>release upgrade --release-name helloworldlocal --package-name helloworld --package-version 1.0.1 --file /home/mpollack/helloworld-upgrade-local.yml helloworldlocal has been upgraded. Now at version v2.
The --package-version 1.0.1
command line option is also used to upgrade to a newer version of the package.
The current upgrade strategy is simple: If the new app is healthy, the old app is removed. There is no rolling upgrade option. All new apps are deployed and checked for health. Then any previous versions are removed. More flexible upgrade strategies are planned in a future release of Skipper.
You can now curl the greeting
endpoint and the about
endpoint, as shown (with its output) in the following example:
$ curl http://localhost:8100/greeting yo $ curl http://localhost:8100/about Hello World v1.0.1.RELEASE
You can also view the endpoints in your browser.
The list
command shows you the current DEPLOYED
and DELETED
releases for every release name.
In this case there, is just one entry, as you can see with the release list
command, as follows:
skipper:>release list ╔═══════════════╤═══════╤═════════════╤════════╤══════════╤═════════╤═════════╤════════════════════════════════════════════════════╗ ║ Name │Version│Last updated │ Status │ Package │ Package │Platform │ Platform Status ║ ║ │ │ │ │ Name │ Version │ Name │ ║ ╠═══════════════╪═══════╪═════════════╪════════╪══════════╪═════════╪═════════╪════════════════════════════════════════════════════╣ ║helloworldlocal│2 │Fri Oct 27 │DEPLOYED│helloworld│1.0.1 │default │[helloworldlocal.helloworld-v2], State = ║ ║ │ │16:39:03 IST │ │ │ │ │[helloworldlocal.helloworld-v2-0=deployed] ║ ║ │ │2017 │ │ │ │ │ ║ ╚═══════════════╧═══════╧═════════════╧════════╧══════════╧═════════╧═════════╧════════════════════════════════════════════════════╝
You can get the full history of the release by using the history
command, as shown (with its output) in the following example:
skipper:>release history --release-name helloworldlocal ╔═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤════════════════╗ ║Version│ Last updated │ Status │Package Name│Package Version│ Description ║ ╠═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪════════════════╣ ║2 │Fri Oct 27 16:39:03 IST 2017│DEPLOYED│helloworld │1.0.1 │Upgrade complete║ ║1 │Fri Oct 27 16:37:59 IST 2017│DELETED │helloworld │1.0.0 │Delete complete ║ ╚═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧════════════════╝
To see what changed, you can look at the Skipper manifest for each release by using the manifest get
command, as shown (with its output) in the following example:
skipper:>manifest get --release-name helloworldlocal --release-version 2 --- # Source: helloworld.yml apiVersion: skipper.spring.io/v1 kind: SpringCloudDeployerApplication metadata: name: helloworld type: demo spec: resource: maven://org.springframework.cloud.samples:spring-cloud-skipper-samples-helloworld:1.0.1.RELEASE applicationProperties: server.port: 8100 endpoints.sensitive: false helloworld.greeting: yo deploymentProperties: spring.cloud.deployer.memory: 2048m spring.cloud.deployer.count: 1
The following example shows the manifest get
command and its output for version 1:
skipper:>manifest get --release-name helloworldlocal --release-version 1 --- # Source: helloworld.yml apiVersion: skipper.spring.io/v1 kind: SpringCloudDeployerApplication metadata: name: helloworld type: demo spec: resource: maven://org.springframework.cloud.samples:spring-cloud-skipper-samples-helloworld:1.0.0.RELEASE applicationProperties: server.port: 8099 deploymentProperties:
(A manifest diff
command is coming in a future release.)
Now we can use the rollback
command to deploy an older version of the application.
Since we have the manifest for that version, we have all we need to redeploy an earlier release, as shown (with its output) in the following example:
skipper:>release rollback --release-name helloworldlocal --release-version 1
helloworldlocal has been rolled back. Now at version v3.
![]() | Note |
---|---|
The history now shows a new |
The release history
command shows all the versions that have been deployed, as shown (with its output) in the following example:
skipper:>release history --release-name helloworldlocal ╔═══════╤════════════════════════════╤════════╤════════════╤═══════════════╤════════════════╗ ║Version│ Last updated │ Status │Package Name│Package Version│ Description ║ ╠═══════╪════════════════════════════╪════════╪════════════╪═══════════════╪════════════════╣ ║3 │Fri Oct 27 16:42:47 IST 2017│DEPLOYED│helloworld │1.0.0 │Upgrade complete║ ║2 │Fri Oct 27 16:39:03 IST 2017│DELETED │helloworld │1.0.1 │Delete complete ║ ║1 │Fri Oct 27 16:37:59 IST 2017│DELETED │helloworld │1.0.0 │Delete complete ║ ╚═══════╧════════════════════════════╧════════╧════════════╧═══════════════╧════════════════╝
You can now curl the greeting
endpoint and see the output of each endpoint, as follows:
$ curl http://localhost:8099/greeting Hello World! $ curl http://localhost:8099/about Hello World v1.0.0.RELEASE