Service Fabric Compose Deploy task

Azure Pipelines

Use this task in a build or release pipeline to deploy a Docker-compose application to a Service Fabric cluster. This task deploys an Azure Service Fabric application to a cluster according to the settings defined in the compose file.

Prerequisites

NOTE: This task is currently in preview and requires a preview version of Service Fabric that supports compose deploy. See /azure/service-fabric/service-fabric-docker-compose.

Service Fabric

  • This task uses a Service Fabric installation to connect and deploy to a Service Fabric cluster.

  • Azure Service Fabric Core SDK on the build agent.

YAML snippet

# Service Fabric Compose deploy
# Deploy a Docker Compose application to an Azure Service Fabric cluster
- task: ServiceFabricComposeDeploy@0
  inputs:
    clusterConnection: 
    #composeFilePath: '**/docker-compose.yml' 
    #applicationName: 'fabric:/Application1' 
    #registryCredentials: 'AzureResourceManagerEndpoint' # Options: azureResourceManagerEndpoint, containerRegistryEndpoint, usernamePassword, none
    #dockerRegistryConnection: # Optional
    #azureSubscription: # Required when registryCredentials == AzureResourceManagerEndpoint
    #registryUserName: # Optional
    #registryPassword: # Optional
    #passwordEncrypted: true # Optional
    #upgrade: # Optional
    #deployTimeoutSec: # Optional
    #removeTimeoutSec: # Optional
    #getStatusTimeoutSec: # Optional

Arguments

Argument Description
Cluster Connection The Azure Service Fabric service connection to use to connect and authenticate to the cluster.
Compose File Path Path to the compose file that is to be deployed. Can include wildcards and variables. Example: $(System.DefaultWorkingDirectory)/**/drop/projectartifacts/**/docker-compose.yml. Note: combining compose files is not supported as part of this task.
Application Name The Service Fabric Application Name of the application being deployed. Use fabric:/ as a prefix. Application Names within a Service Fabric cluster must be unique.
Registry Credentials Source Specifies how credentials for the Docker container registry will be provided to the deployment task:
Azure Resource Manager Endpoint: An Azure Resource Manager service connection and Azure subscription to be used to obtain a service principal ID and key for an Azure Container Registry.
Container Registry Endpoint: A Docker registry service connection. If a certificate matching the Server Certificate Thumbprint in the Cluster Connection is installed on the build agent, it will be used to encrypt the password; otherwise the password will not be encrypted and sent in clear text.
Username and Password: Username and password to be used. We recommend you encrypt your password using Invoke-ServiceFabricEncryptText (Check Password Encrypted). If you do not, and a certificate matching the Server Certificate Thumbprint in the Cluster Connection is installed on the build agent, it will be used to encrypt the password; otherwise the password will not be encrypted and sent in clear text.
None: No registry credentials are provided (used for accessing public container registries).
Deploy Timeout (s) Timeout in seconds for deploying the application.
Remove Timeout (s) Timeout in seconds for removing an existing application.
Get Status Timeout (s) Timeout in seconds for getting the status of an existing application.
Control options See Control options

Also see: Service Fabric PowerShell Utility

Open source

This task is open source on GitHub. Feedback and contributions are welcome.

Q & A

Do I need an agent?

You need at least one agent to run your build or release. Get an agent for Linux, macOS, or Windows.

I'm having problems. How can I troubleshoot them?

See Troubleshoot Build and Release.

I can't select a default agent pool and I can't queue my build or release. How do I fix this?

See Agent pools.