chore: limit regions for nimbus (#38747)
* chore: limit regions for nimbus * fix logic * Autoselect east US if cloud provider is nimbus --------- Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
This commit is contained in:
@@ -15,8 +15,12 @@ export function getAvailableRegions(cloudProvider: CloudProvider): Region {
|
|||||||
switch (cloudProvider) {
|
switch (cloudProvider) {
|
||||||
case 'AWS':
|
case 'AWS':
|
||||||
case 'AWS_K8S':
|
case 'AWS_K8S':
|
||||||
case 'AWS_NIMBUS':
|
|
||||||
return AWS_REGIONS
|
return AWS_REGIONS
|
||||||
|
case 'AWS_NIMBUS':
|
||||||
|
// Only allow US East for Nimbus
|
||||||
|
return {
|
||||||
|
EAST_US: AWS_REGIONS.EAST_US,
|
||||||
|
}
|
||||||
case 'FLY':
|
case 'FLY':
|
||||||
return FLY_REGIONS
|
return FLY_REGIONS
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -45,13 +45,7 @@ export const RegionSelector = ({
|
|||||||
)
|
)
|
||||||
|
|
||||||
const { data: availableRegionsData, isLoading: isLoadingAvailableRegions } =
|
const { data: availableRegionsData, isLoading: isLoadingAvailableRegions } =
|
||||||
useOrganizationAvailableRegionsQuery(
|
useOrganizationAvailableRegionsQuery({ slug, cloudProvider }, { enabled: smartRegionEnabled })
|
||||||
{
|
|
||||||
slug,
|
|
||||||
cloudProvider,
|
|
||||||
},
|
|
||||||
{ enabled: smartRegionEnabled }
|
|
||||||
)
|
|
||||||
|
|
||||||
const smartRegions = availableRegionsData?.all.smartGroup ?? []
|
const smartRegions = availableRegionsData?.all.smartGroup ?? []
|
||||||
const allRegions = availableRegionsData?.all.specific ?? []
|
const allRegions = availableRegionsData?.all.specific ?? []
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ import {
|
|||||||
} from 'lib/constants'
|
} from 'lib/constants'
|
||||||
import passwordStrength from 'lib/password-strength'
|
import passwordStrength from 'lib/password-strength'
|
||||||
import { generateStrongPassword } from 'lib/project'
|
import { generateStrongPassword } from 'lib/project'
|
||||||
import type { CloudProvider } from 'shared-data'
|
import { AWS_REGIONS, type CloudProvider } from 'shared-data'
|
||||||
import type { NextPageWithLayout } from 'types'
|
import type { NextPageWithLayout } from 'types'
|
||||||
import {
|
import {
|
||||||
Badge,
|
Badge,
|
||||||
@@ -159,6 +159,7 @@ const Wizard: NextPageWithLayout = () => {
|
|||||||
const projectCreationDisabled = useFlag('disableProjectCreationAndUpdate')
|
const projectCreationDisabled = useFlag('disableProjectCreationAndUpdate')
|
||||||
const showPostgresVersionSelector = useFlag('showPostgresVersionSelector')
|
const showPostgresVersionSelector = useFlag('showPostgresVersionSelector')
|
||||||
const cloudProviderEnabled = useFlag('enableFlyCloudProvider')
|
const cloudProviderEnabled = useFlag('enableFlyCloudProvider')
|
||||||
|
|
||||||
const { data: membersExceededLimit } = useFreeProjectLimitCheckQuery(
|
const { data: membersExceededLimit } = useFreeProjectLimitCheckQuery(
|
||||||
{ slug },
|
{ slug },
|
||||||
{ enabled: isFreePlan }
|
{ enabled: isFreePlan }
|
||||||
@@ -258,7 +259,9 @@ const Wizard: NextPageWithLayout = () => {
|
|||||||
const regionError = smartRegionEnabled ? availableRegionsError : defaultRegionError
|
const regionError = smartRegionEnabled ? availableRegionsError : defaultRegionError
|
||||||
const defaultRegion = smartRegionEnabled
|
const defaultRegion = smartRegionEnabled
|
||||||
? availableRegionsData?.recommendations.smartGroup.name
|
? availableRegionsData?.recommendations.smartGroup.name
|
||||||
: _defaultRegion
|
: defaultProvider === 'AWS_NIMBUS'
|
||||||
|
? AWS_REGIONS.EAST_US.displayName
|
||||||
|
: _defaultRegion
|
||||||
|
|
||||||
const { can: isAdmin } = useAsyncCheckPermissions(PermissionAction.CREATE, 'projects')
|
const { can: isAdmin } = useAsyncCheckPermissions(PermissionAction.CREATE, 'projects')
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
export type CloudProvider = 'FLY' | 'AWS' | 'AWS_K8S' | 'AWS_NIMBUS'
|
export type CloudProvider = 'FLY' | 'AWS' | 'AWS_K8S' | 'AWS_NIMBUS'
|
||||||
export type Region = typeof AWS_REGIONS | typeof FLY_REGIONS
|
export type Region = Partial<typeof AWS_REGIONS> | Partial<typeof FLY_REGIONS>
|
||||||
|
|
||||||
export const AWS_REGIONS = {
|
export const AWS_REGIONS = {
|
||||||
WEST_US: {
|
WEST_US: {
|
||||||
|
|||||||
Reference in New Issue
Block a user