...
|
...
|
@@ -10885,7 +10885,7 @@ scope:{
|
10885
|
10885
|
model:"=",
|
10886
|
10886
|
required:"=",
|
10887
|
10887
|
disabled:"=ngDisabled",
|
10888
|
|
-showValues:"=",
|
|
10888
|
+showTextArea:"=",
|
10889
|
10889
|
helpText:"@?",
|
10890
|
10890
|
dropZoneId:"@?"
|
10891
|
10891
|
},
|
...
|
...
|
@@ -10942,7 +10942,7 @@ c.find(".drag-and-drop-zone").removeClass("show-drag-and-drop-zone highlight-dra
|
10942
|
10942
|
}
|
10943
|
10943
|
var g = _.uniqueId("osc-file-input-");
|
10944
|
10944
|
b.dropMessageID = g + "-drop-message", b.helpID = g + "-help", b.supportsFileUpload = window.File && window.FileReader && window.FileList && window.Blob, b.uploadError = !1;
|
10945
|
|
-var h = "#" + b.dropMessageID, i = !1, j = !1, k = c.find("input[type=file]")[0];
|
|
10945
|
+var h = "#" + b.dropMessageID, i = !1, j = !1, k = c.find("input[type=file]");
|
10946
|
10946
|
setTimeout(d), $(document).on("drop." + g, function() {
|
10947
|
10947
|
return f(), c.find(".drag-and-drop-zone").trigger("putDropZoneFront", !1), !1;
|
10948
|
10948
|
}), $(document).on("dragenter." + g, function() {
|
...
|
...
|
@@ -10954,9 +10954,9 @@ return j = !1, _.delay(function() {
|
10954
|
10954
|
j || c.find(".drag-and-drop-zone").removeClass("show-drag-and-drop-zone");
|
10955
|
10955
|
}, 200), !1;
|
10956
|
10956
|
}), b.cleanInputValues = function() {
|
10957
|
|
-b.model = "", b.fileName = "", k.value = "";
|
10958
|
|
-}, c.change(function() {
|
10959
|
|
-e(k.files[0]);
|
|
10957
|
+b.model = "", b.fileName = "", k[0].value = "";
|
|
10958
|
+}, k.change(function() {
|
|
10959
|
+e(k[0].files[0]);
|
10960
|
10960
|
}), b.$on("$destroy", function() {
|
10961
|
10961
|
$(h).off(), $(document).off("drop." + g).off("dragenter." + g).off("dragover." + g).off("dragleave." + g);
|
10962
|
10962
|
});
|
...
|
...
|
@@ -11132,11 +11132,14 @@ routingDisabled:"=",
|
11132
|
11132
|
hostReadOnly:"="
|
11133
|
11133
|
},
|
11134
|
11134
|
templateUrl:"views/directives/osc-routing.html",
|
11135
|
|
-controller:[ "$scope", function(a) {
|
11136
|
|
-a.disableCertificateInputs = function() {
|
11137
|
|
-var b = _.get(a, "route.tls.termination");
|
11138
|
|
-return !b || "passthrough" === b;
|
11139
|
|
-}, a.insecureTrafficOptions = [ {
|
|
11135
|
+link:function(b, c, d, e) {
|
|
11136
|
+b.form = e, b.controls = {}, b.options = {
|
|
11137
|
+secureRoute:!1,
|
|
11138
|
+alternateServices:!1
|
|
11139
|
+}, b.disableWildcards = a.DISABLE_WILDCARD_ROUTES, b.disableCertificateInputs = function() {
|
|
11140
|
+var a = _.get(b, "route.tls.termination");
|
|
11141
|
+return !a || "passthrough" === a;
|
|
11142
|
+}, b.insecureTrafficOptions = [ {
|
11140
|
11143
|
value:"",
|
11141
|
11144
|
label:"None"
|
11142
|
11145
|
}, {
|
...
|
...
|
@@ -11145,10 +11148,7 @@ label:"Allow"
|
11145
|
11145
|
}, {
|
11146
|
11146
|
value:"Redirect",
|
11147
|
11147
|
label:"Redirect"
|
11148
|
|
-} ];
|
11149
|
|
-} ],
|
11150
|
|
-link:function(b, c, d, e) {
|
11151
|
|
-b.form = e, b.controls = {}, b.disableWildcards = a.DISABLE_WILDCARD_ROUTES, b.disableWildcards ? b.hostnamePattern = /^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$/ :b.hostnamePattern = /^(\*(\.[a-z0-9]([-a-z0-9]*[a-z0-9]))+|[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)$/;
|
|
11148
|
+} ], _.has(b, "route.tls.insecureEdgeTerminationPolicy") || _.set(b, "route.tls.insecureEdgeTerminationPolicy", ""), b.disableWildcards ? b.hostnamePattern = /^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$/ :b.hostnamePattern = /^(\*(\.[a-z0-9]([-a-z0-9]*[a-z0-9]))+|[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*)$/;
|
11152
|
11149
|
var f = function(a) {
|
11153
|
11150
|
a && (b.unnamedServicePort = 1 === a.spec.ports.length && !a.spec.ports[0].name, a.spec.ports.length && !b.unnamedServicePort ? b.route.portOptions = _.map(a.spec.ports, function(a) {
|
11154
|
11151
|
return {
|
...
|
...
|
@@ -11164,21 +11164,22 @@ return a === b;
|
11164
|
11164
|
}), b.$watch("route.alternateServices", function(a) {
|
11165
|
11165
|
b.duplicateServices = _(a).map("service").filter(function(a, b, c) {
|
11166
|
11166
|
return _.includes(c, a, b + 1);
|
11167
|
|
-}).value(), e.$setValidity("duplicateServices", !b.duplicateServices.length);
|
|
11167
|
+}).value(), e.$setValidity("duplicateServices", !b.duplicateServices.length), b.options.alternateServices = !_.isEmpty(a);
|
11168
|
11168
|
}, !0);
|
11169
|
11169
|
var g = function() {
|
11170
|
11170
|
return !!b.route.tls && ((!b.route.tls.termination || "passthrough" === b.route.tls.termination) && (b.route.tls.certificate || b.route.tls.key || b.route.tls.caCertificate || b.route.tls.destinationCACertificate));
|
11171
|
11171
|
};
|
11172
|
11172
|
b.$watch("route.tls.termination", function() {
|
11173
|
|
-b.secureRoute = !!_.get(b, "route.tls.termination"), b.showCertificatesNotUsedWarning = g();
|
|
11173
|
+b.options.secureRoute = !!_.get(b, "route.tls.termination"), b.showCertificatesNotUsedWarning = g();
|
11174
|
11174
|
});
|
11175
|
11175
|
var h;
|
11176
|
|
-b.$watch("secureRoute", function(a, c) {
|
|
11176
|
+b.$watch("options.secureRoute", function(a, c) {
|
11177
|
11177
|
if (a !== c) {
|
11178
|
|
-a && !_.get(b, "route.tls.insecureEdgeTerminationPolicy") && _.set(b, "route.tls.insecureEdgeTerminationPolicy", b.insecureTrafficOptions[0]);
|
11179
|
11178
|
var d = _.get(b, "route.tls.termination");
|
11180
|
|
-!b.securetRoute && d && (h = d, delete b.route.tls.termination), b.secureRoute && !d && _.set(b, "route.tls.termination", h || "edge");
|
|
11179
|
+!b.securetRoute && d && (h = d, delete b.route.tls.termination), b.options.secureRoute && !d && _.set(b, "route.tls.termination", h || "edge");
|
11181
|
11180
|
}
|
|
11181
|
+}), b.$watch("options.alternateServices", function(a, c) {
|
|
11182
|
+a !== c && (a || (b.route.alternateServices = []), a && _.isEmpty(b.route.alternateServices) && b.addAlternateService());
|
11182
|
11183
|
}), b.addAlternateService = function() {
|
11183
|
11184
|
b.route.alternateServices = b.route.alternateServices || [];
|
11184
|
11185
|
var a = _.find(b.services, function(a) {
|
...
|
...
|
@@ -11186,20 +11187,24 @@ return a !== b.route.to.service && !_.some(b.route.alternateServices, {
|
11186
|
11186
|
service:a
|
11187
|
11187
|
});
|
11188
|
11188
|
});
|
11189
|
|
-b.route.alternateServices.push({
|
|
11189
|
+_.has(b, "route.to.weight") || _.set(b, "route.to.weight", 1), b.route.alternateServices.push({
|
11190
|
11190
|
service:a,
|
11191
|
11191
|
weight:1
|
11192
|
|
-}), _.has(b, "route.to.weight") || _.set(b, "route.to.weight", 1);
|
11193
|
|
-}, b.weightAsPercentage = function(a) {
|
|
11192
|
+});
|
|
11193
|
+}, b.weightAsPercentage = function(a, c) {
|
11194
|
11194
|
a = a || 0;
|
11195
|
|
-var c = _.get(b, "route.to.weight", 0);
|
|
11195
|
+var d = _.get(b, "route.to.weight", 0);
|
11196
|
11196
|
if (_.each(b.route.alternateServices, function(a) {
|
11197
|
|
-c += _.get(a, "weight", 0);
|
11198
|
|
-}), !c) return "";
|
11199
|
|
-var d = a / c * 100;
|
11200
|
|
-return d3.round(d, 1) + "%";
|
11201
|
|
-}, b.$watch("controls.rangeSlider", function(a, c) {
|
11202
|
|
-a !== c && (a = parseInt(a, 10), _.set(b, "route.to.weight", a), _.set(b, "route.alternateServices[0].weight", 100 - a));
|
|
11197
|
+d += _.get(a, "weight", 0);
|
|
11198
|
+}), !d) return "";
|
|
11199
|
+var e = a / d * 100;
|
|
11200
|
+return c ? d3.round(e, 1) + "%" :e;
|
|
11201
|
+};
|
|
11202
|
+var i = !1;
|
|
11203
|
+b.$watch("route.alternateServices.length", function(a) {
|
|
11204
|
+0 === a && _.has(b, "route.to.weight") && delete b.route.to.weight, 1 === a && (i = !0, b.controls.rangeSlider = b.weightAsPercentage(b.route.to.weight));
|
|
11205
|
+}), b.$watch("controls.rangeSlider", function(a, c) {
|
|
11206
|
+return i ? void (i = !1) :void (a !== c && (a = parseInt(a, 10), _.set(b, "route.to.weight", a), _.set(b, "route.alternateServices[0].weight", 100 - a)));
|
11203
|
11207
|
});
|
11204
|
11208
|
}
|
11205
|
11209
|
};
|
...
|
...
|
@@ -21835,7 +21840,7 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
21835
|
21835
|
"</div>\n" +
|
21836
|
21836
|
"<div class=\"form-group\" ng-if=\"add.cacert\" id=\"cacert\">\n" +
|
21837
|
21837
|
"<label class=\"required\" for=\"cacert\">CA Certificate File</label>\n" +
|
21838
|
|
- "<osc-file-input id=\"cacert-file-input\" model=\"newSecret.data.cacert\" drop-zone-id=\"cacert\" help-text=\"Upload your ca.crt file.\" show-values=\"false\" required=\"true\"></osc-file-input>\n" +
|
|
21838
|
+ "<osc-file-input id=\"cacert-file-input\" model=\"newSecret.data.cacert\" drop-zone-id=\"cacert\" help-text=\"Upload your ca.crt file.\" required=\"true\"></osc-file-input>\n" +
|
21839
|
21839
|
"<div ui-ace=\"{\n" +
|
21840
|
21840
|
" mode: 'txt',\n" +
|
21841
|
21841
|
" theme: 'eclipse',\n" +
|
...
|
...
|
@@ -21849,7 +21854,7 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
21849
|
21849
|
"<div ng-if=\"newSecret.authType === 'kubernetes.io/ssh-auth'\">\n" +
|
21850
|
21850
|
"<div class=\"form-group\" id=\"private-key\">\n" +
|
21851
|
21851
|
"<label for=\"privateKey\" class=\"required\">SSH Private Key</label>\n" +
|
21852
|
|
- "<osc-file-input id=\"private-key-file-input\" model=\"newSecret.data.privateKey\" drop-zone-id=\"private-key\" help-text=\"Upload your private SSH key file.\" show-values=\"false\"></osc-file-input>\n" +
|
|
21852
|
+ "<osc-file-input id=\"private-key-file-input\" model=\"newSecret.data.privateKey\" drop-zone-id=\"private-key\" help-text=\"Upload your private SSH key file.\"></osc-file-input>\n" +
|
21853
|
21853
|
"<div ui-ace=\"{\n" +
|
21854
|
21854
|
" theme: 'eclipse',\n" +
|
21855
|
21855
|
" rendererOptions: {\n" +
|
...
|
...
|
@@ -21873,7 +21878,7 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
21873
|
21873
|
"</div>\n" +
|
21874
|
21874
|
"<div class=\"form-group\" ng-if=\"add.gitconfig\" id=\"gitconfig\">\n" +
|
21875
|
21875
|
"<label class=\"required\" for=\"gitconfig\">Git Configuration File</label>\n" +
|
21876
|
|
- "<osc-file-input id=\"gitconfig-file-input\" model=\"newSecret.data.gitconfig\" drop-zone-id=\"gitconfig\" help-text=\"Upload your .gitconfig or file.\" show-values=\"false\" required=\"true\"></osc-file-input>\n" +
|
|
21876
|
+ "<osc-file-input id=\"gitconfig-file-input\" model=\"newSecret.data.gitconfig\" drop-zone-id=\"gitconfig\" help-text=\"Upload your .gitconfig or file.\" required=\"true\"></osc-file-input>\n" +
|
21877
|
21877
|
"<div ui-ace=\"{\n" +
|
21878
|
21878
|
" mode: 'ini',\n" +
|
21879
|
21879
|
" theme: 'eclipse',\n" +
|
...
|
...
|
@@ -21936,7 +21941,7 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
21936
|
21936
|
"<div ng-if=\"newSecret.authType === 'kubernetes.io/dockerconfigjson'\">\n" +
|
21937
|
21937
|
"<div class=\"form-group\" id=\"docker-config\">\n" +
|
21938
|
21938
|
"<label for=\"dockerConfig\" class=\"required\">Configuration File</label>\n" +
|
21939
|
|
- "<osc-file-input id=\"dockercfg-file-input\" model=\"newSecret.data.dockerConfig\" drop-zone-id=\"docker-config\" help-text=\"Upload a .dockercfg or .docker/config.json file\" show-values=\"false\" required=\"true\"></osc-file-input>\n" +
|
|
21939
|
+ "<osc-file-input id=\"dockercfg-file-input\" model=\"newSecret.data.dockerConfig\" drop-zone-id=\"docker-config\" help-text=\"Upload a .dockercfg or .docker/config.json file\" required=\"true\"></osc-file-input>\n" +
|
21940
|
21940
|
"<div ui-ace=\"{\n" +
|
21941
|
21941
|
" mode: 'json',\n" +
|
21942
|
21942
|
" theme: 'eclipse',\n" +
|
...
|
...
|
@@ -22328,7 +22333,7 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
22328
|
22328
|
"</div>\n" +
|
22329
|
22329
|
"<div class=\"form-group\" ng-attr-id=\"drop-zone-{{$id}}\">\n" +
|
22330
|
22330
|
"<label ng-attr-for=\"name-{{$id}}\">Value</label>\n" +
|
22331
|
|
- "<osc-file-input model=\"item.value\" drop-zone-id=\"drop-zone-{{$id}}\" help-text=\"Enter a value for the config map entry or use the contents of a file.\" show-values=\"false\"></osc-file-input>\n" +
|
|
22331
|
+ "<osc-file-input model=\"item.value\" drop-zone-id=\"drop-zone-{{$id}}\" help-text=\"Enter a value for the config map entry or use the contents of a file.\"></osc-file-input>\n" +
|
22332
|
22332
|
"<div ui-ace=\"{\n" +
|
22333
|
22333
|
" theme: 'eclipse',\n" +
|
22334
|
22334
|
" rendererOptions: {\n" +
|
...
|
...
|
@@ -22720,7 +22725,7 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
22720
|
22720
|
"<div class=\"col-sm-12 pod-bottom-xl\">\n" +
|
22721
|
22721
|
"<form name=\"form\">\n" +
|
22722
|
22722
|
"<div class=\"form-group\" id=\"from-file\">\n" +
|
22723
|
|
- "<osc-file-input model=\"editorContent\" drop-zone-id=\"from-file\" help-text=\"Upload file by dragging & dropping, selecting it, or pasting from the clipboard.\" ng-disabled=\"false\" show-values=\"false\"></osc-file-input>\n" +
|
|
22723
|
+ "<osc-file-input model=\"editorContent\" drop-zone-id=\"from-file\" help-text=\"Upload file by dragging & dropping, selecting it, or pasting from the clipboard.\" ng-disabled=\"false\"></osc-file-input>\n" +
|
22724
|
22724
|
"<div ui-ace=\"{\n" +
|
22725
|
22725
|
" mode: 'yaml',\n" +
|
22726
|
22726
|
" theme: 'eclipse',\n" +
|
...
|
...
|
@@ -23238,6 +23243,7 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
23238
|
23238
|
|
23239
|
23239
|
|
23240
|
23240
|
$templateCache.put('views/directives/osc-file-input.html',
|
|
23241
|
+ "<div class=\"osc-file-input\">\n" +
|
23241
|
23242
|
"<div ng-attr-id=\"{{dropMessageID}}\" class=\"drag-and-drop-zone\">\n" +
|
23242
|
23243
|
"<p>Drop file here</p>\n" +
|
23243
|
23244
|
"</div>\n" +
|
...
|
...
|
@@ -23250,18 +23256,16 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
23250
|
23250
|
"</span>\n" +
|
23251
|
23251
|
"</span>\n" +
|
23252
|
23252
|
"</div>\n" +
|
23253
|
|
- "<textarea class=\"form-control\" rows=\"8\" ng-hide=\"supportsFileUpload\" ng-model=\"model\" ng-required=\"required\" ng-disabled=\"disabled\" ng-attr-aria-describedby=\"{{helpText ? helpID : undefined}}\">\n" +
|
23254
|
|
- "</textarea>\n" +
|
23255
|
23253
|
"<div ng-if=\"helpText\">\n" +
|
23256
|
23254
|
"<span ng-attr-id=\"{{helpID}}\" class=\"help-block\">{{::helpText}}</span>\n" +
|
23257
|
23255
|
"</div>\n" +
|
23258
|
23256
|
"<div class=\"has-error\" ng-show=\"uploadError\">\n" +
|
23259
|
23257
|
"<span class=\"help-block\">There was an error reading the file. Please copy the file content into the text area.</span>\n" +
|
23260
|
23258
|
"</div>\n" +
|
23261
|
|
- "<div ng-if=\"model && showValues && supportsFileUpload\">\n" +
|
23262
|
|
- "<pre ng-if=\"model && showValues && supportsFileUpload\" class=\"clipped scroll\">{{model}}</pre>\n" +
|
23263
|
|
- "</div>\n" +
|
23264
|
|
- "<a href=\"\" ng-show=\"model || fileName\" class=\"clear-btn\" ng-click=\"cleanInputValues()\">Clear Value</a>"
|
|
23259
|
+ "<textarea class=\"form-control\" rows=\"5\" ng-show=\"showTextArea || !supportsFileUpload\" ng-model=\"model\" ng-required=\"required\" ng-disabled=\"disabled\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" ng-attr-aria-describedby=\"{{helpText ? helpID : undefined}}\">\n" +
|
|
23260
|
+ " </textarea>\n" +
|
|
23261
|
+ "<a href=\"\" ng-show=\"(model || fileName) && !disabled\" ng-click=\"cleanInputValues()\">Clear Value</a>\n" +
|
|
23262
|
+ "</div>"
|
23265
|
23263
|
);
|
23266
|
23264
|
|
23267
|
23265
|
|
...
|
...
|
@@ -23659,9 +23663,6 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
23659
|
23659
|
"<osc-routing-service model=\"route.to\" services=\"services\" show-weight=\"route.alternateServices.length > 1 || (controls.hideSlider && route.alternateServices.length)\">\n" +
|
23660
|
23660
|
"</osc-routing-service>\n" +
|
23661
|
23661
|
"</div>\n" +
|
23662
|
|
- "<div ng-if=\"alternateServiceOptions.length && !route.alternateServices.length\" class=\"form-group\">\n" +
|
23663
|
|
- "<a href=\"\" ng-click=\"addAlternateService()\">Split traffic across multiple services</a>\n" +
|
23664
|
|
- "</div>\n" +
|
23665
|
23662
|
"\n" +
|
23666
|
23663
|
"<div ng-if=\"route.portOptions.length\" class=\"form-group\">\n" +
|
23667
|
23664
|
"<label for=\"routeTargetPort\">Target Port</label>\n" +
|
...
|
...
|
@@ -23678,8 +23679,19 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
23678
|
23678
|
"</div>\n" +
|
23679
|
23679
|
"</div>\n" +
|
23680
|
23680
|
"\n" +
|
23681
|
|
- "<div ng-if=\"route.alternateServices.length\">\n" +
|
|
23681
|
+ "<div ng-if=\"alternateServiceOptions.length\">\n" +
|
23682
|
23682
|
"<h3>Alternate Services</h3>\n" +
|
|
23683
|
+ "<div class=\"form-group\">\n" +
|
|
23684
|
+ "<div class=\"checkbox\">\n" +
|
|
23685
|
+ "<label>\n" +
|
|
23686
|
+ "<input type=\"checkbox\" ng-model=\"options.alternateServices\" aria-describedby=\"secure-route-help\">\n" +
|
|
23687
|
+ "Split traffic across multiple services\n" +
|
|
23688
|
+ "</label>\n" +
|
|
23689
|
+ "<div class=\"help-block\">\n" +
|
|
23690
|
+ "Routes can direct traffic to multiple services for A/B testing. Each service has a weight controlling how much traffic it gets.\n" +
|
|
23691
|
+ "</div>\n" +
|
|
23692
|
+ "</div>\n" +
|
|
23693
|
+ "</div>\n" +
|
23683
|
23694
|
"<div ng-repeat=\"alternate in route.alternateServices\" class=\"form-group\">\n" +
|
23684
|
23695
|
"<osc-routing-service model=\"alternate\" services=\"alternateServiceOptions\" is-alternate=\"true\" show-weight=\"route.alternateServices.length > 1 || controls.hideSlider\">\n" +
|
23685
|
23696
|
"</osc-routing-service>\n" +
|
...
|
...
|
@@ -23702,12 +23714,12 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
23702
|
23702
|
"<div class=\"weight-slider-values\">\n" +
|
23703
|
23703
|
"<div>\n" +
|
23704
|
23704
|
"<span class=\"service-name\">{{route.to.service.metadata.name}}</span>\n" +
|
23705
|
|
- "<span class=\"weight-percentage\">{{weightAsPercentage(route.to.weight)}}</span>\n" +
|
|
23705
|
+ "<span class=\"weight-percentage\">{{weightAsPercentage(route.to.weight, true)}}</span>\n" +
|
23706
|
23706
|
"</div>\n" +
|
23707
|
23707
|
"<div>\n" +
|
23708
|
|
- "<span class=\"weight-percentage hidden-xs\">{{weightAsPercentage(route.alternateServices[0].weight)}}</span>\n" +
|
|
23708
|
+ "<span class=\"weight-percentage hidden-xs\">{{weightAsPercentage(route.alternateServices[0].weight, true)}}</span>\n" +
|
23709
|
23709
|
"<span class=\"service-name\">{{route.alternateServices[0].service.metadata.name}}</span>\n" +
|
23710
|
|
- "<span class=\"weight-percentage visible-xs-inline\">{{weightAsPercentage(route.alternateServices[0].weight)}}</span>\n" +
|
|
23710
|
+ "<span class=\"weight-percentage visible-xs-inline\">{{weightAsPercentage(route.alternateServices[0].weight, true)}}</span>\n" +
|
23711
|
23711
|
"</div>\n" +
|
23712
|
23712
|
"</div>\n" +
|
23713
|
23713
|
"<label class=\"sr-only\" for=\"weight-slider\">Service {{route.to.service.metadata.name}} Weight</label>\n" +
|
...
|
...
|
@@ -23725,16 +23737,17 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
23725
|
23725
|
"</div>\n" +
|
23726
|
23726
|
"</div>\n" +
|
23727
|
23727
|
"</div>\n" +
|
|
23728
|
+ "<h3>Security</h3>\n" +
|
23728
|
23729
|
"<div class=\"checkbox\">\n" +
|
23729
|
23730
|
"<label>\n" +
|
23730
|
|
- "<input type=\"checkbox\" ng-model=\"secureRoute\" aria-describedby=\"secure-route-help\">\n" +
|
|
23731
|
+ "<input type=\"checkbox\" ng-model=\"options.secureRoute\" aria-describedby=\"secure-route-help\">\n" +
|
23731
|
23732
|
"Secure route\n" +
|
23732
|
23733
|
"</label>\n" +
|
23733
|
23734
|
"<div class=\"help-block\" id=\"secure-route-help\">\n" +
|
23734
|
23735
|
"Routes can be secured using several TLS termination types for serving certificates.\n" +
|
23735
|
23736
|
"</div>\n" +
|
23736
|
23737
|
"</div>\n" +
|
23737
|
|
- "<div ng-show=\"secureRoute\">\n" +
|
|
23738
|
+ "<div ng-show=\"options.secureRoute\">\n" +
|
23738
|
23739
|
"\n" +
|
23739
|
23740
|
"<div class=\"form-group\">\n" +
|
23740
|
23741
|
"<label for=\"tlsTermination\">TLS Termination</label>\n" +
|
...
|
...
|
@@ -23765,10 +23778,8 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
23765
|
23765
|
"</div>\n" +
|
23766
|
23766
|
"\n" +
|
23767
|
23767
|
"<h3>Certificates</h3>\n" +
|
23768
|
|
- "<div>\n" +
|
23769
|
|
- "<span class=\"help-block\">\n" +
|
|
23768
|
+ "<div class=\"help-block\">\n" +
|
23770
|
23769
|
"TLS certificates for edge and re-encrypt termination. If not specified, the router's default certificate is used.\n" +
|
23771
|
|
- "</span>\n" +
|
23772
|
23770
|
"</div>\n" +
|
23773
|
23771
|
"<div ng-if=\"showCertificatesNotUsedWarning\" class=\"has-warning\">\n" +
|
23774
|
23772
|
"<span class=\"help-block\">\n" +
|
...
|
...
|
@@ -23781,31 +23792,31 @@ var _scriptsTemplatesJs = []byte(`angular.module('openshiftConsoleTemplates', []
|
23781
|
23781
|
"</span>\n" +
|
23782
|
23782
|
"</span>\n" +
|
23783
|
23783
|
"</div>\n" +
|
23784
|
|
- "<fieldset>\n" +
|
|
23784
|
+ "<fieldset class=\"mar-top-md\">\n" +
|
23785
|
23785
|
"<div>\n" +
|
23786
|
23786
|
"<div class=\"form-group\" id=\"certificate-file\">\n" +
|
23787
|
23787
|
"<label>Certificate</label>\n" +
|
23788
|
|
- "<osc-file-input model=\"route.tls.certificate\" drop-zone-id=\"certificate-file\" show-values=\"true\" help-text=\"The PEM format certificate. Upload file by dragging & dropping, or selecting it.\" ng-disabled=\"disableCertificateInputs()\">\n" +
|
|
23788
|
+ "<osc-file-input model=\"route.tls.certificate\" drop-zone-id=\"certificate-file\" show-text-area=\"true\" help-text=\"The PEM format certificate. Upload file by dragging & dropping, selecting it, or pasting from the clipbard.\" ng-disabled=\"disableCertificateInputs()\">\n" +
|
23789
|
23789
|
"</osc-file-input>\n" +
|
23790
|
23790
|
"</div>\n" +
|
23791
|
23791
|
"<div class=\"form-group\" id=\"private-key-file\">\n" +
|
23792
|
23792
|
"<label>Private Key</label>\n" +
|
23793
|
|
- "<osc-file-input model=\"route.tls.key\" drop-zone-id=\"private-key-file\" show-values=\"true\" help-text=\"The PEM format key. Upload file by dragging & dropping, or selecting it.\" ng-disabled=\"disableCertificateInputs()\">\n" +
|
|
23793
|
+ "<osc-file-input model=\"route.tls.key\" drop-zone-id=\"private-key-file\" show-text-area=\"true\" help-text=\"The PEM format key. Upload file by dragging & dropping, selecting it, or pasting from the clipboard.\" ng-disabled=\"disableCertificateInputs()\">\n" +
|
23794
|
23794
|
"</osc-file-input>\n" +
|
23795
|
23795
|
"</div>\n" +
|
23796
|
23796
|
"<div class=\"form-group\" id=\"ca-certificate-file\">\n" +
|
23797
|
23797
|
"<label>CA Certificate</label>\n" +
|
23798
|
|
- "<osc-file-input model=\"route.tls.caCertificate\" drop-zone-id=\"ca-certificate-file\" show-values=\"true\" help-text=\"The PEM format CA certificate. Upload file by dragging & dropping, or selecting it.\" ng-disabled=\"disableCertificateInputs()\">\n" +
|
|
23798
|
+ "<osc-file-input model=\"route.tls.caCertificate\" drop-zone-id=\"ca-certificate-file\" show-text-area=\"true\" help-text=\"The PEM format CA certificate. Upload file by dragging & dropping, selecting it, or pasting from the clipboard.\" ng-disabled=\"disableCertificateInputs()\">\n" +
|
23799
|
23799
|
"</osc-file-input>\n" +
|
23800
|
23800
|
"</div>\n" +
|
23801
|
23801
|
"<div class=\"form-group\" id=\"dest-ca-certificate-file\">\n" +
|
23802
|
23802
|
"<label>Destination CA Certificate</label>\n" +
|
23803
|
|
- "<osc-file-input model=\"route.tls.destinationCACertificate\" show-values=\"true\" drop-zone-id=\"dest-ca-certificate-file\" help-text=\"The PEM format CA certificate to validate the endpoint certificate for re-encrypt termination. Upload file by dragging & dropping, or selecting it.\" ng-disabled=\"route.tls.termination !== 'reencrypt'\">\n" +
|
|
23803
|
+ "<osc-file-input model=\"route.tls.destinationCACertificate\" show-text-area=\"true\" drop-zone-id=\"dest-ca-certificate-file\" help-text=\"The PEM format CA certificate to validate the endpoint certificate for re-encrypt termination. Upload file by dragging & dropping, selecting it, or pasting from the clipboard.\" ng-disabled=\"route.tls.termination !== 'reencrypt'\">\n" +
|
23804
|
23804
|
"</osc-file-input>\n" +
|
23805
|
23805
|
"\n" +
|
23806
|
23806
|
"<div ng-if=\"route.tls.destinationCACertificate && route.tls.termination !== 'reencrypt' && !showCertificatesNotUsedWarning\" class=\"has-warning\">\n" +
|
23807
|
23807
|
"<span class=\"help-block\">\n" +
|
23808
|
|
- "The destination CA certificate will not be used. Destination CA certificates are only used for re-encrypt termination.\n" +
|
|
23808
|
+ "The destination CA certificate will be removed from the route. Destination CA certificates are only used for re-encrypt termination.\n" +
|
23809
|
23809
|
"</span>\n" +
|
23810
|
23810
|
"</div>\n" +
|
23811
|
23811
|
"</div>\n" +
|
...
|
...
|
@@ -112917,6 +112928,7 @@ to{transform:rotate(359deg)}
|
112917
|
112917
|
@media (min-width:768px){.weight-slider-values{-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;justify-content:space-between}
|
112918
|
112918
|
.weight-slider-values .weight-percentage{margin-right:5px}
|
112919
|
112919
|
}
|
|
112920
|
+.osc-file-input textarea{font-family:Menlo,Monaco,Consolas,monospace;margin:5px 0}
|
112920
|
112921
|
.card-pf{box-shadow:0 3px 1px -2px rgba(0,0,0,.15),0 2px 2px 0 rgba(0,0,0,.1),0 1px 5px 0 rgba(0,0,0,.09)}
|
112921
|
112922
|
.card-pf .image-icon,.card-pf .template-icon{font-size:28px;line-height:1;margin-right:15px;opacity:.38}
|
112922
|
112923
|
.card-pf-badge{color:#999;font-size:11px;text-transform:uppercase}
|