kaqing 2.0.5__tar.gz → 2.0.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. {kaqing-2.0.5 → kaqing-2.0.7}/PKG-INFO +1 -1
  2. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/deploy_pod.py +30 -1
  3. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/undeploy_pod.py +5 -0
  4. kaqing-2.0.7/adam/k8s_utils/config_maps.py +34 -0
  5. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/deployment.py +10 -4
  6. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/pods.py +13 -3
  7. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/volumes.py +9 -0
  8. kaqing-2.0.7/adam/version.py +5 -0
  9. {kaqing-2.0.5 → kaqing-2.0.7}/kaqing.egg-info/PKG-INFO +1 -1
  10. {kaqing-2.0.5 → kaqing-2.0.7}/kaqing.egg-info/SOURCES.txt +1 -0
  11. {kaqing-2.0.5 → kaqing-2.0.7}/setup.py +1 -1
  12. kaqing-2.0.5/adam/version.py +0 -5
  13. {kaqing-2.0.5 → kaqing-2.0.7}/README +0 -0
  14. {kaqing-2.0.5 → kaqing-2.0.7}/adam/__init__.py +0 -0
  15. {kaqing-2.0.5 → kaqing-2.0.7}/adam/app_session.py +0 -0
  16. {kaqing-2.0.5 → kaqing-2.0.7}/adam/apps.py +0 -0
  17. {kaqing-2.0.5 → kaqing-2.0.7}/adam/batch.py +0 -0
  18. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/__init__.py +0 -0
  19. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/check.py +0 -0
  20. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/check_context.py +0 -0
  21. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/check_result.py +0 -0
  22. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/check_utils.py +0 -0
  23. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/compactionstats.py +0 -0
  24. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/cpu.py +0 -0
  25. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/disk.py +0 -0
  26. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/gossip.py +0 -0
  27. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/issue.py +0 -0
  28. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/memory.py +0 -0
  29. {kaqing-2.0.5 → kaqing-2.0.7}/adam/checks/status.py +0 -0
  30. {kaqing-2.0.5 → kaqing-2.0.7}/adam/cli.py +0 -0
  31. {kaqing-2.0.5 → kaqing-2.0.7}/adam/cli_group.py +0 -0
  32. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/__init__.py +0 -0
  33. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/column.py +0 -0
  34. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/columns.py +0 -0
  35. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/compactions.py +0 -0
  36. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/cpu.py +0 -0
  37. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/dir_data.py +0 -0
  38. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/dir_snapshots.py +0 -0
  39. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/gossip.py +0 -0
  40. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/host_id.py +0 -0
  41. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/memory.py +0 -0
  42. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/node_address.py +0 -0
  43. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/node_load.py +0 -0
  44. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/node_owns.py +0 -0
  45. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/node_status.py +0 -0
  46. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/node_tokens.py +0 -0
  47. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/node_utils.py +0 -0
  48. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/pod_name.py +0 -0
  49. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/volume_cassandra.py +0 -0
  50. {kaqing-2.0.5 → kaqing-2.0.7}/adam/columns/volume_root.py +0 -0
  51. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/__init__.py +0 -0
  52. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/app.py +0 -0
  53. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/app_ping.py +0 -0
  54. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/bash.py +0 -0
  55. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/cd.py +0 -0
  56. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/check.py +0 -0
  57. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/cli_commands.py +0 -0
  58. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/command.py +0 -0
  59. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/command_helpers.py +0 -0
  60. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/commands_utils.py +0 -0
  61. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/cp.py +0 -0
  62. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/cql_utils.py +0 -0
  63. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/cqlsh.py +0 -0
  64. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/__init__.py +0 -0
  65. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/code_start.py +0 -0
  66. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/code_stop.py +0 -0
  67. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/code_utils.py +0 -0
  68. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/deploy.py +0 -0
  69. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/deploy_frontend.py +0 -0
  70. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/deploy_utils.py +0 -0
  71. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/undeploy.py +0 -0
  72. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/deploy/undeploy_frontend.py +0 -0
  73. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/devices.py +0 -0
  74. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/exit.py +0 -0
  75. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/help.py +0 -0
  76. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/issues.py +0 -0
  77. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/login.py +0 -0
  78. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/logs.py +0 -0
  79. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/ls.py +0 -0
  80. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/medusa/__init__.py +0 -0
  81. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/medusa/medusa.py +0 -0
  82. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/medusa/medusa_backup.py +0 -0
  83. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/medusa/medusa_restore.py +0 -0
  84. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/medusa/medusa_show_backupjobs.py +0 -0
  85. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/medusa/medusa_show_restorejobs.py +0 -0
  86. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/nodetool.py +0 -0
  87. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/nodetool_commands.py +0 -0
  88. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/param_get.py +0 -0
  89. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/param_set.py +0 -0
  90. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/postgres/__init__.py +0 -0
  91. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/postgres/postgres.py +0 -0
  92. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/postgres/postgres_ls.py +0 -0
  93. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/postgres/postgres_preview.py +0 -0
  94. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/postgres/postgres_session.py +0 -0
  95. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/preview_table.py +0 -0
  96. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/pwd.py +0 -0
  97. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/__init__.py +0 -0
  98. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper.py +0 -0
  99. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_forward.py +0 -0
  100. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_forward_stop.py +0 -0
  101. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_restart.py +0 -0
  102. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_run_abort.py +0 -0
  103. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_runs.py +0 -0
  104. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_runs_abort.py +0 -0
  105. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_schedule_activate.py +0 -0
  106. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_schedule_start.py +0 -0
  107. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_schedule_stop.py +0 -0
  108. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_schedules.py +0 -0
  109. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_session.py +0 -0
  110. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/reaper/reaper_status.py +0 -0
  111. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/repair/__init__.py +0 -0
  112. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/repair/repair.py +0 -0
  113. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/repair/repair_log.py +0 -0
  114. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/repair/repair_run.py +0 -0
  115. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/repair/repair_scan.py +0 -0
  116. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/repair/repair_stop.py +0 -0
  117. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/report.py +0 -0
  118. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/restart.py +0 -0
  119. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/rollout.py +0 -0
  120. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/shell.py +0 -0
  121. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/__init__.py +0 -0
  122. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show.py +0 -0
  123. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_adam.py +0 -0
  124. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_app_actions.py +0 -0
  125. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_app_id.py +0 -0
  126. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_app_queues.py +0 -0
  127. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_cassandra_status.py +0 -0
  128. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_cassandra_version.py +0 -0
  129. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_commands.py +0 -0
  130. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_login.py +0 -0
  131. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_params.py +0 -0
  132. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_processes.py +0 -0
  133. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_repairs.py +0 -0
  134. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/show/show_storage.py +0 -0
  135. {kaqing-2.0.5 → kaqing-2.0.7}/adam/commands/watch.py +0 -0
  136. {kaqing-2.0.5 → kaqing-2.0.7}/adam/config.py +0 -0
  137. {kaqing-2.0.5 → kaqing-2.0.7}/adam/embedded_apps.py +0 -0
  138. {kaqing-2.0.5 → kaqing-2.0.7}/adam/embedded_params.py +0 -0
  139. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/__init__.py +0 -0
  140. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/cassandra_clusters.py +0 -0
  141. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/cassandra_nodes.py +0 -0
  142. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/custom_resources.py +0 -0
  143. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/ingresses.py +0 -0
  144. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/jobs.py +0 -0
  145. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/kube_context.py +0 -0
  146. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/secrets.py +0 -0
  147. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/service_accounts.py +0 -0
  148. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/services.py +0 -0
  149. {kaqing-2.0.5 → kaqing-2.0.7}/adam/k8s_utils/statefulsets.py +0 -0
  150. {kaqing-2.0.5 → kaqing-2.0.7}/adam/log.py +0 -0
  151. {kaqing-2.0.5 → kaqing-2.0.7}/adam/pod_exec_result.py +0 -0
  152. {kaqing-2.0.5 → kaqing-2.0.7}/adam/repl.py +0 -0
  153. {kaqing-2.0.5 → kaqing-2.0.7}/adam/repl_commands.py +0 -0
  154. {kaqing-2.0.5 → kaqing-2.0.7}/adam/repl_session.py +0 -0
  155. {kaqing-2.0.5 → kaqing-2.0.7}/adam/repl_state.py +0 -0
  156. {kaqing-2.0.5 → kaqing-2.0.7}/adam/sso/__init__.py +0 -0
  157. {kaqing-2.0.5 → kaqing-2.0.7}/adam/sso/authenticator.py +0 -0
  158. {kaqing-2.0.5 → kaqing-2.0.7}/adam/sso/authn_ad.py +0 -0
  159. {kaqing-2.0.5 → kaqing-2.0.7}/adam/sso/authn_okta.py +0 -0
  160. {kaqing-2.0.5 → kaqing-2.0.7}/adam/sso/cred_cache.py +0 -0
  161. {kaqing-2.0.5 → kaqing-2.0.7}/adam/sso/id_token.py +0 -0
  162. {kaqing-2.0.5 → kaqing-2.0.7}/adam/sso/idp.py +0 -0
  163. {kaqing-2.0.5 → kaqing-2.0.7}/adam/sso/idp_login.py +0 -0
  164. {kaqing-2.0.5 → kaqing-2.0.7}/adam/sso/idp_session.py +0 -0
  165. {kaqing-2.0.5 → kaqing-2.0.7}/adam/sso/sso_config.py +0 -0
  166. {kaqing-2.0.5 → kaqing-2.0.7}/adam/utils.py +0 -0
  167. {kaqing-2.0.5 → kaqing-2.0.7}/kaqing.egg-info/dependency_links.txt +0 -0
  168. {kaqing-2.0.5 → kaqing-2.0.7}/kaqing.egg-info/entry_points.txt +0 -0
  169. {kaqing-2.0.5 → kaqing-2.0.7}/kaqing.egg-info/top_level.txt +0 -0
  170. {kaqing-2.0.5 → kaqing-2.0.7}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaqing
3
- Version: 2.0.5
3
+ Version: 2.0.7
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -1,12 +1,15 @@
1
1
  from kubernetes import client
2
+ import yaml
2
3
 
3
4
  from adam.commands.command import Command
4
5
  from adam.commands.deploy.deploy_utils import deploy_frontend, gen_labels
5
6
  from adam.config import Config
7
+ from adam.k8s_utils.config_maps import ConfigMaps
6
8
  from adam.k8s_utils.deployment import Deployments
7
9
  from adam.k8s_utils.kube_context import KubeContext
8
10
  from adam.k8s_utils.pods import Pods
9
11
  from adam.k8s_utils.service_accounts import ServiceAccounts
12
+ from adam.k8s_utils.volumes import ConfigMapMount
10
13
  from adam.repl_state import ReplState, RequiredState
11
14
  from adam.utils import log2
12
15
 
@@ -47,6 +50,28 @@ class DeployPod(Command):
47
50
  labels = gen_labels(label_selector)
48
51
  ServiceAccounts.replicate(sa_name, state.namespace, sa_proto, labels=labels, add_cluster_roles=additional_cluster_roles)
49
52
 
53
+ settings_filename = 'settings.yaml'
54
+ settings_path = f'/kaqing/{settings_filename}'
55
+ settings_data = None
56
+ try:
57
+ with open(settings_filename, 'r') as file:
58
+ settings_data = file.read()
59
+ except:
60
+ try:
61
+ with open(settings_path, 'r') as file:
62
+ settings_data = file.read()
63
+ except:
64
+ pass
65
+
66
+ if not settings_data:
67
+ log2(f'{settings_filename} not found.')
68
+ return state
69
+
70
+ cm_name = Config().get('pod.cm.name', 'ops')
71
+ ConfigMaps.create(cm_name, state.namespace, {
72
+ settings_filename : settings_data
73
+ }, labels=labels)
74
+
50
75
  pod_name = Config().get('pod.name', 'ops')
51
76
  image = Config().get('pod.image', 'seanahnsf/kaqing')
52
77
  security_context = client.V1SecurityContext(
@@ -54,7 +79,11 @@ class DeployPod(Command):
54
79
  add=["SYS_PTRACE"]
55
80
  )
56
81
  )
57
- Deployments.create(state.namespace, pod_name, image, env={'NAMESPACE': state.namespace}, container_security_context=security_context, labels=labels, sa_name=sa_name)
82
+ Deployments.create(state.namespace, pod_name, image,
83
+ env={'NAMESPACE': state.namespace},
84
+ container_security_context=security_context,
85
+ labels=labels, sa_name=sa_name,
86
+ config_map_mount=ConfigMapMount(cm_name, settings_filename, settings_path))
58
87
 
59
88
  uri = deploy_frontend(pod_name, state.namespace, label_selector)
60
89
 
@@ -1,6 +1,7 @@
1
1
  from adam.commands.command import Command
2
2
  from adam.commands.deploy.deploy_utils import undeploy_frontend
3
3
  from adam.config import Config
4
+ from adam.k8s_utils.config_maps import ConfigMaps
4
5
  from adam.k8s_utils.deployment import Deployments
5
6
  from adam.k8s_utils.kube_context import KubeContext
6
7
  from adam.k8s_utils.pods import Pods
@@ -39,6 +40,10 @@ class UndeployPod(Command):
39
40
  ServiceAccounts.delete(state.namespace, label_selector=label_selector)
40
41
  except Exception as e:
41
42
  log2(e)
43
+ try:
44
+ ConfigMaps.delete_with_selector(state.namespace, label_selector)
45
+ except Exception as e:
46
+ log2(e)
42
47
  try:
43
48
  Deployments.delete_with_selector(state.namespace, label_selector, grace_period_seconds=0)
44
49
  except Exception as e:
@@ -0,0 +1,34 @@
1
+ from kubernetes import client
2
+
3
+ # utility collection on config maps; methods are all static
4
+ class ConfigMaps:
5
+ def create(name: str, namespace: str, data: dict[str, str], labels: dict[str, str] = {}):
6
+ v1 = client.CoreV1Api()
7
+
8
+ metadata = client.V1ObjectMeta(
9
+ name=name,
10
+ namespace=namespace,
11
+ labels=labels
12
+ )
13
+
14
+ configmap = client.V1ConfigMap(
15
+ api_version="v1",
16
+ kind="ConfigMap",
17
+ metadata=metadata,
18
+ data=data
19
+ )
20
+
21
+ try:
22
+ api_response = v1.create_namespaced_config_map(body=configmap, namespace=namespace)
23
+ # print(f"ConfigMap '{name}' created successfully in namespace '{namespace}'.")
24
+ # print(api_response)
25
+ except client.ApiException as e:
26
+ # print(f"Error creating ConfigMap: {e}")
27
+ raise e
28
+
29
+ def delete_with_selector(namespace: str, label_selector: str):
30
+ v1 = client.CoreV1Api()
31
+
32
+ ret = v1.list_namespaced_config_map(namespace=namespace, label_selector=label_selector)
33
+ for i in ret.items:
34
+ v1.delete_namespaced_config_map(name=i.metadata.name, namespace=namespace)
@@ -1,6 +1,7 @@
1
1
  from kubernetes import client
2
2
 
3
3
  from adam.k8s_utils.pods import Pods
4
+ from adam.k8s_utils.volumes import ConfigMapMount
4
5
 
5
6
  # utility collection on deployments; methods are all static
6
7
  class Deployments:
@@ -14,7 +15,8 @@ class Deployments:
14
15
  def create_deployment_spec(name: str, image: str, image_pull_secret: str,
15
16
  envs: list, container_security_context: client.V1SecurityContext,
16
17
  volume_name: str, pvc_name:str, mount_path:str,
17
- command: list[str]=None, sa_name=None, labels: dict[str, str] = {}):
18
+ command: list[str]=None, sa_name=None, labels: dict[str, str] = {},
19
+ config_map_mount: ConfigMapMount = None):
18
20
  return client.V1DeploymentSpec(
19
21
  replicas=1,
20
22
  selector=client.V1LabelSelector(match_labels=labels),
@@ -22,7 +24,7 @@ class Deployments:
22
24
  metadata=client.V1ObjectMeta(labels=labels),
23
25
  spec=Pods.create_pod_spec(name, image, image_pull_secret, envs, container_security_context,
24
26
  volume_name, pvc_name, mount_path, command=command, sa_name=sa_name,
25
- restart_policy="Always"),
27
+ restart_policy="Always", config_map_mount=config_map_mount),
26
28
  ),
27
29
  )
28
30
 
@@ -35,12 +37,16 @@ class Deployments:
35
37
  volume_name: str = None,
36
38
  pvc_name: str = None,
37
39
  mount_path: str = None,
38
- sa_name=None):
40
+ sa_name=None,
41
+ config_map_mount: ConfigMapMount = None):
39
42
  v1 = client.AppsV1Api()
40
43
  envs = []
41
44
  for k, v in env.items():
42
45
  envs.append(client.V1EnvVar(name=str(k), value=str(v)))
43
- deployment = Deployments.create_deployment_spec(deployment_name, image, secret, envs, container_security_context, volume_name, pvc_name, mount_path, command=command, sa_name=sa_name, labels=labels)
46
+ deployment = Deployments.create_deployment_spec(deployment_name, image, secret, envs,
47
+ container_security_context, volume_name, pvc_name,
48
+ mount_path, command=command, sa_name=sa_name, labels=labels,
49
+ config_map_mount=config_map_mount)
44
50
  return v1.create_namespaced_deployment(
45
51
  namespace=namespace,
46
52
  body=client.V1Deployment(spec=deployment, metadata=client.V1ObjectMeta(
@@ -8,6 +8,7 @@ from kubernetes.stream import stream
8
8
  from kubernetes.stream.ws_client import ERROR_CHANNEL
9
9
 
10
10
  from adam.config import Config
11
+ from adam.k8s_utils.volumes import ConfigMapMount
11
12
  from adam.pod_exec_result import PodExecResult
12
13
  from adam.utils import elapsed_time, log2
13
14
  from .kube_context import KubeContext
@@ -175,11 +176,15 @@ class Pods:
175
176
  def create_pod_spec(name: str, image: str, image_pull_secret: str,
176
177
  envs: list, container_security_context: client.V1SecurityContext,
177
178
  volume_name: str, pvc_name:str, mount_path:str,
178
- command: list[str]=None, sa_name=None, restart_policy="Never"):
179
+ command: list[str]=None, sa_name : str = None, config_map_mount: ConfigMapMount = None,
180
+ restart_policy="Never"):
179
181
  volume_mounts = []
180
182
  if volume_name and pvc_name and mount_path:
181
183
  volume_mounts=[client.V1VolumeMount(mount_path=mount_path, name=volume_name)]
182
184
 
185
+ if config_map_mount:
186
+ volume_mounts.append(client.V1VolumeMount(mount_path=config_map_mount.mount_path, sub_path=config_map_mount.sub_path, name=config_map_mount.name()))
187
+
183
188
  container = client.V1Container(name=name, image=image, env=envs, security_context=container_security_context, command=command,
184
189
  volume_mounts=volume_mounts)
185
190
 
@@ -191,6 +196,9 @@ class Pods:
191
196
  if not sa_name:
192
197
  security_context=client.V1PodSecurityContext(run_as_user=1001, run_as_group=1001, fs_group=1001)
193
198
 
199
+ if config_map_mount:
200
+ volumes.append(client.V1Volume(name=config_map_mount.name(), config_map=client.V1ConfigMapVolumeSource(name=config_map_mount.config_map_name)))
201
+
194
202
  return client.V1PodSpec(
195
203
  restart_policy=restart_policy,
196
204
  containers=[container],
@@ -209,12 +217,14 @@ class Pods:
209
217
  volume_name: str = None,
210
218
  pvc_name: str = None,
211
219
  mount_path: str = None,
212
- sa_name=None):
220
+ sa_name: str = None,
221
+ config_map_mount: ConfigMapMount = None):
213
222
  v1 = client.CoreV1Api()
214
223
  envs = []
215
224
  for k, v in env.items():
216
225
  envs.append(client.V1EnvVar(name=str(k), value=str(v)))
217
- pod = Pods.create_pod_spec(pod_name, image, secret, envs, container_security_context, volume_name, pvc_name, mount_path, command=command, sa_name=sa_name)
226
+ pod = Pods.create_pod_spec(pod_name, image, secret, envs, container_security_context, volume_name, pvc_name, mount_path, command=command,
227
+ sa_name=sa_name, config_map_mount=config_map_mount)
218
228
  return v1.create_namespaced_pod(
219
229
  namespace=namespace,
220
230
  body=client.V1Pod(spec=pod, metadata=client.V1ObjectMeta(
@@ -1,6 +1,15 @@
1
1
  from kubernetes import client
2
2
  from adam.utils import log2
3
3
 
4
+ class ConfigMapMount:
5
+ def __init__(self, config_map_name: str, sub_path: str, mount_path: str):
6
+ self.config_map_name = config_map_name
7
+ self.sub_path = sub_path
8
+ self.mount_path = mount_path
9
+
10
+ def name(self) -> str:
11
+ return f"{self.config_map_name}-volume"
12
+
4
13
  # utility collection on volumes; methods are all static
5
14
  class Volumes:
6
15
  def create_pvc(name: str, storage: int, namespace: str):
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ __version__ = "2.0.7" #: the working version
5
+ __release__ = "1.0.0" #: the release version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaqing
3
- Version: 2.0.5
3
+ Version: 2.0.7
4
4
  Summary: UNKNOWN
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -138,6 +138,7 @@ adam/commands/show/show_storage.py
138
138
  adam/k8s_utils/__init__.py
139
139
  adam/k8s_utils/cassandra_clusters.py
140
140
  adam/k8s_utils/cassandra_nodes.py
141
+ adam/k8s_utils/config_maps.py
141
142
  adam/k8s_utils/custom_resources.py
142
143
  adam/k8s_utils/deployment.py
143
144
  adam/k8s_utils/ingresses.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='kaqing',
5
- version='2.0.5',
5
+ version='2.0.7',
6
6
  packages=find_packages(),
7
7
  entry_points={
8
8
  'console_scripts': [
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
-
4
- __version__ = "2.0.5" #: the working version
5
- __release__ = "1.0.0" #: the release version
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes