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

Support for refresh --with-dependents #16033

Open
EronWright opened this issue Apr 22, 2024 · 2 comments
Open

Support for refresh --with-dependents #16033

EronWright opened this issue Apr 22, 2024 · 2 comments
Labels
area/cli UX of using the CLI (args, output, logs) area/engine Pulumi engine kind/enhancement Improvements or new features

Comments

@EronWright
Copy link
Contributor

EronWright commented Apr 22, 2024

Hello!

  • Vote on this issue by adding a 👍 reaction
  • If you want to implement this feature, comment to let us know (we'll work with you on design, scheduling, etc.)

Issue details

A follow-up to this comment about supporting a targeted refresh with dependents.

Note that pulumi up --refresh --with-dependents -t ... doesn't work as expected today, because the refresh phase doesn't seem to include the dependents, and so Pulumi doesn't learn about any potential drift of the children.

Affected area/feature

@EronWright EronWright added area/cli UX of using the CLI (args, output, logs) kind/enhancement Improvements or new features needs-triage Needs attention from the triage team area/engine Pulumi engine labels Apr 22, 2024
@EronWright
Copy link
Contributor Author

To repro, simply deploy a ConfigGroup containing a ConfigMap:

name: issue-1642
runtime: yaml
resources:
  cg:
    type: kubernetes:yaml/v2:ConfigGroup
    properties:
      objs:
      - apiVersion: v1
        kind: ConfigMap
        metadata:
          name: issue-1642

Delete the ConfigMap using kubectl, then try to get Pulumi to learn that it's gone without a full refresh:

❯ pulumi refresh -t urn:pulumi:dev::issue-1642::kubernetes:yaml/v2:ConfigGroup::myConfigGroup --target-dependents
Error: unknown flag: --target-dependents

❯ pulumi refresh -t urn:pulumi:dev::issue-1642::kubernetes:yaml/v2:ConfigGroup::myConfigGroup
Previewing refresh (dev)

     Type                               Name            Plan     
     pulumi:pulumi:Stack                issue-1642-dev           
     └─ kubernetes:yaml/v2:ConfigGroup  myConfigGroup            

Resources:
    1 unchanged

❯ pulumi up -t urn:pulumi:dev::issue-1642::kubernetes:yaml/v2:ConfigGroup::myConfigGroup --target-dependents --refresh
Previewing update (dev)

     Type                               Name            Plan     
     pulumi:pulumi:Stack                issue-1642-dev           
     └─ kubernetes:yaml/v2:ConfigGroup  myConfigGroup            

Resources:
    3 unchanged

Do you want to perform this update? yes
Updating (dev)

     Type                               Name            Status     
     pulumi:pulumi:Stack                issue-1642-dev             
     └─ kubernetes:yaml/v2:ConfigGroup  myConfigGroup              

Resources:
    3 unchanged

Duration: 1s

❯ pulumi refresh
Previewing refresh (dev)

     Type                                Name                           Plan       
     pulumi:pulumi:Stack                 issue-1642-dev                            
     └─ kubernetes:yaml/v2:ConfigGroup   myConfigGroup                             
 -      └─ kubernetes:core/v1:ConfigMap  myConfigGroup:eron/issue-1642  delete     

Resources:
    - 1 to delete
    2 unchanged

@Frassle
Copy link
Member

Frassle commented Apr 22, 2024

We already have --target-dependents for other commands, we should just be consistent and support that for refresh as well.

@Frassle Frassle removed the needs-triage Needs attention from the triage team label Apr 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/cli UX of using the CLI (args, output, logs) area/engine Pulumi engine kind/enhancement Improvements or new features
Projects
None yet
Development

No branches or pull requests

2 participants