@@ -26,11 +26,11 @@ import (
26
26
"github.com/operator-framework/deppy/pkg/deppy/solver"
27
27
rukpakv1alpha1 "github.com/operator-framework/rukpak/api/v1alpha1"
28
28
"k8s.io/apimachinery/pkg/runtime"
29
+ "k8s.io/apimachinery/pkg/runtime/serializer"
29
30
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
30
31
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
31
32
_ "k8s.io/client-go/plugin/pkg/client/auth"
32
- "sigs.k8s.io/controller-runtime/pkg/client"
33
- "sigs.k8s.io/controller-runtime/pkg/client/config"
33
+ "sigs.k8s.io/controller-runtime/pkg/client/fake"
34
34
35
35
catalogd "github.com/operator-framework/catalogd/pkg/apis/core/v1beta1"
36
36
operatorsv1alpha1 "github.com/operator-framework/operator-controller/api/v1alpha1"
@@ -45,10 +45,13 @@ const (
45
45
flagNamePackageVersion = "package-version"
46
46
flagNamePackageChannel = "package-channel"
47
47
flagNameIndexRef = "index-ref"
48
+ flagNameInputDir = "input-dir"
48
49
)
49
50
50
51
var (
51
52
scheme = runtime .NewScheme ()
53
+
54
+ codecs = serializer .NewCodecFactory (scheme )
52
55
)
53
56
54
57
func init () {
@@ -65,27 +68,29 @@ func main() {
65
68
var packageVersion string
66
69
var packageChannel string
67
70
var indexRef string
71
+ var inputDir string
68
72
flag .StringVar (& packageName , flagNamePackageName , "" , "Name of the package to resolve" )
69
73
flag .StringVar (& packageVersion , flagNamePackageVersion , "" , "Version of the package" )
70
74
flag .StringVar (& packageChannel , flagNamePackageChannel , "" , "Channel of the package" )
71
75
// TODO: Consider adding support of multiple refs
72
76
flag .StringVar (& indexRef , flagNameIndexRef , "" , "Index reference (FBC image or dir)" )
77
+ flag .StringVar (& inputDir , flagNameInputDir , "" , "Directory containing yaml files with Kubernetes objects (such as Operator)" )
73
78
flag .Parse ()
74
79
75
- if err := validateFlags (packageName , indexRef ); err != nil {
80
+ if err := validateFlags (packageName , indexRef , inputDir ); err != nil {
76
81
fmt .Println (err )
77
82
flag .Usage ()
78
83
os .Exit (1 )
79
84
}
80
85
81
- err := run (ctx , packageName , packageVersion , packageChannel , indexRef )
86
+ err := run (ctx , packageName , packageVersion , packageChannel , indexRef , inputDir )
82
87
if err != nil {
83
88
fmt .Println (err )
84
89
os .Exit (1 )
85
90
}
86
91
}
87
92
88
- func validateFlags (packageName , indexRef string ) error {
93
+ func validateFlags (packageName , indexRef , inputDir string ) error {
89
94
if packageName == "" {
90
95
return fmt .Errorf ("missing required -%s flag" , flagNamePackageName )
91
96
}
@@ -94,21 +99,27 @@ func validateFlags(packageName, indexRef string) error {
94
99
return fmt .Errorf ("missing required -%s flag" , flagNameIndexRef )
95
100
}
96
101
102
+ if inputDir == "" {
103
+ return fmt .Errorf ("missing required -%s flag" , flagNameInputDir )
104
+ }
105
+
97
106
return nil
98
107
}
99
108
100
- func run (ctx context.Context , packageName , packageVersion , packageChannel , catalogRef string ) error {
101
- client , err := client . New ( config . GetConfigOrDie (), client. Options { Scheme : scheme } )
109
+ func run (ctx context.Context , packageName , packageVersion , packageChannel , catalogRef , inputDir string ) error {
110
+ objects , err := readYAMLFiles ( inputDir )
102
111
if err != nil {
103
- return fmt . Errorf ( "failed to create client: %w" , err )
112
+ return err
104
113
}
105
114
115
+ cl := fake .NewClientBuilder ().WithScheme (scheme ).WithRuntimeObjects (objects ... ).Build ()
116
+
106
117
resolver := solver .NewDeppySolver (
107
118
NewIndexRefEntitySourceEntitySource (catalogRef ),
108
119
olm.NestedVariableSource {
109
120
NewPackageVariableSource (packageName , packageVersion , packageChannel ),
110
121
func (inputVariableSource input.VariableSource ) (input.VariableSource , error ) {
111
- return olm .NewOperatorVariableSource (client , inputVariableSource ), nil
122
+ return olm .NewOperatorVariableSource (cl , inputVariableSource ), nil
112
123
},
113
124
func (inputVariableSource input.VariableSource ) (input.VariableSource , error ) {
114
125
return bundles_and_dependencies .NewBundlesAndDepsVariableSource (inputVariableSource ), nil
0 commit comments