Skip to content

Commit

Permalink
Fix problems with env valueFrom for DC hooks
Browse files Browse the repository at this point in the history
* Avoid adding an `undefined` element to value from array depending on the
  order that config maps and secrets load
* Fix typo passing config maps to edit-lifecycle hooks
* Show valueFrom values for hooks when viewing the deployment config

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1509842
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1509819
  • Loading branch information
spadgett committed Nov 6, 2017
1 parent bb79695 commit 7561b3a
Show file tree
Hide file tree
Showing 6 changed files with 91 additions and 31 deletions.
2 changes: 1 addition & 1 deletion app/scripts/controllers/edit/deploymentConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ angular.module('openshiftConsole')
DataService.list("secrets", context, null, { errorNotification: false }).then(function(secretData) {
secretDataOrdered = orderByDisplayName(secretData.by("metadata.name"));
$scope.availableSecrets = secretDataOrdered;
$scope.valueFromObjects = secretDataOrdered.concat(configMapDataOrdered);
$scope.valueFromObjects = configMapDataOrdered.concat(secretDataOrdered);
var secretsByType = SecretsService.groupSecretsByType(secretData);
var secretNamesByType =_.mapValues(secretsByType, function(secretData) {return _.map(secretData, 'metadata.name');});
// Add empty option to the image/source secrets
Expand Down
4 changes: 3 additions & 1 deletion app/scripts/directives/lifecycleHook.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,9 @@ angular.module("openshiftConsole")

$scope.valueFromObjects = [];
$scope.$watchGroup(['availableSecrets', 'availableConfigMaps'], function() {
$scope.valueFromObjects = ($scope.availableSecrets || []).concat($scope.availableConfigMaps);
var configMaps = $scope.availableConfigMaps || [];
var secrets = $scope.availableSecrets || [];
$scope.valueFromObjects = configMaps.concat(secrets);
});

$scope.$watch("istagHook.tagObject.tag", function() {
Expand Down
34 changes: 32 additions & 2 deletions app/views/directives/lifecycle-hook.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,37 @@ <h5 class="container-name">Container {{strategyParams[type].execNewPod.container
<dt ng-if-start="strategyParams[type].execNewPod.env">Environment Variables:</dt>
<dd ng-if-end>
<div ng-repeat="env in strategyParams[type].execNewPod.env">
<div class="truncate" ng-attr-title="{{env.value}}">{{env.name}}={{env.value}}</div>
<div ng-if="env.valueFrom.configMapKeyRef || env.valueFrom.secretKeyRef">
{{env.name}} set to key
<span ng-if="env.valueFrom.configMapKeyRef">
{{env.valueFrom.configMapKeyRef.key}} in config map
<span
ng-if="!('configmaps' | canI : 'get')">
{{env.valueFrom.configMapKeyRef.name}}
</span>
<a
ng-if="'configmaps' | canI : 'get'"
ng-href="{{env.valueFrom.configMapKeyRef.name | navigateResourceURL : 'ConfigMap' : deploymentConfig.metadata.namespace}}">
{{env.valueFrom.configMapKeyRef.name}}
</a>
</span>
<span ng-if="env.valueFrom.secretKeyRef">
{{env.valueFrom.secretKeyRef.key}} in secret
<span
ng-if="!('secrets' | canI : 'get')">
{{env.valueFrom.secretKeyRef.name}}
</span>
<a
ng-if="'secrets' | canI : 'get'"
ng-href="{{env.valueFrom.secretKeyRef.name | navigateResourceURL : 'Secret' : deploymentConfig.metadata.namespace}}">
{{env.valueFrom.secretKeyRef.name}}
</a>
<a ng-href="{{volume.secret.secretName | navigateResourceURL : 'Secret' : namespace}}">{{volume.secret.secretName}}</a>
</span>
</div>
<div ng-if="!env.valueFrom" class="truncate" ng-attr-title="{{env.value}}">
{{env.name}}={{env.value}}
</div>
</div>
</dd>
<dt ng-if-start="strategyParams[type].execNewPod.volumes">Volumes:</dt>
Expand All @@ -53,4 +83,4 @@ <h5 class="container-name">Container {{tagImage.containerName}}</h5>
</dl>
</div>
</div>
</dl>
</dl>
45 changes: 24 additions & 21 deletions app/views/edit/deployment-config.html
Original file line number Diff line number Diff line change
Expand Up @@ -229,37 +229,40 @@ <h3>Deployment Strategy</h3>
<div class="lifecycle-hook" id="pre-lifecycle-hook">

<h3>Pre Lifecycle Hook</h3>
<edit-lifecycle-hook model='strategyData[strategyParamsPropertyName].pre'
type='pre'
available-volumes='volumeNames'
available-containers='containerNames'
available-secrets='availableSecrets'
available-configmaps='availableConfigMaps'
namespace="projectName">
<edit-lifecycle-hook
model="strategyData[strategyParamsPropertyName].pre"
type="pre"
available-volumes="volumeNames"
available-containers="containerNames"
available-secrets="availableSecrets"
available-config-maps="availableConfigMaps"
namespace="projectName">
</edit-lifecycle-hook>
</div>

<div ng-if="strategyData.type !== 'Rolling'" class="lifecycle-hook" id="mid-lifecycle-hook" >
<h3>Mid Lifecycle Hook</h3>
<edit-lifecycle-hook model='strategyData[strategyParamsPropertyName].mid'
type='mid'
available-volumes='volumeNames'
available-containers='containerNames'
available-secrets='availableSecrets'
available-configmaps='availableConfigMaps'
namespace="projectName">
<edit-lifecycle-hook
model="strategyData[strategyParamsPropertyName].mid"
type="mid"
available-volumes="volumeNames"
available-containers="containerNames"
available-secrets="availableSecrets"
available-config-maps="availableConfigMaps"
namespace="projectName">
</edit-lifecycle-hook>
</div>

<div class="lifecycle-hook" id="post-lifecycle-hook" >
<h3>Post Lifecycle Hook</h3>
<edit-lifecycle-hook model='strategyData[strategyParamsPropertyName].post'
type='post'
available-volumes='volumeNames'
available-containers='containerNames'
available-secrets='availableSecrets'
available-configmaps='availableConfigMaps'
namespace="projectName">
<edit-lifecycle-hook
model="strategyData[strategyParamsPropertyName].post"
type="post"
available-volumes="volumeNames"
available-containers="containerNames"
available-secrets="availableSecrets"
available-config-maps="availableConfigMaps"
namespace="projectName">
</edit-lifecycle-hook>
</div>
</div>
Expand Down
5 changes: 3 additions & 2 deletions dist/scripts/scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -7395,7 +7395,7 @@ b = g(t.by("metadata.name")), e.availableConfigMaps = b, e.valueFromObjects = b.
}), c.list("secrets", r, null, {
errorNotification: !1
}).then(function(t) {
C = g(t.by("metadata.name")), e.availableSecrets = C, e.valueFromObjects = C.concat(b);
C = g(t.by("metadata.name")), e.availableSecrets = C, e.valueFromObjects = b.concat(C);
var n = p.groupSecretsByType(t), a = _.mapValues(n, function(e) {
return _.map(e, "metadata.name");
});
Expand Down Expand Up @@ -11040,7 +11040,8 @@ e.removedHookParams = e.hookParams, delete e.hookParams, e.editForm.$setDirty();
e.$watchGroup([ "hookParams", "action.type" ], function() {
e.hookParams && ("execNewPod" === e.action.type ? (e.hookParams.tagImages && (e.removedHookParams.tagImages = e.hookParams.tagImages, delete e.hookParams.tagImages), r()) : "tagImages" === e.action.type && (e.hookParams.execNewPod && (e.removedHookParams.execNewPod = e.hookParams.execNewPod, delete e.hookParams.execNewPod), r()));
}), e.valueFromObjects = [], e.$watchGroup([ "availableSecrets", "availableConfigMaps" ], function() {
e.valueFromObjects = (e.availableSecrets || []).concat(e.availableConfigMaps);
var t = e.availableConfigMaps || [], n = e.availableSecrets || [];
e.valueFromObjects = t.concat(n);
}), e.$watch("istagHook.tagObject.tag", function() {
_.has(e.istagHook, [ "tagObject", "tag" ]) && (_.set(e.hookParams, "tagImages[0].to.kind", "ImageStreamTag"), _.set(e.hookParams, "tagImages[0].to.namespace", e.istagHook.namespace), _.set(e.hookParams, "tagImages[0].to.name", e.istagHook.imageStream + ":" + e.istagHook.tagObject.tag));
});
Expand Down
32 changes: 28 additions & 4 deletions dist/scripts/templates.js
Original file line number Diff line number Diff line change
Expand Up @@ -7622,7 +7622,31 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function(
"<dt ng-if-start=\"strategyParams[type].execNewPod.env\">Environment Variables:</dt>\n" +
"<dd ng-if-end>\n" +
"<div ng-repeat=\"env in strategyParams[type].execNewPod.env\">\n" +
"<div class=\"truncate\" ng-attr-title=\"{{env.value}}\">{{env.name}}={{env.value}}</div>\n" +
"<div ng-if=\"env.valueFrom.configMapKeyRef || env.valueFrom.secretKeyRef\">\n" +
"{{env.name}} set to key\n" +
"<span ng-if=\"env.valueFrom.configMapKeyRef\">\n" +
"{{env.valueFrom.configMapKeyRef.key}} in config map\n" +
"<span ng-if=\"!('configmaps' | canI : 'get')\">\n" +
"{{env.valueFrom.configMapKeyRef.name}}\n" +
"</span>\n" +
"<a ng-if=\"'configmaps' | canI : 'get'\" ng-href=\"{{env.valueFrom.configMapKeyRef.name | navigateResourceURL : 'ConfigMap' : deploymentConfig.metadata.namespace}}\">\n" +
"{{env.valueFrom.configMapKeyRef.name}}\n" +
"</a>\n" +
"</span>\n" +
"<span ng-if=\"env.valueFrom.secretKeyRef\">\n" +
"{{env.valueFrom.secretKeyRef.key}} in secret\n" +
"<span ng-if=\"!('secrets' | canI : 'get')\">\n" +
"{{env.valueFrom.secretKeyRef.name}}\n" +
"</span>\n" +
"<a ng-if=\"'secrets' | canI : 'get'\" ng-href=\"{{env.valueFrom.secretKeyRef.name | navigateResourceURL : 'Secret' : deploymentConfig.metadata.namespace}}\">\n" +
"{{env.valueFrom.secretKeyRef.name}}\n" +
"</a>\n" +
"<a ng-href=\"{{volume.secret.secretName | navigateResourceURL : 'Secret' : namespace}}\">{{volume.secret.secretName}}</a>\n" +
"</span>\n" +
"</div>\n" +
"<div ng-if=\"!env.valueFrom\" class=\"truncate\" ng-attr-title=\"{{env.value}}\">\n" +
"{{env.name}}={{env.value}}\n" +
"</div>\n" +
"</div>\n" +
"</dd>\n" +
"<dt ng-if-start=\"strategyParams[type].execNewPod.volumes\">Volumes:</dt>\n" +
Expand Down Expand Up @@ -10127,17 +10151,17 @@ angular.module('openshiftConsoleTemplates', []).run(['$templateCache', function(
"<div class=\"lifecycle-hooks\">\n" +
"<div class=\"lifecycle-hook\" id=\"pre-lifecycle-hook\">\n" +
"<h3>Pre Lifecycle Hook</h3>\n" +
"<edit-lifecycle-hook model=\"strategyData[strategyParamsPropertyName].pre\" type=\"pre\" available-volumes=\"volumeNames\" available-containers=\"containerNames\" available-secrets=\"availableSecrets\" available-configmaps=\"availableConfigMaps\" namespace=\"projectName\">\n" +
"<edit-lifecycle-hook model=\"strategyData[strategyParamsPropertyName].pre\" type=\"pre\" available-volumes=\"volumeNames\" available-containers=\"containerNames\" available-secrets=\"availableSecrets\" available-config-maps=\"availableConfigMaps\" namespace=\"projectName\">\n" +
"</edit-lifecycle-hook>\n" +
"</div>\n" +
"<div ng-if=\"strategyData.type !== 'Rolling'\" class=\"lifecycle-hook\" id=\"mid-lifecycle-hook\">\n" +
"<h3>Mid Lifecycle Hook</h3>\n" +
"<edit-lifecycle-hook model=\"strategyData[strategyParamsPropertyName].mid\" type=\"mid\" available-volumes=\"volumeNames\" available-containers=\"containerNames\" available-secrets=\"availableSecrets\" available-configmaps=\"availableConfigMaps\" namespace=\"projectName\">\n" +
"<edit-lifecycle-hook model=\"strategyData[strategyParamsPropertyName].mid\" type=\"mid\" available-volumes=\"volumeNames\" available-containers=\"containerNames\" available-secrets=\"availableSecrets\" available-config-maps=\"availableConfigMaps\" namespace=\"projectName\">\n" +
"</edit-lifecycle-hook>\n" +
"</div>\n" +
"<div class=\"lifecycle-hook\" id=\"post-lifecycle-hook\">\n" +
"<h3>Post Lifecycle Hook</h3>\n" +
"<edit-lifecycle-hook model=\"strategyData[strategyParamsPropertyName].post\" type=\"post\" available-volumes=\"volumeNames\" available-containers=\"containerNames\" available-secrets=\"availableSecrets\" available-configmaps=\"availableConfigMaps\" namespace=\"projectName\">\n" +
"<edit-lifecycle-hook model=\"strategyData[strategyParamsPropertyName].post\" type=\"post\" available-volumes=\"volumeNames\" available-containers=\"containerNames\" available-secrets=\"availableSecrets\" available-config-maps=\"availableConfigMaps\" namespace=\"projectName\">\n" +
"</edit-lifecycle-hook>\n" +
"</div>\n" +
"</div>\n" +
Expand Down

0 comments on commit 7561b3a

Please sign in to comment.