Skip to content

Don't exit at first error but continues and summarizes all the found ones at the end of execution #426

Closed
@N00BEST

Description

@N00BEST

Describe the problem/challenge you have
We want to use kapp to reconcile our e2e tests. We're trying to deploy multiple CRs that don't depend on each other, they can be deployed in parallel. There's no dependency between CRs, so if any of those fails it should not stop the other ones from being reconciled. Currently the kapp command is exiting as soon as it finds an error, with a message like this one:

kapp: Error: waiting on reconcile customresource/resource-name namespace: default:
  Finished unsuccessfully (Encountered failure condition Succeeded == False: Error (message: The job did not complete successfully))

So we're not getting feedback about the success/failure of all the other CRs that were trying to get reconciled.

Describe the solution you'd like
We would like a new CLI argument (e.g.: --ignore-errors or --no-abort) or a new configuration field to indicate to the kapp CLI to wait for all the possible results before exiting, indicating which ones failed in which steps of the reconciliation process.

Output would look like: "Reconciled 10/20. Finished unsuccessfully: 5. Finished successfully: 5. Not deployed: 10."

Anything else you would like to add:
The configuration file we're using to replicate this issue looks something like this:

apiVersion: kapp.k14s.io/v1alpha1
kind: Config

waitRules:
  - supportsObservedGeneration: true
    conditionMatchers:
      - type: Succeeded
        status: "True"
        success: true
      - type: Succeeded
        status: "False"
        failure: true
    resourceMatchers:
      - andMatcher:
          matchers:
            - apiVersionKindMatcher: {apiVersion: my-custom-resource-definition.com/v1beta1, kind: CustomResource}
            - hasAnnotationMatcher: { keys: [kapp-matcher-success] }
  - supportsObservedGeneration: true
    conditionMatchers:
      - type: Succeeded
        status: "False"
        success: true
      - type: Succeeded
        status: "True"
        failure: true
    resourceMatchers:
      - andMatcher:
          matchers:
            - apiVersionKindMatcher: {apiVersion: my-custom-resource-definition.com/v1beta1, kind: CustomResource}
            - hasAnnotationMatcher: { keys: [kapp-matcher-failure] }

Vote on this request

This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.

👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"

We are also happy to receive and review Pull Requests if you want to help working on this issue.

Metadata

Metadata

Assignees

Labels

carvel acceptedThis issue should be considered for future work and that the triage process has been completeddiscussionThis issue is not a bug or feature and a conversation is needed to find an appropriate resolutionenhancementThis issue is a feature requestpriority/important-soonMust be staffed and worked on currently or soon.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions