Commit Graph

922 Commits

Author SHA1 Message Date
Jingfang Liu edee25bd85 capture the apply/reconcile status in the inventory object
Capture the apply status for individual resources after each apply.
If the inventory object supports status field, it is updated
after setting the inventory list at then of one apply process.

BREAKING CHANGE: Update the inventory client and inventory interfaces
to pass the apply/reconcile status.
2022-02-02 09:54:59 -08:00
Kubernetes Prow Robot 5fb19a18af
Merge pull request #488 from karlkfi/karl-validation-event
feat: Add ValidationPolicy & ValidationEvent
2022-01-27 16:12:45 -08:00
Kubernetes Prow Robot 95da18d7b5
Merge pull request #515 from mortent/UseDynamicClientInInventoryClient
fix: Use the dynamic client in the InventoryClient
2022-01-26 10:30:00 -08:00
Karl Isenberg 9acdbce963 feat: Add ValidationPolicy & ValidationEvent
- Add ValidationPolicy:
  ExitEarly (default) - exit before apply/prune if any objects are invalid
  SkipInvalid - apply/prune valid objects & skip invalid ones
- Add ValidationEvent to be sent once for every invalid object or set of
  objects, when the SkipInvalid policy is selected. For ExitEarly,
  return an error for reverse compatibility.
- Add validation.Collector to simplify aggregating validation errors
  from multiple sources and extracting invalid object IDs.
- Add invalid objects to the TestContext so they can be retained in
  the inventory (only if already present). This primarily applies to
  invalid annotations and dependencies. Objects without name or kind
  should never be added to the inventory.
- Update Solver to use validation.Collector and filter invalid objects.
- Add e2e test for invalid objects.
- Update Printers to handle ValidationEvent
- Add ExternalDependencyError & InvalidAnnotationError to make it easier
  to handle and introspect validation errors.
2022-01-25 12:36:02 -08:00
Morten Torkildsen 8325b7f6c4 fix: Use the dynamic client in the InventoryClient 2022-01-24 19:35:45 -08:00
Kubernetes Prow Robot d45357db63
Merge pull request #517 from ash2k/ash2k/reset-mapper
fix: remove reflection hack
2022-01-24 13:47:14 -08:00
Kubernetes Prow Robot afa09f773a
Merge pull request #516 from mortent/StopMergeInventoriesSupport
fix: Remove support for multiple inventory objects with the same inventory id
2022-01-24 10:30:58 -08:00
Mikhail Mazurskiy 0af069f2c5
chore!: remove RESTMapper caching as it's no longer needed
It's cached upstream now https://github.com/kubernetes/kubernetes/pull/103900

BREAKING CHANGE: CachingRESTClientGetter is removed
2022-01-24 15:11:52 +11:00
Mikhail Mazurskiy 7b398fa33a
fix: remove reflection hack
Reset RESTMapper using the new API rather than using reflection.
2022-01-23 14:46:39 +11:00
Kubernetes Prow Robot 8ece5e310b
Merge pull request #513 from karlkfi/karl-mapper-compare
fix: Improve solver tests
2022-01-22 18:43:56 -08:00
Morten Torkildsen 2fa891e701 fix: Remove support for multiple inventory objects with the same inventory id 2022-01-22 16:28:10 -08:00
Karl Isenberg 6536f948a8 fix: Improve solver tests
- Make FakeRESTMapper comparable
- Add Comparer for WaitTask
- Add Asserter to allow pre-configuring comparison options for Equal/NotEqual
- Update solver tests to use Asserter for task list comparison (more actionable errors)
2022-01-21 11:12:44 -08:00
Kubernetes Prow Robot dbf1979908
Merge pull request #497 from ash2k/ash2k/kubernetes-1.23
Update dependencies to Kubernetes v1.23.1
2022-01-21 11:05:20 -08:00
Mikhail Mazurskiy df4661a8f5
chore: fix linter failures 2022-01-21 12:57:11 +11:00
Mikhail Mazurskiy 64e15191f3
chore!: require Go 1.17
Kubernetes 1.23 libraries require Go 1.17 already.

BREAKING CHANGE: this might break library consumers
2022-01-21 12:57:11 +11:00
Mikhail Mazurskiy 324950da0c
chore!: update dependencies to Kubernetes v1.23.2
BREAKING CHANGE: this might break library consumers
2022-01-21 12:54:03 +11:00
Kubernetes Prow Robot 8efddc3383
Merge pull request #512 from karlkfi/karl-edge-sorting
fix: Make CyclicDependencyError edges stable
2022-01-19 18:49:51 -08:00
Karl Isenberg 6abffa8abe fix: Make CyclicDependencyError edges stable
- Add sorting for Edges & Verticies
- Improve tests that contain CyclicDependencyError
2022-01-19 15:24:39 -08:00
Kubernetes Prow Robot eef250b780
Merge pull request #511 from karlkfi/karl-inject-context
fix: Merge task runner impls into taskStatusRunner
2022-01-19 15:19:31 -08:00
Karl Isenberg 2861fb9be4 fix: Merge task runner impls into taskStatusRunner
- Delete taskRunner & baseRunner
- Add short strings for ResourceAction enums
- Add detail to task errors
- Modify taskStatusRunner.Run to take TaskContext instead of
  eventChannel and resouceCache.
- Update runner tests to use fakePoller

BREAKING CHANGE: Changed taskStatusRunner.Run function signature
2022-01-19 13:06:06 -08:00
Kubernetes Prow Robot 8cfbb396a7
Merge pull request #510 from karlkfi/karl-hash
fix: Update ObjMetadataSet.Hash to not error
2022-01-19 11:37:55 -08:00
Karl Isenberg a42a1517d4 fix: Update ObjMetadataSet.Hash to not error 2022-01-19 11:15:08 -08:00
Kubernetes Prow Robot 1dddc9ee64
Merge pull request #508 from karlkfi/karl-multierror
feat: MultiError for invalid annotations
2022-01-12 15:43:08 -08:00
Karl Isenberg f67aaa87ac feat: MultiError for invalid annotations
- Move Validator to pkg/object/validation
- Replace ValidationError with validation.Error
- Replace MultiValidationError with generic MultiError
- Update Validator & SortObjs to use MultiError
- Add ResourceReferenceFromObjMetadata
- Rename NewResourceReference -> ResourceReferenceFromUnstructured
- Delete duplicate ResourceReference.ObjMetadata()
- Modify some error messages for consistency and clarity
- Use templating to generate some test artifacts

BREAKING CHANGE: apply-time-mutation namespace required for namespace-scoped resources
2022-01-12 15:24:53 -08:00
Kubernetes Prow Robot 0c9b214db3
Merge pull request #500 from mortent/ApplyReconcileFailedError
feat: Return a specific error type from the printers when resources fail to apply/delete/reconcile
2022-01-10 16:19:16 -08:00
Morten Torkildsen 66c63637b4 feat: Return a specific error type from the printers when resources fail to apply/delete/reconcile 2022-01-10 14:00:02 -08:00
Kubernetes Prow Robot d7d63f4b62
Merge pull request #505 from karlkfi/karl-no-die
fix: Don't panic when ObjMetadata is invalid (missing kind/name)
2022-01-07 19:27:03 -08:00
Kubernetes Prow Robot 473b46a0e3
Merge pull request #507 from karlkfi/karl-field-builder
fix: Clean up object.FieldPath
2022-01-07 18:57:04 -08:00
Karl Isenberg 242b6aa83e fix: Don't panic when ObjMetadata is invalid
- UnstructuredToObjMetaOrDie -> UnstructuredToObjMetadata
- UnstructuredToObjMeta -> UnstructuredToObjectMetadata
- UnstructuredsToObjMetasOrDie -> UnstructuredSetToObjMetadataSet
- UnstructuredsToObjMetas -> UnstructuredSetToObjMetadataSet
- Remove CreateObjMetadata (Validator performs validation)
2022-01-07 18:50:30 -08:00
Karl Isenberg a0743e6912 fix: Clean up object.FieldPath
- Use string.Builder to be slightly more efficient
- Format invalid types with Go syntax, wrapped with brackets
- Test that invalid types don't panic
2022-01-07 18:27:57 -08:00
Kubernetes Prow Robot 476197d25b
Merge pull request #506 from karlkfi/karl-field-errors
fix: Handle more validation errors as field errors
2022-01-07 17:45:05 -08:00
Kubernetes Prow Robot 6e629daf4c
Merge pull request #501 from mortent/NoPreviewInEventOutput
fix: Remove preview/dry-run type from events output
2022-01-07 15:35:33 -08:00
Morten Torkildsen 1b68c32813 fix: Remove preview/dry-run type from events output 2022-01-07 14:55:21 -08:00
Kubernetes Prow Robot b7ca8e70c8
Merge pull request #504 from mortent/AlignJsonOutputWithEvents
json printer should only print stats after last action group per type
2022-01-07 13:34:35 -08:00
Karl Isenberg fb98bc7877 fix: Handle more validation errors as field errors
- Using field.Error allows more errors to be wrapped as a
  ValidationError, instead of interrupting validation and exiting
  early.
- Add explicit validation for kind (clearer error).
- Move NestedField from testutil to object, so it can be used at
  runtime.
2022-01-07 12:06:43 -08:00
Morten Torkildsen 8c0597363b json printer should only print summary after last action group per type 2022-01-05 21:41:45 -08:00
Kubernetes Prow Robot b88d9e21a0
Merge pull request #498 from mortent/RemovePrintStatusEvents
Don't print status for all events for reach WaitEvent
2021-12-22 16:10:37 -08:00
Morten Torkildsen df4fca5066 Don't print status for all events for reach WaitEvent 2021-12-22 17:13:38 +01:00
Kubernetes Prow Robot 830d33a4f5
Merge pull request #496 from mortent/AllowForCustomStatusReaders
Remove StatusPoller factory and support custom status readers
2021-12-16 14:46:52 -08:00
Morten Torkildsen f33a0cdb32 Remove StatusPoller factory and support custom status readers 2021-12-16 19:38:10 +01:00
Kubernetes Prow Robot 3064f8b728
Merge pull request #495 from mortent/BetterStatusReaderMapping
More flexible resource type to StatusReader mapping
2021-12-15 11:53:51 -08:00
Morten Torkildsen bab47d977a More flexible resource type to StatusReader mapping 2021-12-15 17:32:53 +01:00
Kubernetes Prow Robot 9877151bdf
Merge pull request #494 from mortent/VerifyOutputFlag
Validate the value of the output flag
2021-12-09 15:21:05 -08:00
Morten Torkildsen 9caaf2a225 Validate the value of the output flag 2021-12-09 19:35:19 +01:00
Kubernetes Prow Robot 5b83428a27
Merge pull request #490 from mortent/ReconcileFailedE2eTests
Add e2e tests for reconciliation failure and timeout
2021-12-07 15:45:11 -08:00
Kubernetes Prow Robot 50f9ac8d87
Merge pull request #492 from mortent/ReconcileFailedForPrinters
Support ReconcileFailed status in printers
2021-12-07 15:26:36 -08:00
Kubernetes Prow Robot 99884712c2
Merge pull request #493 from mortent/RemoveTimeoutError
Remove unused TimeoutError code
2021-12-07 13:40:36 -08:00
Kubernetes Prow Robot 3ee66c1fa8
Merge pull request #491 from mortent/FixTableOutputAction
Fix missing action value in table output
2021-12-07 13:18:36 -08:00
Morten Torkildsen 602301ecfa Remove unused TimeoutError code 2021-12-07 18:49:34 +01:00
Morten Torkildsen ab7b47b086 Fix missing action value in table output 2021-12-07 17:37:38 +01:00