Skip to content

Conversation

@ConsoleCatzirl
Copy link
Member

Update the documentation on Service Catalog integration testing to reflect new automation added to the process.

Document the current manual process used for testing changes to AMIs
used by service catalog products.
Update the documentation on how to perform functional and integration
testing of AMIs used by service catalog products now that test artifacts
are automatically created.

Depends on Sage-Bionetworks-IT/packer-ami-template
Depends on Sage-Bionetworks-IT/service-catalog-library
Copy link
Contributor

@xschildw xschildw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good.

product template to S3, and create a new Service Catalog product in the
scipool dev account to verify manually from https://sc-dev.sageit.org/

The deploy pipelines for both our packer repos and our service catalog library
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you link to the "packer repo's"?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a list to the end of the section

templates for service catalog to S3.

1. Commit changes to the packer repo to update or modify the AMI on a branch
that starts with `test/`, and push directly to the origin repo.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"to the origin repo'" -> "to the origin branch".

Can you please link the words "the packer repo" to the packer repo' URL?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The branch name will start with test/ such as test/foo, and that branch is pushed directly to the origin, e.g. Sage-Bionetworks-IT/packer-ami-template. I've reworded this to 'upstream repo' with an explicit example.

1. Manually create an EC2 instance in the `itsandbox` account from the test AMI
for any initial system validation, then terminate it.
1. Commit changes to `service-catalog-library` on a branch that starts with
`test/` to update the desired template, and push directly to the origin repo.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to the origin branch

1. Commit changes to `service-catalog-library` on a branch that starts with
`test/` to update the desired template, and push directly to the origin repo.
1. Create a pull request for `organizations-infra` to add a new Service Catalog
product to `scipool-dev` with 'test' in the name for the test template.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you mention where the "product" templates are located in the repo'? How does the product reference the template in the previous step?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The wording is a little tricky because there's a template in service-catalog-library, and another in organizations-infra. I've added a link to an example PR that hopefully shows the relationship between the two templates.


### Functional Testing
The process to test the functionality of an AMI and it's integration with our
Service Catalog products is to first create a test AMI, upload a modified
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Below you say to create the new product via a PR, not by uploading to S3. Can you please be consistent?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm trying to describe both the underlying process and the automation around it. I've reworded this to hopefully explain that a bit more

Reword and expand both the reasoning and the process documented.
Copy link
Contributor

@brucehoff brucehoff left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thanks for accommodating my suggestions.

Comment on lines +57 to +64
Anyone with write access to the upstream repos can automate creating AMIs and
uploading CFN templates to S3 by pushing `test/*` branches directly to the
uptsream repo. For example, pushing a branch named `test/foo` directly to
`Sage-Bionetworks-IT/packer-rstudio` will create an AMI named
`packer-rstudio-test/foo` in `imagecentral`, and pushing a branch named
`test/bar` directly to `Sage-Bionetworks/service-catalog-library` will upload
the templates to `service-catalog-library/test/bar/` in the bootstrap bucket in
`admincentral`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am in general opposed to the idea of pushing things to upstream for testing. I think there are better alternatives to that idea.

For example, pushing a branch named test/foo directly to Sage-Bionetworks-IT/packer-rstudio will create an AMI named packer-rstudio-test/foo in imagecentral

You don't need to push to upstream. You can run the command to build AMIs locally (on your laptop terminal), have it deployed to imagecentral account and shared publicly. You can then reference that AMI ID in your test template.

pushing a branch named test/bar directly to Sage-Bionetworks/service-catalog-library will upload
the templates to service-catalog-library/test/bar/ in the bootstrap bucket in admincentral.

You don't need to push to upstream, you can just push to your fork then reference the service-catalog-library templates that's been pushed to your fork repo. The LoadTemplateFromURL does not require the template to be in S3.

@zaro0508 zaro0508 requested a review from a team April 22, 2025 20:57
@zaro0508 zaro0508 removed the request for review from a team September 8, 2025 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants