robusta-cli 0.12.1a0__tar.gz → 0.13.0__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 (296) hide show
  1. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/PKG-INFO +8 -3
  2. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/pyproject.toml +9 -5
  3. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/_version.py +1 -1
  4. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/api/__init__.py +1 -1
  5. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/self_host.py +18 -6
  6. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/env_vars.py +8 -2
  7. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/reporting/base.py +11 -2
  8. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/datadog/datadog_sink_params.py +4 -0
  9. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/discord/discord_sink_params.py +4 -0
  10. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/file/file_sink_params.py +4 -0
  11. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/google_chat/google_chat_params.py +4 -0
  12. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/jira/jira_sink_params.py +4 -0
  13. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/kafka/kafka_sink_params.py +4 -0
  14. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/mail/mail_sink_params.py +4 -0
  15. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/mattermost/mattermost_sink_params.py +4 -0
  16. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/msteams/msteams_sink_params.py +4 -0
  17. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/opsgenie/opsgenie_sink_params.py +4 -0
  18. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/pagerduty/pagerduty_sink_params.py +4 -0
  19. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/pushover/pushover_sink_params.py +5 -0
  20. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/dal/supabase_dal.py +81 -91
  21. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/robusta_sink.py +48 -51
  22. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/robusta_sink_params.py +4 -0
  23. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/rocketchat/rocketchat_sink_params.py +4 -0
  24. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/servicenow/servicenow_sink_params.py +4 -0
  25. robusta_cli-0.13.0/src/robusta/core/sinks/sink_base.py +185 -0
  26. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/sink_base_params.py +62 -1
  27. robusta_cli-0.13.0/src/robusta/core/sinks/slack/slack_sink.py +80 -0
  28. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/slack/slack_sink_params.py +8 -0
  29. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/telegram/telegram_sink_params.py +4 -0
  30. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/victorops/victorops_sink_params.py +4 -0
  31. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/webex/webex_sink_params.py +4 -0
  32. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/webhook/webhook_sink.py +14 -1
  33. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/webhook/webhook_sink_params.py +5 -0
  34. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/yamessenger/yamessenger_sink_params.py +4 -0
  35. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/triggers/custom_triggers.py +2 -0
  36. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/triggers/multi_resources_trigger.py +2 -5
  37. robusta_cli-0.13.0/src/robusta/core/triggers/pod_evicted_trigger.py +55 -0
  38. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/api_client_utils.py +23 -1
  39. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/autogenerated/triggers.py +32 -9
  40. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/base_triggers.py +1 -3
  41. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/custom_models.py +3 -3
  42. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/slack/sender.py +142 -10
  43. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/zulip/sender.py +2 -2
  44. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/web.py +30 -2
  45. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/scope.py +11 -8
  46. robusta_cli-0.12.1a0/src/robusta/core/sinks/sink_base.py +0 -63
  47. robusta_cli-0.12.1a0/src/robusta/core/sinks/slack/slack_sink.py +0 -15
  48. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/LICENSE +0 -0
  49. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/__init__.py +0 -0
  50. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/__init__.py +0 -0
  51. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/auth.py +0 -0
  52. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/backend_profile.py +0 -0
  53. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/eula.py +0 -0
  54. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/integrations_cmd.py +0 -0
  55. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/main.py +0 -0
  56. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/playbooks_cmd.py +0 -0
  57. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/slack_feedback_message.py +0 -0
  58. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/slack_verification.py +0 -0
  59. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/cli/utils.py +0 -0
  60. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/__init__.py +0 -0
  61. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/discovery/__init__.py +0 -0
  62. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/discovery/discovery.py +0 -0
  63. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/discovery/resource_names.py +0 -0
  64. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/discovery/top_service_resolver.py +0 -0
  65. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/discovery/utils.py +0 -0
  66. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/exceptions.py +0 -0
  67. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/__init__.py +0 -0
  68. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/base_params.py +0 -0
  69. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/cluster_status.py +0 -0
  70. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/events.py +0 -0
  71. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/helm_release.py +0 -0
  72. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/jobs.py +0 -0
  73. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/k8s_operation_type.py +0 -0
  74. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/namespaces.py +0 -0
  75. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/nodes.py +0 -0
  76. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/pods.py +0 -0
  77. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/runner_config.py +0 -0
  78. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/model/services.py +0 -0
  79. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/persistency/__init__.py +0 -0
  80. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/persistency/in_memory.py +0 -0
  81. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/persistency/scheduled_jobs_states_dal.py +0 -0
  82. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/__init__.py +0 -0
  83. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/actions_registry.py +0 -0
  84. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/base_trigger.py +0 -0
  85. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/common.py +0 -0
  86. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/container_playbook_utils.py +0 -0
  87. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/crash_reporter.py +0 -0
  88. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/generation.py +0 -0
  89. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/internal/discovery_events.py +0 -0
  90. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/job_utils.py +0 -0
  91. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/node_playbook_utils.py +0 -0
  92. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/oom_killer_utils.py +0 -0
  93. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/playbook_utils.py +0 -0
  94. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/playbooks_event_handler.py +0 -0
  95. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/playbooks_event_handler_impl.py +0 -0
  96. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/pod_utils/crashloop_utils.py +0 -0
  97. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/pod_utils/imagepull_utils.py +0 -0
  98. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/pod_utils/pending_pod_utils.py +0 -0
  99. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/prometheus_enrichment_utils.py +0 -0
  100. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/playbooks/trigger.py +0 -0
  101. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/pubsub/__init__.py +0 -0
  102. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/pubsub/event_emitter.py +0 -0
  103. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/pubsub/event_subscriber.py +0 -0
  104. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/pubsub/events_pubsub.py +0 -0
  105. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/reporting/__init__.py +0 -0
  106. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/reporting/action_requests.py +0 -0
  107. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/reporting/blocks.py +0 -0
  108. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/reporting/callbacks.py +0 -0
  109. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/reporting/consts.py +0 -0
  110. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/reporting/custom_rendering.py +0 -0
  111. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/reporting/finding_subjects.py +0 -0
  112. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/reporting/utils.py +0 -0
  113. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/schedule/__init__.py +0 -0
  114. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/schedule/model.py +0 -0
  115. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/schedule/scheduler.py +0 -0
  116. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/__init__.py +0 -0
  117. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/common/__init__.py +0 -0
  118. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/common/channel_transformer.py +0 -0
  119. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/common/html_tools.py +0 -0
  120. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/datadog/__init__.py +0 -0
  121. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/datadog/datadog_sink.py +0 -0
  122. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/discord/__init__.py +0 -0
  123. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/discord/discord_sink.py +0 -0
  124. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/file/__init__.py +0 -0
  125. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/file/file_sink.py +0 -0
  126. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/file/object_traverser.py +0 -0
  127. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/google_chat/__init__.py +0 -0
  128. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/google_chat/google_chat.py +0 -0
  129. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/jira/__init__.py +0 -0
  130. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/jira/jira_sink.py +0 -0
  131. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/kafka/__init__.py +0 -0
  132. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/kafka/kafka_sink.py +0 -0
  133. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/mail/__init__.py +0 -0
  134. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/mail/mail_sink.py +0 -0
  135. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/mattermost/__init__.py +0 -0
  136. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/mattermost/mattermost_sink.py +0 -0
  137. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/msteams/__init__.py +0 -0
  138. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/msteams/msteams_sink.py +0 -0
  139. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/opsgenie/__init__.py +0 -0
  140. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/opsgenie/opsgenie_sink.py +0 -0
  141. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/pagerduty/__init__.py +0 -0
  142. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/pagerduty/pagerduty_sink.py +0 -0
  143. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/pushover/__init__.py +0 -0
  144. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/pushover/pushover_client.py +0 -0
  145. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/pushover/pushover_sink.py +0 -0
  146. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/__init__.py +0 -0
  147. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/dal/__init__.py +0 -0
  148. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/dal/model_conversion.py +0 -0
  149. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/discovery_metrics.py +0 -0
  150. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/prometheus_health_checker.py +0 -0
  151. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/rrm/__init__.py +0 -0
  152. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/rrm/account_resource_fetcher.py +0 -0
  153. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/rrm/base_resource_manager.py +0 -0
  154. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/rrm/prometheus_alert_resource_manager.py +0 -0
  155. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/rrm/rrm.py +0 -0
  156. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/robusta/rrm/types.py +0 -0
  157. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/rocketchat/__init__.py +0 -0
  158. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/rocketchat/rocketchat_sink.py +0 -0
  159. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/servicenow/__init__.py +0 -0
  160. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/servicenow/servicenow_sink.py +0 -0
  161. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/sink_config.py +0 -0
  162. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/sink_factory.py +0 -0
  163. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/slack/__init__.py +0 -0
  164. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/telegram/__init__.py +0 -0
  165. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/telegram/telegram_client.py +0 -0
  166. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/telegram/telegram_sink.py +0 -0
  167. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/timing.py +0 -0
  168. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/transformer.py +0 -0
  169. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/victorops/__init__.py +0 -0
  170. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/victorops/victorops_sink.py +0 -0
  171. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/webex/__init__.py +0 -0
  172. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/webex/webex_sink.py +0 -0
  173. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/webhook/__init__.py +0 -0
  174. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/yamessenger/__init__.py +0 -0
  175. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/yamessenger/yamessenger_client.py +0 -0
  176. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/yamessenger/yamessenger_sink.py +0 -0
  177. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/zulip/__init__.py +0 -0
  178. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/zulip/zulip_sink.py +0 -0
  179. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/sinks/zulip/zulip_sink_params.py +0 -0
  180. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/triggers/container_oom_killed_trigger.py +0 -0
  181. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/triggers/error_event_trigger.py +0 -0
  182. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/triggers/helm_releases_triggers.py +0 -0
  183. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/triggers/job_failed_trigger.py +0 -0
  184. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/triggers/oom_killed_trigger_base.py +0 -0
  185. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/triggers/pod_crash_loop_trigger.py +0 -0
  186. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/triggers/pod_image_pull_backoff.py +0 -0
  187. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/core/triggers/pod_oom_killed_trigger.py +0 -0
  188. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/__init__.py +0 -0
  189. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/argocd/argocd_client.py +0 -0
  190. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/common/__init__.py +0 -0
  191. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/common/requests.py +0 -0
  192. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/discord/__init__.py +0 -0
  193. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/discord/sender.py +0 -0
  194. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/git/__init__.py +0 -0
  195. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/git/git_repo.py +0 -0
  196. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/git/well_known_hosts.py +0 -0
  197. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/google_chat/__init__.py +0 -0
  198. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/google_chat/sender.py +0 -0
  199. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/grafana.py +0 -0
  200. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/helper.py +0 -0
  201. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/jira/__init__.py +0 -0
  202. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/jira/client.py +0 -0
  203. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/jira/sender.py +0 -0
  204. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/__init__.py +0 -0
  205. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/autogenerated/__init__.py +0 -0
  206. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/autogenerated/events.py +0 -0
  207. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/autogenerated/models.py +0 -0
  208. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/autogenerated/v1/__init__.py +0 -0
  209. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/autogenerated/v1/models.py +0 -0
  210. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/base_event.py +0 -0
  211. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/model_not_found_exception.py +0 -0
  212. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/process_utils.py +0 -0
  213. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/kubernetes/templates.py +0 -0
  214. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/mail/__init__.py +0 -0
  215. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/mail/sender.py +0 -0
  216. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/mattermost/__init__.py +0 -0
  217. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/mattermost/client.py +0 -0
  218. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/mattermost/sender.py +0 -0
  219. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/__init__.py +0 -0
  220. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_adaptive_card_files.py +0 -0
  221. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_adaptive_card_files_image.py +0 -0
  222. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_adaptive_card_files_text.py +0 -0
  223. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_elements/__init__.py +0 -0
  224. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_elements/msteams_action.py +0 -0
  225. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_elements/msteams_base.py +0 -0
  226. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_elements/msteams_card.py +0 -0
  227. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_elements/msteams_column.py +0 -0
  228. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_elements/msteams_container.py +0 -0
  229. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_elements/msteams_images.py +0 -0
  230. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_elements/msteams_table.py +0 -0
  231. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_elements/msteams_text_block.py +0 -0
  232. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_mark_down_fix_url.py +0 -0
  233. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/msteams_msg.py +0 -0
  234. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/msteams/sender.py +0 -0
  235. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/openshift/__init__.py +0 -0
  236. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/openshift/token.py +0 -0
  237. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/prometheus/__init__.py +0 -0
  238. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/prometheus/models.py +0 -0
  239. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/prometheus/trigger.py +0 -0
  240. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/prometheus/utils.py +0 -0
  241. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/receiver.py +0 -0
  242. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/resource_analysis/__init__.py +0 -0
  243. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/resource_analysis/cpu_analyzer.py +0 -0
  244. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/resource_analysis/memory_analyzer.py +0 -0
  245. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/resource_analysis/node_cpu_analyzer.py +0 -0
  246. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/resource_analysis/prometheus_analyzer.py +0 -0
  247. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/rocketchat/__init__.py +0 -0
  248. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/rocketchat/sender.py +0 -0
  249. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/scheduled/__init__.py +0 -0
  250. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/scheduled/event.py +0 -0
  251. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/scheduled/models.py +0 -0
  252. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/scheduled/playbook_scheduler.py +0 -0
  253. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/scheduled/playbook_scheduler_manager.py +0 -0
  254. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/scheduled/playbook_scheduler_manager_impl.py +0 -0
  255. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/scheduled/trigger.py +0 -0
  256. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/servicenow/__init__.py +0 -0
  257. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/servicenow/sender.py +0 -0
  258. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/slack/__init__.py +0 -0
  259. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/webex/__init__.py +0 -0
  260. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/webex/sender.py +0 -0
  261. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/integrations/zulip/__init__.py +0 -0
  262. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/model/alert_relabel_config.py +0 -0
  263. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/model/config.py +0 -0
  264. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/model/playbook_action.py +0 -0
  265. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/model/playbook_definition.py +0 -0
  266. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/patch/patch.py +0 -0
  267. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/__init__.py +0 -0
  268. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/config_loader.py +0 -0
  269. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/log_init.py +0 -0
  270. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/main.py +0 -0
  271. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/not_found_exception.py +0 -0
  272. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/object_updater.py +0 -0
  273. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/process_setup.py +0 -0
  274. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/ssl_utils.py +0 -0
  275. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/telemetry.py +0 -0
  276. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/telemetry_service.py +0 -0
  277. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/runner/web_api.py +0 -0
  278. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/__init__.py +0 -0
  279. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/auth_provider.py +0 -0
  280. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/base64_utils.py +0 -0
  281. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/cluster_provider_discovery.py +0 -0
  282. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/common.py +0 -0
  283. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/decorators.py +0 -0
  284. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/docs.py +0 -0
  285. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/documented_pydantic.py +0 -0
  286. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/error_codes.py +0 -0
  287. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/file_system_watcher.py +0 -0
  288. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/function_hashes.py +0 -0
  289. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/json_schema.py +0 -0
  290. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/parsing.py +0 -0
  291. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/rate_limiter.py +0 -0
  292. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/server_start.py +0 -0
  293. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/service_discovery.py +0 -0
  294. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/silence_utils.py +0 -0
  295. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/stack_tracer.py +0 -0
  296. {robusta_cli-0.12.1a0 → robusta_cli-0.13.0}/src/robusta/utils/task_queue.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: robusta-cli
3
- Version: 0.12.1a0
3
+ Version: 0.13.0
4
4
  Summary:
5
5
  Author: Natan Yellin
6
6
  Author-email: aantn@users.noreply.github.com
@@ -17,6 +17,8 @@ Requires-Dist: apprise (>=1.5.0,<2.0.0)
17
17
  Requires-Dist: attrs (>=23.1.0,<24.0.0)
18
18
  Requires-Dist: better-exceptions (>=0.3.3,<0.4.0) ; extra == "all"
19
19
  Requires-Dist: bitmath (>=1.3.3.1,<2.0.0.0)
20
+ Requires-Dist: boto3 (==1.28.72)
21
+ Requires-Dist: botocore (==1.31.72)
20
22
  Requires-Dist: click-spinner (>=0.1.10,<0.2.0)
21
23
  Requires-Dist: colorlog (>=5.0.1,<6.0.0)
22
24
  Requires-Dist: croniter (>=1.3.15,<2.0.0)
@@ -28,7 +30,9 @@ Requires-Dist: dulwich (==0.20.28) ; extra == "all"
28
30
  Requires-Dist: fpdf2 (>=2.7.1,<3.0.0)
29
31
  Requires-Dist: grafana-api (>=1.0.3,<2.0.0) ; extra == "all"
30
32
  Requires-Dist: hikaru-model-26 (>=1.1.1,<2.0.0)
31
- Requires-Dist: jinja2 (==3.1.3)
33
+ Requires-Dist: humanize (>=3.13.1,<4.0.0)
34
+ Requires-Dist: idna (>=3.7)
35
+ Requires-Dist: jinja2 (>=3.1.4)
32
36
  Requires-Dist: kafka-python (>=2.0.2,<3.0.0) ; extra == "all"
33
37
  Requires-Dist: kubernetes (>=26.1.0,<27.0.0)
34
38
  Requires-Dist: markdown2 (>=2.4.2,<3.0.0)
@@ -45,7 +49,7 @@ Requires-Dist: rocketchat-api (>=1.30.0,<2.0.0)
45
49
  Requires-Dist: sentry-sdk (>=1.5.2,<2.0.0) ; extra == "all"
46
50
  Requires-Dist: setuptools (>=68.2.2,<69.0.0)
47
51
  Requires-Dist: slack-sdk (>=3.23.0,<4.0.0)
48
- Requires-Dist: supabase (>=1.0.3,<2.0.0) ; extra == "all"
52
+ Requires-Dist: supabase (>=2.4,<3.0) ; extra == "all"
49
53
  Requires-Dist: tabulate (>=0.8.10,<0.9.0) ; extra == "all"
50
54
  Requires-Dist: toml (>=0.10.2,<0.11.0)
51
55
  Requires-Dist: typer (>=0.4.1,<0.5.0)
@@ -53,3 +57,4 @@ Requires-Dist: watchdog (>=2.1.0,<3.0.0) ; extra == "all"
53
57
  Requires-Dist: watchgod (>=0.7,<0.8)
54
58
  Requires-Dist: webexteamssdk (>=1.6.1,<2.0.0)
55
59
  Requires-Dist: websocket-client (==1.3.3)
60
+ Requires-Dist: werkzeug (>=3.0.3)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "robusta-cli"
3
- version = "0.12.1-alpha"
3
+ version = "0.13.0"
4
4
  description = ""
5
5
  authors = ["Natan Yellin <aantn@users.noreply.github.com>"]
6
6
  packages = [
@@ -32,11 +32,13 @@ pydantic = "^1.8.1"
32
32
  kubernetes = "^26.1.0"
33
33
  click-spinner = "^0.1.10"
34
34
  pymsteams = "^0.1.16"
35
- supabase = { version = "^1.0.3", optional = true }
35
+ idna= { version = ">=3.7", optional = true }
36
+ supabase = "^2.4"
36
37
  tabulate = { version = "^0.8.10" }
37
38
  slack-sdk = { version = "^3.23.0" }
38
39
  Flask = { version = "^3.0.0", optional = true }
39
- jinja2 = { version ="3.1.3", optional = true } # indirect dependency
40
+ werkzeug = { version = ">=3.0.3", optional = true }
41
+ jinja2 = { version = ">=3.1.4", optional = true }
40
42
  grafana-api = { version = "^1.0.3", optional = true }
41
43
  watchdog = { version = "^2.1.0", optional = true }
42
44
  better-exceptions = { version = "^0.3.3", optional = true }
@@ -58,7 +60,7 @@ watchgod = "^0.7"
58
60
  webexteamssdk = "^1.6.1"
59
61
  bitmath = "^1.3.3.1"
60
62
  croniter = "^1.3.15"
61
-
63
+ humanize = "^3.13.1"
62
64
  # we're freezing a specific version here because the latest version doesn't have prebuilt wheels on pypi
63
65
  # and therefore requires gcc to install which we'd like to avoid
64
66
  # this is similar to the issue at https://github.com/dulwich/dulwich/issues/839
@@ -72,6 +74,9 @@ hikaru-model-26 = "^1.1.1"
72
74
  apprise = "^1.5.0"
73
75
  rocketchat-api = "^1.30.0"
74
76
  pydash = "8.0.0"
77
+ # The following are added to speed up poetry dependency resolution
78
+ botocore = "1.31.72"
79
+ boto3 = "1.28.72"
75
80
 
76
81
  [tool.poetry.dev-dependencies]
77
82
  pre-commit = "^2.13.0"
@@ -88,7 +93,6 @@ sphinxcontrib-images = "^0.9.4"
88
93
  jsonref = "^0.2"
89
94
  Pillow = "^10.3.0"
90
95
  sphinxcontrib-mermaid = "^0.7.1"
91
- humanize = "^3.13.1"
92
96
  cssselect = "^1.1.0"
93
97
  pygal = "^3.0.0"
94
98
  tinycss = "^0.4"
@@ -1,2 +1,2 @@
1
1
  # this is updated by .github/workflows/release.yaml
2
- __version__ = "0.12.1-alpha"
2
+ __version__ = "0.13.0"
@@ -70,12 +70,12 @@ from robusta.core.model.env_vars import (
70
70
  ROBUSTA_LOGO_URL,
71
71
  ROBUSTA_TELEMETRY_ENDPOINT,
72
72
  ROBUSTA_UI_DOMAIN,
73
+ RUNNER_SERVICE_ACCOUNT,
73
74
  RUNNER_VERSION,
74
75
  SEND_ADDITIONAL_TELEMETRY,
75
76
  SERVICE_CACHE_MAX_SIZE,
76
77
  SERVICE_CACHE_TTL_SEC,
77
78
  SLACK_TABLE_COLUMNS_LIMIT,
78
- SUPABASE_LOGIN_RATE_LIMIT_SEC,
79
79
  TEAMS_IMAGE_WIDTH,
80
80
  TELEMETRY_PERIODIC_SEC,
81
81
  TRACE_INCOMING_REQUESTS,
@@ -74,6 +74,10 @@ class RobustaRelay(BaseModel):
74
74
  apiEndpointPrefix: str
75
75
  apiNodePort: int = 30313 # api.domain
76
76
  wsNodePort: int = 30314 # relay.domain
77
+ relayPrefix: str = "relay"
78
+ platformPrefix: str = "platform"
79
+ apiPrefix: str = "api"
80
+ isOnPrem: bool = True
77
81
 
78
82
  def __init__(
79
83
  self,
@@ -184,6 +188,13 @@ def gen_config(
184
188
  )
185
189
  values.KONG_HTTP_NODE_PORT = db_nport
186
190
 
191
+ backendProfile = BackendProfile.fromDomainProvider(
192
+ domain=domain,
193
+ api_endpoint_prefix=api_endpoint_prefix,
194
+ platform_endpoint_prefix=platform_endpoint_prefix,
195
+ relay_endpoint_prefix=relay_ws_endpoint_prefix,
196
+ )
197
+
187
198
  relayValues = RobustaRelay(
188
199
  domain=domain,
189
200
  anon_key=values.ANON_KEY,
@@ -193,8 +204,13 @@ def gen_config(
193
204
  platform_endpoint_prefix=platform_endpoint_prefix,
194
205
  api_endpoint_prefix=api_endpoint_prefix,
195
206
  )
207
+
196
208
  relayValues.apiNodePort = api_nport
197
209
  relayValues.wsNodePort = ws_nport
210
+ relayValues.relayPrefix = relay_ws_endpoint_prefix
211
+ relayValues.platformPrefix = platform_endpoint_prefix
212
+ relayValues.apiPrefix = api_endpoint_prefix
213
+
198
214
 
199
215
  uiValues = RobustaUI(
200
216
  domain=domain,
@@ -215,12 +231,8 @@ def gen_config(
215
231
  "RELAY": relay_ws_endpoint_prefix,
216
232
  }
217
233
 
218
- backendProfile = BackendProfile.fromDomainProvider(
219
- domain=domain,
220
- api_endpoint_prefix=api_endpoint_prefix,
221
- platform_endpoint_prefix=platform_endpoint_prefix,
222
- relay_endpoint_prefix=relay_ws_endpoint_prefix,
223
- )
234
+
235
+
224
236
  self_host_approval_url = "https://api.robusta.dev/terms-of-service.html"
225
237
  typer.echo(f"By using this software you agree to the terms of service ({self_host_approval_url})\n")
226
238
  write_values_files("self_host_values.yaml", "robusta_cli_config.json", values_dict, backendProfile)
@@ -27,7 +27,6 @@ CLUSTER_STATUS_PERIOD_SEC = int(os.environ.get("CLUSTER_STATUS_PERIOD_SEC", 60 *
27
27
  DISCOVERY_CHECK_THRESHOLD_SEC = int(os.environ.get("DISCOVERY_CHECK_THRESHOLD_SEC", 60 * 50)) # 50 min
28
28
  DISCOVERY_PROCESS_TIMEOUT_SEC = int(os.environ.get("DISCOVERY_PROCESS_TIMEOUT_SEC", 60 * 120)) # 120 min
29
29
  DISCOVERY_WATCHDOG_CHECK_SEC = int(os.environ.get("DISCOVERY_WATCHDOG_CHECK_SEC", 15 * 120)) # 15 min
30
- SUPABASE_LOGIN_RATE_LIMIT_SEC = int(os.environ.get("SUPABASE_LOGIN_RATE_LIMIT_SEC", 900))
31
30
  SUPABASE_TIMEOUT_SECONDS = int(os.environ.get("SUPABASE_TIMEOUT_SECONDS", 60))
32
31
  GRAFANA_RENDERER_URL = os.environ.get("GRAFANA_RENDERER_URL", "http://127.0.0.1:8281/render")
33
32
  RESOURCE_UPDATES_CACHE_TTL_SEC = os.environ.get("RESOURCE_UPDATES_CACHE_TTL_SEC", 120)
@@ -66,6 +65,8 @@ ENABLE_TELEMETRY = os.environ.get("ENABLE_TELEMETRY", "true").lower() == "true"
66
65
  SEND_ADDITIONAL_TELEMETRY = os.environ.get("SEND_ADDITIONAL_TELEMETRY", "false").lower() == "true"
67
66
  RELEASE_NAME = os.environ.get("RELEASE_NAME", "robusta")
68
67
 
68
+ RUNNER_SERVICE_ACCOUNT = os.environ.get("RUNNER_SERVICE_ACCOUNT", f"{RELEASE_NAME}-runner-service-account")
69
+
69
70
  TELEMETRY_PERIODIC_SEC = int(os.environ.get("TELEMETRY_PERIODIC_SEC", 60 * 60 * 24)) # 24H
70
71
 
71
72
  SLACK_TABLE_COLUMNS_LIMIT = int(os.environ.get("SLACK_TABLE_COLUMNS_LIMIT", 3))
@@ -100,7 +101,7 @@ RRM_PERIOD_SEC = int(os.environ.get("RRM_PERIOD_SEC", 90))
100
101
 
101
102
  MAX_ALLOWED_RULES_PER_CRD_ALERT = int(os.environ.get("MAX_ALLOWED_RULES_PER_CRD_ALERT", 600))
102
103
 
103
- IMAGE_REGISTRY = os.environ.get("IMAGE_REGISTRY", "robustadev")
104
+ IMAGE_REGISTRY = os.environ.get("IMAGE_REGISTRY", "us-central1-docker.pkg.dev/genuine-flight-317411/devel")
104
105
 
105
106
  CLUSTER_DOMAIN = os.environ.get("CLUSTER_DOMAIN", "cluster.local")
106
107
 
@@ -113,3 +114,8 @@ RUN_AS_SUBPROCESS = load_bool("RUN_AS_SUBPROCESS", True)
113
114
  ARGO_ROLLOUTS = load_bool("ARGO_ROLLOUTS", False)
114
115
  # lowered case k8s kinds in a json array string. "[\"configmap\", \"secret\"]"
115
116
  RESOURCE_YAML_BLOCK_LIST = json.loads(os.environ.get("RESOURCE_YAML_BLOCK_LIST", "[]"))
117
+
118
+ NAMESPACE_DATA_TTL = int(os.environ.get("NAMESPACE_DATA_TTL", 30*60)) # in seconds
119
+
120
+ PROCESSED_ALERTS_CACHE_TTL = int(os.environ.get("PROCESSED_ALERT_CACHE_TTL", 2*3600))
121
+ PROCESSED_ALERTS_CACHE_MAX_SIZE = int(os.environ.get("PROCESSED_ALERTS_CACHE_MAX_SIZE", 100_000))
@@ -14,6 +14,7 @@ from pydantic.main import BaseModel
14
14
  from robusta.core.discovery.top_service_resolver import TopServiceResolver
15
15
  from robusta.core.model.env_vars import ROBUSTA_UI_DOMAIN
16
16
  from robusta.core.reporting.consts import FindingSource, FindingSubjectType, FindingType
17
+ from robusta.integrations.kubernetes.api_client_utils import get_namespace_labels
17
18
  from robusta.utils.scope import BaseScopeMatcher
18
19
 
19
20
 
@@ -106,7 +107,7 @@ class EnrichmentType(Enum):
106
107
 
107
108
 
108
109
  class Enrichment:
109
- # These is the actual enrichment data
110
+ # This is the actual enrichment data
110
111
  blocks: List[BaseBlock] = []
111
112
  # General purpose rendering flags, that can be used by specific sinks
112
113
  annotations: Dict[str, str] = {}
@@ -138,6 +139,9 @@ class FilterableScopeMatcher(BaseScopeMatcher):
138
139
  def get_data(self) -> Dict:
139
140
  return self.data
140
141
 
142
+ def scope_match_namespace_labels(self, attr_matcher, attr_value):
143
+ return self.match_labels_annotations(attr_matcher, attr_value)
144
+
141
145
 
142
146
  class Filterable(ABC):
143
147
  @property
@@ -169,7 +173,12 @@ class Filterable(ABC):
169
173
  # 1. "scope" check
170
174
  accept = True
171
175
  if scope_requirements is not None:
172
- matcher = FilterableScopeMatcher(self.attribute_map)
176
+ data = self.attribute_map
177
+ try:
178
+ data["namespace_labels"] = get_namespace_labels(data["namespace"])
179
+ except KeyError:
180
+ data["namespace_labels"] = {}
181
+ matcher = FilterableScopeMatcher(data)
173
182
  if scope_requirements.exclude:
174
183
  if matcher.scope_inc_exc_matches(scope_requirements.exclude):
175
184
  return False
@@ -5,6 +5,10 @@ from robusta.core.sinks.sink_config import SinkConfigBase
5
5
  class DataDogSinkParams(SinkBaseParams):
6
6
  api_key: str
7
7
 
8
+ @classmethod
9
+ def _get_sink_type(cls):
10
+ return "datadog"
11
+
8
12
 
9
13
  class DataDogSinkConfigWrapper(SinkConfigBase):
10
14
  datadog_sink: DataDogSinkParams
@@ -5,6 +5,10 @@ from robusta.core.sinks.sink_config import SinkConfigBase
5
5
  class DiscordSinkParams(SinkBaseParams):
6
6
  url: str
7
7
 
8
+ @classmethod
9
+ def _get_sink_type(cls):
10
+ return "discord"
11
+
8
12
 
9
13
  class DiscordSinkConfigWrapper(SinkConfigBase):
10
14
  discord_sink: DiscordSinkParams
@@ -7,6 +7,10 @@ from robusta.core.sinks.sink_config import SinkConfigBase
7
7
  class FileSinkParms(SinkBaseParams):
8
8
  file_name: str = None
9
9
 
10
+ @classmethod
11
+ def _get_sink_type(cls):
12
+ return "file"
13
+
10
14
 
11
15
  class FileSinkConfigWrapper(SinkConfigBase):
12
16
  file_sink: FileSinkParms
@@ -7,6 +7,10 @@ from robusta.core.sinks.sink_config import SinkConfigBase
7
7
  class GoogleChatSinkParams(SinkBaseParams):
8
8
  webhook_url: SecretStr
9
9
 
10
+ @classmethod
11
+ def _get_sink_type(cls):
12
+ return "google_chat"
13
+
10
14
 
11
15
  class GoogleChatSinkConfigWrapper(SinkConfigBase):
12
16
  google_chat_sink: GoogleChatSinkParams
@@ -19,6 +19,10 @@ class JiraSinkParams(SinkBaseParams):
19
19
  reopenStatusName: Optional[str] = "To Do"
20
20
  noReopenResolution: Optional[str] = ""
21
21
 
22
+ @classmethod
23
+ def _get_sink_type(cls):
24
+ return "jira"
25
+
22
26
 
23
27
  class JiraSinkConfigWrapper(SinkConfigBase):
24
28
  jira_sink: JiraSinkParams
@@ -7,6 +7,10 @@ class KafkaSinkParams(SinkBaseParams):
7
7
  topic: str
8
8
  auth: dict = {}
9
9
 
10
+ @classmethod
11
+ def _get_sink_type(cls):
12
+ return "kafka"
13
+
10
14
 
11
15
  class KafkaSinkConfigWrapper(SinkConfigBase):
12
16
  kafka_sink: KafkaSinkParams
@@ -7,6 +7,10 @@ from robusta.core.sinks.sink_config import SinkConfigBase
7
7
  class MailSinkParams(SinkBaseParams):
8
8
  mailto: str
9
9
 
10
+ @classmethod
11
+ def _get_sink_type(cls):
12
+ return "mail"
13
+
10
14
  @validator("mailto")
11
15
  def validate_mailto(cls, mailto):
12
16
  # Make sure we only handle emails and exclude other schemes provided by apprise
@@ -15,6 +15,10 @@ class MattermostSinkParams(SinkBaseParams):
15
15
  team: Optional[str]
16
16
  team_id: Optional[str]
17
17
 
18
+ @classmethod
19
+ def _get_sink_type(cls):
20
+ return "mattermost"
21
+
18
22
  @validator("url")
19
23
  def set_http_schema(cls, url):
20
24
  parsed_url = urlparse(url)
@@ -5,6 +5,10 @@ from robusta.core.sinks.sink_config import SinkConfigBase
5
5
  class MsTeamsSinkParams(SinkBaseParams):
6
6
  webhook_url: str
7
7
 
8
+ @classmethod
9
+ def _get_sink_type(cls):
10
+ return "msteams"
11
+
8
12
 
9
13
  class MsTeamsSinkConfigWrapper(SinkConfigBase):
10
14
  ms_teams_sink: MsTeamsSinkParams
@@ -10,6 +10,10 @@ class OpsGenieSinkParams(SinkBaseParams):
10
10
  tags: List[str] = []
11
11
  host: Optional[str] = None # NOTE: If None, the default value will be used from opsgenie_sdk
12
12
 
13
+ @classmethod
14
+ def _get_sink_type(cls):
15
+ return "opsgenie"
16
+
13
17
 
14
18
  class OpsGenieSinkConfigWrapper(SinkConfigBase):
15
19
  opsgenie_sink: OpsGenieSinkParams
@@ -5,6 +5,10 @@ from robusta.core.sinks.sink_config import SinkConfigBase
5
5
  class PagerdutySinkParams(SinkBaseParams):
6
6
  api_key: str
7
7
 
8
+ @classmethod
9
+ def _get_sink_type(cls):
10
+ return "pagerduty"
11
+
8
12
 
9
13
  class PagerdutyConfigWrapper(SinkConfigBase):
10
14
  pagerduty_sink: PagerdutySinkParams
@@ -10,6 +10,11 @@ class PushoverSinkParams(SinkBaseParams):
10
10
  device: str = None
11
11
  pushover_url: str = "https://api.pushover.net/1/messages.json"
12
12
 
13
+ @classmethod
14
+ def _get_sink_type(cls):
15
+ return "pushover"
16
+
17
+
13
18
  class PushoverSinkConfigWrapper(SinkConfigBase):
14
19
  pushover_sink: PushoverSinkParams
15
20