@@ -18,11 +18,22 @@ import (
1818 corev1 "k8s.io/api/core/v1"
1919 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2020 "k8s.io/apimachinery/pkg/runtime"
21- "k8s.io/apimachinery/pkg/util/intstr"
2221 ctrl "sigs.k8s.io/controller-runtime"
2322 "sigs.k8s.io/controller-runtime/pkg/client"
2423 "sigs.k8s.io/controller-runtime/pkg/controller"
25- "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
24+ )
25+
26+ var (
27+ PortConfig = templates.PortConfig {
28+ SSHPort : 22 ,
29+ TTYDPort : 56789 ,
30+ NotebookPort : 56790 ,
31+ CodeServerPort : 56791 ,
32+ }
33+ )
34+
35+ const (
36+ IngressClassName = "nginx"
2637)
2738
2839type Reconciler struct {
@@ -44,7 +55,7 @@ func (r *Reconciler) GetName() string {
4455
4556const (
4657 CreateDeployment string = "create-deployment"
47- CreateService string = "create-service"
58+ // CreateService string = "create-service"
4859)
4960
5061// +kubebuilder:rbac:groups=crds.kloudlite.io,resources=apps,verbs=get;list;watch;create;update;patch;delete
@@ -87,9 +98,9 @@ func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl.
8798 return step .ReconcilerResponse ()
8899 }
89100
90- if step := r .createInterceptableService (req ); ! step .ShouldProceed () {
91- return step .ReconcilerResponse ()
92- }
101+ // if step := r.createInterceptableService(req); !step.ShouldProceed() {
102+ // return step.ReconcilerResponse()
103+ // }
93104
94105 if step := r .createDeployment (req ); ! step .ShouldProceed () {
95106 return step .ReconcilerResponse ()
@@ -99,28 +110,28 @@ func (r *Reconciler) Reconcile(ctx context.Context, request ctrl.Request) (ctrl.
99110 return ctrl.Result {}, nil
100111}
101112
102- func (r * Reconciler ) createInterceptableService (req * rApi.Request [* crdsv1.Workspace ]) stepResult.Result {
103- ctx , obj := req .Context (), req .Object
104- check := rApi .NewRunningCheck (CreateService , req )
105-
106- svc := & corev1.Service {ObjectMeta : metav1.ObjectMeta {Name : obj .Name , Namespace : obj .Namespace }}
107- if _ , err := controllerutil .CreateOrUpdate (ctx , r .Client , svc , func () error {
108- svc .Spec .Ports = []corev1.ServicePort {
109- {
110- Name : fmt .Sprintf ("port-%d" , 3000 ),
111- Protocol : "TCP" ,
112- Port : 3000 ,
113- TargetPort : intstr .FromInt (3000 ),
114- },
115- }
116- return nil
117- }); err != nil {
118- return check .Failed (err )
119- }
120-
121- // function-body
122- return check .Completed ()
123- }
113+ // func (r *Reconciler) createInterceptableService(req *rApi.Request[*crdsv1.Workspace]) stepResult.Result {
114+ // ctx, obj := req.Context(), req.Object
115+ // check := rApi.NewRunningCheck(CreateService, req)
116+
117+ // svc := &corev1.Service{ObjectMeta: metav1.ObjectMeta{Name: obj.Name, Namespace: obj.Namespace}}
118+ // if _, err := controllerutil.CreateOrUpdate(ctx, r.Client, svc, func() error {
119+ // svc.Spec.Ports = []corev1.ServicePort{
120+ // {
121+ // Name: fmt.Sprintf("port-%d", 3000),
122+ // Protocol: "TCP",
123+ // Port: 3000,
124+ // TargetPort: intstr.FromInt(3000),
125+ // },
126+ // }
127+ // return nil
128+ // }); err != nil {
129+ // return check.Failed(err)
130+ // }
131+
132+ // // function-body
133+ // return check.Completed()
134+ // }
124135
125136func (r * Reconciler ) createDeployment (req * rApi.Request [* crdsv1.Workspace ]) stepResult.Result {
126137 ctx , obj := req .Context (), req .Object
@@ -132,13 +143,14 @@ func (r *Reconciler) createDeployment(req *rApi.Request[*crdsv1.Workspace]) step
132143 Namespace : obj .Namespace ,
133144 OwnerReferences : []metav1.OwnerReference {fn .AsOwner (obj , true )},
134145 },
146+ KloudliteDomain : "test.khost.dev" ,
135147 WorkMachineName : obj .Spec .WorkMachine ,
136148 ServiceAccountName : obj .Spec .ServiceAccountName ,
137149 ImageInitContainer : r .Env .WorkspaceImageInitContainer ,
138150 ImageSSH : r .Env .WorkspaceImageSSH ,
139-
140- EnableTTYD : obj .Spec .EnableTTYD ,
141- ImageTTYD : r .Env .WorkspaceImageTTYD ,
151+ IsOn : obj . Spec . State == crdsv1 . WorkspaceStateOn ,
152+ EnableTTYD : obj .Spec .EnableTTYD ,
153+ ImageTTYD : r .Env .WorkspaceImageTTYD ,
142154
143155 EnableJupyterNotebook : obj .Spec .EnableJupyterNotebook ,
144156 ImageJupyterNotebook : r .Env .WorkspaceImageJupyterNotebook ,
@@ -150,14 +162,14 @@ func (r *Reconciler) createDeployment(req *rApi.Request[*crdsv1.Workspace]) step
150162 ImageVscodeServer : r .Env .WorkspcaeImageVscodeServer ,
151163
152164 ImagePullPolicy : obj .Spec .ImagePullPolicy ,
153- KloudliteDeviceFQDN : fmt .Sprintf ("%s.%s.svc.cluster.local" , obj .Name , obj .Namespace ),
154-
155- RouterSpec : obj .Spec .Router ,
165+ KloudliteDeviceFQDN : fmt .Sprintf ("%s-headless.%s.svc.cluster.local" , obj .Name , obj .Namespace ),
156166 })
157167 if err != nil {
158168 return check .Failed (err )
159169 }
160170
171+ fmt .Println (string (b ))
172+
161173 rr , err := r .YAMLClient .ApplyYAML (ctx , b )
162174 if err != nil {
163175 return check .Failed (err )
@@ -195,7 +207,7 @@ func (r *Reconciler) SetupWithManager(mgr ctrl.Manager) error {
195207 r .recorder = mgr .GetEventRecorderFor (r .GetName ())
196208
197209 var err error
198- r .workspaceDeploymentTemplate , err = templates .Read (templates .WorkspaceTemplate )
210+ r .workspaceDeploymentTemplate , err = templates .Read (templates .WorkspaceIngressTemplate , templates . WorkspaceSTSTemplate , templates . WorkspaceServiceTemplate )
199211 if err != nil {
200212 return err
201213 }
0 commit comments