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
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ aiohttp>=3.9.0
# CDKTF
cdktf>=0.20
cdktf-cdktf-provider-aws>=19.52
cdktf-cdktf-provider-azurerm>=7.27

# Auth
pyjwt
Expand Down
30 changes: 30 additions & 0 deletions src/app/core/cdktf/ranges/azure_range.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
from typing import Any

from ..stacks.azure_stack import AzureStack
from .base_range import AbstractBaseRange


class AzureRange(AbstractBaseRange):
"""Range deployed to Azure."""

def get_provider_stack_class(self) -> type[AzureStack]:
"""Return AzureStack class."""
return AzureStack

def has_secrets(self) -> bool:
"""Return whether Azure range has proper credentials."""
return bool(
self.secrets.azure_client_id
and self.secrets.azure_client_secret
and self.secrets.azure_tenant_id
and self.secrets.azure_subscription_id
)

def get_cred_env_vars(self) -> dict[str, Any]:
"""Return Azure credential environment variables."""
return {
"ARM_CLIENT_ID": self.secrets.azure_client_id,
"ARM_CLIENT_SECRET": self.secrets.azure_client_secret,
"ARM_TENANT_ID": self.secrets.azure_tenant_id,
"ARM_SUBSCRIPTION_ID": self.secrets.azure_subscription_id,
}
2 changes: 2 additions & 0 deletions src/app/core/cdktf/ranges/range_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from ....schemas.template_range_schema import TemplateRangeSchema
from ....schemas.user_schema import UserID
from .aws_range import AWSRange
from .azure_range import AzureRange
from .base_range import AbstractBaseRange

# Configure logging
Expand All @@ -19,6 +20,7 @@ class RangeFactory:

_registry: ClassVar[dict[OpenLabsProvider, Type[AbstractBaseRange]]] = {
OpenLabsProvider.AWS: AWSRange,
OpenLabsProvider.AZURE: AzureRange,
}

@classmethod
Expand Down
Loading