assemblyline-core 4.6.0.dev7__tar.gz → 4.6.0.dev9__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 (90) hide show
  1. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/PKG-INFO +1 -1
  2. assemblyline_core-4.6.0.dev9/assemblyline_core/VERSION +1 -0
  3. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/scaler/controllers/kubernetes_ctl.py +57 -22
  4. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/scaler/scaler_server.py +34 -25
  5. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/updater/run_updater.py +27 -12
  6. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core.egg-info/PKG-INFO +1 -1
  7. assemblyline_core-4.6.0.dev7/assemblyline_core/VERSION +0 -1
  8. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/LICENCE.md +0 -0
  9. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/README.md +0 -0
  10. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/__init__.py +0 -0
  11. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/alerter/__init__.py +0 -0
  12. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/alerter/processing.py +0 -0
  13. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/alerter/run_alerter.py +0 -0
  14. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/archiver/__init__.py +0 -0
  15. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/archiver/run_archiver.py +0 -0
  16. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/badlist_client.py +0 -0
  17. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/dispatching/__init__.py +0 -0
  18. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/dispatching/__main__.py +0 -0
  19. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/dispatching/client.py +0 -0
  20. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/dispatching/dispatcher.py +0 -0
  21. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/dispatching/schedules.py +0 -0
  22. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/dispatching/timeout.py +0 -0
  23. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/expiry/__init__.py +0 -0
  24. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/expiry/run_expiry.py +0 -0
  25. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/ingester/__init__.py +0 -0
  26. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/ingester/__main__.py +0 -0
  27. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/ingester/constants.py +0 -0
  28. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/ingester/ingester.py +0 -0
  29. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/metrics/__init__.py +0 -0
  30. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/metrics/es_metrics.py +0 -0
  31. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/metrics/heartbeat_formatter.py +0 -0
  32. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/metrics/helper.py +0 -0
  33. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/metrics/metrics_server.py +0 -0
  34. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/metrics/run_heartbeat_manager.py +0 -0
  35. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/metrics/run_metrics_aggregator.py +0 -0
  36. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/metrics/run_statistics_aggregator.py +0 -0
  37. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/plumber/__init__.py +0 -0
  38. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/plumber/run_plumber.py +0 -0
  39. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/replay/__init__.py +0 -0
  40. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/replay/client.py +0 -0
  41. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/replay/creator/__init__.py +0 -0
  42. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/replay/creator/run.py +0 -0
  43. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/replay/creator/run_worker.py +0 -0
  44. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/replay/loader/__init__.py +0 -0
  45. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/replay/loader/run.py +0 -0
  46. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/replay/loader/run_worker.py +0 -0
  47. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/replay/replay.py +0 -0
  48. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/safelist_client.py +0 -0
  49. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/scaler/__init__.py +0 -0
  50. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/scaler/collection.py +0 -0
  51. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/scaler/controllers/__init__.py +0 -0
  52. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/scaler/controllers/docker_ctl.py +0 -0
  53. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/scaler/controllers/interface.py +0 -0
  54. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/scaler/run_scaler.py +0 -0
  55. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/server_base.py +0 -0
  56. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/signature_client.py +0 -0
  57. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/submission_client.py +0 -0
  58. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/tasking_client.py +0 -0
  59. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/updater/__init__.py +0 -0
  60. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/updater/helper.py +0 -0
  61. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/vacuum/__init__.py +0 -0
  62. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/vacuum/crawler.py +0 -0
  63. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/vacuum/department_map.py +0 -0
  64. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/vacuum/safelist.py +0 -0
  65. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/vacuum/stream_map.py +0 -0
  66. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/vacuum/worker.py +0 -0
  67. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/workflow/__init__.py +0 -0
  68. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core/workflow/run_workflow.py +0 -0
  69. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core.egg-info/SOURCES.txt +0 -0
  70. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core.egg-info/dependency_links.txt +0 -0
  71. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core.egg-info/requires.txt +0 -0
  72. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/assemblyline_core.egg-info/top_level.txt +0 -0
  73. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/setup.cfg +0 -0
  74. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/setup.py +0 -0
  75. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_alerter.py +0 -0
  76. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_badlist_client.py +0 -0
  77. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_dispatcher.py +0 -0
  78. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_expiry.py +0 -0
  79. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_plumber.py +0 -0
  80. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_replay.py +0 -0
  81. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_safelist_client.py +0 -0
  82. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_scaler.py +0 -0
  83. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_scheduler.py +0 -0
  84. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_signature_client.py +0 -0
  85. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_simulation.py +0 -0
  86. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_tasking_client.py +0 -0
  87. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_vacuum.py +0 -0
  88. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_worker_ingest.py +0 -0
  89. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_worker_submit.py +0 -0
  90. {assemblyline_core-4.6.0.dev7 → assemblyline_core-4.6.0.dev9}/test/test_workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assemblyline-core
3
- Version: 4.6.0.dev7
3
+ Version: 4.6.0.dev9
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.6.0.dev9
@@ -1,36 +1,73 @@
1
1
  from __future__ import annotations
2
+
2
3
  import base64
3
4
  import functools
4
5
  import json
5
- import uuid
6
6
  import os
7
7
  import threading
8
+ import uuid
8
9
  import weakref
9
- import urllib3
10
-
11
10
  from base64 import b64encode
12
- from cryptography import x509
13
- from cryptography.hazmat.primitives.asymmetric import rsa
14
- from cryptography.hazmat.primitives import serialization, hashes
15
11
  from collections import OrderedDict, defaultdict
16
12
  from datetime import datetime, timedelta
17
- from dateutil.tz import tzlocal
18
- from typing import List, Optional, Tuple
19
13
  from time import sleep
20
- from assemblyline.odm.models.config import Selector
14
+ from typing import List, Optional, Tuple
21
15
 
16
+ import urllib3
17
+ from cryptography import x509
18
+ from cryptography.hazmat.primitives import hashes, serialization
19
+ from cryptography.hazmat.primitives.asymmetric import rsa
20
+ from dateutil.tz import tzlocal
22
21
  from kubernetes import client, config, watch
23
- from kubernetes.client import V1Deployment, V1DeploymentSpec, V1PodTemplateSpec, V1DeploymentStrategy, \
24
- V1PodSpec, V1ObjectMeta, V1Volume, V1Container, V1VolumeMount, V1EnvVar, V1ConfigMapVolumeSource, \
25
- V1PersistentVolumeClaimVolumeSource, V1LabelSelector, V1ResourceRequirements, V1PersistentVolumeClaim, \
26
- V1PersistentVolumeClaimSpec, V1NetworkPolicy, V1NetworkPolicySpec, V1NetworkPolicyEgressRule, V1NetworkPolicyPeer, \
27
- V1NetworkPolicyIngressRule, V1Secret, V1SecretVolumeSource, V1LocalObjectReference, V1Service, \
28
- V1ServiceSpec, V1ServicePort, V1PodSecurityContext, V1Probe, V1ExecAction, V1SecurityContext, \
29
- V1Affinity, V1NodeAffinity, V1NodeSelector, V1NodeSelectorTerm, V1NodeSelectorRequirement, V1Toleration, \
30
- V1Capabilities, V1SeccompProfile
22
+ from kubernetes.client import (
23
+ V1Affinity,
24
+ V1Capabilities,
25
+ V1ConfigMapVolumeSource,
26
+ V1Container,
27
+ V1Deployment,
28
+ V1DeploymentSpec,
29
+ V1DeploymentStrategy,
30
+ V1EnvVar,
31
+ V1ExecAction,
32
+ V1LabelSelector,
33
+ V1LocalObjectReference,
34
+ V1NetworkPolicy,
35
+ V1NetworkPolicyEgressRule,
36
+ V1NetworkPolicyIngressRule,
37
+ V1NetworkPolicyPeer,
38
+ V1NetworkPolicySpec,
39
+ V1NodeAffinity,
40
+ V1NodeSelector,
41
+ V1NodeSelectorRequirement,
42
+ V1NodeSelectorTerm,
43
+ V1ObjectMeta,
44
+ V1PersistentVolumeClaim,
45
+ V1PersistentVolumeClaimSpec,
46
+ V1PersistentVolumeClaimVolumeSource,
47
+ V1PodSecurityContext,
48
+ V1PodSpec,
49
+ V1PodTemplateSpec,
50
+ V1Probe,
51
+ V1ResourceRequirements,
52
+ V1SeccompProfile,
53
+ V1Secret,
54
+ V1SecretVolumeSource,
55
+ V1SecurityContext,
56
+ V1Service,
57
+ V1ServicePort,
58
+ V1ServiceSpec,
59
+ V1Toleration,
60
+ V1Volume,
61
+ V1VolumeMount,
62
+ )
31
63
  from kubernetes.client.rest import ApiException
32
- from assemblyline.odm.models.service import DependencyConfig, DockerConfig, PersistentVolume
33
64
 
65
+ from assemblyline.odm.models.config import Selector
66
+ from assemblyline.odm.models.service import (
67
+ DependencyConfig,
68
+ DockerConfig,
69
+ PersistentVolume,
70
+ )
34
71
  from assemblyline_core.scaler.controllers.interface import ControllerInterface
35
72
 
36
73
  # RESERVE_MEMORY_PER_NODE = os.environ.get('RESERVE_MEMORY_PER_NODE')
@@ -250,7 +287,7 @@ def parse_cpu(string: str) -> float:
250
287
  class KubernetesController(ControllerInterface):
251
288
  def __init__(self, logger, namespace: str, prefix: str, priority: str, dependency_priority: str,
252
289
  cpu_reservation: float, linux_node_selector: Selector, labels=None, log_level="INFO", core_env={},
253
- default_service_account=None, cluster_pod_list=True, enable_pod_security=False,
290
+ cluster_pod_list=True, enable_pod_security=False,
254
291
  default_service_tolerations=[],
255
292
  priv_labels=None):
256
293
  # Try loading a kubernetes connection from either the fact that we are running
@@ -295,7 +332,6 @@ class KubernetesController(ControllerInterface):
295
332
  self.core_mounts: dict[str, V1VolumeMount] = {}
296
333
  self._external_profiles = weakref.WeakValueDictionary()
297
334
  self._service_limited_env: dict[str, dict[str, str]] = defaultdict(dict)
298
- self.default_service_account: Optional[str] = default_service_account
299
335
  self.cluster_pod_list = cluster_pod_list
300
336
  self.security_policy = RESTRICTED_POD_SECURITY_CONTEXT if enable_pod_security else None
301
337
  self.default_service_tolerations = [V1Toleration(**toleration.as_primitives()) for toleration in default_service_tolerations]
@@ -836,8 +872,7 @@ class KubernetesController(ControllerInterface):
836
872
  metadata = V1ObjectMeta(name=deployment_name, labels=all_labels, annotations={CHANGE_KEY_NAME: change_key})
837
873
 
838
874
  # Figure out which (if any) service account to use
839
- service_account = self.default_service_account or \
840
- (PRIVILEGED_SERVICE_ACCOUNT_NAME if core_mounts else UNPRIVILEGED_SERVICE_ACCOUNT_NAME)
875
+ service_account = PRIVILEGED_SERVICE_ACCOUNT_NAME if core_mounts else UNPRIVILEGED_SERVICE_ACCOUNT_NAME
841
876
  if docker_config.service_account:
842
877
  service_account = docker_config.service_account
843
878
 
@@ -2,45 +2,55 @@
2
2
  An auto-scaling service specific to Assemblyline services.
3
3
  """
4
4
  from __future__ import annotations
5
+
6
+ import concurrent.futures
7
+ import copy
5
8
  import functools
6
- import threading
7
- from collections import defaultdict
8
- from string import Template
9
- from typing import Dict, Optional, Any
10
- import os
9
+ import json
11
10
  import math
12
- import time
11
+ import os
13
12
  import platform
14
- import concurrent.futures
15
- import copy
13
+ import threading
14
+ import time
15
+ from collections import defaultdict
16
16
  from contextlib import contextmanager
17
+ from string import Template
18
+ from typing import Any, Dict, Optional
17
19
 
18
20
  import elasticapm
19
- import json
20
21
  import yaml
21
22
 
22
- from assemblyline.remote.datatypes.queues.named import NamedQueue
23
- from assemblyline.remote.datatypes.queues.priority import PriorityQueue, length as pq_length
24
- from assemblyline.remote.datatypes.exporting_counter import export_metrics_once
25
- from assemblyline.remote.datatypes.hash import ExpiringHash, Hash
26
- from assemblyline.remote.datatypes.events import EventWatcher, EventSender
27
- from assemblyline.odm.models.service import Service, DockerConfig, EnvironmentVariable
28
- from assemblyline.odm.models.config import Mount
29
- from assemblyline.odm.messages.scaler_heartbeat import Metrics
30
- from assemblyline.odm.messages.scaler_status_heartbeat import Status
31
- from assemblyline.odm.messages.changes import ServiceChange, Operation
32
- from assemblyline.common.dict_utils import get_recursive_sorted_tuples, flatten
23
+ from assemblyline.common.constants import (
24
+ SCALER_TIMEOUT_QUEUE,
25
+ SERVICE_STATE_HASH,
26
+ ServiceStatus,
27
+ )
28
+ from assemblyline.common.dict_utils import flatten, get_recursive_sorted_tuples
29
+ from assemblyline.common.forge import (
30
+ get_apm_client,
31
+ get_classification,
32
+ get_service_queue,
33
+ )
33
34
  from assemblyline.common.uid import get_id_from_data
34
- from assemblyline.common.forge import get_classification, get_service_queue, get_apm_client
35
- from assemblyline.common.constants import SCALER_TIMEOUT_QUEUE, SERVICE_STATE_HASH, ServiceStatus
36
35
  from assemblyline.common.version import FRAMEWORK_VERSION, SYSTEM_VERSION
37
- from assemblyline_core.updater.helper import get_registry_config
36
+ from assemblyline.odm.messages.changes import Operation, ServiceChange
37
+ from assemblyline.odm.messages.scaler_heartbeat import Metrics
38
+ from assemblyline.odm.messages.scaler_status_heartbeat import Status
39
+ from assemblyline.odm.models.config import Mount
40
+ from assemblyline.odm.models.service import DockerConfig, EnvironmentVariable, Service
41
+ from assemblyline.remote.datatypes.events import EventSender, EventWatcher
42
+ from assemblyline.remote.datatypes.exporting_counter import export_metrics_once
43
+ from assemblyline.remote.datatypes.hash import ExpiringHash, Hash
44
+ from assemblyline.remote.datatypes.queues.named import NamedQueue
45
+ from assemblyline.remote.datatypes.queues.priority import PriorityQueue
46
+ from assemblyline.remote.datatypes.queues.priority import length as pq_length
38
47
  from assemblyline_core.scaler.controllers import KubernetesController
39
48
  from assemblyline_core.scaler.controllers.interface import ServiceControlError
40
49
  from assemblyline_core.server_base import ServiceStage, ThreadedCoreBase
50
+ from assemblyline_core.updater.helper import get_registry_config
41
51
 
42
- from .controllers import DockerController
43
52
  from . import collection
53
+ from .controllers import DockerController
44
54
 
45
55
  APM_SPAN_TYPE = 'scaler'
46
56
 
@@ -325,7 +335,6 @@ class ScalerServer(ThreadedCoreBase):
325
335
  core_env=core_env,
326
336
  cluster_pod_list=self.config.core.scaler.cluster_pod_list,
327
337
  enable_pod_security=self.config.core.scaler.enable_pod_security,
328
- default_service_account=self.config.services.service_account,
329
338
  default_service_tolerations=service_defaults_config.tolerations,
330
339
  priv_labels=priv_labels
331
340
  )
@@ -7,17 +7,31 @@ import os
7
7
  import re
8
8
  import time
9
9
  import uuid
10
-
11
10
  from concurrent.futures import ThreadPoolExecutor
12
11
  from typing import Any, List, Optional
13
12
 
14
13
  import docker
15
-
16
- from kubernetes.client import V1Job, V1ObjectMeta, V1JobSpec, V1PodTemplateSpec, V1PodSpec, V1Volume, \
17
- V1VolumeMount, V1EnvVar, V1Container, V1ResourceRequirements, \
18
- V1ConfigMapVolumeSource, V1Secret, V1SecretVolumeSource, V1LocalObjectReference, V1Toleration, V1SecurityContext, \
19
- V1Capabilities, V1SeccompProfile
20
14
  from kubernetes import client, config
15
+ from kubernetes.client import (
16
+ V1Capabilities,
17
+ V1ConfigMapVolumeSource,
18
+ V1Container,
19
+ V1EnvVar,
20
+ V1Job,
21
+ V1JobSpec,
22
+ V1LocalObjectReference,
23
+ V1ObjectMeta,
24
+ V1PodSpec,
25
+ V1PodTemplateSpec,
26
+ V1ResourceRequirements,
27
+ V1SeccompProfile,
28
+ V1Secret,
29
+ V1SecretVolumeSource,
30
+ V1SecurityContext,
31
+ V1Toleration,
32
+ V1Volume,
33
+ V1VolumeMount,
34
+ )
21
35
  from kubernetes.client.rest import ApiException
22
36
 
23
37
  from assemblyline.common import isotime
@@ -26,7 +40,11 @@ from assemblyline.odm.models.config import Mount, Selector
26
40
  from assemblyline.odm.models.service import DockerConfig, Service
27
41
  from assemblyline.remote.datatypes.events import EventSender, EventWatcher
28
42
  from assemblyline.remote.datatypes.hash import Hash
29
- from assemblyline_core.scaler.controllers.kubernetes_ctl import create_docker_auth_config, selector_to_node_affinity, PRIVILEGED_SERVICE_ACCOUNT_NAME
43
+ from assemblyline_core.scaler.controllers.kubernetes_ctl import (
44
+ PRIVILEGED_SERVICE_ACCOUNT_NAME,
45
+ create_docker_auth_config,
46
+ selector_to_node_affinity,
47
+ )
30
48
  from assemblyline_core.server_base import ThreadedCoreBase
31
49
  from assemblyline_core.updater.helper import get_latest_tag_for_service
32
50
 
@@ -157,7 +175,7 @@ class DockerUpdateInterface:
157
175
 
158
176
  class KubernetesUpdateInterface:
159
177
  def __init__(self, logger, prefix, namespace, priority_class, extra_labels, linux_node_selector: Selector,
160
- log_level="INFO", default_service_account=None, default_service_tolerations=[], enable_pod_security=False):
178
+ log_level="INFO", default_service_tolerations=[], enable_pod_security=False):
161
179
  # Try loading a kubernetes connection from either the fact that we are running
162
180
  # inside of a cluster, or we have a configuration in the normal location
163
181
  try:
@@ -187,7 +205,6 @@ class KubernetesUpdateInterface:
187
205
  self.priority_class = priority_class
188
206
  self.extra_labels = extra_labels
189
207
  self.log_level = log_level
190
- self.default_service_account = default_service_account
191
208
  self.secret_env = []
192
209
  self.linux_node_selector = linux_node_selector
193
210
  self.default_service_tolerations = [V1Toleration(**toleration.as_primitives()) for toleration in default_service_tolerations]
@@ -346,7 +363,7 @@ class KubernetesUpdateInterface:
346
363
  restart_policy='Never',
347
364
  containers=[container],
348
365
  priority_class_name=self.priority_class,
349
- service_account_name=docker_config.service_account or self.default_service_account or PRIVILEGED_SERVICE_ACCOUNT_NAME,
366
+ service_account_name=docker_config.service_account or PRIVILEGED_SERVICE_ACCOUNT_NAME,
350
367
  affinity=selector_to_node_affinity(self.linux_node_selector),
351
368
  tolerations=self.default_service_tolerations
352
369
  )
@@ -487,7 +504,6 @@ class ServiceUpdater(ThreadedCoreBase):
487
504
  priority_class='al-core-priority',
488
505
  extra_labels=extra_labels,
489
506
  log_level=self.config.logging.log_level,
490
- default_service_account=self.config.services.service_account,
491
507
  linux_node_selector=self.config.core.scaler.linux_node_selector,
492
508
  default_service_tolerations=self.config.core.scaler.service_defaults.tolerations,
493
509
  enable_pod_security=self.config.core.scaler.enable_pod_security)
@@ -512,7 +528,6 @@ class ServiceUpdater(ThreadedCoreBase):
512
528
  tag = 'stable'
513
529
  else:
514
530
  tag = 'latest'
515
- service_key = None
516
531
  try:
517
532
  service = Service(
518
533
  {'name': service_name,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assemblyline-core
3
- Version: 4.6.0.dev7
3
+ Version: 4.6.0.dev9
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.6.0.dev7