Custom Jinja2 filters & Functions ¶
These filters come in addition to existing Jinja2 Filters & Functions.
Functions ¶
AWS ECS ¶
ecs_container_metadata ¶
Filter that returns the ECS Container Metadata information
Parameters:
-
property_key
: the property in the metadata you want to retrieve -
fallback_value
: a value to use if case the property is missing.
ecs_task_metadata ¶
Filter that returns the ECS Task Metadata information
Parameters:
-
property_key
: the property in the metadata you want to retrieve -
fallback_value
: a value to use if case the property is missing.
from_resolve ¶
Parameter: A string that looks like the {{resolve:}} string in AWS CloudFormation
For example, building the string below, we retrieve the key SASL_JAAS_CONFIG from the content of the secret, which we get the ARN from the env_var function with value SECRET_ARN
files:
/tmp/secret.test:
content: |
client.id=sainsburys.applications.sc-ce.cdk-gateway
sasl.mechanism=PLAIN
sasl.jaas.config={{ from_resolve('{{resolve:secretsmanager:' + env_var('SECRET_ARN') + ':SecretString:SASL_JAAS_CONFIG}}') | safe }}
security.protocol=SASL_SSL
#EOF
AWS Specific Filters ¶
These filters use AWS API to retrieve specific properties.
msk_bootstrap ¶
- Parameters:
-
-
cluster_arn
: the ARN of the MSK cluster to use -
broker_type
: the type of Broker endpoints to use.
-
For valid values for
broker_type
, refer to
boto3.kafka.get_bootstrap_brokers
documentation,
and see the
Response
Syntax
section.
Example to retrieve the Bootstrap servers for SASL + IAM for privately addressed cluster.
files:
/tmp/conduktor-cdk.yaml:
context: jinja2
content: |
organization:
name: ${ORG_NAME:-testing}
clusters:
- id: amazon-msk-iam
name: Amazon MSK IAM
color: #FF9900
bootstrapServers: {{ msk_bootstrap(env_var('BOOTSTRAP_ARN'), 'BootstrapBrokerStringSaslIam') }}
properties: |
security.protocol=SASL_SSL
sasl.mechanism=AWS_MSK_IAM
sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
sasl.client.callback.handler.class=io.conduktor.aws.IAMClientCallbackHandler
from_ssm ¶
Returns a value pulled from a SSM parameter.
Parameters
-
parameter_name
: The name of the SSM parameter to get the value from.
Example
files:
testing:
content: |
my_value: {{ from_ssm('my/ssm/parameter') }}
Generic Functions ¶
Simple functions to gap missing ones from Jinja2
env_var ¶
Retrieves a value from environment variable. Can set a default value.
Parameters
-
key
: Name of the environment variable -
value
: Default value in case the environment variable is not set.
Example
files:
testing:
content: |
my_config_from_env_var: {{ env_var('ENV_VAR_NAME', "a default value") }}
Filters ¶
Generic filters ¶
env_override ¶
Similar to env_var , it sets a value from environment variable, but expect a value to be already set.
to_yaml ¶
Renders an input into YAML
to_json ¶
Renders an input into JSON