assemblyline-core 4.5.1.dev142__tar.gz → 4.5.1.dev144__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.

Potentially problematic release.


This version of assemblyline-core might be problematic. Click here for more details.

Files changed (88) hide show
  1. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/PKG-INFO +1 -1
  2. assemblyline-core-4.5.1.dev144/assemblyline_core/VERSION +1 -0
  3. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +5 -2
  4. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/scaler/scaler_server.py +10 -6
  5. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/updater/run_updater.py +6 -3
  6. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core.egg-info/PKG-INFO +1 -1
  7. assemblyline-core-4.5.1.dev142/assemblyline_core/VERSION +0 -1
  8. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/LICENCE.md +0 -0
  9. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/README.md +0 -0
  10. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/__init__.py +0 -0
  11. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/alerter/__init__.py +0 -0
  12. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/alerter/processing.py +0 -0
  13. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/alerter/run_alerter.py +0 -0
  14. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/archiver/__init__.py +0 -0
  15. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/archiver/run_archiver.py +0 -0
  16. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/badlist_client.py +0 -0
  17. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/dispatching/__init__.py +0 -0
  18. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/dispatching/__main__.py +0 -0
  19. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/dispatching/client.py +0 -0
  20. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/dispatching/dispatcher.py +0 -0
  21. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/dispatching/schedules.py +0 -0
  22. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/dispatching/timeout.py +0 -0
  23. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/expiry/__init__.py +0 -0
  24. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/expiry/run_expiry.py +0 -0
  25. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/ingester/__init__.py +0 -0
  26. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/ingester/__main__.py +0 -0
  27. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/ingester/constants.py +0 -0
  28. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/ingester/ingester.py +0 -0
  29. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/metrics/__init__.py +0 -0
  30. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/metrics/es_metrics.py +0 -0
  31. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
  32. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/metrics/helper.py +0 -0
  33. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/metrics/metrics_server.py +0 -0
  34. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
  35. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
  36. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
  37. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/plumber/__init__.py +0 -0
  38. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/plumber/run_plumber.py +0 -0
  39. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/replay/__init__.py +0 -0
  40. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/replay/client.py +0 -0
  41. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/replay/creator/__init__.py +0 -0
  42. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/replay/creator/run.py +0 -0
  43. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/replay/creator/run_worker.py +0 -0
  44. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/replay/loader/__init__.py +0 -0
  45. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/replay/loader/run.py +0 -0
  46. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/replay/loader/run_worker.py +0 -0
  47. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/replay/replay.py +0 -0
  48. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/safelist_client.py +0 -0
  49. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/scaler/__init__.py +0 -0
  50. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/scaler/collection.py +0 -0
  51. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/scaler/controllers/__init__.py +0 -0
  52. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
  53. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/scaler/controllers/interface.py +0 -0
  54. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/scaler/run_scaler.py +0 -0
  55. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/server_base.py +0 -0
  56. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/signature_client.py +0 -0
  57. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/submission_client.py +0 -0
  58. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/tasking_client.py +0 -0
  59. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/updater/__init__.py +0 -0
  60. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/updater/helper.py +0 -0
  61. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/vacuum/__init__.py +0 -0
  62. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/vacuum/crawler.py +0 -0
  63. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/vacuum/department_map.py +0 -0
  64. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/vacuum/safelist.py +0 -0
  65. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/vacuum/stream_map.py +0 -0
  66. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/vacuum/worker.py +0 -0
  67. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/workflow/__init__.py +0 -0
  68. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core/workflow/run_workflow.py +0 -0
  69. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core.egg-info/SOURCES.txt +0 -0
  70. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core.egg-info/dependency_links.txt +0 -0
  71. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core.egg-info/requires.txt +0 -0
  72. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/assemblyline_core.egg-info/top_level.txt +0 -0
  73. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/setup.cfg +0 -0
  74. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/setup.py +0 -0
  75. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_alerter.py +0 -0
  76. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_badlist_client.py +0 -0
  77. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_dispatcher.py +0 -0
  78. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_expiry.py +0 -0
  79. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_plumber.py +0 -0
  80. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_replay.py +0 -0
  81. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_safelist_client.py +0 -0
  82. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_scaler.py +0 -0
  83. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_scheduler.py +0 -0
  84. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_signature_client.py +0 -0
  85. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_simulation.py +0 -0
  86. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_vacuum.py +0 -0
  87. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_worker_ingest.py +0 -0
  88. {assemblyline-core-4.5.1.dev142 → assemblyline-core-4.5.1.dev144}/test/test_worker_submit.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: assemblyline-core
3
- Version: 4.5.1.dev142
3
+ Version: 4.5.1.dev144
4
4
  Summary: Assemblyline 4 - Core components
5
5
  Home-page: https://github.com/CybercentreCanada/assemblyline-core/
6
6
  Author: CCCS Assemblyline development team
@@ -0,0 +1 @@
1
+ 4.5.1.dev144
@@ -26,7 +26,8 @@ from kubernetes.client import V1Deployment, V1DeploymentSpec, V1PodTemplateSpec,
26
26
  V1PersistentVolumeClaimSpec, V1NetworkPolicy, V1NetworkPolicySpec, V1NetworkPolicyEgressRule, V1NetworkPolicyPeer, \
27
27
  V1NetworkPolicyIngressRule, V1Secret, V1SecretVolumeSource, V1LocalObjectReference, V1Service, \
28
28
  V1ServiceSpec, V1ServicePort, V1PodSecurityContext, V1Probe, V1ExecAction, V1SecurityContext, \
29
- V1Affinity, V1NodeAffinity, V1NodeSelector, V1NodeSelectorTerm, V1NodeSelectorRequirement, CoreV1Event
29
+ V1Affinity, V1NodeAffinity, V1NodeSelector, V1NodeSelectorTerm, V1NodeSelectorRequirement, CoreV1Event, V1Toleration
30
+
30
31
  from kubernetes.client.rest import ApiException
31
32
  from assemblyline.odm.models.service import DependencyConfig, DockerConfig, PersistentVolume
32
33
 
@@ -241,7 +242,7 @@ def parse_cpu(string: str) -> float:
241
242
  class KubernetesController(ControllerInterface):
242
243
  def __init__(self, logger, namespace: str, prefix: str, priority: str, dependency_priority: str,
243
244
  cpu_reservation: float, linux_node_selector: Selector, labels=None, log_level="INFO", core_env={},
244
- default_service_account=None, cluster_pod_list=True):
245
+ default_service_account=None, cluster_pod_list=True, default_service_tolerations = []):
245
246
  # Try loading a kubernetes connection from either the fact that we are running
246
247
  # inside of a cluster, or have a config file that tells us how
247
248
  try:
@@ -285,6 +286,7 @@ class KubernetesController(ControllerInterface):
285
286
  self._service_limited_env: dict[str, dict[str, str]] = defaultdict(dict)
286
287
  self.default_service_account: Optional[str] = default_service_account
287
288
  self.cluster_pod_list = cluster_pod_list
289
+ self.default_service_tolerations = [V1Toleration(**toleration.as_primitives()) for toleration in default_service_tolerations]
288
290
 
289
291
  # A record of previously reported events so that we don't report the same message repeatedly, fill it with
290
292
  # existing messages so we don't have a huge dump of duplicates on restart
@@ -849,6 +851,7 @@ class KubernetesController(ControllerInterface):
849
851
  security_context=V1PodSecurityContext(fs_group=1000),
850
852
  service_account_name=service_account,
851
853
  affinity=selector_to_node_affinity(self.linux_node_selector),
854
+ tolerations=self.default_service_tolerations
852
855
  )
853
856
 
854
857
  if use_pull_secret:
@@ -289,11 +289,13 @@ class ScalerServer(ThreadedCoreBase):
289
289
  'privilege': 'service'
290
290
  }
291
291
 
292
+ service_defaults_config = self.config.core.scaler.service_defaults
293
+
292
294
  # If Scaler has envs that set service-server env, then that should override configured values
293
295
  if SERVICE_API_HOST:
294
- self.config.core.scaler.service_defaults.environment = \
296
+ service_defaults_config.environment = \
295
297
  [EnvironmentVariable(dict(name="SERVICE_API_HOST", value=SERVICE_API_HOST))] + \
296
- [env for env in self.config.core.scaler.service_defaults.environment if env.name != "SERVICE_API_HOST"]
298
+ [env for env in service_defaults_config.environment if env.name != "SERVICE_API_HOST"]
297
299
 
298
300
  if self.config.core.scaler.additional_labels:
299
301
  labels.update({k: v for k, v in (_l.split("=") for _l in self.config.core.scaler.additional_labels)})
@@ -308,7 +310,9 @@ class ScalerServer(ThreadedCoreBase):
308
310
  log_level=self.config.logging.log_level,
309
311
  core_env=core_env,
310
312
  cluster_pod_list=self.config.core.scaler.cluster_pod_list,
311
- default_service_account=self.config.services.service_account)
313
+ default_service_account=self.config.services.service_account,
314
+ default_service_tolerations=service_defaults_config.tolerations
315
+ )
312
316
 
313
317
  # Add global configuration for privileged services
314
318
  self.controller.add_config_mount(KUBERNETES_AL_CONFIG, config_map=KUBERNETES_AL_CONFIG, key="config",
@@ -317,7 +321,7 @@ class ScalerServer(ThreadedCoreBase):
317
321
  # If we're passed an override for server-server and it's defining an HTTPS connection, then add a global
318
322
  # mount for the Root CA that needs to be mounted
319
323
  if INTERNAL_ENCRYPT:
320
- self.config.core.scaler.service_defaults.mounts.append(Mount(dict(
324
+ service_defaults_config.mounts.append(Mount(dict(
321
325
  name="root-ca",
322
326
  path="/etc/assemblyline/ssl/al_root-ca.crt",
323
327
  resource_type="secret",
@@ -326,7 +330,7 @@ class ScalerServer(ThreadedCoreBase):
326
330
  )))
327
331
 
328
332
  # Add default mounts for (non-)privileged services
329
- for mount in self.config.core.scaler.service_defaults.mounts:
333
+ for mount in service_defaults_config.mounts:
330
334
  # Deprecated configuration for mounting ConfigMap
331
335
  # TODO: Deprecate code on next major change
332
336
  if mount.config_map:
@@ -369,7 +373,7 @@ class ScalerServer(ThreadedCoreBase):
369
373
  if CLASSIFICATION_HOST_PATH:
370
374
  self.controller.global_mounts.append((CLASSIFICATION_HOST_PATH, '/etc/assemblyline/classification.yml'))
371
375
 
372
- for mount in self.config.core.scaler.service_defaults.mounts:
376
+ for mount in service_defaults_config.mounts:
373
377
  # Mounts are all storage-based since there's no equivalent to ConfigMaps in Docker
374
378
  if mount.privileged_only:
375
379
  self.controller.core_mounts.append((mount.name, mount.path))
@@ -15,7 +15,7 @@ import docker
15
15
 
16
16
  from kubernetes.client import V1Job, V1ObjectMeta, V1JobSpec, V1PodTemplateSpec, V1PodSpec, V1Volume, \
17
17
  V1VolumeMount, V1EnvVar, V1Container, V1ResourceRequirements, \
18
- V1ConfigMapVolumeSource, V1Secret, V1SecretVolumeSource, V1LocalObjectReference
18
+ V1ConfigMapVolumeSource, V1Secret, V1SecretVolumeSource, V1LocalObjectReference, V1Toleration
19
19
  from kubernetes import client, config
20
20
  from kubernetes.client.rest import ApiException
21
21
 
@@ -148,7 +148,7 @@ class DockerUpdateInterface:
148
148
 
149
149
  class KubernetesUpdateInterface:
150
150
  def __init__(self, logger, prefix, namespace, priority_class, extra_labels, linux_node_selector: Selector,
151
- log_level="INFO", default_service_account=None):
151
+ log_level="INFO", default_service_account=None, default_service_tolerations=[]):
152
152
  # Try loading a kubernetes connection from either the fact that we are running
153
153
  # inside of a cluster, or we have a configuration in the normal location
154
154
  try:
@@ -181,6 +181,8 @@ class KubernetesUpdateInterface:
181
181
  self.default_service_account = default_service_account
182
182
  self.secret_env = []
183
183
  self.linux_node_selector = linux_node_selector
184
+ self.default_service_tolerations = [V1Toleration(**toleration.as_primitives()) for toleration in default_service_tolerations]
185
+
184
186
 
185
187
  # Get the deployment of this process. Use that information to fill out the secret info
186
188
  deployment = self.apps_api.read_namespaced_deployment(name='updater', namespace=self.namespace)
@@ -465,7 +467,8 @@ class ServiceUpdater(ThreadedCoreBase):
465
467
  extra_labels=extra_labels,
466
468
  log_level=self.config.logging.log_level,
467
469
  default_service_account=self.config.services.service_account,
468
- linux_node_selector=self.config.core.scaler.linux_node_selector)
470
+ linux_node_selector=self.config.core.scaler.linux_node_selector,
471
+ default_service_tolerations=self.config.core.scaler.service_defaults.tolerations)
469
472
  # Add all additional mounts to privileged services
470
473
  self.mounts = self.config.core.scaler.service_defaults.mounts
471
474
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: assemblyline-core
3
- Version: 4.5.1.dev142
3
+ Version: 4.5.1.dev144
4
4
  Summary: Assemblyline 4 - Core components
5
5
  Home-page: https://github.com/CybercentreCanada/assemblyline-core/
6
6
  Author: CCCS Assemblyline development team
@@ -1 +0,0 @@
1
- 4.5.1.dev142