Hunt Graham on Wed, 11 Oct 2017 19:46:59

I'm attempting to port one of my companies services to Service Fabric. We are currently running on a scale-set with a custom image with our service. Every time we need to deploy, I have to build a whole new VHD. We've automated the process using Packer, but it's not ideal.

The service runs in a container, so I thought I thought Service-Fabric would be a good fit.

I've been going through the tutorial "Create a Linux Container Application".

I got the service deployed on a local SF cluster-- but I haven't been able to successfully push an update.

I'm following the documentation at How To Guides -> Manage Application Lifecycle -> Service Fabric CLI.

I did the following to push an update:

In ApplicationManifest.xml, change the version in the ApplicationManifest node to 2.0.0 and the ServiceManifestVersion in the ServiceManifestRef node to 2.0.0. In ServiceManifest.xml, I changed the ServiceManifest node Version attribute to 2.0.0 and the CodePackage node Version attribute to 2.0.0.

I made a small code change to, built the container, and pushed to my container registry. I then updated the ImageName node to point to the new image in ServiceManifest.xml

I then run:

sfctl application upload --path sf-test
sfctl application provision --application-type-build-path sf-test
sfctl store delete --content-path sf-test

Those work fine, and in the SF explorer at local:19080 I can the sf-testType version 2.0.0.

Then I run:

sfctl application upgrade --app-id sf-test --app-version 2.0.0 --parameters "{}" --mode Monitored

I get following error:

Error occurred in request., RetryError: HTTPConnectionPool(host='localhost', port=19080): Max retries exceeded with url: /Applications/sf-test/$/Upgrade?timeout=60&api-version=6.0 (Caused by ResponseError('too many 500 error responses',))

It's just a generic 500 error. I also tried running with the --verbose and --debug flags. No luck.

Any idea what could be going on here?  Is there a different process when pushing updates when using a Linux container?  Are there any logs I can look at to figure out what's going on?