@@ -19,22 +19,25 @@ package cmd
1919import (
2020 "context"
2121 "crypto/tls"
22+ "fmt"
2223 "net/http"
2324 "os"
2425
2526 pmcontext "github.com/platform-mesh/golang-commons/context"
2627 "github.com/spf13/cobra"
28+ "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
2729 _ "k8s.io/client-go/plugin/pkg/client/auth"
2830 "k8s.io/client-go/rest"
2931 ctrl "sigs.k8s.io/controller-runtime"
32+ "sigs.k8s.io/controller-runtime/pkg/client"
3033 "sigs.k8s.io/controller-runtime/pkg/healthz"
3134 metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
3235 mcmanager "sigs.k8s.io/multicluster-runtime/pkg/manager"
3336
3437 "github.com/platform-mesh/golang-commons/traces"
35- "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
3638
3739 "github.com/platform-mesh/platform-mesh-operator/internal/controller"
40+ "github.com/platform-mesh/platform-mesh-operator/pkg/subroutines"
3841)
3942
4043var operatorCmd = & cobra.Command {
@@ -86,6 +89,16 @@ func RunController(_ *cobra.Command, _ []string) { // coverage-ignore
8689 log .Info ().Msg ("Starting manager" )
8790
8891 restCfg := ctrl .GetConfigOrDie ()
92+ if operatorCfg .RemoteRuntime .IsEnabled () {
93+ setupLog .Info ("Remote PlatformMesh reconciliation enabled, kubeconfig: " + operatorCfg .RemoteRuntime .Kubeconfig )
94+ var err error
95+ _ , restCfg , err = subroutines .GetClientAndRestConfig (operatorCfg .RemoteRuntime .Kubeconfig )
96+ if err != nil {
97+ setupLog .Error (err , "unable to create PlatformMesh client" )
98+ os .Exit (1 )
99+ }
100+ }
101+ setupLog .Info (fmt .Sprintf ("PlatformMesh Host: %s" , restCfg .Host ))
89102 restCfg .Wrap (func (rt http.RoundTripper ) http.RoundTripper {
90103 return otelhttp .NewTransport (rt )
91104 })
@@ -117,9 +130,28 @@ func RunController(_ *cobra.Command, _ []string) { // coverage-ignore
117130 os .Exit (1 )
118131 }
119132
120- log .Info ().Msg ("Manager successfully started" )
133+ log .Info ().Msg ("Manager successfully created" )
134+
135+ restCfgInfra := ctrl .GetConfigOrDie ()
136+ restCfgInfra .Wrap (func (rt http.RoundTripper ) http.RoundTripper {
137+ return otelhttp .NewTransport (rt )
138+ })
139+ clientInfra , err := client .New (restCfgInfra , client.Options {Scheme : subroutines .GetClientScheme ()})
140+ if err != nil {
141+ setupLog .Error (err , "unable to create Infra client" )
142+ os .Exit (1 )
143+ }
144+ if operatorCfg .RemoteInfra .IsEnabled () {
145+ var infraErr error
146+ clientInfra , _ , infraErr = subroutines .GetClientAndRestConfig (operatorCfg .RemoteInfra .Kubeconfig )
147+ if infraErr != nil {
148+ setupLog .Error (infraErr , "unable to create Infra client" )
149+ os .Exit (1 )
150+ }
151+ }
152+ imageVersionStore := subroutines .NewImageVersionStore ()
121153
122- pmReconciler , err := controller .NewPlatformMeshReconciler (mgr , & operatorCfg , defaultCfg , operatorCfg .WorkspaceDir )
154+ pmReconciler , err := controller .NewPlatformMeshReconciler (mgr , & operatorCfg , defaultCfg , operatorCfg .WorkspaceDir , clientInfra , imageVersionStore )
123155 if err != nil {
124156 setupLog .Error (err , "unable to create PlatformMesh reconciler" )
125157 os .Exit (1 )
@@ -129,16 +161,15 @@ func RunController(_ *cobra.Command, _ []string) { // coverage-ignore
129161 os .Exit (1 )
130162 }
131163
132- resourceReconciler , err := controller .NewResourceReconciler (mgr , & operatorCfg )
164+ resourceReconciler , err := controller .NewResourceReconciler (mgr , & operatorCfg , clientInfra , imageVersionStore )
133165 if err != nil {
134166 setupLog .Error (err , "unable to create Resource reconciler" )
135167 os .Exit (1 )
136168 }
137169 if err := resourceReconciler .SetupWithManager (mgr , defaultCfg ); err != nil {
138- setupLog .Error (err , "unable to create controller" , "controller" , "PlatformMesh " )
170+ setupLog .Error (err , "unable to create controller" , "controller" , "Resource " )
139171 os .Exit (1 )
140172 }
141-
142173 if err := mgr .AddHealthzCheck ("healthz" , healthz .Ping ); err != nil {
143174 setupLog .Error (err , "unable to set up health check" )
144175 os .Exit (1 )
@@ -152,4 +183,5 @@ func RunController(_ *cobra.Command, _ []string) { // coverage-ignore
152183 if err := mgr .Start (ctrl .SetupSignalHandler ()); err != nil {
153184 log .Fatal ().Err (err ).Msg ("problem running manager" )
154185 }
186+
155187}
0 commit comments