diff --git a/src/components/Setting.tsx b/src/components/Setting.tsx index ed5e4f907..d48473910 100644 --- a/src/components/Setting.tsx +++ b/src/components/Setting.tsx @@ -61,6 +61,7 @@ export const getSettingUiSchema = (settings: GetSettingsInfoApiResponse, setting cluster: { k8sContext: { 'ui:widget': 'hidden' }, defaultStorageClass: { 'ui:widget': 'hidden' }, + linode: { 'ui:widget': 'hidden' }, }, otomi: { isMultitenant: { 'ui:widget': 'hidden' }, diff --git a/src/pages/teams/create-edit/TeamsCreateEditPage.tsx b/src/pages/teams/create-edit/TeamsCreateEditPage.tsx index dbd3029b1..9ec68432f 100644 --- a/src/pages/teams/create-edit/TeamsCreateEditPage.tsx +++ b/src/pages/teams/create-edit/TeamsCreateEditPage.tsx @@ -41,7 +41,7 @@ export default function TeamsCreateEditPage({ }, }: RouteComponentProps) { const { classes } = useStyles() - const { appsEnabled, user } = useSession() + const { appsEnabled, user, settings } = useSession() const { themeView } = useSettings() const { isPlatformAdmin } = user const [create, { isLoading: isLoadingCreate, isSuccess: isSuccessCreate }] = useCreateTeamMutation() @@ -66,8 +66,18 @@ export default function TeamsCreateEditPage({ // imgSrc: '/logos/email_logo.svg', // }, ] + const tier = settings?.cluster?.linode?.tier || 'standard' - const mergedDefaultValues = createTeamApiResponseSchema.cast(data) + const mergedDefaultValues = createTeamApiResponseSchema.cast({ + ...data, + ...(!teamId && { + networkPolicy: { + ...data?.networkPolicy, + ingressPrivate: true, + egressPublic: tier !== 'enterprise', + }, + }), + }) const methods = useForm({ disabled: !isPlatformAdmin, @@ -133,6 +143,7 @@ export default function TeamsCreateEditPage({ const rawReceivers = submitData.alerts?.receivers ?? [] let receivers = rawReceivers.filter((r) => r !== 'none') + // @ts-ignore: no receivers requires 'none' string if (submitData.managedMonitoring?.alertmanager && receivers.length === 0) receivers = ['none'] // 3) Combine edge cases with submittedData for final payload diff --git a/src/pages/teams/create-edit/create-edit-teams.validator.ts b/src/pages/teams/create-edit/create-edit-teams.validator.ts index c1e62ab93..85960d4c5 100644 --- a/src/pages/teams/create-edit/create-edit-teams.validator.ts +++ b/src/pages/teams/create-edit/create-edit-teams.validator.ts @@ -83,8 +83,8 @@ export const createTeamApiResponseSchema = yup.object({ ]), networkPolicy: yup .object({ - ingressPrivate: yup.boolean().optional().default(true), - egressPublic: yup.boolean().optional().default(true), + ingressPrivate: yup.boolean().optional(), + egressPublic: yup.boolean().optional(), }) .optional(), selfService: selfServiceSchema.optional(), diff --git a/src/redux/otomiApi.ts b/src/redux/otomiApi.ts index ccc551701..904ff0ef3 100644 --- a/src/redux/otomiApi.ts +++ b/src/redux/otomiApi.ts @@ -5658,6 +5658,9 @@ export type GetSettingsInfoApiResponse = /** status 200 The request is successfu domainSuffix?: string apiServer?: string provider?: 'linode' | 'custom' + linode?: { + tier?: 'standard' | 'enterprise' + } } dns?: { zones?: string[] @@ -5732,6 +5735,9 @@ export type GetSettingsApiResponse = /** status 200 The request is successful. * k8sContext?: string owner?: string provider: 'linode' | 'custom' + linode?: { + tier?: 'standard' | 'enterprise' + } defaultStorageClass?: string } platformBackups?: { @@ -5998,6 +6004,9 @@ export type EditSettingsApiArg = { k8sContext?: string owner?: string provider: 'linode' | 'custom' + linode?: { + tier?: 'standard' | 'enterprise' + } defaultStorageClass?: string } platformBackups?: {