ecs_files_composer package ¶
Subpackages ¶
Submodules ¶
ecs_files_composer.aws_mgmt module ¶
AWS module.
- class ecs_files_composer.aws_mgmt. AwsResourceHandler ( RoleArn = None , ExternalId = None , region = None , iam_config_object = None , client_session_override = None ) [source] ¶
-
Bases:
object
Class to handle all AWS related credentials init.
- class ecs_files_composer.aws_mgmt. S3Fetcher ( RoleArn = None , ExternalId = None , region = None , iam_config_object = None , client_session_override = None ) [source] ¶
-
Bases:
AwsResourceHandler
Class to handle S3 actions
- bucket_re = re.compile('^s3://(?P<bucket>[a-zA-Z\\d\\-.]+)/(?P<key>[\\S]+)$') ¶
- property client ¶
- compose_x_re = re.compile('^(?P<bucket>[a-zA-Z\\d\\-.]+)::(?P<key>[\\S]+)$') ¶
- class ecs_files_composer.aws_mgmt. SecretFetcher ( RoleArn = None , ExternalId = None , region = None , iam_config_object = None , client_session_override = None ) [source] ¶
-
Bases:
AwsResourceHandler
Class to handle Secret Manager actions
- get_content ( secret ) [source] ¶
-
Import the Content of a given parameter
- Parameters :
-
secret ( input.SecretDef ) –
- Returns :
-
- class ecs_files_composer.aws_mgmt. SsmFetcher ( RoleArn = None , ExternalId = None , region = None , iam_config_object = None , client_session_override = None ) [source] ¶
-
Bases:
AwsResourceHandler
Class to handle SSM actions
- arn_re = re.compile('^arn:aws(?:-[a-z]+)?:ssm:[\\S]+:[\\d]{12}:parameter(?P<name>/[\\S]+)$') ¶
- ecs_files_composer.aws_mgmt. create_session_from_creds ( tmp_creds : dict , region : Optional [ str ] = None ) [source] ¶
-
Function to easily convert the AssumeRole reply into a boto3 session :param tmp_creds: :return: :rtype boto3.session.Session
- ecs_files_composer.aws_mgmt. set_session_from_iam_object ( iam_config_object , source_session : Optional [ Session ] = None ) [source] ¶
-
Function to define the client session based on config input
- Parameters :
-
-
iam_config_object ( ecs_files_composer.input.IamOverrideDef ) –
-
source_session –
-
- Returns :
-
boto session
- Return type :
-
boto3.session.Session
ecs_files_composer.certificates_mgmt module ¶
- class ecs_files_composer.certificates_mgmt. X509Certificate ( ** data : Any ) [source] ¶
-
Bases:
X509CertDef
Class to wrap actions around a new X509 certificate
- certFileName : str ¶
- keyFileName : str ¶
ecs_files_composer.cli module ¶
Console script for ecs_files_composer.
ecs_files_composer.common module ¶
ecs_files_composer.ecs_files_composer module ¶
Main module.
- ecs_files_composer.ecs_files_composer. init_config ( raw = None , file_path = None , env_var = None , ssm_parameter = None , s3_config = None , secret_config = None , role_arn = None , external_id = None , decode_base64 = False , context = None , override_folder : Optional [ str ] = None , print_generated_config : bool = False ) [source] ¶
-
Function to initialize the configuration as if it were a file itself
ecs_files_composer.envsubst module ¶
Module to do a better env variables handling.
- ecs_files_composer.envsubst. expandvars ( path , default = None , skip_escaped = True , enable_litteral = True ) [source] ¶
-
- Expand environment variables of form $var and ${var}.
-
If parameter ‘skip_escaped’ is True, all escaped variable references (i.e. preceded by backslashes) are skipped. Unknown variables are set to ‘default’. If ‘default’ is None, they are left unchanged.
ecs_files_composer.files_mgmt module ¶
Main module.
- class ecs_files_composer.files_mgmt. File ( ** data : Any ) [source] ¶
-
Bases:
FileDef
Class to wrap common files actions around
- property dir_path : str ¶
- handle_s3_source ( iam_override = None , session_override = None ) bool [source] ¶
-
Handles retrieving the content from S3
- Parameters :
-
-
iam_override ( ecs_files_composer.input.IamOverrideDef ) –
-
session_override ( boto3.session.Session ) –
-
- Returns :
-
bool, result of the download from S3.
- handle_secret_source ( iam_override = None , session_override = None ) bool [source] ¶
-
Handles retrieving secrets from AWS Secrets Manager
- Parameters :
-
-
iam_override ( ecs_files_composer.input.IamOverrideDef ) –
-
session_override ( boto3.session.Session ) –
-
- Returns :
-
- handle_sources ( iam_override = None , session_override = None ) tuple [ bool , bool ] [source] ¶
-
Handles files from external sources
- Parameters :
-
-
iam_override ( ecs_files_composer.input.IamOverrideDef ) –
-
session_override ( boto3.session.Session ) –
-
- handle_ssm_source ( iam_override = None , session_override = None ) bool [source] ¶
-
Handles retrieving the content from SSM Parameter
- Parameters :
-
-
iam_override ( ecs_files_composer.input.IamOverrideDef ) –
-
session_override ( boto3.session.Session ) –
-
- Returns :
-
- handler ( iam_override = None , session_override = None ) [source] ¶
-
Main entrypoint for files to relate
- Parameters :
-
-
iam_override ( ecs_files_composer.input.IamOverrideDef ) –
-
session_override ( boto3.session.Session ) –
-
ecs_files_composer.input module ¶
- class ecs_files_composer.input. Certificates ( x509 : 'Optional[Dict[str, X509CertDef]]' = None ) [source] ¶
-
Bases:
object
- x509 : Optional [ Dict [ str , X509CertDef ] ] = None ¶
- class ecs_files_composer.input. Commands ( post : 'Optional[CommandsDef]' = None , pre : 'Optional[CommandsDef]' = None ) [source] ¶
-
Bases:
object
- post : Optional [ List [ Union [ str , CommandsDefItem ] ] ] = None ¶
- pre : Optional [ List [ Union [ str , CommandsDefItem ] ] ] = None ¶
- class ecs_files_composer.input. CommandsDefItem ( command : Optional [ str ] = None , display_output : Optional [ bool ] = False , ignore_error : Optional [ bool ] = False ) [source] ¶
-
Bases:
object
Command to run with options
- command : Optional [ str ] = None ¶
- display_output : Optional [ bool ] = False ¶
- ignore_error : Optional [ bool ] = False ¶
- class ecs_files_composer.input. Context ( value ) [source] ¶
-
Bases:
str
,Enum
An enumeration.
- jinja2 = 'jinja2' ¶
- plain = 'plain' ¶
- class ecs_files_composer.input. Encoding ( value ) [source] ¶
-
Bases:
str
,Enum
An enumeration.
- base64 = 'base64' ¶
- plain = 'plain' ¶
- class ecs_files_composer.input. FileDef ( path : 'Optional[str]' = None , content : 'Optional[str]' = None , source : 'Optional[SourceDef]' = None , encoding : 'Optional[Encoding]' = 'plain' , group : 'Optional[str]' = 'root' , owner : 'Optional[str]' = 'root' , mode : 'Optional[str]' = '0644' , context : 'Optional[Context]' = 'plain' , ignore_failure : 'Optional[Union[IgnoreFailureItem, bool]]' = None , commands : 'Optional[Commands]' = None ) [source] ¶
-
Bases:
object
- content : Optional [ str ] = None ¶
- group : Optional [ str ] = 'root' ¶
- ignore_failure : Optional [ Union [ IgnoreFailureItem , bool ] ] = None ¶
- mode : Optional [ str ] = '0644' ¶
- owner : Optional [ str ] = 'root' ¶
- path : Optional [ str ] = None ¶
- class ecs_files_composer.input. IamOverrideDef ( RoleArn : Optional [ str ] = None , SessionName : Optional [ str ] = 'S3File@EcsConfigComposer' , ExternalId : Optional [ str ] = None , RegionName : Optional [ str ] = None , AccessKeyId : Optional [ str ] = None , SecretAccessKey : Optional [ str ] = None , SessionToken : Optional [ str ] = None ) [source] ¶
-
Bases:
object
When source points to AWS, allows to indicate if another role should be used
- AccessKeyId : Optional [ str ] = None ¶
- ExternalId : Optional [ str ] = None ¶
- RegionName : Optional [ str ] = None ¶
- RoleArn : Optional [ str ] = None ¶
- SecretAccessKey : Optional [ str ] = None ¶
- SessionName : Optional [ str ] = 'S3File@EcsConfigComposer' ¶
- SessionToken : Optional [ str ] = None ¶
- class ecs_files_composer.input. IgnoreFailureItem ( commands : 'Optional[bool]' = False , mode : 'Optional[bool]' = False , owner : 'Optional[bool]' = False , source_download : 'Optional[bool]' = False ) [source] ¶
-
Bases:
object
- commands : Optional [ bool ] = False ¶
- mode : Optional [ bool ] = False ¶
- owner : Optional [ bool ] = False ¶
- source_download : Optional [ bool ] = False ¶
- class ecs_files_composer.input. Model ( files : Optional [ Dict [ str , FileDef ] ] = None , certificates : Optional [ Certificates ] = None , IamOverride : Optional [ IamOverrideDef ] = None ) [source] ¶
-
Bases:
object
Configuration input definition for ECS Files Composer
- IamOverride : Optional [ IamOverrideDef ] = None ¶
- certificates : Optional [ Certificates ] = None ¶
- class ecs_files_composer.input. S3Def ( S3Uri : 'Optional[S3Uri]' = None , ComposeXUri : 'Optional[ComposeXUri]' = None , BucketName : 'Optional[str]' = None , BucketRegion : 'Optional[str]' = None , Key : 'Optional[str]' = None , IamOverride : 'Optional[IamOverrideDef]' = None ) [source] ¶
-
Bases:
object
- BucketName : Optional [ str ] = None ¶
- BucketRegion : Optional [ str ] = None ¶
- ComposeXUri : Optional [ str ] = None ¶
- IamOverride : Optional [ IamOverrideDef ] = None ¶
- Key : Optional [ str ] = None ¶
- S3Uri : Optional [ str ] = None ¶
- class ecs_files_composer.input. SecretDef ( SecretId : 'str' , VersionId : 'Optional[str]' = None , VersionStage : 'Optional[str]' = None , JsonKey : 'Optional[str]' = None , IamOverride : 'Optional[IamOverrideDef]' = None ) [source] ¶
-
Bases:
object
- IamOverride : Optional [ IamOverrideDef ] = None ¶
- JsonKey : Optional [ str ] = None ¶
- SecretId : str ¶
- VersionId : Optional [ str ] = None ¶
- VersionStage : Optional [ str ] = None ¶
- class ecs_files_composer.input. SourceDef ( Url : 'Optional[UrlDef]' = None , Ssm : 'Optional[SsmDef]' = None , S3 : 'Optional[S3Def]' = None , Secret : 'Optional[SecretDef]' = None ) [source] ¶
-
Bases:
object
- class ecs_files_composer.input. SsmDef ( ParameterName : 'Optional[str]' = None , IamOverride : 'Optional[IamOverrideDef]' = None ) [source] ¶
-
Bases:
object
- IamOverride : Optional [ IamOverrideDef ] = None ¶
- ParameterName : Optional [ str ] = None ¶
- class ecs_files_composer.input. UrlDef ( Url : 'Optional[str]' = None , Username : 'Optional[str]' = None , Password : 'Optional[str]' = None ) [source] ¶
-
Bases:
object
- Password : Optional [ str ] = None ¶
- Url : Optional [ str ] = None ¶
- Username : Optional [ str ] = None ¶
- class ecs_files_composer.input. X509CertDef ( keyFileName : 'str' , certFileName : 'str' , dir_path : 'Optional[str]' = None , emailAddress : 'Optional[str]' = 'files-composer@compose-x.tld' , commonName : 'Optional[str]' = None , countryName : 'Optional[str]' = 'ZZ' , localityName : 'Optional[str]' = 'Anywhere' , stateOrProvinceName : 'Optional[str]' = 'Shire' , organizationName : 'Optional[str]' = 'NoOne' , organizationUnitName : 'Optional[str]' = 'Automation' , validityEndInSeconds : 'Optional[float]' = 8035200 , group : 'Optional[str]' = 'root' , owner : 'Optional[str]' = 'root' ) [source] ¶
-
Bases:
object
- certFileName : str ¶
- commonName : Optional [ str ] = None ¶
- countryName : Optional [ str ] = 'ZZ' ¶
- dir_path : Optional [ str ] = None ¶
- emailAddress : Optional [ str ] = 'files-composer@compose-x.tld' ¶
- group : Optional [ str ] = 'root' ¶
- keyFileName : str ¶
- localityName : Optional [ str ] = 'Anywhere' ¶
- organizationName : Optional [ str ] = 'NoOne' ¶
- organizationUnitName : Optional [ str ] = 'Automation' ¶
- owner : Optional [ str ] = 'root' ¶
- stateOrProvinceName : Optional [ str ] = 'Shire' ¶
- validityEndInSeconds : Optional [ float ] = 8035200 ¶
Module contents ¶
Top-level package for ECS Files Composer.