Files
chart/library/ix-dev/test/minio/migrations/migrate
Stavros Kois 0042e1c56d minio/test - migrate storage section (adds acl), update container image (#1994)
* bump version and common

* update values

* update templtes

* update ui

* add migration

* missed one

* keep version on test train in order to test migration in storage section

* fix migration value

* update appversion to reflect the actual version
2024-01-04 13:58:14 +02:00

64 lines
1.8 KiB
Python
Executable File

#!/usr/bin/python3
import json
import os
import sys
def storage_migrate(storage):
delete_keys = []
if storage['type'] == 'hostPath':
# Check if the key exists, if not we have already migrated
if not storage.get('hostPath'):
return storage
storage['hostPathConfig'] = {'hostPath': storage['hostPath']}
delete_keys.append('hostPath')
elif storage['type'] == 'ixVolume':
# Check if the key exists, if not we have already migrated
if not storage.get('datasetName'):
return storage
storage['ixVolumeConfig'] = {'datasetName': storage['datasetName']}
delete_keys.append('datasetName')
# Clean up for some older versions.
if storage.get('hostPath'):
delete_keys.append('hostPath')
for key in delete_keys:
storage.pop(key, None)
return storage
def migrate(values):
storageKey = 'minioLogging'
storageSubKey = 'logsearch'
storages = ['pgData', 'pgBackup']
for storage in storages:
check_val = values.get(storageKey, {}).get(storageSubKey, {}).get(storage, {})
if not isinstance(check_val, dict) or not check_val:
raise Exception(f'Storage section {storage} is malformed')
values[storageKey][storageSubKey][storage] = storage_migrate(check_val)
dataStorageItems = values.get('minioStorage', {})
for idx, storage in enumerate(dataStorageItems):
if not isinstance(storage, dict) or not storage:
raise Exception(f'Item {idx} in minioStorage is malformed')
dataStorageItems[idx] = storage_migrate(storage)
return values
if __name__ == '__main__':
if len(sys.argv) != 2:
exit(1)
if os.path.exists(sys.argv[1]):
with open(sys.argv[1], 'r') as f:
print(json.dumps(migrate(json.loads(f.read()))))