awslabs / aws-service-catalog-puppet

This is a framework where you list your AWS accounts with tags and your AWS Service Catalog products with tags or target accounts. The framework works through your lists, dedupes and spots collisions and then provisions the products into your AWS accounts for you. It handles the Portfolio sharing, its acceptance and can provision products cross account and cross region.
Apache License 2.0
76 stars 41 forks source link

Puppet fails for unchanged products #165

Closed beataa closed 4 years ago

beataa commented 5 years ago

From time to time puppet fails with Submitted information doesn't contain changes message:

`Traceback (most recent call last):

File "/usr/local/lib/python3.7/site-packages/luigi/worker.py", line 199, in run new_deps = self._run_get_new_deps()

File "/usr/local/lib/python3.7/site-packages/luigi/worker.py", line 139, in _run_get_new_deps task_gen = self.task.run()

File "/usr/local/lib/python3.7/site-packages/servicecatalog_puppet/luigi_tasks_and_targets.py", line 251, in run self.version,

File "/usr/local/lib/python3.7/site-packages/servicecatalog_puppet/aws.py", line 224, in provision_product raise Exception(f"{uid} :: Plan failed: {response.get('ProvisionedProductPlanDetails').get('StatusMessage')}")

Exception: [config-aggregator] account-id:eu-central-1] :: Plan failed: The submitted information didn't contain changes. Submit different information to create a change set. `

If there is no change in products code / manifest file - I assume puppet should skip the product.

eamonnfaherty commented 5 years ago

Hi @beataa

Sorry you are hitting this issue.

Would it be possible to get a copy of your manifest and the full output of the codebuild job please?

nikolaigauss commented 4 years ago

Hi, We're been getting this issue as well. Do you need our manifest and the output?

eamonnfaherty commented 4 years ago

Yes please. Seeing the old version and new version of the manifest along with the full codebuild output will really help.

nikolaigauss commented 4 years ago

So, the manifest hasn't changed at all, we had this error after changing the repo name for a product, we haven't changed the product name nor it's definition on the manifest. In fact the product that is actually failing is unrelated to the one we've changed the repo name.

I've removed some IP ranges in both the manifest and the pipeline output because we don't want to disclose it publicly, that's why you might find the execution broken.

Find both files attached.

Manifest.txt PipelineOutput.txt

nikolaigauss commented 4 years ago

@beataa Give it try adding this value --> should_use_product_plans: false in the following parameter in SSM in your puppet account: /servicecatalog-puppet/config

it should look like this:

regions: [ 'us-east-1', 'eu-west-1', ] 
should_use_product_plans: false
eamonnfaherty commented 4 years ago

Please note the addition was:

should_use_product_plans: false

and if the parameter read:

should_use_product_plans: true

then you should change it to :

should_use_product_plans: false