dry-journalist-60579
03/16/2023, 10:40 PMrole/aws-reserved/sso.amazonaws.com/AWSReservedSSO_AWSAdministratorAccess_xxxxxxxxx (the role I am logged into via the CLI)
=> assumes
role/service-role/AWSControlTowerAdmin (via Pulumi.<stack>.yaml config var aws:assumeRole.roleArn)
=> assumes
role/AWSControlTowerExecution (via `aws.Provider` in the Pulumi code)
locally this works. When running via Pulumi Deployments it doesn’t seem to. The Deployment “configuration” seems to show the correct aws:assumeRole
value but it doesn’t get assumed. It basically skips the middle assumption and uses the Deployment role to try to directly assume the 3rd role, AWSControlTowerExecution and it fails.
If anything I’d expect to see that assumed-role/PulumiOIDC/pulumi
cannot assume role/service-role/AWSControlTowerAdmin
or that role/service-role/AWSControlTowerAdmin
cannot assume role/AWSControlTowerExecution
, but I’m getting assumed-role/PulumiOIDC/pulumi
cannot assume role/AWSControlTowerExecution
.
This makes me think that the deploy executor is not respecting the Pulumi.<stack>.yaml
configuration…dry-journalist-60579
03/22/2023, 7:10 PMpulumi up
on every commit that happens on a branch, say, the main
branch. This would mean that only after you merge a PR does pulumi
run. What do people do to preview changes during the branch development?lemon-agent-27707
03/25/2023, 6:17 PMlemon-agent-27707
03/29/2023, 3:27 PMelegant-gigabyte-8733
03/29/2023, 9:55 PMbrief-car-60542
03/31/2023, 10:43 PMfresh-spring-82225
04/28/2023, 3:37 PMfresh-spring-82225
04/28/2023, 6:56 PMfresh-spring-82225
04/29/2023, 1:20 AMfresh-spring-82225
05/02/2023, 6:01 PMarn:aws:sts::MGT_ACCT_ID:assumed-role/PulumiOIDC/pulumi
in my control tower management account
• in Pulumi.dev.yaml
I have aws:assumeRole
set to arn:aws:iam::APP_ACCT_ID:role/AWSControlTowerExecution
• when I log the result of aws.getCallerIdentity
I get arn:aws:sts::APP_ACCT_ID:assumed-role/AWSControlTowerExecution/aws-go-sdk-1683049420464527015
, which shows me that `aws:assumeRole`is working
• … but I’m no longer able to push a docker image to ecr. It seems the code invoked by docker.Image
doesn’t use the role given by `aws:assumeRole`:
docker:index:Image APP_IMAGE updating (1s) [diff: ~build];
warning: Failed to pull cached image <http://APP_ACCT_ID.dkr.ecr.us-east-2.amazonaws.com/APP_REPO:latest|APP_ACCT_ID.dkr.ecr.us-east-2.amazonaws.com/APP_REPO:latest>:
Error pulling cached image <http://APP_ACCT_ID.dkr.ecr.us-east-2.amazonaws.com/APP_REPO:latest|APP_ACCT_ID.dkr.ecr.us-east-2.amazonaws.com/APP_REPO:latest>:
Error response from daemon: pull access denied for <http://APP_ACCT_ID.dkr.ecr.us-east-2.amazonaws.com/APP_REPO|APP_ACCT_ID.dkr.ecr.us-east-2.amazonaws.com/APP_REPO>,
repository does not exist or may require 'docker login': denied:
User: arn:aws:sts::MGT_ACCT_ID:assumed-role/PulumiOIDC/pulumi is not authorized
to perform: ecr:BatchGetImage on resource: arn:aws:ecr:us-east-2:APP_ACCT_ID:repository/APP_REPO
because no resource-based policy allows the ecr:BatchGetImage action
brief-car-60542
05/10/2023, 9:52 PM* error creating S3 bucket ACL for <bucket name>: AccessDenied: Access Denied
damp-honey-93158
05/23/2023, 11:59 PMproud-pizza-80589
05/29/2023, 12:42 PMsh -c "$(curl --location <https://taskfile.dev/install.sh>)" -- -d -b .bin
curl -sLS <https://get.arkade.dev> | sh
arkade get yq
mv /root/.arkade/bin/yq /usr/local/bin/
./.bin/task codegen:charts
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] <https://packages.cloud.google.com/apt> cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl <https://packages.cloud.google.com/apt/doc/apt-key.gpg> | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
apt-get update
apt-get install google-cloud-sdk google-cloud-sdk-gke-gcloud-auth-plugin
echo "$GOOGLE_CREDENTIALS" > creds.json
gcloud auth activate-service-account --key-file=creds.json
• i prefer to put my secrets in the pulumi config, but for AWS just setting the accessKey and secret in there does not work, so i have to add the env vars in the UI
• i have not pulumified the deployments setup, but i would love to set up deployments and the webhooks up at a project level, as my projects are 10-20 stacks of the same things (e.g. clusters in different cloud providers in different regions)proud-pizza-80589
05/29/2023, 2:01 PMglamorous-van-95411
05/30/2023, 12:52 PMelegant-gigabyte-8733
06/07/2023, 2:49 PMfull-dress-10026
06/11/2023, 8:06 PMfull-dress-10026
06/12/2023, 3:17 PMelegant-gigabyte-8733
06/12/2023, 10:09 PMconst customImage = new docker.Image("customImage", {
imageName: `${registry.server}/${imageName}`,
build: {
context: "./path/to/your/dockerfile",
},
registry: {
server: registry.server,
username: registry.username,
password: registry.password,
},
});
lemon-agent-27707
06/14/2023, 4:21 PMfull-dress-10026
06/14/2023, 4:41 PMfull-dress-10026
06/16/2023, 3:26 PMpulumi config
cli calls in the pre-run commands?most-doctor-6103
06/18/2023, 10:46 PMlemon-agent-27707
06/20/2023, 4:57 PMelegant-gigabyte-8733
06/22/2023, 11:05 PMup
command. I’m only running on command at a time on the project and stack.elegant-gigabyte-8733
06/22/2023, 11:08 PMjobs:
deploy:
name: Deploy Development
runs-on: ubuntu-latest
environment: dev
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}
- name: Install Dependencies
run: |
cd sync-driver-auth-service
yarn install
cd ../sync-service-cr-creator
yarn install
cd ../sync-service-cr-resolver
yarn install
cd ../sync-service-streamos-sync
yarn install
cd ../sync-service-webhook-service
yarn install
- run: npm install
working-directory: infrastructure
- uses: pulumi/actions@v3
with:
command: up
stack-name: dev
work-dir: infrastructure
env:
PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }}
straight-fireman-55591
06/27/2023, 11:02 AMpulumi version
v3.73.0
export GOOGLE_APPLICATION_CREDENTIALS=$(cat key.json)
✅
echo $GOOGLE_APPLICATION_CREDENTIALS
✅
echo $GOOGLE_APPLICATION_CREDENTIALS | jq .
✅
gcloud auth activate-service-account --key-file=$GOOGLE_APPLICATION_CREDENTIALS
✅
pulumi config set gcp:project <redacted>
❌
error: missing google credentials: unable to find gcp credentials: google: error getting credentials using GOOGLE_APPLICATION_CREDENTIALS environment variable: open {
"type": "service_account",
"project_id": "redacted",
"private_key_id": "redacted",
"private_key": "-----BEGIN PRIVATE KEY-----\redacted\n-----END PRIVATE KEY-----\n",
"client_email": "redacted@redacted",
"client_id": "redacted",
"auth_uri": "redacted",
"token_uri": "redacted",
"auth_provider_x509_cert_url": "redacted",
"client_x509_cert_url": "redacted",
"universe_domain": "redacted"
}: file name too long
pulumi config set --secret gcp:credentials ./key.json
❌
error: missing google credentials: unable to find gcp credentials: google: error getting credentials using GOOGLE_APPLICATION_CREDENTIALS environment variable: open {
"type": "service_account",
"project_id": "redacted",
"private_key_id": "redacted",
"private_key": "-----BEGIN PRIVATE KEY-----\redacted\n-----END PRIVATE KEY-----\n",
"client_email": "redacted@redacted",
"client_id": "redacted",
"auth_uri": "redacted",
"token_uri": "redacted",
"auth_provider_x509_cert_url": "redacted",
"client_x509_cert_url": "redacted",
"universe_domain": "redacted"
}: file name too long
straight-fireman-55591
06/27/2023, 11:34 AMpulumi config set gcp:credentials ${GOOGLE_APPLICATION_CREDENTIALS}
pulumi login <gs://bucket>
s there a bug in Pulumi as I get an error: error: PULUMI_ACCESS_TOKEN must be set for login during non-interactive CLI sessions
lemon-agent-27707
06/27/2023, 3:28 PMlemon-agent-27707
06/27/2023, 3:28 PM