diff --git a/deploy-versions.json b/deploy-versions.json
index 50ddb727..f0f6e7d0 100644
--- a/deploy-versions.json
+++ b/deploy-versions.json
@@ -1 +1 @@
-[{"text":"Latest","icon":"fas fa-home","key":"latest","tag":"v2.1.9"}]
+[{"text":"Latest","icon":"fas fa-home","key":"latest","tag":"v2.1.10"}]
diff --git a/package.json b/package.json
index f058179d..cca449ff 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "zilla-docs",
"type": "module",
- "version": "2.1.9",
+ "version": "2.1.10",
"description": "The official documentation for the aklivity/zilla open-source project",
"keywords": [],
"author": "aklivity.io",
@@ -36,7 +36,7 @@
"link-checker": "^1.4.2",
"markdownlint-cli2": "^0.8.1",
"mathjax-full": "^3.2.2",
- "mermaid": "^10.9.1",
+ "mermaid": "^10.9.3",
"sass-embedded": "^1.79.4",
"sass-embedded-darwin-arm64": "^1.79.4",
"vue": "^3.5.10",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index aef5264c..8baa549a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -51,8 +51,8 @@ importers:
specifier: ^3.2.2
version: 3.2.2
mermaid:
- specifier: ^10.9.1
- version: 10.9.1
+ specifier: ^10.9.3
+ version: 10.9.3
sass-embedded:
specifier: ^1.79.4
version: 1.79.4
@@ -67,7 +67,7 @@ importers:
version: 2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)
vuepress-theme-hope:
specifier: 2.0.0-rc.58
- version: 2.0.0-rc.58(@vuepress/plugin-docsearch@2.0.0-rc.52(@algolia/client-search@4.24.0)(search-insights@2.16.3)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)))(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(mermaid@10.9.1)(sass-embedded@1.79.4)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10))
+ version: 2.0.0-rc.58(@vuepress/plugin-docsearch@2.0.0-rc.52(@algolia/client-search@4.24.0)(search-insights@2.16.3)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)))(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(mermaid@10.9.3)(sass-embedded@1.79.4)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10))
packages:
@@ -570,8 +570,8 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@rollup/wasm-node@4.23.0':
- resolution: {integrity: sha512-jEeXqGlX+FpWml3/A15rv1mgNqhY5dyvtX8U5w2ff0p5PkxIjU1Y/GABHEjkoE7EF29ayGBtKR6kUZ+JELtjyg==}
+ '@rollup/wasm-node@4.24.3':
+ resolution: {integrity: sha512-lahpprfoJKm88bgp2IrDI/VRyZocsvGvemSkhrsbBTj9yqhkyIb7W5CZAdZWgeAibO5EIk2cN0yWCHcjohL1YQ==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -1364,8 +1364,8 @@ packages:
resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
engines: {node: '>= 4'}
- dompurify@3.1.7:
- resolution: {integrity: sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==}
+ dompurify@3.1.6:
+ resolution: {integrity: sha512-cTOAhc36AalkjtBpfG6O8JimdTMWNXjiePT2xQH/ppBGi/4uIpmj8eKyIkMJErXWARyINV/sB38yf8JCLF5pbQ==}
domutils@3.1.0:
resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
@@ -1781,8 +1781,8 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
- mermaid@10.9.1:
- resolution: {integrity: sha512-Mx45Obds5W1UkW1nv/7dHRsbfMM1aOKA2+Pxs/IGHNonygDHwmng8xTHyS9z4KWVi0rbko8gjiBmuwwXQ7tiNA==}
+ mermaid@10.9.3:
+ resolution: {integrity: sha512-V80X1isSEvAewIL3xhmz/rVmc27CVljcsbWxkxlWJWY/1kQa4XOABqpDl2qQLGKzpKm6WbTfUEKImBlUfFYArw==}
methods@1.1.2:
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
@@ -3194,7 +3194,7 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.17.1
- '@rollup/wasm-node@4.23.0':
+ '@rollup/wasm-node@4.24.3':
dependencies:
'@types/estree': 1.0.6
optionalDependencies:
@@ -3404,7 +3404,7 @@ snapshots:
connect-history-api-fallback: 2.0.0
postcss: 8.4.47
postcss-load-config: 6.0.1(postcss@8.4.47)(yaml@2.5.0)
- rollup: '@rollup/wasm-node@4.23.0'
+ rollup: '@rollup/wasm-node@4.24.3'
vite: 5.4.8(@types/node@22.7.4)(sass-embedded@1.79.4)
vue: 3.5.10
vue-router: 4.4.5(vue@3.5.10)
@@ -4279,7 +4279,7 @@ snapshots:
dependencies:
domelementtype: 2.3.0
- dompurify@3.1.7: {}
+ dompurify@3.1.6: {}
domutils@3.1.0:
dependencies:
@@ -4755,7 +4755,7 @@ snapshots:
merge2@1.4.1: {}
- mermaid@10.9.1:
+ mermaid@10.9.3:
dependencies:
'@braintree/sanitize-url': 6.0.4
'@types/d3-scale': 4.0.8
@@ -4766,7 +4766,7 @@ snapshots:
d3-sankey: 0.12.3
dagre-d3-es: 7.0.10
dayjs: 1.11.13
- dompurify: 3.1.7
+ dompurify: 3.1.6
elkjs: 0.9.3
katex: 0.16.11
khroma: 2.1.0
@@ -5469,7 +5469,7 @@ snapshots:
dependencies:
esbuild: 0.21.5
postcss: 8.4.47
- rollup: '@rollup/wasm-node@4.23.0'
+ rollup: '@rollup/wasm-node@4.24.3'
optionalDependencies:
'@types/node': 22.7.4
fsevents: 2.3.3
@@ -5510,7 +5510,7 @@ snapshots:
- '@vue/composition-api'
- typescript
- vuepress-plugin-md-enhance@2.0.0-rc.57(markdown-it@14.1.0)(mermaid@10.9.1)(sass-embedded@1.79.4)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)):
+ vuepress-plugin-md-enhance@2.0.0-rc.57(markdown-it@14.1.0)(mermaid@10.9.3)(sass-embedded@1.79.4)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)):
dependencies:
'@mdit/plugin-alert': 0.13.1(markdown-it@14.1.0)
'@mdit/plugin-align': 0.13.1(markdown-it@14.1.0)
@@ -5537,7 +5537,7 @@ snapshots:
vuepress: 2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)
vuepress-shared: 2.0.0-rc.57(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10))
optionalDependencies:
- mermaid: 10.9.1
+ mermaid: 10.9.3
sass-embedded: 1.79.4
transitivePeerDependencies:
- '@vue/composition-api'
@@ -5555,7 +5555,7 @@ snapshots:
- '@vue/composition-api'
- typescript
- vuepress-theme-hope@2.0.0-rc.58(@vuepress/plugin-docsearch@2.0.0-rc.52(@algolia/client-search@4.24.0)(search-insights@2.16.3)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)))(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(mermaid@10.9.1)(sass-embedded@1.79.4)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)):
+ vuepress-theme-hope@2.0.0-rc.58(@vuepress/plugin-docsearch@2.0.0-rc.52(@algolia/client-search@4.24.0)(search-insights@2.16.3)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)))(katex@0.16.11)(markdown-it@14.1.0)(mathjax-full@3.2.2)(mermaid@10.9.3)(sass-embedded@1.79.4)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)):
dependencies:
'@vuepress/helper': 2.0.0-rc.52(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10))
'@vuepress/plugin-active-header-links': 2.0.0-rc.52(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10))
@@ -5590,7 +5590,7 @@ snapshots:
vue: 3.5.10
vuepress: 2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10)
vuepress-plugin-components: 2.0.0-rc.57(sass-embedded@1.79.4)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10))
- vuepress-plugin-md-enhance: 2.0.0-rc.57(markdown-it@14.1.0)(mermaid@10.9.1)(sass-embedded@1.79.4)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10))
+ vuepress-plugin-md-enhance: 2.0.0-rc.57(markdown-it@14.1.0)(mermaid@10.9.3)(sass-embedded@1.79.4)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10))
vuepress-shared: 2.0.0-rc.57(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10))
optionalDependencies:
'@vuepress/plugin-docsearch': 2.0.0-rc.52(@algolia/client-search@4.24.0)(search-insights@2.16.3)(vuepress@2.0.0-rc.17(@vuepress/bundler-vite@2.0.0-rc.17(@types/node@22.7.4)(sass-embedded@1.79.4)(yaml@2.5.0))(vue@3.5.10))
diff --git a/src/how-tos/zilla-plus-aws-ecs-fargate.md b/src/how-tos/zilla-plus-aws-ecs-fargate.md
index 70c1a7cb..1b017157 100644
--- a/src/how-tos/zilla-plus-aws-ecs-fargate.md
+++ b/src/how-tos/zilla-plus-aws-ecs-fargate.md
@@ -38,85 +38,90 @@ This Guide will walk you through deploying your first service on AW
- Create the below `Dockerfile` with the container image using the version tag you got from the previous steps. Use the `COPY` instruction to add the `zilla.yaml` below to your container image.
-::: code-tabs
-@tab Dockerfile
+ ::: code-tabs
+
+ @tab Dockerfile
+
+ ```Dockerfile
+ FROM 709825985650.dkr.ecr.us-east-1.amazonaws.com/aklivity/zilla-plus-ecr:-alpine
+
+ COPY ./zilla.yaml /etc/zilla/zilla.yaml
+ ```
+
+ @tab zilla.yaml
+
+ ```yaml
+ ---
+ name: http-echo
+ bindings:
+ north_tcp_server:
+ type: tcp
+ kind: server
+ options:
+ host: 0.0.0.0
+ port:
+ - 7114
+ routes:
+ - when:
+ - port: 7114
+ exit: north_http_server
+ north_http_server:
+ type: http
+ kind: server
+ routes:
+ - when:
+ - headers:
+ :scheme: http
+ exit: north_echo_server
+ north_echo_server:
+ type: echo
+ kind: server
+ telemetry:
+ exporters:
+ stdout_logs_exporter:
+ type: stdout
+ ```
+
+ :::
+
+- Optionally add files, any other files used in your `zilla.yaml` can be added to the container in the same directory as the `zilla.yaml` config.
+
+ ```Dockerfile
+ COPY ./zilla.yaml /etc/zilla/zilla.yaml
+ COPY ./tls /etc/zilla/tls
+ COPY ./specs /etc/zilla/specs
+ ```
-```Dockerfile
-FROM 709825985650.dkr.ecr.us-east-1.amazonaws.com/aklivity/zilla-plus-ecr:-alpine
-
-COPY ./zilla.yaml /etc/zilla/zilla.yaml
-```
-
-@tab zilla.yaml
-
-```yaml
----
-name: http-echo
-bindings:
- north_tcp_server:
- type: tcp
- kind: server
- options:
- host: 0.0.0.0
- port:
- - 7114
- routes:
- - when:
- - port: 7114
- exit: north_http_server
- north_http_server:
- type: http
- kind: server
- routes:
- - when:
- - headers:
- :scheme: http
- exit: north_echo_server
- north_echo_server:
- type: echo
- kind: server
-telemetry:
- exporters:
- stdout_logs_exporter:
- type: stdout
-```
+- Build your image to be pushed to [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) or another registry.
-:::
+ ::: important Before you build
-::: note Adding other files
+ - Make sure you are logged in to the `Zilla Plus` registry to pull the base image. This is a separate log in action from any other registries (ex. If you are pushing the built image to Amazon ECR).
-Any other files used in your `zilla.yaml` can be added to the container in the same directory as the `zilla.yaml` config.
+ ```bash
+ aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 709825985650.dkr.ecr.us-east-1.amazonaws.com
+ ```
-```Dockerfile
-COPY ./zilla.yaml /etc/zilla/zilla.yaml
-COPY ./tls /etc/zilla/tls
-COPY ./specs /etc/zilla/specs
-```
+ - Confirm the CPU Architecture you need. Use the `docker build --platform` option to match the desired [cpuArchitecture](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RuntimePlatform.html#API_RuntimePlatform_Contents) that you can configure in your ECS task.
-:::
+ :::
-- Build your image to be pushed to [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) or another registry.
-
-```bash
-docker build -t zp-example/http-echo:v1 .
-```
-
-::: important Build with the correct Architecture
-Use the `docker build --platform` option to match the desired [cpuArchitecture](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RuntimePlatform.html#API_RuntimePlatform_Contents) that you can configure in your ECS task.
-:::
+ ```bash
+ docker build -t zp-example/http-echo:v1 .
+ ```
- Tag your image with the remote repository name and tag.
-```bash
-docker tag zp-example/http-echo:v1 [your-registry-url]/zp-example/http-echo:v1
-```
+ ```bash
+ docker tag zp-example/http-echo:v1 [your-registry-url]/zp-example/http-echo:v1
+ ```
- Push your image to your remote repository.
-```bash
-docker push [your-registry-url]/zp-example/http-echo:v1
-```
+ ```bash
+ docker push [your-registry-url]/zp-example/http-echo:v1
+ ```
## Create an AWS ECS Fargate Task for your service
@@ -124,93 +129,93 @@ docker push [your-registry-url]/zp-example/http-echo:v1
- Create an IAM role for the Task. This role will be used by the running container.
-::: tabs
+ ::: tabs
-@tab Task role
+ @tab Task role
-Name:
+ Name:
-```text
-ecsTaskRole_ZillaPlus
-```
+ ```text
+ ecsTaskRole_ZillaPlus
+ ```
-Policies:
+ Policies:
-```text
-AWSMarketplaceMeteringFullAccess
-AWSMarketplaceMeteringRegisterUsage
-```
+ ```text
+ AWSMarketplaceMeteringFullAccess
+ AWSMarketplaceMeteringRegisterUsage
+ ```
-:::
+ :::
- If you used the Amazon ECR as your image repository, create a role with the `AmazonECSTaskExecutionRolePolicy` permission and use it as the `Task execution role` when creating the Task.
-::: tabs
+ ::: tabs
-@tab Task execution role
+ @tab Task execution role
-Name:
+ Name:
-```text
-ecsTaskExecutionRole
-```
+ ```text
+ ecsTaskExecutionRole
+ ```
-Policies:
+ Policies:
-```text
-AmazonECSTaskExecutionRolePolicy
-```
+ ```text
+ AmazonECSTaskExecutionRolePolicy
+ ```
-:::
+ :::
- [Create a new Task Definition](https://us-east-1.console.aws.amazon.com/ecs/v2/create-task-definition-with-json) from JSON
- Substitute ``, ``, and `` for their respective values.
-::: code-tabs
-
-@tab Task Definition JSON
-
-```json
-{
- "family": "zilla-plus-http-echo-fargate",
- "networkMode": "awsvpc",
- "containerDefinitions": [
- {
- "name": "zp-http-echo",
- "image": "/zp-example/http-echo:v1",
- "portMappings": [
- {
- "name": "http",
- "containerPort": 7114,
- "hostPort": 7114,
- "protocol": "tcp",
- "appProtocol": "http"
- }
- ],
- "essential": true,
- "command": ["start", "-v", "-e"],
- "logConfiguration": {
- "logDriver": "awslogs",
- "options": {
- "awslogs-group": "/ecs/",
- "mode": "non-blocking",
- "awslogs-create-group": "true",
- "max-buffer-size": "25m",
- "awslogs-region": "us-east-1",
- "awslogs-stream-prefix": "ecs"
+ ::: code-tabs
+
+ @tab Task Definition JSON
+
+ ```json
+ {
+ "family": "zilla-plus-http-echo-fargate",
+ "networkMode": "awsvpc",
+ "containerDefinitions": [
+ {
+ "name": "zp-http-echo",
+ "image": "/zp-example/http-echo:v1",
+ "portMappings": [
+ {
+ "name": "http",
+ "containerPort": 7114,
+ "hostPort": 7114,
+ "protocol": "tcp",
+ "appProtocol": "http"
+ }
+ ],
+ "essential": true,
+ "command": ["start", "-v", "-e"],
+ "logConfiguration": {
+ "logDriver": "awslogs",
+ "options": {
+ "awslogs-group": "/ecs/",
+ "mode": "non-blocking",
+ "awslogs-create-group": "true",
+ "max-buffer-size": "25m",
+ "awslogs-region": "us-east-1",
+ "awslogs-stream-prefix": "ecs"
+ }
}
}
- }
- ],
- "requiresCompatibilities": ["FARGATE"],
- "taskRoleArn": "",
- "executionRoleArn": "",
- "cpu": "1 vCPU",
- "memory": "3 GB"
-}
-```
+ ],
+ "requiresCompatibilities": ["FARGATE"],
+ "taskRoleArn": "",
+ "executionRoleArn": "",
+ "cpu": "1 vCPU",
+ "memory": "3 GB"
+ }
+ ```
-:::
+ :::
## Create a Service from your AWS ECS Fargate Task
@@ -219,12 +224,14 @@ AmazonECSTaskExecutionRolePolicy
- [Create a Service](https://us-east-1.console.aws.amazon.com/ecs/v2/clusters/my-ecs-cluster/create-service) from your new task.
- Deployment configuration:
- Family: `zilla-plus-http-echo-fargate`
- - Service name: `Your Zilla Plus HTTP Echo service`
+ - Service name: `my_zilla_plus_service`
- Network configuration:
- Set the VPC to be the Same as your ECS Cluster.
- - Make sure the security group allows traffic over the ports defined `portMappings` of the service.
- Select the Public subnets.
- Make sure the `Public IP` flag to true.
+ ::: important Open Service Ports
+ Make sure the security group allows traffic over the ports defined in the `portMappings` of the service.
+ :::
- `Create` the Service.
## Verify your service is running
@@ -236,13 +243,13 @@ Once the service has started with all tasks succeeding, you will see the