Skip to content

Commit

Permalink
Issue #615 - have PackageVariant set readiness gate on PackageRevisions
Browse files Browse the repository at this point in the history
- PackageVariant controller now uses a readiness gate to allow
  a PackageRevision to complete its mutation pipeline before it
  is allowed to be proposed/approved
- refactored conversion of Kptfiles to YAML since readiness condition
  information is stored in the package Kptfile
  - unified all cases to the same kyaml/yaml-based method
    (KptFile.ToYamlString() and ToYamlString(*fn.KubeObject))
  - this ensures consistency in the YAML (indentation, field order etc.)
  - and reduces the chances of Git conflicts when setting and updating
    readiness conditions
- added more info to error message in case of Git conflict when applying
  a patch

nephio-project/nephio#615
  • Loading branch information
JamesMcDermott committed Dec 17, 2024
1 parent 63471cc commit 95f96bc
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions pkg/task/generictaskhandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"context"
"fmt"

sdkfn "github.com/GoogleContainerTools/kpt-functions-sdk/go/fn"
api "github.com/nephio-project/porch/api/porch/v1alpha1"
configapi "github.com/nephio-project/porch/api/porchconfig/v1alpha1"
"github.com/nephio-project/porch/internal/kpt/builtins"
Expand Down Expand Up @@ -527,6 +528,17 @@ func healConfig(old, new map[string]string) (map[string]string, error) {

healed := out.output.Contents

var kptfileKubeObject *sdkfn.KubeObject
if kptfileKubeObject, err = sdkfn.ParseKubeObject([]byte(healed[kptfile.KptFileName])); err != nil {
return nil, err
}

kptfileYaml, err := kptfile.ToYamlString(kptfileKubeObject)
if err != nil {
return nil, err
}
healed[kptfile.KptFileName] = kptfileYaml

for k, v := range extra {
healed[k] = v
}
Expand Down

0 comments on commit 95f96bc

Please sign in to comment.