From 47d287c5880953c25d9045745573e136b9817c23 Mon Sep 17 00:00:00 2001 From: Rajinderpal Singh Siddhu <61963157+siddhu-opsmx@users.noreply.github.com> Date: Mon, 1 May 2023 17:05:39 +0530 Subject: [PATCH 01/85] feat(provider/google): Added Cloud Run manifest functionality in Deck. (#9971) * feat(cloudRun): Implemented manifest stage for cloudRun * feat(cloudRun): Incorporated suggested changes From 8f1154f1b5fb5eccfabb7044da0f7ec11ddb003d Mon Sep 17 00:00:00 2001 From: armory-abedonik <106548537+armory-abedonik@users.noreply.github.com> Date: Mon, 3 Apr 2023 13:24:32 +0200 Subject: [PATCH 02/85] fix: UI crashes when running pipeline(s) with many stages. (#9960) --- .../src/pipeline/config/graph/PipelineGraph.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/core/src/pipeline/config/graph/PipelineGraph.tsx b/packages/core/src/pipeline/config/graph/PipelineGraph.tsx index 407cb31c56c..8fe61e9f6ac 100644 --- a/packages/core/src/pipeline/config/graph/PipelineGraph.tsx +++ b/packages/core/src/pipeline/config/graph/PipelineGraph.tsx @@ -117,15 +117,22 @@ export class PipelineGraph extends React.Component(); const result: number[] = []; - this.collect(node.children, result); + this.collect(node.children, result, checkedNodeIds); return max(result); } - private collect(nodes: IPipelineGraphNode[], result: number[]) { + private collect(nodes: IPipelineGraphNode[], result: number[], checkedNodeIds: Set) { nodes.forEach((node) => { + if (checkedNodeIds.has(node.id)) { + return; + } else { + checkedNodeIds.add(node.id); + } + if (node.children.length) { - this.collect(node.children, result); + this.collect(node.children, result, checkedNodeIds); } else { result.push(node.phase); } From 0e15ebf03c7527f5d4d9f3cfe2b8b221ccc09ecc Mon Sep 17 00:00:00 2001 From: Matt <6519811+mattgogerly@users.noreply.github.com> Date: Wed, 3 May 2023 15:46:43 +0100 Subject: [PATCH 03/85] fix(angular): fix missed AngularJS bindings (#9989) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .../src/region/regionSelectField.directive.js | 10 +- packages/dcos/src/job/general.component.js | 28 +-- packages/dcos/src/job/labels.component.js | 8 +- packages/dcos/src/job/schedule.component.js | 8 +- .../metricSettings.component.js | 164 +++++++++--------- .../scalingSchedules.component.js | 74 ++++---- .../backendService.component.js | 92 +++++----- .../basicSettings/basicSettings.component.js | 40 +++-- .../http/healthCheck/healthCheck.component.js | 72 ++++---- .../http/hostRule/hostRule.component.js | 16 +- .../http/listeners/listener.component.js | 91 +++++----- .../loadBalancerType.component.js | 20 ++- 12 files changed, 323 insertions(+), 300 deletions(-) diff --git a/packages/core/src/region/regionSelectField.directive.js b/packages/core/src/region/regionSelectField.directive.js index 2f110547176..e31ce048672 100644 --- a/packages/core/src/region/regionSelectField.directive.js +++ b/packages/core/src/region/regionSelectField.directive.js @@ -48,10 +48,12 @@ module(CORE_REGION_REGIONSELECTFIELD_DIRECTIVE, []) readOnly: '=', }, controller: function () { - const vm = this; - vm.propagate = function (data) { - vm.component[vm.field] = data; - vm.onChange(); + this.$onInit = () => { + const vm = this; + vm.propagate = function (data) { + vm.component[vm.field] = data; + vm.onChange(); + }; }; }, }); diff --git a/packages/dcos/src/job/general.component.js b/packages/dcos/src/job/general.component.js index 60a92f4c647..fc94b163527 100644 --- a/packages/dcos/src/job/general.component.js +++ b/packages/dcos/src/job/general.component.js @@ -10,20 +10,22 @@ module(DCOS_JOB_GENERAL_COMPONENT, []).component('dcosGeneral', { }, templateUrl: require('./general.component.html'), controller: function () { - if (this.general === undefined || this.general == null) { - this.general = { - cpus: 0.01, - gpus: 0.0, - mem: 128, - disk: 0, - }; - } + this.$onInit = () => { + if (this.general === undefined || this.general == null) { + this.general = { + cpus: 0.01, + gpus: 0.0, + mem: 128, + disk: 0, + }; + } - this.idPattern = { - test: function (id) { - const pattern = /^([a-z0-9]*(\${.+})*)*$/; - return pattern.test(id); - }, + this.idPattern = { + test: function (id) { + const pattern = /^([a-z0-9]*(\${.+})*)*$/; + return pattern.test(id); + }, + }; }; }, }); diff --git a/packages/dcos/src/job/labels.component.js b/packages/dcos/src/job/labels.component.js index 368c5f0e60e..a9e7be693db 100644 --- a/packages/dcos/src/job/labels.component.js +++ b/packages/dcos/src/job/labels.component.js @@ -10,8 +10,10 @@ module(DCOS_JOB_LABELS_COMPONENT, []).component('dcosLabels', { }, templateUrl: require('./labels.component.html'), controller: function () { - if (this.labels === undefined || this.labels == null) { - this.labels = {}; - } + this.$onInit = () => { + if (this.labels === undefined || this.labels == null) { + this.labels = {}; + } + }; }, }); diff --git a/packages/dcos/src/job/schedule.component.js b/packages/dcos/src/job/schedule.component.js index 099ae672321..ebff6e617d4 100644 --- a/packages/dcos/src/job/schedule.component.js +++ b/packages/dcos/src/job/schedule.component.js @@ -10,8 +10,10 @@ module(DCOS_JOB_SCHEDULE_COMPONENT, []).component('dcosSchedule', { }, templateUrl: require('./schedule.component.html'), controller: function () { - if (this.schedule === undefined || this.schedule == null) { - this.schedule = {}; - } + this.$onInit = () => { + if (this.schedule === undefined || this.schedule == null) { + this.schedule = {}; + } + }; }, }); diff --git a/packages/google/src/autoscalingPolicy/components/metricSettings/metricSettings.component.js b/packages/google/src/autoscalingPolicy/components/metricSettings/metricSettings.component.js index c3ceffa0ed4..64f8fd70bbb 100644 --- a/packages/google/src/autoscalingPolicy/components/metricSettings/metricSettings.component.js +++ b/packages/google/src/autoscalingPolicy/components/metricSettings/metricSettings.component.js @@ -16,91 +16,93 @@ module(GOOGLE_AUTOSCALINGPOLICY_COMPONENTS_METRICSETTINGS_METRICSETTINGS_COMPONE }, templateUrl: require('./metricSettings.component.html'), controller: function () { - const multipleAllowedFor = { - cpuUtilization: false, - loadBalancingUtilization: false, - customMetricUtilizations: true, - }; - - const metricTypes = Object.keys(multipleAllowedFor); - - this.targetTypesToDisplayMap = { - GAUGE: 'Gauge', - DELTA_PER_SECOND: 'Delta / second', - DELTA_PER_MINUTE: 'Delta / minute', - }; - - this.metricScopeTypesToDisplayMap = { - TIME_SERIES_PER_INSTANCE: 'Time series per instance', - SINGLE_TIME_SERIES_PER_GROUP: 'Single time series per group', - }; - - this.scalingpolicyTypesToDisplayMap = { - UTILIZATION_TARGET: 'Utilization target', - SINGLE_INSTANCE_ASSIGNMENT: 'singleInstanceAssignment', - }; - - this.addMetric = (metricType) => { - if (multipleAllowedFor[metricType]) { - this.policy[metricType] = this.policy[metricType] || []; - this.policy[metricType].push({}); - } else if (emptyOrUndefined(this.policy[metricType])) { - this.policy[metricType] = { utilizationTarget: null }; + this.$onInit = () => { + const multipleAllowedFor = { + cpuUtilization: false, + loadBalancingUtilization: false, + customMetricUtilizations: true, + }; + + const metricTypes = Object.keys(multipleAllowedFor); + + this.targetTypesToDisplayMap = { + GAUGE: 'Gauge', + DELTA_PER_SECOND: 'Delta / second', + DELTA_PER_MINUTE: 'Delta / minute', + }; + + this.metricScopeTypesToDisplayMap = { + TIME_SERIES_PER_INSTANCE: 'Time series per instance', + SINGLE_TIME_SERIES_PER_GROUP: 'Single time series per group', + }; + + this.scalingpolicyTypesToDisplayMap = { + UTILIZATION_TARGET: 'Utilization target', + SINGLE_INSTANCE_ASSIGNMENT: 'singleInstanceAssignment', + }; + + this.addMetric = (metricType) => { + if (multipleAllowedFor[metricType]) { + this.policy[metricType] = this.policy[metricType] || []; + this.policy[metricType].push({}); + } else if (emptyOrUndefined(this.policy[metricType])) { + this.policy[metricType] = { utilizationTarget: null }; + } + }; + + this.deleteMetric = (metricType, index) => { + if (multipleAllowedFor[metricType]) { + this.policy[metricType].splice(index, 1); + } else { + // sending an empty object to the API deletes the policy. + this.policy[metricType] = {}; + } + }; + + this.showMetric = (metricType) => { + const metric = this.policy[metricType]; + // should not show policy form if the policy is undefined or an empty object. + return !emptyOrUndefined(metric); + }; + + this.isSingleTimeSeriesPerGroup = (scopeType, index) => { + if (this.policy.customMetricUtilizations[index].metricExportScope === scopeType) return true; + }; + + this.isScalingPolicySingleInstanceAssignment = (policyType, index) => { + if (this.policy.customMetricUtilizations[index].scalingpolicy === policyType) return true; + }; + + this.showNoMetricsWarning = () => { + return _.every( + metricTypes.map((type) => { + return _.some([ + multipleAllowedFor[type] && !_.get(this.policy, [type, 'length']), + emptyOrUndefined(this.policy[type]), + ]); + }), + ); + }; + + this.setUtilizationTargetFromDisplay = (metricType, value) => { + this.policy[metricType].utilizationTarget = value / 100; + }; + + this.initializeTargetDisplay = (metricType) => { + this[`${metricType}TargetDisplay`] = safeDecimalToPercent(this.policy[metricType].utilizationTarget); + }; + + function safeDecimalToPercent(value) { + if (value === 0) { + return 0; + } + return value ? Math.round(value * 100) : undefined; } - }; - this.deleteMetric = (metricType, index) => { - if (multipleAllowedFor[metricType]) { - this.policy[metricType].splice(index, 1); - } else { - // sending an empty object to the API deletes the policy. - this.policy[metricType] = {}; + function emptyOrUndefined(value) { + return _.isEqual(value, {}) || _.isUndefined(value); } }; - - this.showMetric = (metricType) => { - const metric = this.policy[metricType]; - // should not show policy form if the policy is undefined or an empty object. - return !emptyOrUndefined(metric); - }; - - this.isSingleTimeSeriesPerGroup = (scopeType, index) => { - if (this.policy.customMetricUtilizations[index].metricExportScope === scopeType) return true; - }; - - this.isScalingPolicySingleInstanceAssignment = (policyType, index) => { - if (this.policy.customMetricUtilizations[index].scalingpolicy === policyType) return true; - }; - - this.showNoMetricsWarning = () => { - return _.every( - metricTypes.map((type) => { - return _.some([ - multipleAllowedFor[type] && !_.get(this.policy, [type, 'length']), - emptyOrUndefined(this.policy[type]), - ]); - }), - ); - }; - - this.setUtilizationTargetFromDisplay = (metricType, value) => { - this.policy[metricType].utilizationTarget = value / 100; - }; - - this.initializeTargetDisplay = (metricType) => { - this[`${metricType}TargetDisplay`] = safeDecimalToPercent(this.policy[metricType].utilizationTarget); - }; - - function safeDecimalToPercent(value) { - if (value === 0) { - return 0; - } - return value ? Math.round(value * 100) : undefined; - } - - function emptyOrUndefined(value) { - return _.isEqual(value, {}) || _.isUndefined(value); - } }, }, ); diff --git a/packages/google/src/autoscalingPolicy/components/scalingSchedules/scalingSchedules.component.js b/packages/google/src/autoscalingPolicy/components/scalingSchedules/scalingSchedules.component.js index cd33bca6503..da976b65ecc 100644 --- a/packages/google/src/autoscalingPolicy/components/scalingSchedules/scalingSchedules.component.js +++ b/packages/google/src/autoscalingPolicy/components/scalingSchedules/scalingSchedules.component.js @@ -16,44 +16,46 @@ module(GOOGLE_AUTOSCALINGPOLICY_COMPONENTS_SCALINGSCHEDULES_SCALINGSCHEDULES_COM }, templateUrl: require('./scalingSchedules.component.html'), controller: function () { - const multipleAllowedFor = { - scalingSchedules: true, - }; - - this.timezones = timezones; - - this.addSchedule = (scheduleType) => { - if (multipleAllowedFor[scheduleType]) { - this.policy[scheduleType] = this.policy[scheduleType] || []; - this.policy[scheduleType].push({}); - } else if (emptyOrUndefined(this.policy[scheduleType])) { - this.policy[scheduleType] = {}; - } - }; - - this.deleteSchedule = (scheduleType, index) => { - if (multipleAllowedFor[scheduleType]) { - this.policy[scheduleType].splice(index, 1); - } else { - // sending an empty object to the API deletes the policy. - this.policy[scheduleType] = {}; + this.$onInit = () => { + const multipleAllowedFor = { + scalingSchedules: true, + }; + + this.timezones = timezones; + + this.addSchedule = (scheduleType) => { + if (multipleAllowedFor[scheduleType]) { + this.policy[scheduleType] = this.policy[scheduleType] || []; + this.policy[scheduleType].push({}); + } else if (emptyOrUndefined(this.policy[scheduleType])) { + this.policy[scheduleType] = {}; + } + }; + + this.deleteSchedule = (scheduleType, index) => { + if (multipleAllowedFor[scheduleType]) { + this.policy[scheduleType].splice(index, 1); + } else { + // sending an empty object to the API deletes the policy. + this.policy[scheduleType] = {}; + } + }; + + this.selectTimezone = (timezone, index) => { + const { scalingSchedules } = this.policy; + const schedule = scalingSchedules[index]; + scalingSchedules[index] = { ...schedule, timezone }; + + this.updatePolicy({ + ...this.policy, + scalingSchedules: [...scalingSchedules], + }); + }; + + function emptyOrUndefined(value) { + return _.isEqual(value, {}) || _.isUndefined(value); } }; - - this.selectTimezone = (timezone, index) => { - const { scalingSchedules } = this.policy; - const schedule = scalingSchedules[index]; - scalingSchedules[index] = { ...schedule, timezone }; - - this.updatePolicy({ - ...this.policy, - scalingSchedules: [...scalingSchedules], - }); - }; - - function emptyOrUndefined(value) { - return _.isEqual(value, {}) || _.isUndefined(value); - } }, }, ); diff --git a/packages/google/src/loadBalancer/configure/http/backendService/backendService.component.js b/packages/google/src/loadBalancer/configure/http/backendService/backendService.component.js index feb403f937d..1ce144ef923 100644 --- a/packages/google/src/loadBalancer/configure/http/backendService/backendService.component.js +++ b/packages/google/src/loadBalancer/configure/http/backendService/backendService.component.js @@ -18,60 +18,62 @@ module(GOOGLE_LOADBALANCER_CONFIGURE_HTTP_BACKENDSERVICE_BACKENDSERVICE_COMPONEN }, templateUrl: require('./backendService.component.html'), controller: function () { - this.backingData = this.command.backingData; - this.loadBalancer = this.command.loadBalancer; - const servicesByName = this.backingData.backendServicesKeyedByName; + this.$onInit = () => { + this.backingData = this.command.backingData; + this.loadBalancer = this.command.loadBalancer; + const servicesByName = this.backingData.backendServicesKeyedByName; - this.onBackendServiceSelect = (selectedBackendService) => { - assign(selectedBackendService); - this.command.onHealthCheckSelected(selectedBackendService.healthCheck, this.command); - }; + this.onBackendServiceSelect = (selectedBackendService) => { + assign(selectedBackendService); + this.command.onHealthCheckSelected(selectedBackendService.healthCheck, this.command); + }; - this.toggleEditExisting = () => { - this.editExisting = !this.editExisting; - if (!this.editExisting) { - const template = new BackendServiceTemplate(); - assign(template); - } else { - delete this.backendService.name; - } - }; + this.toggleEditExisting = () => { + this.editExisting = !this.editExisting; + if (!this.editExisting) { + const template = new BackendServiceTemplate(); + assign(template); + } else { + delete this.backendService.name; + } + }; - this.getAllHealthChecks = () => { - const allHealthChecks = this.loadBalancer.healthChecks.concat(this.backingData.healthChecks); - return _.chain(allHealthChecks) - .filter((hc) => hc.account === this.loadBalancer.credentials || !hc.account) - .map((hc) => hc.name) - .uniq() - .value(); - }; + this.getAllHealthChecks = () => { + const allHealthChecks = this.loadBalancer.healthChecks.concat(this.backingData.healthChecks); + return _.chain(allHealthChecks) + .filter((hc) => hc.account === this.loadBalancer.credentials || !hc.account) + .map((hc) => hc.name) + .uniq() + .value(); + }; - this.getSessionAffinitySuggestions = () => { - if (this.loadBalancer.loadBalancerType === 'HTTP') { - return ['None', 'Client IP', 'Generated Cookie']; - } else { - return ['None', 'Client IP', 'Generated Cookie', 'Header Field', 'HTTP Cookie']; - } - }; + this.getSessionAffinitySuggestions = () => { + if (this.loadBalancer.loadBalancerType === 'HTTP') { + return ['None', 'Client IP', 'Generated Cookie']; + } else { + return ['None', 'Client IP', 'Generated Cookie', 'Header Field', 'HTTP Cookie']; + } + }; - this.getAllServiceNames = () => { - return this.command.backingData.backendServices - .filter((service) => service.account === this.loadBalancer.credentials) - .map((service) => service.name); - }; + this.getAllServiceNames = () => { + return this.command.backingData.backendServices + .filter((service) => service.account === this.loadBalancer.credentials) + .map((service) => service.name); + }; - this.maxCookieTtl = 60 * 60 * 24; // One day. + this.maxCookieTtl = 60 * 60 * 24; // One day. - const getBackendServiceName = () => { - return _.get(this, 'backendService.name'); - }; + const getBackendServiceName = () => { + return _.get(this, 'backendService.name'); + }; - if (servicesByName[getBackendServiceName()]) { - this.editExisting = true; - } + if (servicesByName[getBackendServiceName()]) { + this.editExisting = true; + } - const assign = (toAssign) => { - this.loadBalancer.backendServices[this.index] = this.backendService = toAssign; + const assign = (toAssign) => { + this.loadBalancer.backendServices[this.index] = this.backendService = toAssign; + }; }; }, }, diff --git a/packages/google/src/loadBalancer/configure/http/basicSettings/basicSettings.component.js b/packages/google/src/loadBalancer/configure/http/basicSettings/basicSettings.component.js index 5aa9af53513..cd55e60371f 100644 --- a/packages/google/src/loadBalancer/configure/http/basicSettings/basicSettings.component.js +++ b/packages/google/src/loadBalancer/configure/http/basicSettings/basicSettings.component.js @@ -15,30 +15,32 @@ module(GOOGLE_LOADBALANCER_CONFIGURE_HTTP_BASICSETTINGS_BASICSETTINGS_COMPONENT, }, templateUrl: require('./basicSettings.component.html'), controller: function () { - const c = this.command; - this.loadBalancer = c.loadBalancer; - this.accounts = c.backingData.accounts; - const loadBalancerMap = c.backingData.loadBalancerMap; + this.$onInit = () => { + const c = this.command; + this.loadBalancer = c.loadBalancer; + this.accounts = c.backingData.accounts; + const loadBalancerMap = c.backingData.loadBalancerMap; - this.getName = (loadBalancer, applicationName) => { - const loadBalancerName = [applicationName, loadBalancer.stack || '', loadBalancer.detail || ''].join('-'); - return _.trimEnd(loadBalancerName, '-'); - }; + this.getName = (loadBalancer, applicationName) => { + const loadBalancerName = [applicationName, loadBalancer.stack || '', loadBalancer.detail || ''].join('-'); + return _.trimEnd(loadBalancerName, '-'); + }; - this.updateName = (lb, appName) => { - lb.urlMapName = this.getName(lb, appName); - }; + this.updateName = (lb, appName) => { + lb.urlMapName = this.getName(lb, appName); + }; - this.accountChanged = (account) => { - this.existingLoadBalancerNames = _.get(loadBalancerMap, [account, 'urlMapNames']) || []; - c.onAccountChange(c); - }; + this.accountChanged = (account) => { + this.existingLoadBalancerNames = _.get(loadBalancerMap, [account, 'urlMapNames']) || []; + c.onAccountChange(c); + }; - if (!this.loadBalancer.name) { - this.updateName(this.loadBalancer, this.application.name); - } + if (!this.loadBalancer.name) { + this.updateName(this.loadBalancer, this.application.name); + } - this.existingLoadBalancerNames = _.get(loadBalancerMap, [this.loadBalancer.credentials, 'urlMapNames']) || []; + this.existingLoadBalancerNames = _.get(loadBalancerMap, [this.loadBalancer.credentials, 'urlMapNames']) || []; + }; }, }, ); diff --git a/packages/google/src/loadBalancer/configure/http/healthCheck/healthCheck.component.js b/packages/google/src/loadBalancer/configure/http/healthCheck/healthCheck.component.js index 7a570dbe077..d21e8de66fa 100644 --- a/packages/google/src/loadBalancer/configure/http/healthCheck/healthCheck.component.js +++ b/packages/google/src/loadBalancer/configure/http/healthCheck/healthCheck.component.js @@ -19,49 +19,51 @@ module(GOOGLE_LOADBALANCER_CONFIGURE_HTTP_HEALTHCHECK_HEALTHCHECK_COMPONENT, []) }, templateUrl: require('./healthCheck.component.html'), controller: function () { - this.max = Number.MAX_SAFE_INTEGER; - this.backingData = this.command.backingData; - this.loadBalancer = this.command.loadBalancer; - const healthChecksByName = this.backingData.healthChecksKeyedByName; + this.$onInit = () => { + this.max = Number.MAX_SAFE_INTEGER; + this.backingData = this.command.backingData; + this.loadBalancer = this.command.loadBalancer; + const healthChecksByName = this.backingData.healthChecksKeyedByName; - this.onHealthCheckSelect = (selectedHealthCheck) => { - assign(selectedHealthCheck); - }; + this.onHealthCheckSelect = (selectedHealthCheck) => { + assign(selectedHealthCheck); + }; - this.getAllHealthCheckNames = () => { - return this.command.backingData.healthChecks - .filter((hc) => hc.account === this.loadBalancer.credentials) - .map((hc) => hc.name); - }; + this.getAllHealthCheckNames = () => { + return this.command.backingData.healthChecks + .filter((hc) => hc.account === this.loadBalancer.credentials) + .map((hc) => hc.name); + }; - this.toggleEditExisting = () => { - this.editExisting = !this.editExisting; - if (!this.editExisting) { - assign(new HealthCheckTemplate()); - } else { - delete this.healthCheck.name; - } - }; + this.toggleEditExisting = () => { + this.editExisting = !this.editExisting; + if (!this.editExisting) { + assign(new HealthCheckTemplate()); + } else { + delete this.healthCheck.name; + } + }; - const assign = (toAssign) => { - this.loadBalancer.healthChecks[this.index] = this.healthCheck = toAssign; - }; + const assign = (toAssign) => { + this.loadBalancer.healthChecks[this.index] = this.healthCheck = toAssign; + }; - const getHealthCheckName = () => { - return _.get(this, 'healthCheck.name'); - }; + const getHealthCheckName = () => { + return _.get(this, 'healthCheck.name'); + }; - this.onProtocolChange = () => { - if (this.healthCheck.healthCheckType !== this.healthCheckType) { - assign(Object.assign({}, new HealthCheckTemplate(), { healthCheckType: this.healthCheckType })); - } - }; + this.onProtocolChange = () => { + if (this.healthCheck.healthCheckType !== this.healthCheckType) { + assign(Object.assign({}, new HealthCheckTemplate(), { healthCheckType: this.healthCheckType })); + } + }; - if (healthChecksByName[getHealthCheckName()]) { - this.editExisting = true; - } + if (healthChecksByName[getHealthCheckName()]) { + this.editExisting = true; + } - this.healthCheckType = this.healthCheck.healthCheckType; + this.healthCheckType = this.healthCheck.healthCheckType; + }; }, }, ); diff --git a/packages/google/src/loadBalancer/configure/http/hostRule/hostRule.component.js b/packages/google/src/loadBalancer/configure/http/hostRule/hostRule.component.js index e5aba4bba2b..1b46be912f3 100644 --- a/packages/google/src/loadBalancer/configure/http/hostRule/hostRule.component.js +++ b/packages/google/src/loadBalancer/configure/http/hostRule/hostRule.component.js @@ -19,15 +19,17 @@ module(GOOGLE_LOADBALANCER_CONFIGURE_HTTP_HOSTRULE_HOSTRULE_COMPONENT, [ }, templateUrl: require('./hostRule.component.html'), controller: function () { - this.loadBalancer = this.command.loadBalancer; - const pathRules = this.hostRule.pathMatcher.pathRules; + this.$onInit = () => { + this.loadBalancer = this.command.loadBalancer; + const pathRules = this.hostRule.pathMatcher.pathRules; - this.addPathRule = () => { - pathRules.push(new PathRuleTemplate()); - }; + this.addPathRule = () => { + pathRules.push(new PathRuleTemplate()); + }; - this.deletePathRule = (index) => { - pathRules.splice(index, 1); + this.deletePathRule = (index) => { + pathRules.splice(index, 1); + }; }; }, }); diff --git a/packages/google/src/loadBalancer/configure/http/listeners/listener.component.js b/packages/google/src/loadBalancer/configure/http/listeners/listener.component.js index eb2607326b6..b365172cd74 100644 --- a/packages/google/src/loadBalancer/configure/http/listeners/listener.component.js +++ b/packages/google/src/loadBalancer/configure/http/listeners/listener.component.js @@ -20,61 +20,62 @@ module(GOOGLE_LOADBALANCER_CONFIGURE_HTTP_LISTENERS_LISTENER_COMPONENT, [GCE_ADD }, templateUrl: require('./listener.component.html'), controller: function () { - this.certificates = this.command.backingData.certificates; - const loadBalancerMap = this.command.backingData.loadBalancerMap; + this.$onInit = () => { + this.certificates = this.command.backingData.certificates; + const loadBalancerMap = this.command.backingData.loadBalancerMap; - this.getName = (listener, applicationName) => { - const listenerName = [applicationName, listener.stack || '', listener.detail || ''].join('-'); - return _.trimEnd(listenerName, '-'); - }; + this.getName = (listener, applicationName) => { + const listenerName = [applicationName, listener.stack || '', listener.detail || ''].join('-'); + return _.trimEnd(listenerName, '-'); + }; - this.getCertificates = () => { - return this.command.backingData.certificates - .filter((certificate) => certificate.account === this.command.loadBalancer.credentials) - .map((certificate) => certificate.name); - }; + this.getCertificates = () => { + return this.command.backingData.certificates + .filter((certificate) => certificate.account === this.command.loadBalancer.credentials) + .map((certificate) => certificate.name); + }; - this.getSubnets = () => { - const ret = this.command.backingData.subnetMap[this.command.loadBalancer.network] - .filter((subnet) => subnet.region === this.command.loadBalancer.region) - .map((subnet) => subnet.name); - return _.uniq(ret); - }; + this.getSubnets = () => { + const ret = this.command.backingData.subnetMap[this.command.loadBalancer.network] + .filter((subnet) => subnet.region === this.command.loadBalancer.region) + .map((subnet) => subnet.name); + return _.uniq(ret); + }; - this.getInternalAddresses = () => { - const ret = this.command.backingData.addresses.filter( - (address) => - address.addressType === 'INTERNAL' && address.subnetwork.split('/').pop() === this.listener.subnet, - ); - return ret; - }; + this.getInternalAddresses = () => { + return this.command.backingData.addresses.filter( + (address) => + address.addressType === 'INTERNAL' && address.subnetwork.split('/').pop() === this.listener.subnet, + ); + }; - this.updateName = (listener, appName) => { - listener.name = this.getName(listener, appName); - }; + this.updateName = (listener, appName) => { + listener.name = this.getName(listener, appName); + }; - this.localListenerHasSameName = () => { - return ( - this.command.loadBalancer.listeners.filter((listener) => listener.name === this.listener.name).length > 1 - ); - }; - - this.existingListenerNames = () => { - return _.get(loadBalancerMap, [this.command.loadBalancer.credentials, 'listeners']); - }; + this.localListenerHasSameName = () => { + return ( + this.command.loadBalancer.listeners.filter((listener) => listener.name === this.listener.name).length > 1 + ); + }; - this.isHttps = (port) => port === 443 || port === '443'; + this.existingListenerNames = () => { + return _.get(loadBalancerMap, [this.command.loadBalancer.credentials, 'listeners']); + }; - if (!this.listener.name) { - this.updateName(this.listener, this.application.name); - } + this.isHttps = (port) => port === 443 || port === '443'; - this.onAddressSelect = (address) => { - if (address) { - this.listener.ipAddress = address.address; - } else { - this.listener.ipAddress = null; + if (!this.listener.name) { + this.updateName(this.listener, this.application.name); } + + this.onAddressSelect = (address) => { + if (address) { + this.listener.ipAddress = address.address; + } else { + this.listener.ipAddress = null; + } + }; }; }, }, diff --git a/packages/google/src/loadBalancer/details/loadBalancerType/loadBalancerType.component.js b/packages/google/src/loadBalancer/details/loadBalancerType/loadBalancerType.component.js index 02ef31a770d..1c606f2bc24 100644 --- a/packages/google/src/loadBalancer/details/loadBalancerType/loadBalancerType.component.js +++ b/packages/google/src/loadBalancer/details/loadBalancerType/loadBalancerType.component.js @@ -12,16 +12,18 @@ module(GOOGLE_LOADBALANCER_DETAILS_LOADBALANCERTYPE_LOADBALANCERTYPE_COMPONENT, loadBalancer: '=', }, controller: function () { - this.type = (function (lb) { - if (lb.loadBalancerType === 'HTTP') { - if (_.isString(lb.certificate)) { - return 'HTTPS'; + this.$onInit = () => { + this.type = (function (lb) { + if (lb.loadBalancerType === 'HTTP') { + if (_.isString(lb.certificate)) { + return 'HTTPS'; + } else { + return 'HTTP'; + } } else { - return 'HTTP'; + return lb.loadBalancerType; } - } else { - return lb.loadBalancerType; - } - })(this.loadBalancer); + })(this.loadBalancer); + }; }, }); From 6ab48c3e5a094d733d8ce002282062c61324ec25 Mon Sep 17 00:00:00 2001 From: Rajinderpal Singh Siddhu <61963157+siddhu-opsmx@users.noreply.github.com> Date: Fri, 2 Jun 2023 16:49:11 +0530 Subject: [PATCH 04/85] fix(core/pipeline): Pipeline builder-pipeline action dropdown closing not properly (#9999) --- .../core/src/pipeline/config/actions/PipelineConfigActions.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/src/pipeline/config/actions/PipelineConfigActions.tsx b/packages/core/src/pipeline/config/actions/PipelineConfigActions.tsx index b9410afd175..b5d185469cf 100644 --- a/packages/core/src/pipeline/config/actions/PipelineConfigActions.tsx +++ b/packages/core/src/pipeline/config/actions/PipelineConfigActions.tsx @@ -18,6 +18,7 @@ export interface IPipelineConfigActionsProps { } export function PipelineConfigActions(props: IPipelineConfigActionsProps) { + const closeDropdown = () => document.body.click(); const { pipeline, renamePipeline, @@ -36,7 +37,7 @@ export function PipelineConfigActions(props: IPipelineConfigActionsProps) { {pipeline.strategy === true ? 'Strategy' : 'Pipeline'} Actions - + {!pipeline.locked && } {!pipeline.locked && } {!pipeline.locked && pipeline.disabled && } From c1085016b47ce4bb597567103e9e13063e3af1c6 Mon Sep 17 00:00:00 2001 From: Siddhu Date: Tue, 9 May 2023 17:02:31 +0530 Subject: [PATCH 05/85] fix(ecs): VPC Subnet dropdown fix in ecs server group creation. From 092aa9833ee3771298f2c99f339eb85051f6d978 Mon Sep 17 00:00:00 2001 From: spinnakerbot Date: Thu, 18 May 2023 13:20:12 -0400 Subject: [PATCH 06/85] Autobump spinnakerGradleVersion --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 68ead1f18b5..b3a18fc9e29 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -spinnakerGradleVersion=8.25.0 +spinnakerGradleVersion=8.27.0 From ab5f770ac2c236c48eb2bdddd6ac912273a63958 Mon Sep 17 00:00:00 2001 From: Matt <6519811+mattgogerly@users.noreply.github.com> Date: Sat, 29 Apr 2023 22:18:59 +0100 Subject: [PATCH 07/85] update to Node 14 and es2019 --- .github/workflows/build.yml | 2 +- .github/workflows/package-bump-pr.yml | 2 +- .github/workflows/pr.yml | 2 +- .github/workflows/publish.yml | 2 +- .github/workflows/release.yml | 2 +- package.json | 4 ++-- packages/tsconfig.app.base.json | 2 +- packages/tsconfig.tools.base.json | 2 +- tsconfig.json | 2 +- version.json | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8e223f1e370..ff8dabae0b1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ on: env: GRADLE_OPTS: -Dorg.gradle.daemon=false -Xmx2g -Xms2g CONTAINER_REGISTRY: us-docker.pkg.dev/spinnaker-community/docker - NODE_VERSION: 12.16.0 + NODE_VERSION: 14.21.3 permissions: contents: read diff --git a/.github/workflows/package-bump-pr.yml b/.github/workflows/package-bump-pr.yml index add66d84e12..ef67c937916 100644 --- a/.github/workflows/package-bump-pr.yml +++ b/.github/workflows/package-bump-pr.yml @@ -12,7 +12,7 @@ on: - '@spinnaker/*' env: - NODE_VERSION: 12.16.0 + NODE_VERSION: 14.21.3 jobs: build: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 068486d6bae..ae5a4ef2244 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -5,7 +5,7 @@ on: [ pull_request ] env: GRADLE_OPTS: -Dorg.gradle.daemon=false -Xmx2g -Xms2g CONTAINER_REGISTRY: us-docker.pkg.dev/spinnaker-community/docker - NODE_VERSION: 12.16.0 + NODE_VERSION: 14.21.3 permissions: contents: read diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d734c9a0718..47fc2b188b6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -8,7 +8,7 @@ on: - 'packages/*/package.json' env: - NODE_VERSION: 12.16.0 + NODE_VERSION: 14.21.3 permissions: contents: read diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 628b8c68e2e..2a531ec2d33 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ on: env: GRADLE_OPTS: -Dorg.gradle.daemon=false -Xmx2g -Xms2g CONTAINER_REGISTRY: us-docker.pkg.dev/spinnaker-community/docker - NODE_VERSION: 12.16.0 + NODE_VERSION: 14.21.3 jobs: release: diff --git a/package.json b/package.json index 189c3f8b7bf..7e441d25c02 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ "registry": "http://artifacts.netflix.com/api/npm/npm-local" }, "engines": { - "node": ">=12.16.0", - "npm": ">=6.13.4", + "node": ">=14.21.3", + "npm": ">=6.14.18", "yarn": ">=1.21.1" }, "private": true, diff --git a/packages/tsconfig.app.base.json b/packages/tsconfig.app.base.json index f51d62ea226..c3004c06e99 100644 --- a/packages/tsconfig.app.base.json +++ b/packages/tsconfig.app.base.json @@ -6,7 +6,7 @@ "jsx": "react", "module": "esnext", "sourceMap": true, - "target": "es2018", + "target": "es2019", // strict checks "noImplicitAny": true, diff --git a/packages/tsconfig.tools.base.json b/packages/tsconfig.tools.base.json index ce38bda8d31..05c4577aba7 100644 --- a/packages/tsconfig.tools.base.json +++ b/packages/tsconfig.tools.base.json @@ -6,7 +6,7 @@ "esModuleInterop": true, "experimentalDecorators": true, "jsx": "react", - "lib": ["es2017", "dom"], + "lib": ["es2019", "dom"], "module": "esnext", "moduleResolution": "node", "noImplicitAny": true, diff --git a/tsconfig.json b/tsconfig.json index 978da4e0ae8..5fc13ad8c96 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,7 +8,7 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "jsx": "react", - "lib": ["es2017", "dom", "ES2018.Promise"], + "lib": ["es2019", "dom"], "moduleResolution": "node", "module": "esnext", "noEmitHelpers": false, diff --git a/version.json b/version.json index cc9eaea11e9..af7c26b60a5 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { "version": "n/a", - "created": 1683116302016 + "created": 1682786907076 } \ No newline at end of file From 7f4d2a17f251342126f5ad279b92987342d28975 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Apr 2023 05:37:23 +0000 Subject: [PATCH 08/85] chore(deps): bump actions/checkout from 2 to 3 (#9968) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/package-bump-pr.yml | 2 +- .github/workflows/pr.yml | 2 +- .github/workflows/publish.yml | 2 +- .github/workflows/release.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ff8dabae0b1..f409c329ff5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,7 @@ jobs: if: startsWith(github.repository, 'spinnaker/') runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 diff --git a/.github/workflows/package-bump-pr.yml b/.github/workflows/package-bump-pr.yml index ef67c937916..fbd1dd6c633 100644 --- a/.github/workflows/package-bump-pr.yml +++ b/.github/workflows/package-bump-pr.yml @@ -20,7 +20,7 @@ jobs: if: startsWith(github.repository, 'spinnaker/') runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 ref: master diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ae5a4ef2244..ad8192ca902 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -14,7 +14,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 47fc2b188b6..994f3b93359 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 token: '${{ secrets.SPINNAKERBOT_PERSONAL_ACCESS_TOKEN }}' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2a531ec2d33..5b342c0e7f7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: release: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 From 120681e75f29ef17faaede74da8edc5de7306bac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Apr 2023 05:17:52 +0000 Subject: [PATCH 09/85] chore(deps): bump actions/setup-java from 2 to 3 (#9969) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 2 to 3. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: David Byron <82477955+dbyron-sf@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/pr.yml | 2 +- .github/workflows/release.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f409c329ff5..6af87a123f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,7 +43,7 @@ jobs: restore-keys: | ${{ runner.os }}-yarn- - - uses: actions/setup-java@v2 + - uses: actions/setup-java@v3 with: java-version: 11 distribution: 'zulu' diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index ad8192ca902..c24039d6f1b 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -37,7 +37,7 @@ jobs: restore-keys: | ${{ runner.os }}-yarn- - - uses: actions/setup-java@v2 + - uses: actions/setup-java@v3 with: java-version: 11 distribution: 'zulu' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5b342c0e7f7..36245b1354c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,7 +38,7 @@ jobs: restore-keys: | ${{ runner.os }}-yarn- - - uses: actions/setup-java@v2 + - uses: actions/setup-java@v3 with: java-version: 11 distribution: 'zulu' From 721d9919aba16189cdeb23a450c595bff54694e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Apr 2023 04:47:48 +0000 Subject: [PATCH 10/85] chore(deps): bump actions/cache from 1 to 3 (#9970) Bumps [actions/cache](https://github.com/actions/cache) from 1 to 3. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v1...v3) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/package-bump-pr.yml | 2 +- .github/workflows/pr.yml | 2 +- .github/workflows/release.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6af87a123f6..f1f9dd1527b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,7 +36,7 @@ jobs: id: yarn-cache run: echo "::set-output name=dir::$(yarn cache dir)" - - uses: actions/cache@v1 + - uses: actions/cache@v3 with: path: ${{ steps.yarn-cache.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} diff --git a/.github/workflows/package-bump-pr.yml b/.github/workflows/package-bump-pr.yml index fbd1dd6c633..8c7fbf0bf94 100644 --- a/.github/workflows/package-bump-pr.yml +++ b/.github/workflows/package-bump-pr.yml @@ -39,7 +39,7 @@ jobs: id: yarn-cache run: echo "::set-output name=dir::$(yarn cache dir)" - - uses: actions/cache@v1 + - uses: actions/cache@v3 with: path: ${{ steps.yarn-cache.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index c24039d6f1b..c947ef8941e 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -30,7 +30,7 @@ jobs: id: yarn-cache run: echo "::set-output name=dir::$(yarn cache dir)" - - uses: actions/cache@v1 + - uses: actions/cache@v3 with: path: ${{ steps.yarn-cache.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 36245b1354c..d58bde2d5ce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -31,7 +31,7 @@ jobs: id: yarn-cache run: echo "::set-output name=dir::$(yarn cache dir)" - - uses: actions/cache@v1 + - uses: actions/cache@v3 with: path: ${{ steps.yarn-cache.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} From 004085099d82c3e4de7070f16fee8e28b030bca2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 2 Apr 2023 04:28:45 +0000 Subject: [PATCH 11/85] chore(deps): bump actions/setup-node from 1 to 3 (#9967) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 1 to 3. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v1...v3) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 2 +- .github/workflows/package-bump-pr.yml | 2 +- .github/workflows/pr.yml | 2 +- .github/workflows/publish.yml | 2 +- .github/workflows/release.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f1f9dd1527b..c71fe396629 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_VERSION }} diff --git a/.github/workflows/package-bump-pr.yml b/.github/workflows/package-bump-pr.yml index 8c7fbf0bf94..72e442e15f2 100644 --- a/.github/workflows/package-bump-pr.yml +++ b/.github/workflows/package-bump-pr.yml @@ -31,7 +31,7 @@ jobs: git config user.email spinnakerbot@spinnaker.io git checkout master - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_VERSION }} diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index c947ef8941e..dc8b9aff492 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -22,7 +22,7 @@ jobs: uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_VERSION }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 994f3b93359..d534206a3ae 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -25,7 +25,7 @@ jobs: fetch-depth: 0 token: '${{ secrets.SPINNAKERBOT_PERSONAL_ACCESS_TOKEN }}' - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_VERSION }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d58bde2d5ce..efa88613bd2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v3 with: node-version: ${{ env.NODE_VERSION }} From b75ec090517b790a8bddbc4d7e9ce2a5cefb2a32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Apr 2023 00:23:22 +0000 Subject: [PATCH 12/85] chore(deps): bump google-github-actions/auth from 0 to 1 (#9965) Bumps [google-github-actions/auth](https://github.com/google-github-actions/auth) from 0 to 1. - [Release notes](https://github.com/google-github-actions/auth/releases) - [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md) - [Commits](https://github.com/google-github-actions/auth/compare/v0...v1) --- updated-dependencies: - dependency-name: google-github-actions/auth dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index efa88613bd2..cf62b3bfdd8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -78,7 +78,7 @@ jobs: - name: Login to Google Cloud # Only run this on repositories in the 'spinnaker' org, not on forks. if: startsWith(github.repository, 'spinnaker/') - uses: 'google-github-actions/auth@v0' + uses: 'google-github-actions/auth@v1' # use service account flow defined at: https://github.com/google-github-actions/upload-cloud-storage#authenticating-via-service-account-key-json with: credentials_json: '${{ secrets.GAR_JSON_KEY }}' From 155085a5b538451581e09819452d60f58b041a47 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Mar 2023 23:59:00 +0000 Subject: [PATCH 13/85] chore(deps): bump docker/build-push-action from 3 to 4 (#9963) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3...v4) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- .github/workflows/pr.yml | 4 ++-- .github/workflows/release.yml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c71fe396629..6413e807533 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -73,7 +73,7 @@ jobs: - name: Build and publish slim container image # Only run this on repositories in the 'spinnaker' org, not on forks. if: startsWith(github.repository, 'spinnaker/') - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: Dockerfile.slim @@ -88,7 +88,7 @@ jobs: - name: Build and publish ubuntu container image # Only run this on repositories in the 'spinnaker' org, not on forks. if: startsWith(github.repository, 'spinnaker/') - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: Dockerfile.ubuntu diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index dc8b9aff492..bb17c813365 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -55,7 +55,7 @@ jobs: run: ./gradlew build - name: Build slim container image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: Dockerfile.slim @@ -67,7 +67,7 @@ jobs: "${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.build_variables.outputs.VERSION }}-slim" - name: Build ubuntu container image - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: Dockerfile.ubuntu diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cf62b3bfdd8..9872f6215df 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -103,7 +103,7 @@ jobs: - name: Build and publish slim container image # Only run this on repositories in the 'spinnaker' org, not on forks. if: startsWith(github.repository, 'spinnaker/') - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: Dockerfile.slim @@ -116,7 +116,7 @@ jobs: - name: Build and publish ubuntu container image # Only run this on repositories in the 'spinnaker' org, not on forks. if: startsWith(github.repository, 'spinnaker/') - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: Dockerfile.ubuntu From 072cc357d89e24c27153e2f2d63a10cf8d03e37a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Mar 2023 23:40:34 +0000 Subject: [PATCH 14/85] chore(deps): bump peter-evans/create-pull-request from 3 to 4 (#9964) Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3 to 4. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v3...v4) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/package-bump-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/package-bump-pr.yml b/.github/workflows/package-bump-pr.yml index 72e442e15f2..486bb53c180 100644 --- a/.github/workflows/package-bump-pr.yml +++ b/.github/workflows/package-bump-pr.yml @@ -65,7 +65,7 @@ jobs: PEERDEP_BUMP_COMMIT_HASH: ${{ steps.lerna_bump.outputs.peerdepBumpCommitHash }} - name: Create Pull Request id: createpullrequest - uses: peter-evans/create-pull-request@v3 + uses: peter-evans/create-pull-request@v4 with: token: '${{ secrets.SPINNAKERBOT_PERSONAL_ACCESS_TOKEN }}' commit-message: 'chore(package): Publish ${{ steps.bumps.outputs.bumps }}' From c05cf67d3fbcb5db0d3edfd2ec2af674fe5b2f11 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Mar 2023 23:21:41 +0000 Subject: [PATCH 15/85] chore(deps): bump google-github-actions/upload-cloud-storage from 0 to 1 (#9966) Bumps [google-github-actions/upload-cloud-storage](https://github.com/google-github-actions/upload-cloud-storage) from 0 to 1. - [Release notes](https://github.com/google-github-actions/upload-cloud-storage/releases) - [Changelog](https://github.com/google-github-actions/upload-cloud-storage/blob/main/CHANGELOG.md) - [Commits](https://github.com/google-github-actions/upload-cloud-storage/compare/v0...v1) --- updated-dependencies: - dependency-name: google-github-actions/upload-cloud-storage dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9872f6215df..26b4e53cb09 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -86,7 +86,7 @@ jobs: # https://console.cloud.google.com/storage/browser/halconfig # Only run this on repositories in the 'spinnaker' org, not on forks. if: startsWith(github.repository, 'spinnaker/') - uses: 'google-github-actions/upload-cloud-storage@v0' + uses: 'google-github-actions/upload-cloud-storage@v1' with: path: 'halconfig/' destination: 'halconfig/${{ steps.build_variables.outputs.REPO }}/${{ steps.release_info.outputs.RELEASE_VERSION }}' From ee67973b41fc1787e070a3183c3e71a140bfda03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Mar 2023 23:02:15 +0000 Subject: [PATCH 16/85] chore(deps): bump actions/github-script from 0.9.0 to 6.4.0 (#9962) Bumps [actions/github-script](https://github.com/actions/github-script) from 0.9.0 to 6.4.0. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/0.9.0...v6.4.0) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/package-bump-pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/package-bump-pr.yml b/.github/workflows/package-bump-pr.yml index 486bb53c180..8318e2f5486 100644 --- a/.github/workflows/package-bump-pr.yml +++ b/.github/workflows/package-bump-pr.yml @@ -92,7 +92,7 @@ jobs: - name: Close package bump due to no changes if: ${{ steps.lerna_bump.outputs.packageBumpCommitHash == '' && steps.createpullrequest.outputs.pull-request-number != '' }} - uses: actions/github-script@0.9.0 + uses: actions/github-script@v6.4.0 with: github-token: '${{ secrets.SPINNAKERBOT_PERSONAL_ACCESS_TOKEN }}' script: | @@ -102,7 +102,7 @@ jobs: - name: Approve package bump if: ${{ steps.lerna_bump.outputs.packageBumpCommitHash != '' && steps.createpullrequest.outputs.pull-request-number != '' }} - uses: actions/github-script@0.9.0 + uses: actions/github-script@v6.4.0 with: github-token: '${{ secrets.SPINNAKERBOT_TOKEN }}' script: | From d3dd762e788e34df68c12836a7c4500ea22437f5 Mon Sep 17 00:00:00 2001 From: Shlomo Daari <104773977+shlomodaari@users.noreply.github.com> Date: Fri, 31 Mar 2023 14:50:46 -0700 Subject: [PATCH 17/85] chore(gha): replace deprecated set-output commands (#9952) * changing set-output to github_output The `set-output` command is deprecated and will be disabled soon (May 2023) * changing set-output to github_output The `set-output` command is deprecated and will be disabled soon (May 2023) * changing set-output to github_output The `set-output` command is deprecated and will be disabled soon (May 2023) * changing set-output to github_output The `set-output` command is deprecated and will be disabled soon (May 2023) --------- Co-authored-by: David Byron <82477955+dbyron-sf@users.noreply.github.com> --- .github/workflows/build.yml | 6 +++--- .github/workflows/package-bump-pr.yml | 2 +- .github/workflows/pr.yml | 6 +++--- .github/workflows/release.yml | 16 ++++++++-------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6413e807533..0b9162168ce 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,7 +34,7 @@ jobs: - name: Get yarn cache id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" + run: echo "dir=$(yarn cache dir)" >> $GIHUB_OUTPUT - uses: actions/cache@v3 with: @@ -52,8 +52,8 @@ jobs: - name: Prepare build variables id: build_variables run: | - echo ::set-output name=REPO::${GITHUB_REPOSITORY##*/} - echo ::set-output name=VERSION::"$(git describe --tags --abbrev=0 --match="v[0-9]*" | cut -c2-)-dev-${GITHUB_REF_NAME}-$(git rev-parse --short HEAD)-$(date --utc +'%Y%m%d%H%M')" + echo REPO=${GITHUB_REPOSITORY##*/} >> $GIHUB_OUTPUT + echo VERSION="$(git describe --tags --abbrev=0 --match="v[0-9]*" | cut -c2-)-dev-${GITHUB_REF_NAME}-$(git rev-parse --short HEAD)-$(date --utc +'%Y%m%d%H%M')" >> $GIHUB_OUTPUT - name: Build env: diff --git a/.github/workflows/package-bump-pr.yml b/.github/workflows/package-bump-pr.yml index 8318e2f5486..7b5cf76149c 100644 --- a/.github/workflows/package-bump-pr.yml +++ b/.github/workflows/package-bump-pr.yml @@ -37,7 +37,7 @@ jobs: - name: yarn - get cache dir id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" + run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - uses: actions/cache@v3 with: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index bb17c813365..7d2870c48c8 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -28,7 +28,7 @@ jobs: - name: Get yarn cache id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" + run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - uses: actions/cache@v3 with: @@ -46,8 +46,8 @@ jobs: - name: Prepare build variables id: build_variables run: | - echo ::set-output name=REPO::${GITHUB_REPOSITORY##*/} - echo ::set-output name=VERSION::"$(git describe --tags --abbrev=0 --match="v[0-9]*" | cut -c2-)-dev-pr-$(git rev-parse --short HEAD)-$(date --utc +'%Y%m%d%H%M')" + echo REPO=${GITHUB_REPOSITORY##*/} >> $GITHUB_OUTPUT + echo VERSION="$(git describe --tags --abbrev=0 --match="v[0-9]*" | cut -c2-)-dev-pr-$(git rev-parse --short HEAD)-$(date --utc +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT - name: Build env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 26b4e53cb09..5f5aeb7b06e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,7 +29,7 @@ jobs: - name: Get yarn cache id: yarn-cache - run: echo "::set-output name=dir::$(yarn cache dir)" + run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - uses: actions/cache@v3 with: @@ -48,16 +48,16 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - . .github/workflows/release_info.sh ${{ github.event.repository.full_name }} - echo ::set-output name=CHANGELOG::$(echo -e "${CHANGELOG}") - echo ::set-output name=SKIP_RELEASE::${SKIP_RELEASE} - echo ::set-output name=IS_CANDIDATE::${IS_CANDIDATE} - echo ::set-output name=RELEASE_VERSION::${RELEASE_VERSION} + . .github/workflows/release_info.sh ${{ github.event.repository.full_name }} + echo CHANGELOG=$(echo -e "${CHANGELOG}") >> $GITHUB_OUTPUT + echo SKIP_RELEASE=${SKIP_RELEASE} >> $GITHUB_OUTPUT + echo IS_CANDIDATE=${IS_CANDIDATE} >> $GITHUB_OUTPUT + echo RELEASE_VERSION=${RELEASE_VERSION} >> $GITHUB_OUTPUT - name: Prepare build variables id: build_variables run: | - echo ::set-output name=REPO::${GITHUB_REPOSITORY##*/} - echo ::set-output name=VERSION::"$(git rev-parse --short HEAD)-$(date --utc +'%Y%m%d%H%M')" + echo REPO=${GITHUB_REPOSITORY##*/} >> $GITHUB_OUTPUT + echo VERSION="$(git rev-parse --short HEAD)-$(date --utc +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT - name: Release build env: ORG_GRADLE_PROJECT_version: ${{ steps.release_info.outputs.RELEASE_VERSION }} From 8cb4a12bbd230805b6a7944d6b68559a242caaed Mon Sep 17 00:00:00 2001 From: David Byron <82477955+dbyron-sf@users.noreply.github.com> Date: Thu, 30 Mar 2023 09:26:36 -0700 Subject: [PATCH 18/85] chore(gha): update to docker/login-action@v2 to stay up to date (#9958) similar to https://github.com/spinnaker/fiat/pull/1036 --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0b9162168ce..9ed713abc6f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -63,7 +63,7 @@ jobs: - name: Login to GAR # Only run this on repositories in the 'spinnaker' org, not on forks. if: startsWith(github.repository, 'spinnaker/') - uses: docker/login-action@v1 + uses: docker/login-action@v2 # use service account flow defined at: https://github.com/docker/login-action#service-account-based-authentication-1 with: registry: us-docker.pkg.dev diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5f5aeb7b06e..bdbdbf3f969 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -94,7 +94,7 @@ jobs: - name: Login to GAR # Only run this on repositories in the 'spinnaker' org, not on forks. if: startsWith(github.repository, 'spinnaker/') - uses: docker/login-action@v1 + uses: docker/login-action@v2 # use service account flow defined at: https://github.com/docker/login-action#service-account-based-authentication-1 with: registry: us-docker.pkg.dev From 833f1dc91e33b346c0e88d7133efbb04995544b6 Mon Sep 17 00:00:00 2001 From: Spinnaker Bot <87720302+spinnakerbot2@users.noreply.github.com> Date: Sun, 4 Jun 2023 10:59:06 -1000 Subject: [PATCH 19/85] Publish packages to NPM (#10000) * chore(publish): publish packages (e436465778437895446d0e36094296d7b96fb58d) - @spinnaker/amazon@0.13.9 - deck-app@2.5.5 - @spinnaker/appengine@0.1.7 - @spinnaker/azure@0.4.4 - @spinnaker/cloudfoundry@0.1.7 - @spinnaker/cloudrun@0.1.3 - @spinnaker/core@0.24.1 - @spinnaker/dcos@0.0.60 - @spinnaker/docker@0.0.141 - @spinnaker/ecs@0.0.360 - @spinnaker/google@0.2.8 - @spinnaker/huaweicloud@0.0.72 - @spinnaker/kubernetes@0.4.4 - @spinnaker/oracle@0.0.85 - @spinnaker/presentation@0.3.0 - @spinnaker/tencentcloud@0.0.78 - @spinnaker/titus@0.5.38 * feat(peerdep-sync): Synchronize peerdependencies * chore(publish): publish peerdeps (e436465778437895446d0e36094296d7b96fb58d) - @spinnaker/pluginsdk-peerdeps@0.15.0 --------- Co-authored-by: spinnakerbot From 75b8658e92e72133c953820aa4b367cee0d33a11 Mon Sep 17 00:00:00 2001 From: Shlomo Daari <104773977+shlomodaari@users.noreply.github.com> Date: Wed, 3 May 2023 06:10:25 -0700 Subject: [PATCH 20/85] update(rolling red/black) remove experimental label (#9987) update(rolling red/black) remove experimental label Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .../strategies/rollingredblack/rollingredblack.strategy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/deploymentStrategy/strategies/rollingredblack/rollingredblack.strategy.ts b/packages/core/src/deploymentStrategy/strategies/rollingredblack/rollingredblack.strategy.ts index b2b8243a193..076503c67f3 100644 --- a/packages/core/src/deploymentStrategy/strategies/rollingredblack/rollingredblack.strategy.ts +++ b/packages/core/src/deploymentStrategy/strategies/rollingredblack/rollingredblack.strategy.ts @@ -2,7 +2,7 @@ import { AdditionalFields } from './AdditionalFields'; import { DeploymentStrategyRegistry } from '../../deploymentStrategy.registry'; DeploymentStrategyRegistry.registerStrategy({ - label: 'Rolling Red/Black (Experimental)', + label: 'Rolling Red/Black', description: `Creates a new version of this server group, then incrementally resizes the new server group while disabling the same percentage in the previous server group.`, key: 'rollingredblack', providerRestricted: true, From da1da2934d3b1a71d12a63c3db640c2cef48cd82 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 30 Aug 2023 17:04:10 +0000 Subject: [PATCH 21/85] Revert "fix(core): conditionally hide expression evaluation warning messages (#9771)" (#10021) (#10023) This reverts commit 7e3dd5053ccdb06ce067303062f90ae82b56bfc8. (cherry picked from commit 62033d0fc6f0a953bd3f01e4452664b92fd02dfb) Co-authored-by: Matt Gogerly <6519811+mattgogerly@users.noreply.github.com> --- .../pipeline/details/StageFailureMessage.tsx | 34 ++++++------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/packages/core/src/pipeline/details/StageFailureMessage.tsx b/packages/core/src/pipeline/details/StageFailureMessage.tsx index ef04549f858..3368fd1c93c 100644 --- a/packages/core/src/pipeline/details/StageFailureMessage.tsx +++ b/packages/core/src/pipeline/details/StageFailureMessage.tsx @@ -73,33 +73,19 @@ export class StageFailureMessage extends React.Component 0) { + if (isFailed || failedTask || message || messages.length) { const exceptionTitle = isFailed ? (messages.length ? 'Exceptions' : 'Exception') : 'Warning'; - - // expression evaluation warnings can get really long and hide actual failure messages, source - // filter out expression evaluation failure messages if either: - // - there was a stage failure (and failed expressions don't fail the stage) - // - expression evaluation was explicitly disabled for the stage(as Orca still processes expressions and populates - // warnings when evaluation is disabled disabled) - const shouldFilterExpressionFailures = - (isFailed && !stage.context?.failOnFailedExpressions) || stage.context?.skipExpressionEvaluation; - - if (shouldFilterExpressionFailures) { - stageMessages = stageMessages.filter((m) => !m.startsWith('Failed to evaluate')); - - if (stageMessages.length === 0) { - // no messages to be displayed after filtering - return null; - } - } - - const displayMessages = stageMessages.map((m, i) => ( - - )); + const displayMessages = + message || !messages.length ? ( + + ) : ( + messages.map((m, i) => ( + + )) + ); if (displayMessages) { return ( From 5115b1d81019e81a42be3311798e80c8931b4e01 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 06:00:56 +0000 Subject: [PATCH 22/85] feat(helm/bake): Add additional input fields where we can fill in details of the APIs versions (#10036) (#10047) - These input fields will not be pre-populated with versions of the target cluster available in the environment. - They will become part of the bake result. - Added API_VERSIONS_ENABLED env variable flag (cherry picked from commit d9681830244ecd1c70cc02459f148d0822b7187e) Co-authored-by: Krystian <24556350+ciurescuraul@users.noreply.github.com> --- packages/app/src/settings.js | 3 +++ .../bakeManifest/helm/BakeHelmConfigForm.tsx | 22 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/packages/app/src/settings.js b/packages/app/src/settings.js index c860d7b02a7..3fdd57fbffe 100644 --- a/packages/app/src/settings.js +++ b/packages/app/src/settings.js @@ -57,6 +57,8 @@ const reduxLoggerEnabled = import.meta.env.VITE_REDUX_LOGGER === 'true' || proce const templatesEnabled = import.meta.env.VITE_TEMPLATES_ENABLED === 'true' || process.env.TEMPLATES_ENABLED === 'true'; const useClassicFirewallLabels = import.meta.env.VITE_USE_CLASSIC_FIREWALL_LABELS === 'true' || process.env.USE_CLASSIC_FIREWALL_LABELS === 'true'; +const helmApiVersionsEnabled = + import.meta.env.VITE_API_VERSIONS_ENABLED === 'true' || process.env.API_VERSIONS_ENABLED === 'true' || false; const functionsEnabled = import.meta.env.VITE_FUNCTIONS_ENABLED === 'true' || process.env.FUNCTIONS_ENABLED === 'true' || false; const k8sRawResourcesEnabled = @@ -131,6 +133,7 @@ window.spinnakerSettings = { slack: false, snapshots: false, functions: functionsEnabled, + helmApiVersions: helmApiVersionsEnabled, kubernetesRawResources: k8sRawResourcesEnabled, }, gateUrl: apiHost, diff --git a/packages/core/src/pipeline/config/stages/bakeManifest/helm/BakeHelmConfigForm.tsx b/packages/core/src/pipeline/config/stages/bakeManifest/helm/BakeHelmConfigForm.tsx index 6b6d2a74964..2f45d3b44ee 100644 --- a/packages/core/src/pipeline/config/stages/bakeManifest/helm/BakeHelmConfigForm.tsx +++ b/packages/core/src/pipeline/config/stages/bakeManifest/helm/BakeHelmConfigForm.tsx @@ -10,6 +10,7 @@ import { StageArtifactSelectorDelegate, } from '../../../../../artifact'; import { StageConfigField } from '../../common/stageConfigField/StageConfigField'; +import { SETTINGS } from '../../../../../config'; import type { IArtifact, IExpectedArtifact } from '../../../../../domain'; import { MapEditor } from '../../../../../forms'; import { CheckboxInput, TextInput } from '../../../../../presentation'; @@ -152,9 +153,30 @@ export class BakeHelmConfigForm extends React.Component

Helm Options

+ {enableApiVersions && ( // Only render if enableApiVersions is true + <> + + ) => { + this.props.formik.setFieldValue('apiVersions', e.target.value); + }} + value={stage.apiVersions} + /> + + + ) => { + this.props.formik.setFieldValue('kubeVersion', e.target.value); + }} + value={stage.kubeVersion} + /> + + + )} ) => { From 3c61dd5d6fb69f301ce08d587223c8b689b16bd0 Mon Sep 17 00:00:00 2001 From: Christos Arvanitis Date: Tue, 24 Oct 2023 18:42:56 +0300 Subject: [PATCH 23/85] fix: Updating Lambda functions available Runtimes (#10055) --- .../configure/FunctionBasicInformation.tsx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/amazon/src/function/configure/FunctionBasicInformation.tsx b/packages/amazon/src/function/configure/FunctionBasicInformation.tsx index 545eee601e1..f94c106cd1b 100644 --- a/packages/amazon/src/function/configure/FunctionBasicInformation.tsx +++ b/packages/amazon/src/function/configure/FunctionBasicInformation.tsx @@ -20,20 +20,26 @@ import type { IAmazonFunction } from '../../domain'; import type { IAmazonFunctionUpsertCommand } from '../../index'; const availableRuntimes = [ - 'nodejs10.x', 'nodejs12.x', + 'nodejs14.x', + 'nodejs16.x', + 'nodejs18.x', 'java8', + 'java8.al2', 'java11', - 'python2.7', - 'python3.6', + 'java17', 'python3.7', 'python3.8', - 'dotnetcore2.1', + 'python3.9', + 'python3.10', 'dotnetcore3.1', + 'dotnet7', + 'dotnet6', + 'dotnet5.0', 'go1.x', - 'ruby2.5', 'ruby2.7', 'provided', + 'provided.al2', ]; export interface IFunctionProps { From 538d2761410fced5061c95074249a3a0eafa8461 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 18:17:33 +0000 Subject: [PATCH 24/85] fix: Scaling bounds should parse float not int (#10026) (#10032) * fix: Scaling bounds should parse float not int Currently the API can do this, the model supports this, but the parseInt removes decimals from the UI * fix: Decimal support for upper/lower bound ASG tests (cherry picked from commit b763cae826039df46b8dbe019689316ff5034e33) Co-authored-by: Jason --- .../scalingPolicy/upsert/step/StepPolicyAction.tsx | 4 ++-- .../src/serverGroup/serverGroup.transformer.spec.ts | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/amazon/src/serverGroup/details/scalingPolicy/upsert/step/StepPolicyAction.tsx b/packages/amazon/src/serverGroup/details/scalingPolicy/upsert/step/StepPolicyAction.tsx index 0be68fedeaf..3e260e73a12 100644 --- a/packages/amazon/src/serverGroup/details/scalingPolicy/upsert/step/StepPolicyAction.tsx +++ b/packages/amazon/src/serverGroup/details/scalingPolicy/upsert/step/StepPolicyAction.tsx @@ -107,7 +107,7 @@ export const StepPolicyAction = ({ value={step.metricIntervalLowerBound} max={step.metricIntervalUpperBound} onChange={(e) => - updateStep({ ...step, metricIntervalLowerBound: Number.parseInt(e.target.value) }, index) + updateStep({ ...step, metricIntervalLowerBound: Number.parseFloat(e.target.value) }, index) } inputClassName="action-input" /> @@ -122,7 +122,7 @@ export const StepPolicyAction = ({ value={step.metricIntervalUpperBound} min={step.metricIntervalLowerBound} onChange={(e) => - updateStep({ ...step, metricIntervalUpperBound: Number.parseInt(e.target.value) }, index) + updateStep({ ...step, metricIntervalUpperBound: Number.parseFloat(e.target.value) }, index) } inputClassName="action-input" /> diff --git a/packages/ecs/src/serverGroup/serverGroup.transformer.spec.ts b/packages/ecs/src/serverGroup/serverGroup.transformer.spec.ts index 8d7c5ef0512..679d1b05709 100644 --- a/packages/ecs/src/serverGroup/serverGroup.transformer.spec.ts +++ b/packages/ecs/src/serverGroup/serverGroup.transformer.spec.ts @@ -159,7 +159,16 @@ describe('ecsServerGroupTransformer', () => { [-5, 10, 0], ); }); - + it('verify float adjustments work within the range', function () { + this.test( + [ + { id: 1, scalingAdjustment: 10, metricIntervalLowerBound: 3.5, metricIntervalUpperBound: 5.5 }, + { id: 2, scalingAdjustment: 0, metricIntervalLowerBound: 5.5 }, + { id: 3, scalingAdjustment: -5, metricIntervalLowerBound: 1.2, metricIntervalUpperBound: 3.5 }, + ], + [-5, 10, 0], + ); + }); it('reverse sorts step adjustments by upper bound when all have an upper bound defined', function () { this.test( [ From 04e412cd4dda6e9cadccdf5744b585d4a0f2a4d3 Mon Sep 17 00:00:00 2001 From: xibz Date: Wed, 12 Jul 2023 15:56:27 -0500 Subject: [PATCH 25/85] feat(artifacts): Add support for artifact store views and calls (#10011) * feat(artifacts): Add support for artifact store views and calls /artifacts/content-address/{reference} is a new API that allows for requests to be made to get full artifacts. Also adds support for new artifact type of remote/base64 Signed-off-by: benjamin-j-powell * fix(artifacts): Produced artifacts missing remote/bas64 Signed-off-by: benjamin-j-powell --------- Signed-off-by: benjamin-j-powell Co-authored-by: Maeve Spark Co-authored-by: benjamin-j-powell --- .../core/src/artifact/ArtifactIconService.ts | 1 + packages/core/src/artifact/ArtifactTypes.ts | 1 + packages/core/src/domain/IArtifact.ts | 3 ++ packages/core/src/manifest/ManifestYaml.tsx | 36 +++++++++++++++---- .../bakeManifest/BakeManifestDetailsTab.tsx | 36 ++++++++++++------- .../bakeManifest/utils/getBakedArtifacts.ts | 13 +++++++ .../bakeManifest/utils/getContentReference.ts | 3 ++ .../triggers/artifacts/ArtifactService.ts | 4 +++ packages/core/src/pipeline/index.ts | 2 ++ 9 files changed, 80 insertions(+), 19 deletions(-) create mode 100644 packages/core/src/pipeline/config/stages/bakeManifest/utils/getBakedArtifacts.ts create mode 100644 packages/core/src/pipeline/config/stages/bakeManifest/utils/getContentReference.ts diff --git a/packages/core/src/artifact/ArtifactIconService.ts b/packages/core/src/artifact/ArtifactIconService.ts index 2095c420308..10c1279b63b 100644 --- a/packages/core/src/artifact/ArtifactIconService.ts +++ b/packages/core/src/artifact/ArtifactIconService.ts @@ -44,6 +44,7 @@ ArtifactIconService.registerType(ArtifactTypePatterns.CUSTOM_OBJECT, unknownArti ArtifactIconService.registerType(ArtifactTypePatterns.DOCKER_IMAGE, dockerIcon); ArtifactIconService.registerType(ArtifactTypePatterns.KUBERNETES, kubernetesIcon); ArtifactIconService.registerType(ArtifactTypePatterns.EMBEDDED_BASE64, embeddedBase64Icon); +ArtifactIconService.registerType(ArtifactTypePatterns.REMOTE_BASE64, embeddedBase64Icon); ArtifactIconService.registerType(ArtifactTypePatterns.GCS_OBJECT, gcsObjectIcon); ArtifactIconService.registerType(ArtifactTypePatterns.GITHUB_FILE, gitHubFileIcon); ArtifactIconService.registerType(ArtifactTypePatterns.GIT_REPO, gitRepoIcon); diff --git a/packages/core/src/artifact/ArtifactTypes.ts b/packages/core/src/artifact/ArtifactTypes.ts index 07386562dc1..d0ffe7b1802 100644 --- a/packages/core/src/artifact/ArtifactTypes.ts +++ b/packages/core/src/artifact/ArtifactTypes.ts @@ -7,6 +7,7 @@ export const ArtifactTypePatterns: IArtifactTypePatterns = { CUSTOM_OBJECT: /custom\/object/, DOCKER_IMAGE: /docker\/image/, EMBEDDED_BASE64: /embedded\/base64/, + REMOTE_BASE64: /remote\/base64/, GCS_OBJECT: /gcs\/object/, GITHUB_FILE: /github\/file/, GIT_REPO: /git\/repo/, diff --git a/packages/core/src/domain/IArtifact.ts b/packages/core/src/domain/IArtifact.ts index 5a9cb285350..c5fd913b8e4 100644 --- a/packages/core/src/domain/IArtifact.ts +++ b/packages/core/src/domain/IArtifact.ts @@ -12,3 +12,6 @@ export interface IArtifact { kind?: string; // TODO delete customKind?: boolean; // TODO delete } + +export const ARTIFACT_TYPE_EMBEDDED = 'embedded/base64'; +export const ARTIFACT_TYPE_REMOTE = 'remote/base64'; diff --git a/packages/core/src/manifest/ManifestYaml.tsx b/packages/core/src/manifest/ManifestYaml.tsx index a291fd20378..faf51a138c6 100644 --- a/packages/core/src/manifest/ManifestYaml.tsx +++ b/packages/core/src/manifest/ManifestYaml.tsx @@ -1,26 +1,48 @@ import React from 'react'; import { Modal } from 'react-bootstrap'; +import { ArtifactService } from '../pipeline/config/triggers/artifacts/ArtifactService'; +import { decodeUnicodeBase64 } from '../utils'; -export interface IManifestYamlProps { +type IManifestYamlProps = { linkName: string; - manifestText: string; modalTitle: string; -} +} & ({ manifestText: string; manifestUri?: never } | { manifestText?: never; manifestUri: string }); -export function ManifestYaml(props: IManifestYamlProps) { +export function ManifestYaml({ linkName, modalTitle, manifestText, manifestUri }: IManifestYamlProps) { const [modalVisible, setModalVisible] = React.useState(false); const toggle = () => setModalVisible(!modalVisible); + const [fetchedManifestText, setFetchedManifestText] = React.useState('Loading...'); + const [error, setError] = React.useState(null); + + React.useEffect(() => { + if (manifestUri) { + ArtifactService.getArtifactByContentReference(manifestUri) + .then((manifest) => setFetchedManifestText(decodeUnicodeBase64(manifest.reference))) + .catch((e) => setError(`Error: ${typeof e !== 'string' ? e.data?.message ?? JSON.stringify(e) : e}`)); + } + }, []); + return ( <> - {props.linkName} + {linkName} -

{props.modalTitle}

+

{modalTitle}

-