@@ -47,39 +47,45 @@ func Generate(manifestSources []string, valuesSources []string, reconcilerName s
4747
4848 for _ , source := range manifestSources {
4949 // TODO: support helm, oci URLs
50- path := source
5150
52- if info , err := os .Stat (path ); err != nil {
51+ var fsys fs.FS
52+ var path string
53+
54+ source , err := filepath .Abs (source )
55+ if err != nil {
56+ return nil , err
57+ }
58+
59+ if info , err := os .Stat (source ); err != nil {
5360 if os .IsNotExist (err ) {
54- return nil , fmt .Errorf ("no such file or directory: %s" , path )
61+ return nil , fmt .Errorf ("no such file or directory: %s" , source )
5562 } else {
5663 return nil , err
5764 }
58- } else if ! info .IsDir () {
65+ } else if info .IsDir () {
66+ fsys = os .DirFS ("/" )
67+ path = source [1 :]
68+ } else {
5969 tmpdir , err := os .MkdirTemp ("" , "clm-" )
6070 if err != nil {
6171 return nil , err
6272 }
6373 defer os .RemoveAll (tmpdir )
64- if _ , err := copyFile (path , fmt .Sprintf ("%s/%s" , tmpdir , "resources.yaml" )); err != nil {
74+ if _ , err := copyFile (source , fmt .Sprintf ("%s/%s" , tmpdir , "resources.yaml" )); err != nil {
6575 return nil , err
6676 }
67- path = tmpdir
77+ fsys = os .DirFS (tmpdir )
78+ path = ""
6879 }
69- path , err := filepath .Abs (path )
70- if err != nil {
71- return nil , err
72- }
73- fsys := os .DirFS (path )
7480
7581 var generator manifests.Generator
76- if _ , err = fs .Stat (fsys , " Chart.yaml" ); err == nil {
77- generator , err = helm .NewHelmGenerator (fsys , "" , nil )
82+ if _ , err = fs .Stat (fsys , filepath . Clean ( path + "/ Chart.yaml") ); err == nil {
83+ generator , err = helm .NewHelmGenerator (fsys , path , nil )
7884 if err != nil {
7985 return nil , err
8086 }
8187 } else if errors .Is (err , fs .ErrNotExist ) {
82- generator , err = kustomize .NewKustomizeGenerator (fsys , "" , nil , kustomize.KustomizeGeneratorOptions {})
88+ generator , err = kustomize .NewKustomizeGenerator (fsys , path , nil , kustomize.KustomizeGeneratorOptions {})
8389 if err != nil {
8490 return nil , err
8591 }
@@ -88,17 +94,17 @@ func Generate(manifestSources []string, valuesSources []string, reconcilerName s
8894 }
8995
9096 releaseComponent := componentFromRelease (release , allValues )
91- // TODO: what about component digest
97+
9298 generateCtx := component .NewContext (context .TODO ()).
9399 WithReconcilerName (reconcilerName ).
94100 WithLocalClient (clnt ).
95101 WithClient (clnt ).
96102 WithComponent (releaseComponent ).
97- WithComponentName (releaseComponent .GetName () ).
98- WithComponentNamespace (releaseComponent .GetNamespace () ).
99- WithComponentDigest ("" ).
100- WithComponentRevision (releaseComponent .GetStatus () .Revision )
101- objects , err := generator .Generate (generateCtx , release . GetNamespace (), release . GetName () , types .UnstructurableMap (allValues ))
103+ WithComponentName (releaseComponent .Name ).
104+ WithComponentNamespace (releaseComponent .Namespace ).
105+ WithComponentDigest (releaseComponent . Status . ProcessingDigest ).
106+ WithComponentRevision (releaseComponent .Status .Revision )
107+ objects , err := generator .Generate (generateCtx , releaseComponent . Namespace , releaseComponent . Name , types .UnstructurableMap (allValues ))
102108 if err != nil {
103109 return nil , err
104110 }
0 commit comments