Skip to content

pebcak? not working out of the box. #786

Description

@F0gC10ud

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

  1. Linux Python 3.11.2 master and v1.1.6
  2. 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

  1. I am using ca-centra-1, and I noticed it was absent from the source I grep'd through
  2. in the case of x-vpc, for the most, it will never work, regardless of what type
  3. I can build stacks with boto3 and awscli ( so my tokens work )
  4. 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

  1. is not of type 'object'
  2. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions