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: 2048mThe 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