From 3ee2e20f8e1e00f4ab955a96a8c6f0774142c5eb Mon Sep 17 00:00:00 2001 From: Thomas Krzero Date: Mon, 20 Nov 2017 14:44:23 +0100 Subject: [PATCH] feat(services): add the ability to specify a target for secrets (#1365) --- .../createService/createServiceController.js | 5 ++++- .../createService/includes/secret.html | 20 ++++++++++++++----- app/components/service/includes/secrets.html | 12 +++++++++-- app/components/service/serviceController.js | 17 ++++++++++++---- 4 files changed, 42 insertions(+), 12 deletions(-) diff --git a/app/components/createService/createServiceController.js b/app/components/createService/createServiceController.js index 7f7ef4498..324e8c481 100644 --- a/app/components/createService/createServiceController.js +++ b/app/components/createService/createServiceController.js @@ -82,7 +82,7 @@ function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, C }; $scope.addSecret = function() { - $scope.formValues.Secrets.push({}); + $scope.formValues.Secrets.push({ overrideTarget: false }); }; $scope.removeSecret = function(index) { @@ -275,6 +275,9 @@ function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, C if (secret.model) { var s = SecretHelper.secretConfig(secret.model); s.File.Name = s.SecretName; + if (secret.overrideTarget && secret.target && secret.target !== '') { + s.File.Name = secret.target; + } secrets.push(s); } }); diff --git a/app/components/createService/includes/secret.html b/app/components/createService/includes/secret.html index fdf95a01d..aca1f5264 100644 --- a/app/components/createService/includes/secret.html +++ b/app/components/createService/includes/secret.html @@ -1,7 +1,7 @@
- Secrets will be available under /run/secrets/$SECRET_NAME in containers. + By default, secrets will be available under /run/secrets/$SECRET_NAME in containers.
@@ -12,16 +12,26 @@
-
+
secret
- +
+ target + +
+
+
+ + +
+ +
diff --git a/app/components/service/includes/secrets.html b/app/components/service/includes/secrets.html index 4a2d16572..2383345b4 100644 --- a/app/components/service/includes/secrets.html +++ b/app/components/service/includes/secrets.html @@ -5,10 +5,18 @@ diff --git a/app/components/service/serviceController.js b/app/components/service/serviceController.js index 17e1bbb9f..7a90b15ac 100644 --- a/app/components/service/serviceController.js +++ b/app/components/service/serviceController.js @@ -75,10 +75,16 @@ function ($q, $scope, $transition$, $state, $location, $timeout, $anchorScroll, $scope.updateConfig = function updateConfig(service) { updateServiceArray(service, 'ServiceConfigs', service.ServiceConfigs); }; - $scope.addSecret = function addSecret(service, secret) { - if (secret && service.ServiceSecrets.filter(function(serviceSecret) { return serviceSecret.Id === secret.Id;}).length === 0) { - service.ServiceSecrets.push({ Id: secret.Id, Name: secret.Name, FileName: secret.Name, Uid: '0', Gid: '0', Mode: 444 }); - updateServiceArray(service, 'ServiceSecrets', service.ServiceSecrets); + $scope.addSecret = function addSecret(service, newSecret) { + if (newSecret.secret) { + var filename = newSecret.secret.Name; + if (newSecret.override) { + filename = newSecret.target; + } + if (service.ServiceSecrets.filter(function(serviceSecret) { return serviceSecret.Id === newSecret.secret.Id && serviceSecret.FileName === filename;}).length === 0) { + service.ServiceSecrets.push({ Id: newSecret.secret.Id, Name: newSecret.secret.Name, FileName: filename, Uid: '0', Gid: '0', Mode: 444 }); + updateServiceArray(service, 'ServiceSecrets', service.ServiceSecrets); + } } }; $scope.removeSecret = function removeSecret(service, index) { @@ -358,6 +364,9 @@ function ($q, $scope, $transition$, $state, $location, $timeout, $anchorScroll, $scope.state.sliderMaxCpu = 32; } + // Default values + $scope.state.addSecret = {override: false}; + $timeout(function() { $anchorScroll(); });