Skip to content

Commit e814ff3

Browse files
committed
feat: preserve storage class
1 parent 184de4b commit e814ff3

1 file changed

Lines changed: 33 additions & 1 deletion

File tree

src/cmd/migrate.test.ts

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ describe('preservePvcStorageClassInRawValues', () => {
452452
...overrides,
453453
})
454454

455-
it('should set _rawValues overrides when pvc storageClass differs from cluster default', async () => {
455+
it('should set app _rawValues and databases.storageClass when pvc storageClass differs from cluster default', async () => {
456456
const values: Record<string, any> = {
457457
cluster: { defaultStorageClass: 'linode-block-storage' },
458458
databases: {
@@ -548,4 +548,36 @@ describe('preservePvcStorageClassInRawValues', () => {
548548
expect(values.databases.harbor).toEqual({})
549549
expect(values.databases.keycloak).toEqual({})
550550
})
551+
552+
it('should keep existing databases.storageClass overrides', async () => {
553+
const values: Record<string, any> = {
554+
cluster: { defaultStorageClass: 'linode-block-storage' },
555+
databases: {
556+
gitea: { storageClass: 'preset-db-sc' },
557+
harbor: { storageClass: 'preset-db-sc' },
558+
keycloak: { storageClass: 'preset-db-sc' },
559+
},
560+
}
561+
562+
const listPvcs = jest.fn(async (namespace: string, labelSelector: string) => {
563+
const bySelector: Record<string, any[]> = {
564+
'gitea/cnpg.io/cluster=gitea-db': [
565+
{ metadata: { labels: { 'cnpg.io/pvcRole': 'PG_DATA' } }, spec: { storageClassName: 'legacy-sc' } },
566+
],
567+
'harbor/cnpg.io/cluster=harbor-otomi-db': [
568+
{ metadata: { labels: { 'cnpg.io/pvcRole': 'PG_DATA' } }, spec: { storageClassName: 'legacy-sc' } },
569+
],
570+
'keycloak/cnpg.io/cluster=keycloak-db': [
571+
{ metadata: { labels: { 'cnpg.io/pvcRole': 'PG_DATA' } }, spec: { storageClassName: 'legacy-sc' } },
572+
],
573+
}
574+
return bySelector[`${namespace}/${labelSelector}`] || []
575+
})
576+
577+
await preservePvcStorageClassInRawValues(values, makeDeps({ listPvcs }))
578+
579+
expect(values.databases.gitea.storageClass).toBe('preset-db-sc')
580+
expect(values.databases.harbor.storageClass).toBe('preset-db-sc')
581+
expect(values.databases.keycloak.storageClass).toBe('preset-db-sc')
582+
})
551583
})

0 commit comments

Comments
 (0)