Skip to content

Tweak the updated deployment docs #2603

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 8 commits into
base: deployment-docs
Choose a base branch
from
Draft

Conversation

jhkennedy
Copy link
Contributor

@jhkennedy jhkennedy commented Feb 15, 2025

I've:

  • mostly just restructured the deployment section into 3 parts and used collapsing details for the security-environment-specific sections (I'd love to use tabs, but GitHub doesn't support that)
  • I added alerts to show what parts require an ASF employee to be in the loop

Since I'm making use of GitHub's markdown, I recommend reviewing the README as rendered in GitHub:
https://github.com/ASFHyP3/hyp3/blob/jhk-deploy-docs/README.md

@jhkennedy jhkennedy requested a review from jtherrmann February 15, 2025 01:33
@jhkennedy jhkennedy marked this pull request as ready for review February 15, 2025 01:45
@jhkennedy jhkennedy requested review from a team as code owners February 15, 2025 01:45
Comment on lines +226 to +227
> [!WARNING]
> This step must be done by an ASF employee.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I called out what steps require ASF to be in the loop, but maybe we don't need to with the top-level warning?

https://github.com/ASFHyP3/hyp3/pull/2603/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R30-R34

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it's fine to call out these steps, but I want to clearly distinguish steps that would require ASF even if someone forks HyP3 and deploys to their own AWS account, because I feel like the expectation with an open-source project is that anyone should be able to fork and build/deploy it. If that's not the case, we should call that out. (Also see my question on the top-level warning.)

Comment on lines +31 to +32
> It's not currently possible to deploy HyP3 fully independent of ASF due to our integration with
> [ASF Vertex](https://search.alaska.edu). If you'd like your own deployment of HyP3, please open an issue here or
Copy link
Contributor

Choose a reason for hiding this comment

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

It's not currently possible to deploy HyP3 fully independent of ASF due to our integration with ASF Vertex

Is this just referring to our use of the asf-urs cookie?

Comment on lines +115 to +119
> [!WARNING]
> This stack should only be deployed once per AWS account. This stack also
> assumes you are only deploying into a single AWS Region. If you are deploying into
> multiple regions in the same AWS account, you'll need to adjust the IAM permissions
> that are limited to a single region.
Copy link
Contributor

Choose a reason for hiding this comment

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

This [!WARNING] block isn't rendering correctly for me.

Copy link
Contributor

Choose a reason for hiding this comment

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

Oh, I think that none of the admonitions within the collapsible sections are rendering correctly.

Then update all of the fields (`environment`, `domain`, `template_bucket`, etc.) as appropriate for your deployment.
Also make sure to update the top-level `name` of the workflow and the name of the branch to deploy from.
(This is typically `main` for prod deployments, `develop` for test deployments, or a feature branch name for sandbox deployments.)
> ![TIP]
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
> ![TIP]
> [!TIP]

@jtherrmann jtherrmann marked this pull request as draft February 21, 2025 20:50
Copy link

@Alex-Lewandowski Alex-Lewandowski left a comment

Choose a reason for hiding this comment

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

I really appreciate this update to the deployment docs. The instructions are easy to understand and follow. The drop-down sections improve navigation. I added a few comments, mostly minor. There are a couple of broken links.


*Security environment(s): ASF*
<details>
<summary>ASF: Create a CloudFormation templates bucket</summary>

Choose a reason for hiding this comment

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

The list of steps below could be ordered. Change "navigating" to "Navigate."

a service user's credentials or by assuming a deployment with a service user.

<details>
<summary>ASF: Create a service user and deployment role</summary>

Choose a reason for hiding this comment

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

Line 108: "Set the account-wide..." -> "Account-wide..."


*Security environment(s): JPL*
##### Roles-as-code for JPL accounts

Choose a reason for hiding this comment

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

Add a note indicating that the following jpl.nasa.gov links are only reachable if you have been given access.

Choose a reason for hiding this comment

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

Or not, idk. There are multiple links in this doc that require permission to access. We could add a disclaimer at the top, or maybe it's not necessary.


In order to integrate a JPL deployment into our CI/CD pipelines, a JPL-created "service user"
is needed to get long-term (90-day) AWS access keys. When requesting a service user, you'll
need to request an appropriate deployment policy containing all the necessary permissions for
deployment is attached to the user. An appropriate deployment policy can be created in a
JPL account by deploying the `hyp3-ci` stack. From the repository root, run:
JPL account by deploying the [JPL CI stack](cicd-stacks/JPL-deployment-ci-cf.yml).

Choose a reason for hiding this comment

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

Broken link

@@ -150,9 +189,13 @@ the `hyp3-ci` CloudFormation Stack Resources.
Once the JPL service user has been created, you should receive a set of AWS Access Keys
which can be used to deploy HyP3 via CI/CD tooling.

### Create Earthdata Login user
> [!IMPORTANT]
> These keys will be stored in the associated JPL-managed AWS account an AWS SecretsManager secret

Choose a reason for hiding this comment

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

Missing an "in": "associated JPL-managed AWS account an AWS SecretsManager" -> "associated JPL-managed AWS account in an AWS SecretsManager"

### Create Earthdata Login user
> [!IMPORTANT]
> These keys will be stored in the associated JPL-managed AWS account an AWS SecretsManager secret
> with the same name as the service user. They automatically rotated by JPL every 90 days and so

Choose a reason for hiding this comment

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

Suggested change
> with the same name as the service user. They automatically rotated by JPL every 90 days and so
> with the same name as the service user. JPL automatically rotates them every 90 days and so

@@ -164,9 +207,7 @@ you will need to create an Earthdata Login user for your deployment if you do no
5. Log into Vertex as the new user, and confirm you can download files, e.g. https://datapool.asf.alaska.edu/METADATA_SLC/SA/S1A_IW_SLC__1SDV_20230130T184017_20230130T184044_047017_05A3C3_381F.iso.xml

Choose a reason for hiding this comment

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

Suggested change
5. Log into Vertex as the new user, and confirm you can download files, e.g. https://datapool.asf.alaska.edu/METADATA_SLC/SA/S1A_IW_SLC__1SDV_20230130T184017_20230130T184044_047017_05A3C3_381F.iso.xml
5. Log into Vertex as a new user and confirm you can download files, e.g. https://datapool.asf.alaska.edu/METADATA_SLC/SA/S1A_IW_SLC__1SDV_20230130T184017_20230130T184044_047017_05A3C3_381F.iso.xml

#### Optional

<details>
<summary>##### JPL: Allow a public HyP3 content bucket for JPL accounts</summary>

Choose a reason for hiding this comment

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

Suggested change
<summary>##### JPL: Allow a public HyP3 content bucket for JPL accounts</summary>
<summary>JPL: Allow a public HyP3 content bucket for JPL accounts</summary>


*Security environment(s): ASF, EDC*
<details>
<summary>##### All: Grant AWS account permission to pull the hyp3-gamma container</summary>

Choose a reason for hiding this comment

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

Suggested change
<summary>##### All: Grant AWS account permission to pull the hyp3-gamma container</summary>
<summary>All: Grant AWS account permission to pull the hyp3-gamma container</summary>

- JPL-public

> [!IMPORTANT]
> JPL deployments _must_ start with the JPL security environment, but can be migrated to the `JPL-public` one

Choose a reason for hiding this comment

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

Suggested change
> JPL deployments _must_ start with the JPL security environment, but can be migrated to the `JPL-public` one
> JPL deployments _must_ start with the JPL security environment, but can be migrated to `JPL-public`

@jtherrmann jtherrmann mentioned this pull request Feb 27, 2025
6 tasks
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.

3 participants