// creating app with name f1 => apptype = Compose_f1 // create app with name f1 (fabric:/f1) // service name is from docker compose file public async Task CreateApp(string appName, string imagePath, int replicaCount) { var yaml = $"version: \"3\"\r\nservices:\r\n {appName}Service:\r\n image: {imagePath}\r\n ports:\r\n - \"{_nextAvailablePort++}:1337/http\"\r\n deploy:\r\n replicas: {replicaCount}"; var composeApplication = new ComposeApplication(appName, yaml); await _clusterManager.CreateComposeApp(composeApplication); //todo add locks _sfApps[appName] = new ServiceFabricApp(appName, $"{appName}Service"); }
public async Task CreateComposeApp(ComposeApplication composeApplication) { using (var response = await _client.PutAsJsonAsync( $"/ComposeDeployments/$/Create?api-version=4.0-preview&timeout=60", new { ApplicationName = composeApplication.ApplicationName, ComposeFileContent = composeApplication.ComposeFileContent, })) { response.EnsureSuccessStatusCode(); } }