diff --git a/ui/packages/shared/pages/Configuration/index.tsx b/ui/packages/shared/pages/Configuration/index.tsx index 4fdaa05cf84c7cdc0c5ad9fd649b273a7977eeea..dc704ec798b208a11007afe0f40c906fe144846d 100644 --- a/ui/packages/shared/pages/Configuration/index.tsx +++ b/ui/packages/shared/pages/Configuration/index.tsx @@ -449,27 +449,30 @@ export const Configuration = observer( e: React.ChangeEvent, ) => { if (e.target.value === 'Generic Postgres') { - const currentDockerImage = - genericDockerImages[genericDockerImages.length - 1] + const genericImageVersions = genericDockerImages + .map((image) => image.pg_major_version) + .filter((value, index, self) => self.indexOf(value) === index) + .sort((a, b) => Number(a) - Number(b)) + const currentDockerImage = genericImageVersions.slice(-1)[0] + setDockerState({ ...dockerState, - images: genericDockerImages.map((image) => image.pg_major_version), tags: genericDockerImages - .filter((image) => - image.tag.startsWith(currentDockerImage.pg_major_version), - ) - .map((image) => image.tag), + .map((image) => image.tag) + .filter((tag) => tag.startsWith(currentDockerImage)), + locations: genericDockerImages + .map((image) => image.location) + .filter((location) => location?.includes(currentDockerImage)), + images: genericImageVersions, data: genericDockerImages, }) formik.setValues({ ...formik.values, - dockerImage: currentDockerImage.pg_major_version, - dockerPath: currentDockerImage.location, + dockerImage: currentDockerImage, dockerImageType: e.target.value, - dockerTag: genericDockerImages.filter((image) => - image.tag.startsWith(currentDockerImage.pg_major_version), - )[0].tag, + dockerTag: genericDockerImages.map((image) => image.tag)[0], + dockerPath: genericDockerImages.map((image) => image.location)[0], sharedPreloadLibraries: 'pg_stat_statements,pg_stat_kcache,pg_cron,pgaudit,anon', }) @@ -542,27 +545,33 @@ export const Configuration = observer( if (customOrGenericImage(configData?.dockerImageType)) { if (configData?.dockerImageType === 'Generic Postgres') { - const dockerObject = genericDockerImages.filter( - (image) => image.location === configData.dockerPath, - )[0] + const genericImageVersions = genericDockerImages + .map((image) => image.pg_major_version) + .filter((value, index, self) => self.indexOf(value) === index) + .sort((a, b) => Number(a) - Number(b)) + const currentDockerImage = + genericDockerImages.filter( + (image) => image.location === configData?.dockerPath, + )[0] || + genericDockerImages.filter((image) => + configData?.dockerPath?.includes(image.pg_major_version), + )[0] setDockerState({ ...dockerState, - images: genericDockerImages.map( - (image) => image.pg_major_version, - ), tags: genericDockerImages - .filter((image) => - image.tag.startsWith(dockerObject?.pg_major_version), - ) - .map((image) => image.tag), + .map((image) => image.tag) + .filter((tag) => + tag.startsWith(currentDockerImage.pg_major_version), + ), + images: genericImageVersions, data: genericDockerImages, }) - formik.setFieldValue('dockerTag', dockerObject?.tag) + formik.setFieldValue('dockerTag', currentDockerImage?.tag) formik.setFieldValue( 'dockerImage', - dockerObject?.pg_major_version, + currentDockerImage.pg_major_version, ) } else { formik.setFieldValue('dockerImage', configData?.dockerPath) @@ -812,8 +821,8 @@ export const Configuration = observer( className={classes.grayText} style={{ margin: '0.5rem 0 1rem 0', display: 'block' }} > - DBLab manages various database containers, such as clones. This - section defines default container settings. + DBLab manages various database containers, such as clones. + This section defines default container settings.
{ return values.length !== 0 ? nonEmptyDatabase : null } + +// using the same json data structue as se-images export const genericDockerImages = [ + { + package_group: 'postgresai', + pg_major_version: '9.6', + tag: '9.6-0.4.1', + location: `${genericImagePrefix}:9.6-0.4.1`, + }, { package_group: 'postgresai', pg_major_version: '9.6', tag: '9.6-0.3.0', location: `${genericImagePrefix}:9.6-0.3.0`, }, + { + package_group: 'postgresai', + pg_major_version: '10', + tag: '10-0.4.1', + location: `${genericImagePrefix}:10-0.4.1`, + }, { package_group: 'postgresai', pg_major_version: '10', tag: '10-0.3.0', location: `${genericImagePrefix}:10-0.3.0`, }, + { + package_group: 'postgresai', + pg_major_version: '11', + tag: '11-0.4.1', + location: `${genericImagePrefix}:11-0.4.1`, + }, { package_group: 'postgresai', pg_major_version: '11', tag: '11-0.3.0', location: `${genericImagePrefix}:11-0.3.0`, }, + { + package_group: 'postgresai', + pg_major_version: '12', + tag: '12-0.4.1', + location: `${genericImagePrefix}:12-0.4.1`, + }, { package_group: 'postgresai', pg_major_version: '12', tag: '12-0.3.0', location: `${genericImagePrefix}:12-0.3.0`, }, + { + package_group: 'postgresai', + pg_major_version: '13', + tag: '13-0.4.1', + location: `${genericImagePrefix}:13-0.4.1`, + }, { package_group: 'postgresai', pg_major_version: '13', tag: '13-0.3.0', location: `${genericImagePrefix}:13-0.3.0`, }, + { + package_group: 'postgresai', + pg_major_version: '14', + tag: '14-0.4.1', + location: `${genericImagePrefix}:14-0.4.1`, + }, { package_group: 'postgresai', pg_major_version: '14', tag: '14-0.3.0', location: `${genericImagePrefix}:14-0.3.0`, }, + { + package_group: 'postgresai', + pg_major_version: '15', + tag: '15-0.4.1', + location: `${genericImagePrefix}:15-0.4.1`, + }, { package_group: 'postgresai', pg_major_version: '15', tag: '15-0.3.0', location: `${genericImagePrefix}:15-0.3.0`, }, + { + package_group: 'postgresai', + pg_major_version: '16', + tag: '16rc1-0.4.1', + location: `${genericImagePrefix}:16rc1-0.4.1`, + }, + { + package_group: 'postgresai', + pg_major_version: '16', + tag: '16-0.3.0', + location: `${genericImagePrefix}:16-0.3.0`, + }, ] export const isSeDockerImage = (dockerImage: string | undefined) => {