Skip to content
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

Update README.md #4

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ It supports AWS SSO login (via `aws-vault`) to fetch the CodeArtifact authentica
pip3 install git+ssh://[email protected]/cultureamp/poetry-codeartifact-auth.git
```

(you will need [Github SSH Authentication](https://docs.github.com/en/authentication/connecting-to-github-with-ssh) set up already. Alternatively you can probably set up HTTPS authentication use the `https` URL). See notes below about package publication status. The intent is to install this globally (but if you have global dependency conflicts you could create a custom virtual environment and set up a command alias to run in the virtual environment. This is likely not needed though).
(you will need [Github SSH Authentication](https://docs.github.com/en/authentication/connecting-to-github-with-ssh) set up already. Alternatively you can probably set up HTTPS authentication use the `https` URL). See notes below about package publication status.

[*For venv users*] The intent is to install this globally (but if you have global dependency conflicts you could create a custom virtual environment and set up a command alias to run in the virtual environment. This is likely not needed though).

[*For conda users*] Install in base (or any other clean) env. Create new virtual environments off of base (or your clean env with `poetry-ca-auth` installed) by running `conda create --clone base --name my-virtual-env-name` , then activate your virtual env `conda activate my-virtual-env-name`.

2. If not already added, add the CodeArtifact repository URL to your `pyproject.toml`. The URL will look something like `https://yourorg-python-ci-12346789012.d.codeartifact.us-west-2.amazonaws.com/pypi/some-named-private-python-repo/simple`. Follow Poetry's [instructions](https://python-poetry.org/docs/repositories/#secondary-package-sources) for adding this. The CodeArtifact `domain`, `domainOwner` (AWS account ID) and `region` are inferred from the repository URL when fetching auth credentials.

Expand Down Expand Up @@ -73,7 +77,8 @@ you can simply run `docker compose build yourapp` and it will automatically pick

#### `aws-vault` (recommended)

If using `aws-vault`, ensure that you have a profile available which has permissions to fetch CodeArtifact authentication tokens. You can configure the profile using an environment variable `POETRY_CA_DEFAULT_AWS_PROFILE` (probably in your login shell profile – eg `.bashrc`) or pass to the `refresh` subcommand using the `--profile-default` argument.
If using `aws-vault`, ensure that you have a profile available which has permissions to fetch CodeArtifact authentication tokens (e.g. assume the `CiUserRole` in the `cultureamp-continuous-integration` account). You can configure the profile using an environment variable `POETRY_CA_DEFAULT_AWS_PROFILE` (probably in your login shell profile – eg `.bashrc` or `.zshrc`) or pass to the `refresh` subcommand using the `--profile-default` argument. More info on profile configuation for AWS vault [here](https://cultureamp.atlassian.net/wiki/spaces/SEC/pages/2744649490/AWS+SSO+Okta+-+User+Guides#Generating-a-CultureAmp-configuration-file)
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
If using `aws-vault`, ensure that you have a profile available which has permissions to fetch CodeArtifact authentication tokens (e.g. assume the `CiUserRole` in the `cultureamp-continuous-integration` account). You can configure the profile using an environment variable `POETRY_CA_DEFAULT_AWS_PROFILE` (probably in your login shell profile – eg `.bashrc` or `.zshrc`) or pass to the `refresh` subcommand using the `--profile-default` argument. More info on profile configuation for AWS vault [here](https://cultureamp.atlassian.net/wiki/spaces/SEC/pages/2744649490/AWS+SSO+Okta+-+User+Guides#Generating-a-CultureAmp-configuration-file)
If using `aws-vault`, ensure that you have a profile available which has permissions to fetch CodeArtifact authentication tokens (e.g. assume the `CiUserRole` in the `cultureamp-continuous-integration` account). You can configure the profile using an environment variable `POETRY_CA_DEFAULT_AWS_PROFILE` (probably in your login shell profile – eg `.bashrc` or `.zshrc`) or pass to the `refresh` subcommand using the `--profile-default` argument.

we need to keep CA-specific info out of here so we can open-source it (pending legal approval)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oh that complicates things - and explains why I found fortuitously found related confluence pages with alternative info for this repo. Ideally, it would be great for CA people to have the info they need to get set up and running with this quickly (without needing to scroll though several length confluence pages and reading between the lines). Let's discuss on screen share later today.

Copy link
Contributor

Choose a reason for hiding this comment

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

sure, that can be solved by updating the wiki

e.g. usage `aws-vault --debug login $POETRY_CA_DEFAULT_AWS_PROFILE`
Copy link
Contributor

Choose a reason for hiding this comment

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

what is this? did you want a pre-amble like "if this doesn't work you can check that aws-vault is working correctly like so"?

(to be clear you never need to invoke aws-vault directly in normal usage – maybe the docs should note this?)


### AWS credentials from the environment

Expand Down