Skip to content

Commit 52bb5b6

Browse files
committed
fix: disable milvus should remove tech accounts
disabling milvus, minio/seaweedfs technical user were not removed. Furthermore, milvus was not removed when slim configuration in use.
1 parent 3b7215b commit 52bb5b6

2 files changed

Lines changed: 53 additions & 10 deletions

File tree

nuvolaris/milvus_standalone.py

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,47 @@ def create_milvus_accounts(data: dict):
161161
if cfg.get('components.seaweedfs'):
162162
return create_seaweedfs_milvus_account(data)
163163

164+
def delete_minio_milvus_account(data: dict):
165+
"""
166+
Deletes technical accounts for MINIO
167+
"""
168+
try:
169+
logging.info("removing milvus minio technical accounts.")
170+
minioClient = mutil.MinioClient()
171+
res = util.check(minioClient.remove_user(data["milvus_s3_username"]), "remove_user", True)
172+
return util.check(minioClient.force_bucket_remove(data["milvus_bucket_name"]), "force_bucket_remove", res)
173+
174+
except Exception as ex:
175+
logging.error("Could not delete milvus MINIO accounts", ex)
176+
return False
177+
178+
def delete_seaweedfs_milvus_account(data: dict):
179+
"""
180+
Delete technical accounts for SEAWEEDFS
181+
"""
182+
try:
183+
logging.info("removing milvus seaweedfs technical accounts.")
184+
seaweedfsClient = SeaweedfsClient()
185+
res = util.check(seaweedfsClient.delete_user(data["milvus_s3_username"]), "delete_user", True)
186+
return util.check(seaweedfsClient.force_bucket_remove(data["milvus_bucket_name"]), "force_bucket_remove", res)
187+
188+
except Exception as ex:
189+
logging.error("Could not delete milvus SEAWEEDFS accounts", ex)
190+
return False
191+
192+
def delete_milvus_accounts(data: dict):
193+
""""
194+
Deletes technical accounts for ETCD and MINIO
195+
"""
196+
# currently we use the ETCD root password, so we skip the ETCD user deletion.
197+
198+
logging.info("removing milvus technical accounts.")
199+
if cfg.get('components.minio'):
200+
return delete_minio_milvus_account(data)
201+
202+
if cfg.get('components.seaweedfs'):
203+
return delete_seaweedfs_milvus_account(data)
204+
164205

165206
def create_default_milvus_database(data):
166207
"""
@@ -258,13 +299,13 @@ def delete_ow_milvus(ucfg):
258299
return res
259300

260301

261-
def delete_by_owner():
262-
data = util.get_milvus_config_data()
302+
def delete_by_owner(data):
263303
dir = "milvus"
264304
if data['slim']:
265305
dir += "-slim"
266306
spec = kus.build(dir)
267307
res = kube.delete(spec)
308+
268309
logging.info(f"delete milvus: {res}")
269310
return res
270311

@@ -278,10 +319,13 @@ def delete_by_spec():
278319

279320

280321
def delete(owner=None):
322+
data = util.get_milvus_config_data()
281323
if owner:
282-
return delete_by_owner()
324+
res = delete_by_owner(data)
283325
else:
284-
return delete_by_spec()
326+
res = delete_by_spec()
327+
328+
return delete_milvus_accounts(data)
285329

286330

287331
def patch(status, action, owner=None):

tests/kind/milvus_standalone_test.ipy

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ from nuvolaris.user_metadata import UserMetadata
3131

3232
#tu.enable_debug_logging()
3333
### Initial cleanup
34-
!kubectl -n nuvolaris delete all --all
35-
!kubectl -n nuvolaris delete pvc --all
34+
tu.run_proc("kubectl -n nuvolaris delete all --all")
35+
tu.run_proc("kubectl -n nuvolaris delete pvc --all")
36+
3637

3738
# test
3839
assert(cfg.configure(tu.load_sample_config()))
@@ -94,7 +95,5 @@ assert(milvus.delete())
9495
assert(etcd.delete())
9596
assert(minio.delete())
9697

97-
# final cleanup
98-
!kubectl -n nuvolaris delete all --all
99-
# etcd pvc in particular
100-
!kubectl -n nuvolaris delete pvc --all
98+
tu.run_proc("kubectl -n nuvolaris delete all --all")
99+
tu.run_proc("kubectl -n nuvolaris delete pvc --all")

0 commit comments

Comments
 (0)