@@ -19,21 +19,15 @@ package controllers
19
19
import (
20
20
"context"
21
21
"fmt"
22
- "strings"
23
22
"time"
24
23
25
24
"github.com/go-logr/logr"
26
25
"k8s.io/apimachinery/pkg/api/errors"
27
26
"k8s.io/apimachinery/pkg/runtime"
28
- "k8s.io/apimachinery/pkg/util/intstr"
29
27
ctrl "sigs.k8s.io/controller-runtime"
30
28
"sigs.k8s.io/controller-runtime/pkg/client"
31
29
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
32
30
33
- routev1 "github.com/openshift/api/route/v1"
34
- appsv1 "k8s.io/api/apps/v1"
35
- corev1 "k8s.io/api/core/v1"
36
- rbacv1 "k8s.io/api/rbac/v1"
37
31
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
38
32
39
33
ocgatev1beta1 "github.com/yaacov/oc-gate-operator/api/v1beta1"
@@ -285,235 +279,3 @@ func (r *GateServerReconciler) SetupWithManager(mgr ctrl.Manager) error {
285
279
For (& ocgatev1beta1.GateServer {}).
286
280
Complete (r )
287
281
}
288
-
289
- func (r * GateServerReconciler ) service (s * ocgatev1beta1.GateServer ) (* corev1.Service , error ) {
290
- labels := map [string ]string {
291
- "app" : s .Name ,
292
- }
293
- annotations := map [string ]string {
294
- "service.alpha.openshift.io/serving-cert-secret-name" : fmt .Sprintf ("%s-secret" , s .Name ),
295
- }
296
-
297
- service := & corev1.Service {
298
- ObjectMeta : metav1.ObjectMeta {
299
- Name : s .Name ,
300
- Namespace : s .Namespace ,
301
- Labels : labels ,
302
- Annotations : annotations ,
303
- },
304
- Spec : corev1.ServiceSpec {
305
- Selector : labels ,
306
- Ports : []corev1.ServicePort {
307
- {
308
- Port : 8080 ,
309
- Protocol : corev1 .ProtocolTCP ,
310
- TargetPort : intstr .FromInt (8080 ),
311
- },
312
- },
313
- },
314
- }
315
-
316
- controllerutil .SetControllerReference (s , service , r .Scheme )
317
-
318
- return service , nil
319
- }
320
-
321
- func (r * GateServerReconciler ) route (s * ocgatev1beta1.GateServer ) (* routev1.Route , error ) {
322
- labels := map [string ]string {
323
- "app" : s .Name ,
324
- }
325
-
326
- route := & routev1.Route {
327
- ObjectMeta : metav1.ObjectMeta {
328
- Name : s .Name ,
329
- Namespace : s .Namespace ,
330
- Labels : labels ,
331
- },
332
- Spec : routev1.RouteSpec {
333
- Host : s .Spec .Route ,
334
- To : routev1.RouteTargetReference {
335
- Kind : "Service" ,
336
- Name : s .Name ,
337
- },
338
- TLS : & routev1.TLSConfig {
339
- Termination : routev1 .TLSTerminationReencrypt ,
340
- },
341
- Port : & routev1.RoutePort {
342
- TargetPort : intstr .FromInt (8080 ),
343
- },
344
- WildcardPolicy : routev1 .WildcardPolicyNone ,
345
- },
346
- }
347
-
348
- controllerutil .SetControllerReference (s , route , r .Scheme )
349
-
350
- return route , nil
351
- }
352
-
353
- func (r * GateServerReconciler ) serviceaccount (s * ocgatev1beta1.GateServer ) (* corev1.ServiceAccount , error ) {
354
- labels := map [string ]string {
355
- "app" : s .Name ,
356
- }
357
-
358
- serviceaccount := & corev1.ServiceAccount {
359
- ObjectMeta : metav1.ObjectMeta {
360
- Name : s .Name ,
361
- Namespace : s .Namespace ,
362
- Labels : labels ,
363
- },
364
- Secrets : []corev1.ObjectReference {
365
- {
366
- Name : fmt .Sprintf ("%s-secret" , s .Name ),
367
- },
368
- },
369
- }
370
- controllerutil .SetControllerReference (s , serviceaccount , r .Scheme )
371
-
372
- return serviceaccount , nil
373
- }
374
-
375
- func (r * GateServerReconciler ) role (s * ocgatev1beta1.GateServer ) (* rbacv1.Role , error ) {
376
- var verbs []string
377
- var resources []string
378
-
379
- labels := map [string ]string {
380
- "app" : s .Name ,
381
- }
382
-
383
- if s .Spec .AdminRole == "admin" {
384
- verbs = []string {"get" , "list" , "watch" , "create" , "delete" , "patch" , "update" }
385
- } else {
386
- verbs = []string {"get" , "list" , "watch" }
387
- }
388
- if s .Spec .AdminResources == "" {
389
- resources = []string {"*" }
390
- } else {
391
- resources = strings .Split (s .Spec .AdminResources , "," )
392
- }
393
-
394
- role := & rbacv1.Role {
395
- ObjectMeta : metav1.ObjectMeta {
396
- Name : s .Name ,
397
- Namespace : s .Namespace ,
398
- Labels : labels ,
399
- },
400
- Rules : []rbacv1.PolicyRule {
401
- {
402
- APIGroups : []string {"*" },
403
- Resources : resources ,
404
- Verbs : verbs ,
405
- },
406
- },
407
- }
408
-
409
- controllerutil .SetControllerReference (s , role , r .Scheme )
410
-
411
- return role , nil
412
- }
413
-
414
- func (r * GateServerReconciler ) rolebinding (s * ocgatev1beta1.GateServer ) (* rbacv1.RoleBinding , error ) {
415
- labels := map [string ]string {
416
- "app" : s .Name ,
417
- }
418
-
419
- rolebinding := & rbacv1.RoleBinding {
420
- ObjectMeta : metav1.ObjectMeta {
421
- Name : s .Name ,
422
- Namespace : s .Namespace ,
423
- Labels : labels ,
424
- },
425
- Subjects : []rbacv1.Subject {
426
- {
427
- Kind : "ServiceAccount" ,
428
- Name : s .Name ,
429
- },
430
- },
431
- RoleRef : rbacv1.RoleRef {
432
- APIGroup : "rbac.authorization.k8s.io" ,
433
- Kind : "Role" ,
434
- Name : s .Name ,
435
- },
436
- }
437
-
438
- controllerutil .SetControllerReference (s , rolebinding , r .Scheme )
439
-
440
- return rolebinding , nil
441
- }
442
-
443
- func (r * GateServerReconciler ) deployment (s * ocgatev1beta1.GateServer ) (* appsv1.Deployment , error ) {
444
- image := s .Spec .IMG
445
- replicas := int32 (1 )
446
- labels := map [string ]string {
447
- "app" : s .Name ,
448
- }
449
- matchlabels := map [string ]string {
450
- "app" : s .Name ,
451
- }
452
-
453
- deployment := & appsv1.Deployment {
454
- ObjectMeta : metav1.ObjectMeta {
455
- Name : s .Name ,
456
- Namespace : s .Namespace ,
457
- Labels : labels ,
458
- },
459
- Spec : appsv1.DeploymentSpec {
460
- Replicas : & replicas ,
461
- Selector : & metav1.LabelSelector {
462
- MatchLabels : matchlabels ,
463
- },
464
- Template : corev1.PodTemplateSpec {
465
- ObjectMeta : metav1.ObjectMeta {
466
- Labels : matchlabels ,
467
- },
468
- Spec : corev1.PodSpec {
469
- Containers : []corev1.Container {{
470
- Image : image ,
471
- Name : "kube-gateway" ,
472
-
473
- Ports : []corev1.ContainerPort {{
474
- ContainerPort : 8080 ,
475
- Name : "https" ,
476
- }},
477
- VolumeMounts : []corev1.VolumeMount {
478
- {
479
- Name : "serving-cert" ,
480
- MountPath : "/var/run/secrets/serving-cert" ,
481
- },
482
- },
483
- Command : []string {
484
- "./kube-gateway" ,
485
- "-api-server=https://kubernetes.default.svc" ,
486
- "-gateway-listen=https://0.0.0.0:8080" ,
487
- "-api-server-ca-file=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" ,
488
- "-api-server-bearer-token-file=/var/run/secrets/kubernetes.io/serviceaccount/token" ,
489
- "-gateway-key-file=/var/run/secrets/serving-cert/tls.key" ,
490
- "-gateway-cert-file=/var/run/secrets/serving-cert/tls.crt" ,
491
- fmt .Sprintf ("-jwt-public-key-name=%s-secret" , s .Name ),
492
- fmt .Sprintf ("-jwt-public-key-namespace=%s" , s .Namespace ),
493
- "-jwt-request-enable=true" ,
494
- fmt .Sprintf ("-jwt-private-key-name=%s-secret" , s .Name ),
495
- fmt .Sprintf ("-jwt-private-key-namespace=%s" , s .Namespace ),
496
- },
497
- }},
498
-
499
- Volumes : []corev1.Volume {
500
- {
501
- Name : "serving-cert" ,
502
- VolumeSource : corev1.VolumeSource {
503
- Secret : & corev1.SecretVolumeSource {
504
- SecretName : fmt .Sprintf ("%s-secret" , s .Name ),
505
- },
506
- },
507
- },
508
- },
509
-
510
- ServiceAccountName : s .Name ,
511
- },
512
- },
513
- },
514
- }
515
-
516
- controllerutil .SetControllerReference (s , deployment , r .Scheme )
517
-
518
- return deployment , nil
519
- }
0 commit comments