From 788b29451c0984806105d955515fb9854e5640a1 Mon Sep 17 00:00:00 2001 From: Josh Liburdi Date: Mon, 17 Jun 2024 07:35:49 -0700 Subject: [PATCH] docs: v1.3.0 Updates (#182) * docs(examples): Bump Latest Version * docs: Update README * docs: Update README --- README.md | 124 +++++++++--------- .../terraform/autoscaler.tf | 2 +- .../terraform/consumer.tf | 2 +- .../to_lambda/terraform/consumer.tf | 2 +- .../aws/dynamodb/cdc/terraform/node.tf | 2 +- .../telephone/terraform/autoscaler.tf | 2 +- .../dynamodb/telephone/terraform/dvc_mgmt.tf | 2 +- .../aws/dynamodb/telephone/terraform/edr.tf | 4 +- .../aws/dynamodb/telephone/terraform/idp.tf | 2 +- .../data_transform/terraform/_resources.tf | 2 +- .../kinesis/autoscale/terraform/_resources.tf | 2 +- .../multistream/terraform/autoscaler.tf | 2 +- .../multistream/terraform/publisher.tf | 2 +- .../multistream/terraform/subscriber.tf | 2 +- .../aws/kinesis/nxdr/terraform/autoscaler.tf | 2 +- .../aws/kinesis/nxdr/terraform/enrichment.tf | 2 +- .../aws/kinesis/nxdr/terraform/transform.tf | 2 +- .../time_travel/terraform/autoscaler.tf | 2 +- .../time_travel/terraform/enrichment.tf | 2 +- .../time_travel/terraform/transform.tf | 2 +- .../lambda/appconfig/terraform/_resources.tf | 2 +- .../aws/lambda/appconfig/terraform/node.tf | 2 +- .../microservice/terraform/microservice.tf | 2 +- .../aws/lambda/vpc/terraform/whatismyip.tf | 2 +- .../aws/s3/data_lake/terraform/node.tf | 2 +- .../terraform/node_with_retrier.tf | 4 +- .../terraform/aws/s3/sns/terraform/node.tf | 2 +- .../terraform/aws/s3/xdr/terraform/node.tf | 2 +- .../aws/sns/pub_sub/terraform/subscribers.tf | 6 +- .../sqs/microservice/terraform/frontend.tf | 2 +- .../microservice/terraform/microservice.tf | 2 +- 31 files changed, 93 insertions(+), 99 deletions(-) diff --git a/README.md b/README.md index c7ccca08..cab9dc61 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@ ![Substation Banner](.github/media/substation_banner.png) -

Substation is a cloud-native, event-driven data pipeline toolkit built for security teams.

+

Substation is a toolkit for routing, normalizing, and enriching security event and audit logs.

-[Releases][releases]   |   [Docs][docs]   |   [Quickstart][quickstart]   |   [Announcement Post (2022)][announcement] +[Releases][releases]   |   [Docs][docs]   |   [Quickstart][quickstart]   |   [Announcement (2022)][announcement]   |   [v1.0 Release (2024)][v1_release]
@@ -26,59 +26,13 @@ All of these data pipeline and microservice systems, and many more, can be built ![Example Substation architectures](.github/media/substation_architecture.png) -## Getting Started - -You can run Substation on these platforms: - -- [Docker](https://substation.readme.io/v1.0.0/docs/try-substation-on-docker) -- [macOS / Linux](https://substation.readme.io/v1.0.0/docs/try-substation-on-macos-linux) -- [AWS](https://substation.readme.io/v1.0.0/docs/try-substation-on-aws) - -### Development - -[VS Code](https://code.visualstudio.com/docs/devcontainers/containers) is the recommended development environment for Substation. The project includes a [development container](.devcontainer/Dockerfile) that can be used to develop and test the system. Refer to the [development guide](CONTRIBUTING.md) for more information. - -### Testing - -The development container can be used to test the system locally and in the cloud. If you're not using VS Code, then you should run the development container from the command line: - -```sh -git clone https://github.com/brexhq/substation.git && cd substation && \ -docker build -t substation-dev .devcontainer/ && \ -docker run -v $(pwd):/workspaces/substation/ -w /workspaces/substation -v /var/run/docker.sock:/var/run/docker.sock -it substation-dev -``` - -To try the system locally, run this from the [examples](examples) directory: -```sh -sh .devcontainer/post_start.sh && \ -cd examples && \ -make -s quickstart -``` - -To try the system in the cloud, choose an [AWS example](examples/terraform/aws) to deploy: -```sh -sh .devcontainer/post_start.sh && \ -cd examples && \ -aws configure && \ -make -s check && \ -make -s build && \ -make -s deploy EXAMPLE=terraform/aws/dynamodb/cdc -``` - -After testing is complete, the cloud deployment should be destroyed: -```sh -make -s destroy EXAMPLE=terraform/aws/dynamodb/cdc -``` - -**We do not recommend managing cloud deployments from a local machine using the examples Makefile. Production deployments should use a CI/CD pipeline with a remote state backend to manage infrastructure.** - ## Transforming Event Logs Substation excels at formatting, normalizing, and enriching event logs. For example, Zeek connection logs can be transformed to comply with the Elastic Common Schema: - + @@ -212,12 +166,12 @@ In this configuration, data is: local sub = import 'substation.libsonnet'; // This filters events based on the value of field3. -local is_false = sub.cnd.str.eq(settings={ object: { source_key: 'field3' }, value: 'false' }); +local is_false = sub.cnd.str.eq({ object: { source_key: 'field3' }, value: 'false' }); { transforms: [ // Pre-transformed data is written to an object in AWS S3 for long-term storage. - sub.tf.send.aws.s3(settings={ bucket_name: 'example-bucket-name' }), + sub.tf.send.aws.s3({ bucket_name: 'example-bucket-name' }), // The JSON array is split into individual events that go through // the remaining transforms. Each event is printed to stdout. sub.tf.agg.from.array(), @@ -225,7 +179,7 @@ local is_false = sub.cnd.str.eq(settings={ object: { source_key: 'field3' }, val // Events where field3 is false are removed from the pipeline. sub.pattern.tf.conditional(condition=is_false, transform=sub.tf.util.drop()), // The remaining events are sent to an HTTPS endpoint. - sub.tf.send.http.post(settings={ url: 'https://example-http-endpoint.com' }), + sub.tf.send.http.post({ url: 'https://example-http-endpoint.com' }), ], } ``` @@ -239,13 +193,13 @@ local sub = import 'substation.libsonnet'; transforms: [ // If field3 is false, then the event is sent to an HTTPS endpoint; otherwise, // the event is written to an object in AWS S3. - sub.tf.meta.switch(settings={ cases: [ + sub.tf.meta.switch({ cases: [ { - condition: sub.cnd.any(sub.cnd.str.eq(settings={ object: { source_key: 'field3' }, value: 'false' })), - transform: sub.tf.send.http.post(settings={ url: 'https://example-http-endpoint.com' }), + condition: sub.cnd.any(sub.cnd.str.eq({ object: { source_key: 'field3' }, value: 'false' })), + transform: sub.tf.send.http.post({ url: 'https://example-http-endpoint.com' }), }, { - transform: sub.tf.send.aws.s3(settings={ bucket_name: 'example-bucket-name' }), + transform: sub.tf.send.aws.s3({ bucket_name: 'example-bucket-name' }), }, ] }), // The event is always available to any remaining transforms. @@ -274,14 +228,10 @@ local sub = import 'substation.libsonnet'; { transforms: [ - sub.tf.obj.cp( - settings={ object: { source_key: 'src_field_1', target_key: 'dest_field_1' } } - ), + sub.tf.obj.cp({ object: { source_key: 'src_field_1', target_key: 'dest_field_1' } }), sub.tf.obj.cp({ obj: { src: 'src_field_2', trg: 'dest_field_2' } }), sub.tf.send.stdout(), - sub.tf.send.http.post( - settings={ url: 'https://example-http-endpoint.com' } - ), + sub.tf.send.http.post({ url: 'https://example-http-endpoint.com' }), ], } ``` @@ -392,9 +342,7 @@ module "appconfig" { config = { name = "substation" - environments = [{ - name = "example" - }] + environments = [{ name = "example" }] } } @@ -477,6 +425,51 @@ module "node" {
Raw EventOriginal Event Transformed Event
+## Getting Started + +You can run Substation on: + +- [Docker](https://substation.readme.io/docs/try-substation-on-docker) +- [macOS / Linux](https://substation.readme.io/docs/try-substation-on-macos-linux) +- [AWS](https://substation.readme.io/docs/try-substation-on-aws) + +### Development + +[VS Code](https://code.visualstudio.com/docs/devcontainers/containers) is the recommended development environment for Substation. The project includes a [development container](.devcontainer/Dockerfile) that should be used to develop and test the system. Refer to the [development guide](CONTRIBUTING.md) for more information. + +### Testing + +The development container is used to test the system locally and in the cloud. If don't use VS Code, then you should run the development container from the command line: + +```sh +git clone https://github.com/brexhq/substation.git && cd substation && \ +docker build -t substation-dev .devcontainer/ && \ +docker run -v $(pwd):/workspaces/substation/ -w /workspaces/substation -v /var/run/docker.sock:/var/run/docker.sock -it substation-dev +``` + +To try the system locally, run this from the [examples](examples) directory: +```sh +sh .devcontainer/post_start.sh && \ +cd examples && \ +make -s quickstart +``` + +To try the system in the cloud, choose an [AWS example](examples/terraform/aws) to deploy: +```sh +sh .devcontainer/post_start.sh && \ +cd examples && \ +aws configure && \ +make -s check && \ +make -s build && \ +make -s deploy EXAMPLE=terraform/aws/dynamodb/cdc +``` + +After testing is complete, the cloud deployment should be destroyed: +```sh +make -s destroy EXAMPLE=terraform/aws/dynamodb/cdc +``` + +**We do not recommend managing cloud deployments from a local machine using the examples Makefile. Production deployments should use a CI/CD pipeline with a remote state backend, such as Terraform, to manage infrastructure.** ## Licensing @@ -487,3 +480,4 @@ Substation and its associated code is released under the terms of the [MIT Licen [docs]:https://substation.readme.io/docs "Substation Documentation" [quickstart]:https://substation.readme.io/recipes/1-minute-quickstart "Substation Quickstart" [announcement]:https://medium.com/brexeng/announcing-substation-188d049d979b "Substation Announcement Post" +[v1_release]:https://medium.com/brexeng/releasing-substation-v1-0-4d0314cbc45b "Substation v1.0 Release Post" diff --git a/examples/terraform/aws/cloudwatch_logs/cross_account_cross_region/terraform/autoscaler.tf b/examples/terraform/aws/cloudwatch_logs/cross_account_cross_region/terraform/autoscaler.tf index c0d95021..e4fa889a 100644 --- a/examples/terraform/aws/cloudwatch_logs/cross_account_cross_region/terraform/autoscaler.tf +++ b/examples/terraform/aws/cloudwatch_logs/cross_account_cross_region/terraform/autoscaler.tf @@ -7,7 +7,7 @@ module "lambda_autoscaling" { config = { name = "autoscale" description = "Autoscaler for Kinesis Data Streams" - image_uri = "${module.ecr_autoscale.url}:v1.2.0" + image_uri = "${module.ecr_autoscale.url}:v1.3.0" image_arm = true } diff --git a/examples/terraform/aws/cloudwatch_logs/cross_account_cross_region/terraform/consumer.tf b/examples/terraform/aws/cloudwatch_logs/cross_account_cross_region/terraform/consumer.tf index ea5eef3d..7506606f 100644 --- a/examples/terraform/aws/cloudwatch_logs/cross_account_cross_region/terraform/consumer.tf +++ b/examples/terraform/aws/cloudwatch_logs/cross_account_cross_region/terraform/consumer.tf @@ -5,7 +5,7 @@ module "lambda_consumer" { config = { name = "consumer" description = "Substation node that consumes from Kinesis" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/cloudwatch_logs/to_lambda/terraform/consumer.tf b/examples/terraform/aws/cloudwatch_logs/to_lambda/terraform/consumer.tf index 22e297ab..363340c5 100644 --- a/examples/terraform/aws/cloudwatch_logs/to_lambda/terraform/consumer.tf +++ b/examples/terraform/aws/cloudwatch_logs/to_lambda/terraform/consumer.tf @@ -8,7 +8,7 @@ module "lambda_consumer" { config = { name = "consumer" description = "Substation node that is invoked by CloudWatch" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/dynamodb/cdc/terraform/node.tf b/examples/terraform/aws/dynamodb/cdc/terraform/node.tf index 90ab6ca2..cd6b5869 100644 --- a/examples/terraform/aws/dynamodb/cdc/terraform/node.tf +++ b/examples/terraform/aws/dynamodb/cdc/terraform/node.tf @@ -5,7 +5,7 @@ module "node" { config = { name = "node" description = "Substation node that receives CDC events" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { "SUBSTATION_CONFIG" : "http://localhost:2772/applications/substation/environments/example/configurations/node" diff --git a/examples/terraform/aws/dynamodb/telephone/terraform/autoscaler.tf b/examples/terraform/aws/dynamodb/telephone/terraform/autoscaler.tf index 0100b32b..b0da7368 100644 --- a/examples/terraform/aws/dynamodb/telephone/terraform/autoscaler.tf +++ b/examples/terraform/aws/dynamodb/telephone/terraform/autoscaler.tf @@ -5,7 +5,7 @@ module "lambda_autoscaling" { config = { name = "autoscale" description = "Autoscaler for Kinesis Data Streams" - image_uri = "${module.ecr_autoscale.url}:v1.2.0" + image_uri = "${module.ecr_autoscale.url}:v1.3.0" image_arm = true } } diff --git a/examples/terraform/aws/dynamodb/telephone/terraform/dvc_mgmt.tf b/examples/terraform/aws/dynamodb/telephone/terraform/dvc_mgmt.tf index 02ec40db..100f0e8d 100644 --- a/examples/terraform/aws/dynamodb/telephone/terraform/dvc_mgmt.tf +++ b/examples/terraform/aws/dynamodb/telephone/terraform/dvc_mgmt.tf @@ -22,7 +22,7 @@ module "dvc_mgmt_enrichment" { config = { name = "dvc_mgmt_enrichment" description = "Substation node that enriches device management data." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { "SUBSTATION_CONFIG" : "http://localhost:2772/applications/substation/environments/example/configurations/dvc_mgmt_enrichment" diff --git a/examples/terraform/aws/dynamodb/telephone/terraform/edr.tf b/examples/terraform/aws/dynamodb/telephone/terraform/edr.tf index 2b95846b..a5350205 100644 --- a/examples/terraform/aws/dynamodb/telephone/terraform/edr.tf +++ b/examples/terraform/aws/dynamodb/telephone/terraform/edr.tf @@ -23,7 +23,7 @@ module "edr_transform" { config = { name = "edr_transform" description = "Substation node that transforms EDR data." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { "SUBSTATION_CONFIG" : "http://localhost:2772/applications/substation/environments/example/configurations/edr_transform" @@ -55,7 +55,7 @@ module "edr_enrichment" { config = { name = "edr_enrichment" description = "Substation node that enriches EDR data." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { "SUBSTATION_CONFIG" : "http://localhost:2772/applications/substation/environments/example/configurations/edr_enrichment" diff --git a/examples/terraform/aws/dynamodb/telephone/terraform/idp.tf b/examples/terraform/aws/dynamodb/telephone/terraform/idp.tf index f98f0b19..c5bff745 100644 --- a/examples/terraform/aws/dynamodb/telephone/terraform/idp.tf +++ b/examples/terraform/aws/dynamodb/telephone/terraform/idp.tf @@ -22,7 +22,7 @@ module "idp_enrichment" { config = { name = "idp_enrichment" description = "Substation node that enriches IdP data." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { "SUBSTATION_CONFIG" : "http://localhost:2772/applications/substation/environments/example/configurations/idp_enrichment" diff --git a/examples/terraform/aws/firehose/data_transform/terraform/_resources.tf b/examples/terraform/aws/firehose/data_transform/terraform/_resources.tf index 05ff91ce..f8d1f409 100644 --- a/examples/terraform/aws/firehose/data_transform/terraform/_resources.tf +++ b/examples/terraform/aws/firehose/data_transform/terraform/_resources.tf @@ -168,7 +168,7 @@ module "transform" { config = { name = "transform_node" description = "Transforms Kinesis Data Firehose records." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true memory = 128 diff --git a/examples/terraform/aws/kinesis/autoscale/terraform/_resources.tf b/examples/terraform/aws/kinesis/autoscale/terraform/_resources.tf index 2a2fd423..609ae675 100644 --- a/examples/terraform/aws/kinesis/autoscale/terraform/_resources.tf +++ b/examples/terraform/aws/kinesis/autoscale/terraform/_resources.tf @@ -43,7 +43,7 @@ module "lambda_autoscale" { config = { name = "autoscale" description = "Autoscaler for Kinesis Data Streams." - image_uri = "${module.ecr.url}:v1.2.0" # This should use the project's release tags. + image_uri = "${module.ecr.url}:v1.3.0" # This should use the project's release tags. image_arm = true # Override the default Autoscale configuration using environment variables. diff --git a/examples/terraform/aws/kinesis/multistream/terraform/autoscaler.tf b/examples/terraform/aws/kinesis/multistream/terraform/autoscaler.tf index b34c8971..e177cb37 100644 --- a/examples/terraform/aws/kinesis/multistream/terraform/autoscaler.tf +++ b/examples/terraform/aws/kinesis/multistream/terraform/autoscaler.tf @@ -8,7 +8,7 @@ module "lambda_autoscaling" { config = { name = "autoscale" description = "Autoscaler for Kinesis Data Streams" - image_uri = "${module.ecr_autoscale.url}:v1.2.0" + image_uri = "${module.ecr_autoscale.url}:v1.3.0" image_arm = true } diff --git a/examples/terraform/aws/kinesis/multistream/terraform/publisher.tf b/examples/terraform/aws/kinesis/multistream/terraform/publisher.tf index 0e4e71f1..3eb64423 100644 --- a/examples/terraform/aws/kinesis/multistream/terraform/publisher.tf +++ b/examples/terraform/aws/kinesis/multistream/terraform/publisher.tf @@ -6,7 +6,7 @@ module "lambda_publisher" { config = { name = "publisher" description = "Substation node that publishes to Kinesis" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/kinesis/multistream/terraform/subscriber.tf b/examples/terraform/aws/kinesis/multistream/terraform/subscriber.tf index 615a0bf1..1dfa75f5 100644 --- a/examples/terraform/aws/kinesis/multistream/terraform/subscriber.tf +++ b/examples/terraform/aws/kinesis/multistream/terraform/subscriber.tf @@ -6,7 +6,7 @@ module "lambda_subscriber" { config = { name = "subscriber" description = "Substation node subscribes to Kinesis" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/kinesis/nxdr/terraform/autoscaler.tf b/examples/terraform/aws/kinesis/nxdr/terraform/autoscaler.tf index 2b4c5414..d936193c 100644 --- a/examples/terraform/aws/kinesis/nxdr/terraform/autoscaler.tf +++ b/examples/terraform/aws/kinesis/nxdr/terraform/autoscaler.tf @@ -5,7 +5,7 @@ module "lambda_autoscale" { config = { name = "autoscale" description = "Autoscaler for Kinesis Data Streams" - image_uri = "${module.ecr_autoscale.url}:v1.2.0" + image_uri = "${module.ecr_autoscale.url}:v1.3.0" image_arm = true } } diff --git a/examples/terraform/aws/kinesis/nxdr/terraform/enrichment.tf b/examples/terraform/aws/kinesis/nxdr/terraform/enrichment.tf index 5362d68e..985e794c 100644 --- a/examples/terraform/aws/kinesis/nxdr/terraform/enrichment.tf +++ b/examples/terraform/aws/kinesis/nxdr/terraform/enrichment.tf @@ -5,7 +5,7 @@ module "lambda_enrichment" { config = { name = "enrichment" description = "Substation enrichment node that writes threat signals to DynamoDB." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/kinesis/nxdr/terraform/transform.tf b/examples/terraform/aws/kinesis/nxdr/terraform/transform.tf index 7441567d..e7fdee3d 100644 --- a/examples/terraform/aws/kinesis/nxdr/terraform/transform.tf +++ b/examples/terraform/aws/kinesis/nxdr/terraform/transform.tf @@ -5,7 +5,7 @@ module "lambda_transform" { config = { name = "transform" description = "Substation transform node that enriches events with threat information." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/kinesis/time_travel/terraform/autoscaler.tf b/examples/terraform/aws/kinesis/time_travel/terraform/autoscaler.tf index f196d78e..8c4a8577 100644 --- a/examples/terraform/aws/kinesis/time_travel/terraform/autoscaler.tf +++ b/examples/terraform/aws/kinesis/time_travel/terraform/autoscaler.tf @@ -7,7 +7,7 @@ module "lambda_autoscaling" { config = { name = "autoscale" description = "Autoscaler for Kinesis Data Streams" - image_uri = "${module.ecr_autoscale.url}:v1.2.0" + image_uri = "${module.ecr_autoscale.url}:v1.3.0" image_arm = true } } diff --git a/examples/terraform/aws/kinesis/time_travel/terraform/enrichment.tf b/examples/terraform/aws/kinesis/time_travel/terraform/enrichment.tf index 32eb059e..5ae781b3 100644 --- a/examples/terraform/aws/kinesis/time_travel/terraform/enrichment.tf +++ b/examples/terraform/aws/kinesis/time_travel/terraform/enrichment.tf @@ -5,7 +5,7 @@ module "lambda_enrichment" { config = { name = "enrichment" description = "Substation node that enriches data from Kinesis and writes it to DynamoDB" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/kinesis/time_travel/terraform/transform.tf b/examples/terraform/aws/kinesis/time_travel/terraform/transform.tf index 12523b29..66498b17 100644 --- a/examples/terraform/aws/kinesis/time_travel/terraform/transform.tf +++ b/examples/terraform/aws/kinesis/time_travel/terraform/transform.tf @@ -5,7 +5,7 @@ module "lambda_transform" { config = { name = "transform" description = "Substation node that reads from Kinesis with a delay to support enrichment" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/lambda/appconfig/terraform/_resources.tf b/examples/terraform/aws/lambda/appconfig/terraform/_resources.tf index 9d9b7c95..ebeed22d 100644 --- a/examples/terraform/aws/lambda/appconfig/terraform/_resources.tf +++ b/examples/terraform/aws/lambda/appconfig/terraform/_resources.tf @@ -15,7 +15,7 @@ module "validate" { config = { name = "validate" description = "Substation configuration validator that is executed by AppConfig." - image_uri = "${module.ecr_validate.url}:v1.2.0" + image_uri = "${module.ecr_validate.url}:v1.3.0" image_arm = true memory = 128 diff --git a/examples/terraform/aws/lambda/appconfig/terraform/node.tf b/examples/terraform/aws/lambda/appconfig/terraform/node.tf index c76ea03a..83ebc0c4 100644 --- a/examples/terraform/aws/lambda/appconfig/terraform/node.tf +++ b/examples/terraform/aws/lambda/appconfig/terraform/node.tf @@ -7,7 +7,7 @@ module "node" { config = { name = "node" description = "Substation node that never receives a configuration." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true memory = 128 diff --git a/examples/terraform/aws/lambda/microservice/terraform/microservice.tf b/examples/terraform/aws/lambda/microservice/terraform/microservice.tf index 05e3cf4c..018b1b8f 100644 --- a/examples/terraform/aws/lambda/microservice/terraform/microservice.tf +++ b/examples/terraform/aws/lambda/microservice/terraform/microservice.tf @@ -5,7 +5,7 @@ module "microservice" { config = { name = "microservice" description = "Substation node that acts as a synchronous microservice" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true memory = 128 diff --git a/examples/terraform/aws/lambda/vpc/terraform/whatismyip.tf b/examples/terraform/aws/lambda/vpc/terraform/whatismyip.tf index 9a0a0d90..822501bd 100644 --- a/examples/terraform/aws/lambda/vpc/terraform/whatismyip.tf +++ b/examples/terraform/aws/lambda/vpc/terraform/whatismyip.tf @@ -5,7 +5,7 @@ module "whatismyip" { config = { name = "whatismyip" description = "Substation node that acts as a synchronous microservice" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true memory = 128 diff --git a/examples/terraform/aws/s3/data_lake/terraform/node.tf b/examples/terraform/aws/s3/data_lake/terraform/node.tf index 5c32fa8a..6dc872f9 100644 --- a/examples/terraform/aws/s3/data_lake/terraform/node.tf +++ b/examples/terraform/aws/s3/data_lake/terraform/node.tf @@ -18,7 +18,7 @@ module "lambda_node" { config = { name = "node" description = "Substation node that writes data to S3" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/s3/retry_on_failure/terraform/node_with_retrier.tf b/examples/terraform/aws/s3/retry_on_failure/terraform/node_with_retrier.tf index 05ab7cae..73a66b61 100644 --- a/examples/terraform/aws/s3/retry_on_failure/terraform/node_with_retrier.tf +++ b/examples/terraform/aws/s3/retry_on_failure/terraform/node_with_retrier.tf @@ -5,7 +5,7 @@ module "lambda_node" { config = { name = "node" description = "Substation node that reads data from S3. The node will retry forever if it fails." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { @@ -64,7 +64,7 @@ module "lambda_retrier" { config = { name = "retrier" description = "Substation node that receives events from the retry queue and invokes the original Lambda function." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true # This value should be 1/6th of the visibility timeout of the SQS queue. diff --git a/examples/terraform/aws/s3/sns/terraform/node.tf b/examples/terraform/aws/s3/sns/terraform/node.tf index 4ca272f0..46ed06f7 100644 --- a/examples/terraform/aws/s3/sns/terraform/node.tf +++ b/examples/terraform/aws/s3/sns/terraform/node.tf @@ -6,7 +6,7 @@ module "lambda_node" { config = { name = "node" description = "Substation node that reads data from S3 via SNS." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/s3/xdr/terraform/node.tf b/examples/terraform/aws/s3/xdr/terraform/node.tf index e61fdf56..acef20f6 100644 --- a/examples/terraform/aws/s3/xdr/terraform/node.tf +++ b/examples/terraform/aws/s3/xdr/terraform/node.tf @@ -5,7 +5,7 @@ module "lambda_node" { config = { name = "node" description = "Substation node that reads and writes data to S3." - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { diff --git a/examples/terraform/aws/sns/pub_sub/terraform/subscribers.tf b/examples/terraform/aws/sns/pub_sub/terraform/subscribers.tf index 2c56a770..33ed4d74 100644 --- a/examples/terraform/aws/sns/pub_sub/terraform/subscribers.tf +++ b/examples/terraform/aws/sns/pub_sub/terraform/subscribers.tf @@ -5,7 +5,7 @@ module "subscriber_x" { config = { name = "subscriber_x" description = "Substation node that subscribes to SNS" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { "SUBSTATION_CONFIG" : "http://localhost:2772/applications/substation/environments/example/configurations/subscriber_x" @@ -45,7 +45,7 @@ module "subscriber_y" { config = { name = "subscriber_y" description = "Substation node that subscribes to SNS" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { "SUBSTATION_CONFIG" : "http://localhost:2772/applications/substation/environments/example/configurations/subscriber_y" @@ -86,7 +86,7 @@ module "subscriber_z" { config = { name = "subscriber_z" description = "Substation node that subscribes to SNS" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { "SUBSTATION_CONFIG" : "http://localhost:2772/applications/substation/environments/example/configurations/subscriber_z" diff --git a/examples/terraform/aws/sqs/microservice/terraform/frontend.tf b/examples/terraform/aws/sqs/microservice/terraform/frontend.tf index 940bf32c..924c7e6c 100644 --- a/examples/terraform/aws/sqs/microservice/terraform/frontend.tf +++ b/examples/terraform/aws/sqs/microservice/terraform/frontend.tf @@ -5,7 +5,7 @@ module "frontend" { config = { name = "frontend" description = "Substation node that acts as a frontend to an asynchronous microservice" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true env = { "SUBSTATION_CONFIG" : "http://localhost:2772/applications/substation/environments/example/configurations/frontend" diff --git a/examples/terraform/aws/sqs/microservice/terraform/microservice.tf b/examples/terraform/aws/sqs/microservice/terraform/microservice.tf index 73ec1832..327575dd 100644 --- a/examples/terraform/aws/sqs/microservice/terraform/microservice.tf +++ b/examples/terraform/aws/sqs/microservice/terraform/microservice.tf @@ -5,7 +5,7 @@ module "microservice" { config = { name = "microservice" description = "Substation node that acts as an asynchronous microservice" - image_uri = "${module.ecr.url}:v1.2.0" + image_uri = "${module.ecr.url}:v1.3.0" image_arm = true memory = 128