-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Hello,
I just found your project and I am grateful for the work you are doing! I was previously a user of https://github.com/docker-archive/compose-cli and was sad when it started to die.
Keep up the great work!
The bug[s]?
I am assuming I am doing something wrong, but I have tried on my linux desktop in a docker container, on both master
and tag v1.1.6
. I still get errors with most of the things I try do. (I still haven't managed to deploy anything yet. )
Reproducing issue
out of the box e2e-examples/nginx_webapp
Out of the box using tag v1.1.6, I get this error
# I get the same error if I use "render --format yaml -d out"
python -m venv venv
source venv/bin/activate
pip install ecs-composex
git clone https://github.com/compose-x/ecs_composex
cd ecs_composex/e2e-examples/nginx_webapp
ecs-compose-x up -n test -f docker-compose.yaml -f aws-compose-x.yaml -f docker-compose.override.yaml
Error
See full log further below
raise KeyError(
KeyError: ('x-route53.PublicZone - Requires either or both Properties or MacroParameters. Got neither', dict_keys(['ZoneName'])
Work envs
- Linux Python 3.11.2 master and v1.1.6
- Docker/python:3.10-slim (3.10.16) master and v1.1.6
Logs
Hold my beer, full log
$ python -m venv venv
$ source venv/bin/activate
(venv) $ pip install ecs-composex
Collecting ecs-composex
Using cached ecs_composex-1.1.6-py3-none-any.whl (522 kB)
Collecting Jinja2<4.0.0,>=3.1.2
Using cached jinja2-3.1.5-py3-none-any.whl (134 kB)
Collecting PyYAML<7.0,>=6.0
Using cached PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (762 kB)
Collecting boto3<2.0,>=1.26
Using cached boto3-1.35.98-py3-none-any.whl (139 kB)
Collecting compose-x-common<2.0,>=1.4
Using cached compose_x_common-1.4.10-py3-none-any.whl (43 kB)
Collecting compose-x-render<2.0,>=1.1
Using cached compose_x_render-1.1.0-py3-none-any.whl (24 kB)
Collecting docker<8.0,>=6.0.1
Using cached docker-7.1.0-py3-none-any.whl (147 kB)
Collecting importlib-resources<7.0,>=6.4
Using cached importlib_resources-6.5.2-py3-none-any.whl (37 kB)
Collecting jsonschema>=4.21
Using cached jsonschema-4.23.0-py3-none-any.whl (88 kB)
Collecting requests<3.0,>=2.28
Using cached requests-2.32.3-py3-none-any.whl (64 kB)
Collecting retry2<0.10,>=0.9
Using cached retry2-0.9.5-py2.py3-none-any.whl (6.0 kB)
Collecting tabulate<0.9,>=0.8
Using cached tabulate-0.8.10-py3-none-any.whl (29 kB)
Collecting troposphere<5.0,>=4.5.3
Using cached troposphere-4.8.3-py3-none-any.whl (530 kB)
Collecting troposphere-awscommunity-applicationautoscaling-scheduledaction<0.2.0,>=0.1.1
Using cached troposphere_awscommunity_applicationautoscaling_scheduledaction-0.1.1-py3-none-any.whl (5.4 kB)
Collecting botocore<1.36.0,>=1.35.98
Using cached botocore-1.35.98-py3-none-any.whl (13.3 MB)
Collecting jmespath<2.0.0,>=0.7.1
Using cached jmespath-1.0.1-py3-none-any.whl (20 kB)
Collecting s3transfer<0.11.0,>=0.10.0
Using cached s3transfer-0.10.4-py3-none-any.whl (83 kB)
Collecting flatdict<5.0.0,>=4.0.1
Using cached flatdict-4.0.1-py3-none-any.whl
Collecting python-dateutil<3.0.0,>=2.8.2
Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
Collecting argparse<2.0.0,>=1.4.0
Using cached argparse-1.4.0-py2.py3-none-any.whl (23 kB)
Collecting urllib3>=1.26.0
Using cached urllib3-2.3.0-py3-none-any.whl (128 kB)
Collecting MarkupSafe>=2.0
Using cached MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB)
Collecting attrs>=22.2.0
Using cached attrs-24.3.0-py3-none-any.whl (63 kB)
Collecting jsonschema-specifications>=2023.03.6
Using cached jsonschema_specifications-2024.10.1-py3-none-any.whl (18 kB)
Collecting referencing>=0.28.4
Using cached referencing-0.35.1-py3-none-any.whl (26 kB)
Collecting rpds-py>=0.7.1
Using cached rpds_py-0.22.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (381 kB)
Collecting charset-normalizer<4,>=2
Using cached charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (143 kB)
Collecting idna<4,>=2.5
Using cached idna-3.10-py3-none-any.whl (70 kB)
Collecting certifi>=2017.4.17
Using cached certifi-2024.12.14-py3-none-any.whl (164 kB)
Collecting decorator>=3.4.2
Using cached decorator-5.1.1-py3-none-any.whl (9.1 kB)
Collecting cfn-flip>=1.0.2
Using cached cfn_flip-1.3.0-py3-none-any.whl (21 kB)
Collecting Click
Using cached click-8.1.8-py3-none-any.whl (98 kB)
Collecting six
Using cached six-1.17.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: flatdict, argparse, urllib3, tabulate, six, rpds-py, PyYAML, MarkupSafe, jmespath, importlib-resources, idna, decorator, Click, charset-normalizer, certifi, attrs, retry2, requests, referencing, python-dateutil, Jinja2, cfn-flip, troposphere, jsonschema-specifications, docker, botocore, troposphere-awscommunity-applicationautoscaling-scheduledaction, s3transfer, jsonschema, boto3, compose-x-common, compose-x-render, ecs-composex
Successfully installed Click-8.1.8 Jinja2-3.1.5 MarkupSafe-3.0.2 PyYAML-6.0.2 argparse-1.4.0 attrs-24.3.0 boto3-1.35.98 botocore-1.35.98 certifi-2024.12.14 cfn-flip-1.3.0 charset-normalizer-3.4.1 compose-x-common-1.4.10 compose-x-render-1.1.0 decorator-5.1.1 docker-7.1.0 ecs-composex-1.1.6 flatdict-4.0.1 idna-3.10 importlib-resources-6.5.2 jmespath-1.0.1 jsonschema-4.23.0 jsonschema-specifications-2024.10.1 python-dateutil-2.9.0.post0 referencing-0.35.1 requests-2.32.3 retry2-0.9.5 rpds-py-0.22.3 s3transfer-0.10.4 six-1.17.0 tabulate-0.8.10 troposphere-4.8.3 troposphere-awscommunity-applicationautoscaling-scheduledaction-0.1.1 urllib3-2.3.0
(venv) $ git clone https://github.com/compose-x/ecs_composex
Cloning into 'ecs_composex'...
remote: Enumerating objects: 15303, done.
<snip>
Resolving deltas: 100% (11660/11660), done.
(venv) $ cd ecs_composex/e2e-examples/nginx_webapp
(venv) ecs_composex/e2e-examples/nginx_webapp$ ecs-compose-x up -n test -f docker-compose.yaml -f aws-compose-x.yaml -f docker-compose.override.yaml
2025-01-14 14:17:03 [ INFO] volumes.app - Mapped to frontend
2025-01-14 14:17:03 [ INFO] services.frontend - No Launch Type defined. Using default: FARGATE
2025-01-14 14:17:04 [ INFO] Service families to process ['frontend']
2025-01-14 14:17:04 [ INFO] No cluster information provided. Creating a new one
Loaded x-route53 route53 route53 /scratch/venv/lib/python3.11/site-packages/ecs_composex/route53
Loaded x-cloudmap cloudmap cloudmap /scratch/venv/lib/python3.11/site-packages/ecs_composex/cloudmap
Loaded x-elbv2 elbv2 elbv2 /scratch/venv/lib/python3.11/site-packages/ecs_composex/elbv2
2025-01-14 14:17:04 [ INFO] x-elbv2.public-alb - Adding target frontend:frontend
2025-01-14 14:17:04 [ INFO] LB public-alb only has a unique service. LB will be deployed with the service stack.
2025-01-14 14:17:04 [ INFO] Processing x-route53
Traceback (most recent call last):
File "/scratch/venv/bin/ecs-compose-x", line 8, in <module>
sys.exit(main())
^^^^^^
File "/scratch/venv/lib/python3.11/site-packages/ecs_composex/cli.py", line 213, in main
root_stack = generate_full_template(settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/scratch/venv/lib/python3.11/site-packages/ecs_composex/ecs_composex.py", line 257, in generate_full_template
add_x_resources(settings)
File "/scratch/venv/lib/python3.11/site-packages/ecs_composex/ecs_composex.py", line 181, in add_x_resources
x_stack = module.stack_class(
^^^^^^^^^^^^^^^^^^^
File "/scratch/venv/lib/python3.11/site-packages/ecs_composex/route53/route53_stack.py", line 208, in __init__
if module.new_resources:
^^^^^^^^^^^^^^^^^^^^
File "/scratch/venv/lib/python3.11/site-packages/ecs_composex/mods_manager.py", line 123, in new_resources
raise KeyError(
KeyError: ('x-route53.PublicZone - Requires either or both Properties or MacroParameters. Got neither', dict_keys(['ZoneName']))
PEBKAC, ou une case 18"?
If its just me here are other details
fwiw
- I am using
ca-centra-1
, and I noticed it was absent from the source I grep'd through - in the case of
x-vpc
, for the most, it will never work, regardless of what type - I can build stacks with boto3 and awscli ( so my tokens work )
- After removing most of the aws stuff I was able to deploy a stack that failed and was rolled back
When trying to build a config from scratch or using compose-x-labs I will often get these errors
is not of type 'object'
is not valid under any of the given schemas
I copied this from the doc, and got the error is not valid under any of the given schemas
x-vpc:
Use:
VpcId: vpc-12345678901234567
AppSubnets:
- subnet-12345678901234567
- subnet-12345678901234567
- subnet-12345678901234567
StorageSubnets:
- subnet-12345678901234567
- subnet-12345678901234567
- subnet-12345678901234567
PublicSubnets:
- subnet-12345678901234567
- subnet-12345678901234567
- subnet-12345678901234567
JohnPreston
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working