Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion robusta_krr/core/integrations/prometheus/prometheus_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,12 @@
from typing import TYPE_CHECKING

import boto3
from prometrix import AWSPrometheusConfig, CoralogixPrometheusConfig, PrometheusConfig, VictoriaMetricsPrometheusConfig
from prometrix import (
AWSPrometheusConfig,
CoralogixPrometheusConfig,
PrometheusConfig,
VictoriaMetricsPrometheusConfig,
)

from robusta_krr.core.models.config import settings

Expand Down Expand Up @@ -40,13 +45,15 @@ def generate_prometheus_config(
region = settings.eks_managed_prom_region if settings.eks_managed_prom_region else session.region_name
access_key = settings.eks_access_key if settings.eks_access_key else credentials.access_key
secret_key = settings.eks_secret_key.get_secret_value() if settings.eks_secret_key else credentials.secret_key
token = settings.eks_token.get_secret_value() if settings.eks_token else credentials.token
service_name = settings.eks_service_name if settings.eks_secret_key else "aps"
if not region:
raise Exception("No eks region specified")

return AWSPrometheusConfig(
access_key=access_key,
secret_access_key=secret_key,
token=token,
aws_region=region,
service_name=service_name,
**baseconfig,
Expand Down
1 change: 1 addition & 0 deletions robusta_krr/core/models/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ class Config(pd.BaseSettings):
eks_managed_prom_profile_name: Optional[str] = pd.Field(None)
eks_access_key: Optional[str] = pd.Field(None)
eks_secret_key: Optional[pd.SecretStr] = pd.Field(None)
eks_token: Optional[pd.SecretStr] = pd.Field(None)
eks_service_name: Optional[str] = pd.Field(None)
eks_managed_prom_region: Optional[str] = pd.Field(None)
coralogix_token: Optional[pd.SecretStr] = pd.Field(None)
Expand Down
38 changes: 33 additions & 5 deletions robusta_krr/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,12 @@ def run_strategy(
help="Sets the secret key for eks prometheus connection.",
rich_help_panel="Prometheus EKS Settings",
),
eks_token: Optional[str] = typer.Option(
None,
"--eks-token",
help="Sets the session token for eks prometheus connection.",
rich_help_panel="Prometheus EKS Settings",
),
eks_service_name: Optional[str] = typer.Option(
"aps",
"--eks-service-name",
Expand Down Expand Up @@ -234,13 +240,24 @@ def run_strategy(
rich_help_panel="Output Settings",
),
verbose: bool = typer.Option(
False, "--verbose", "-v", help="Enable verbose mode", rich_help_panel="Logging Settings"
False,
"--verbose",
"-v",
help="Enable verbose mode",
rich_help_panel="Logging Settings",
),
quiet: bool = typer.Option(
False, "--quiet", "-q", help="Enable quiet mode", rich_help_panel="Logging Settings"
False,
"--quiet",
"-q",
help="Enable quiet mode",
rich_help_panel="Logging Settings",
),
log_to_stderr: bool = typer.Option(
False, "--logtostderr", help="Pass logs to stderr", rich_help_panel="Logging Settings"
False,
"--logtostderr",
help="Pass logs to stderr",
rich_help_panel="Logging Settings",
),
width: Optional[int] = typer.Option(
None,
Expand Down Expand Up @@ -270,7 +287,10 @@ def run_strategy(
) -> None:
f"""Run KRR using the `{_strategy_name}` strategy"""
if not show_severity and format != "csv":
raise click.BadOptionUsage("--exclude-severity", "--exclude-severity works only with format=csv")
raise click.BadOptionUsage(
"--exclude-severity",
"--exclude-severity works only with format=csv",
)

try:
config = Config(
Expand All @@ -292,6 +312,7 @@ def run_strategy(
eks_managed_prom_profile_name=eks_managed_prom_profile_name,
eks_access_key=eks_access_key,
eks_secret_key=eks_secret_key,
eks_token=eks_token,
eks_service_name=eks_service_name,
coralogix_token=coralogix_token,
openshift=openshift,
Expand Down Expand Up @@ -329,7 +350,14 @@ def run_strategy(
kind=inspect.Parameter.KEYWORD_ONLY,
default=OptionInfo(
default=field_meta.default,
param_decls=list(set([f"--{field_name}", f"--{field_name.replace('_', '-')}"])),
param_decls=list(
set(
[
f"--{field_name}",
f"--{field_name.replace('_', '-')}",
]
)
),
help=f"{field_meta.field_info.description}",
rich_help_panel="Strategy Settings",
),
Expand Down
5 changes: 3 additions & 2 deletions tests/formatters/test_csv_formatter.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@
"eks_managed_prom_profile_name": null,
"eks_access_key": null,
"eks_secret_key": null,
"eks_token": null,
"eks_service_name": "aps",
"eks_managed_prom_region": null,
"coralogix_token": null,
Expand Down Expand Up @@ -235,7 +236,7 @@ def test_csv_headers(override_config: dict[str, Any], expected_headers: list[str
"Old Pods": "1",
"Type": "Deployment",
"Container": "mock-container-1",
'Severity': 'CRITICAL',
"Severity": "CRITICAL",
"CPU Diff": "-87m",
"CPU Requests": "(-43m) 50m -> 6m",
"CPU Limits": "2.0 -> ?",
Expand Down Expand Up @@ -271,7 +272,7 @@ def test_csv_headers(override_config: dict[str, Any], expected_headers: list[str
"Old Pods": "1",
"Type": "Deployment",
"Container": "mock-container-1",
'Severity': 'CRITICAL',
"Severity": "CRITICAL",
"CPU Diff": "-87m",
"CPU Requests": "(-43m) 50m -> 6m",
"CPU Limits": "2.0 -> ?",
Expand Down