| 373 | } |
| 374 | |
| 375 | func checkOwnership(d *diffCmd, resources kube.ResourceList, currentSpecs map[string]*manifest.MappingResult) (map[string]diff.OwnershipDiff, error) { |
| 376 | newOwnedReleases := make(map[string]diff.OwnershipDiff) |
| 377 | err := resources.Visit(func(info *resource.Info, err error) error { |
| 378 | if err != nil { |
| 379 | return err |
| 380 | } |
| 381 | |
| 382 | helper := resource.NewHelper(info.Client, info.Mapping) |
| 383 | currentObj, err := helper.Get(info.Namespace, info.Name) |
| 384 | if err != nil { |
| 385 | if !apierrors.IsNotFound(err) { |
| 386 | return err |
| 387 | } |
| 388 | return nil |
| 389 | } |
| 390 | |
| 391 | var result *manifest.MappingResult |
| 392 | var oldRelease string |
| 393 | if d.includeTests { |
| 394 | result, oldRelease, err = manifest.ParseObject(currentObj, d.namespace) |
| 395 | } else { |
| 396 | result, oldRelease, err = manifest.ParseObject(currentObj, d.namespace, manifest.Helm3TestHook, manifest.Helm2TestSuccessHook) |
| 397 | } |
| 398 | |
| 399 | if err != nil { |
| 400 | return err |
| 401 | } |
| 402 | |
| 403 | newRelease := d.namespace + "/" + d.release |
| 404 | if oldRelease == newRelease { |
| 405 | return nil |
| 406 | } |
| 407 | |
| 408 | newOwnedReleases[result.Name] = diff.OwnershipDiff{ |
| 409 | OldRelease: oldRelease, |
| 410 | NewRelease: newRelease, |
| 411 | } |
| 412 | currentSpecs[result.Name] = result |
| 413 | |
| 414 | return nil |
| 415 | }) |
| 416 | return newOwnedReleases, err |
| 417 | } |
| 418 | |
| 419 | func prepareEnvSettings(kubeContext string) *cli.EnvSettings { |
| 420 | localEnv := cli.New() |