From d5a8ea320dbb7cf4827a26a2af7197f07070a604 Mon Sep 17 00:00:00 2001 From: Ashley Kleynhans Date: Tue, 10 Sep 2024 20:08:02 +0200 Subject: [PATCH 1/4] fix(aws): Fix userData getting lost when cloning an AWS server group that uses launch templates (#6771) (#10132) --- .../serverGroup/configure/serverGroupCommandBuilder.service.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/amazon/src/serverGroup/configure/serverGroupCommandBuilder.service.ts b/packages/amazon/src/serverGroup/configure/serverGroupCommandBuilder.service.ts index 8e8bf575af3..a035349ffd4 100644 --- a/packages/amazon/src/serverGroup/configure/serverGroupCommandBuilder.service.ts +++ b/packages/amazon/src/serverGroup/configure/serverGroupCommandBuilder.service.ts @@ -405,6 +405,9 @@ angular spotMaxPrice = launchTemplateData.instanceMarketOptions?.spotOptions?.maxPrice; command.instanceType = launchTemplateData.instanceType; command.viewState.useSimpleInstanceTypeSelector = true; + if (launchTemplateData.userData) { + command.base64UserData = launchTemplateData.userData; + } } if (serverGroup.mixedInstancesPolicy) { From 22818c637072ff6b8f17ff8407513c114f0bec8f Mon Sep 17 00:00:00 2001 From: Ashley Kleynhans Date: Wed, 11 Sep 2024 18:43:12 +0200 Subject: [PATCH 2/4] fix(aws): Fix IPv6 addresses being incorrectly associated when cloning server groups that have launch templates enabled (#6979) (#10142) --- .../serverGroup/configure/serverGroupCommandBuilder.service.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/amazon/src/serverGroup/configure/serverGroupCommandBuilder.service.ts b/packages/amazon/src/serverGroup/configure/serverGroupCommandBuilder.service.ts index a035349ffd4..58aca4ea944 100644 --- a/packages/amazon/src/serverGroup/configure/serverGroupCommandBuilder.service.ts +++ b/packages/amazon/src/serverGroup/configure/serverGroupCommandBuilder.service.ts @@ -437,7 +437,8 @@ angular command.viewState.useSimpleInstanceTypeSelector = isSimpleModeEnabled(command); } - const ipv6AddressCount = _.get(launchTemplateData, 'networkInterfaces[0]'); + const networkInterfaces = _.get(launchTemplateData, 'networkInterfaces[0]'); + const ipv6AddressCount = (networkInterfaces as INetworkInterface)?.ipv6AddressCount ?? 0; const asgSettings = AWSProviderSettings.serverGroups; const isTestEnv = serverGroup.accountDetails && serverGroup.accountDetails.environment === 'test'; From 77dd8bf0dbde13525183d7309f62d9a7e8c405df Mon Sep 17 00:00:00 2001 From: Dakota Chambers Date: Thu, 12 Sep 2024 12:28:34 -0500 Subject: [PATCH 3/4] chore: Remove dead link from README (#10129) The Spinnaker UI/UX SIG no longer exists. --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index c3d98e050de..52fd20638df 100644 --- a/README.md +++ b/README.md @@ -76,8 +76,3 @@ For now, you can look at the [all modules](https://github.com/spinnaker/deck/tre get an idea how we are customizing Deck internally. Expect a lot of this to change, though, as we figure out better, cleaner hooks and integration points. And we're happy to provide new integration points (or accept pull requests) following those existing conventions if you need an integration point that doesn't already exist. - -## Join Us - -Interested in sharing feedback on Spinnaker's UI or contributing to Deck? -Please join us at the [Spinnaker UI SIG](https://github.com/spinnaker/governance/tree/master/sig-ui-ux)! From 08b95dfbce3c47b57031f12d004df56b1c4944e8 Mon Sep 17 00:00:00 2001 From: Wooseung Sim Date: Thu, 12 Sep 2024 14:29:10 -0400 Subject: [PATCH 4/4] feat(evaluateVariables stage) Made fetch exec history on evaluateVariables stage configurable (#10143) * feat(evaluateVariables stage): Made fetch exec history on evaluateVariables stage configurable * feat(evaluateVariables stage): fixed prettier violation --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- packages/app/src/settings.js | 1 + packages/core/src/config/settings.ts | 2 ++ .../stages/evaluateVariables/ExecutionAndStagePicker.tsx | 6 +++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/app/src/settings.js b/packages/app/src/settings.js index 6736b825d60..8e63c28777e 100644 --- a/packages/app/src/settings.js +++ b/packages/app/src/settings.js @@ -148,6 +148,7 @@ window.spinnakerSettings = { defaultManifest: 'spinnaker.yml', manifestBasePath: '.spinnaker', }, + maxFetchHistoryOnEvaluateVariables: 100, maxPipelineAgeDays: 14, newApplicationDefaults: { chaosMonkey: false, diff --git a/packages/core/src/config/settings.ts b/packages/core/src/config/settings.ts index 733b8eaf2cf..8cfaea047ba 100644 --- a/packages/core/src/config/settings.ts +++ b/packages/core/src/config/settings.ts @@ -127,6 +127,7 @@ export interface ISpinnakerSettings { manifestBasePath: string; urls?: Partial; }; + maxFetchHistoryOnEvaluateVariables?: number; maxPipelineAgeDays: number; newApplicationDefaults: INewApplicationDefaults; notifications: INotificationSettings; @@ -175,6 +176,7 @@ SETTINGS.managedDelivery = SETTINGS.managedDelivery || { defaultManifest: 'spinnaker.yml', manifestBasePath: '.spinnaker', }; +SETTINGS.maxFetchHistoryOnEvaluateVariables = SETTINGS.maxFetchHistoryOnEvaluateVariables ?? 100; // A helper to make resetting settings to steady state after running tests easier const originalSettings: ISpinnakerSettings = cloneDeep(SETTINGS); diff --git a/packages/core/src/pipeline/config/stages/evaluateVariables/ExecutionAndStagePicker.tsx b/packages/core/src/pipeline/config/stages/evaluateVariables/ExecutionAndStagePicker.tsx index 60065fdbf11..fd722e9d954 100644 --- a/packages/core/src/pipeline/config/stages/evaluateVariables/ExecutionAndStagePicker.tsx +++ b/packages/core/src/pipeline/config/stages/evaluateVariables/ExecutionAndStagePicker.tsx @@ -2,6 +2,7 @@ import { isEqual, keyBy } from 'lodash'; import React from 'react'; import type { Option } from 'react-select'; +import { SETTINGS } from '../../../../config'; import type { IExecution, IPipeline, IStage } from '../../../../domain'; import type { IStageForSpelPreview } from '../../../../presentation'; import { FormField, ReactSelectInput, useData } from '../../../../presentation'; @@ -23,7 +24,10 @@ export function ExecutionAndStagePicker(props: IExecutionAndStagePickerProps) { const [showStageSelector, setShowStageSelector] = React.useState(false); const fetchExecutions = useData( - () => executionService.getExecutionsForConfigIds([pipeline.id], { limit: 100 }), + () => + executionService.getExecutionsForConfigIds([pipeline.id], { + limit: SETTINGS.maxFetchHistoryOnEvaluateVariables, + }), [], [], );