Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add service
  • Loading branch information
an3l committed Dec 22, 2021
1 parent 512d8e8 commit 234e3bd
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 5 deletions.
25 changes: 25 additions & 0 deletions controllers/common.go
Expand Up @@ -9,6 +9,7 @@ import (
//"k8s.io/apimachinery/pkg/api/errors"
//"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"

//"k8s.io/apimachinery/pkg/runtime"
ctrl "sigs.k8s.io/controller-runtime"
Expand Down Expand Up @@ -73,3 +74,27 @@ func (r *MariaDBReconciler) desiredDeployment(database mariak8gv1alpha1.MariaDB)

return depl, nil
}

func (r *MariaDBReconciler) desiredService(database mariak8gv1alpha1.MariaDB) (corev1.Service, error) {
svc := corev1.Service{
TypeMeta: metav1.TypeMeta{APIVersion: corev1.SchemeGroupVersion.String(), Kind: "Service"},
ObjectMeta: metav1.ObjectMeta{
Name: database.Name,
Namespace: database.Namespace,
},
Spec: corev1.ServiceSpec{
Ports: []corev1.ServicePort{
{Name: "mariadb-service", Port: database.Spec.Port, Protocol: "TCP", TargetPort: intstr.FromString("mariadb-service")},
},
Selector: map[string]string{"mariadb": database.Name},
Type: corev1.ServiceTypeClusterIP,
},
}

// always set the controller reference so that we know which object owns this.
if err := ctrl.SetControllerReference(&database, &svc, r.Scheme); err != nil {
return svc, err
}

return svc, nil
}
22 changes: 17 additions & 5 deletions controllers/mariadb_controller.go
Expand Up @@ -21,8 +21,8 @@ import (

"github.com/go-logr/logr"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
// apps "k8s.io/api/core/v1"

"k8s.io/apimachinery/pkg/runtime"
ctrl "sigs.k8s.io/controller-runtime"
Expand Down Expand Up @@ -66,13 +66,14 @@ func (r *MariaDBReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
return ctrl.Result{}, err
}
app.Status.DbState = mariak8gv1alpha1.RunningStatusPhase
if err := r.Status().Update(ctx, &app); err != nil {
log.Error(err, "unable to update the variable status")
deployment, err := r.desiredDeployment(app)
// return if there is an error during deployment start
if err != nil {
return ctrl.Result{}, err
}

deployment, err := r.desiredDeployment(app)
// return if there is an error
svc, err := r.desiredService(app)
// return if there is an error during service start
if err != nil {
return ctrl.Result{}, err
}
Expand All @@ -84,6 +85,16 @@ func (r *MariaDBReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
return ctrl.Result{}, err
}

err = r.Patch(ctx, &svc, client.Apply, applyOpts...)
if err != nil {
return ctrl.Result{}, err
}

if err := r.Status().Update(ctx, &app); err != nil {
log.Error(err, "unable to update the variable status")
return ctrl.Result{}, err
}

log.Info("Reconciled MariaDB kind", "mariadb", app.Name, "status", app.Status)

return ctrl.Result{}, nil
Expand All @@ -93,6 +104,7 @@ func (r *MariaDBReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
func (r *MariaDBReconciler) SetupWithManager(mgr ctrl.Manager) error {
return ctrl.NewControllerManagedBy(mgr).
For(&mariak8gv1alpha1.MariaDB{}).
Owns(&corev1.Service{}).
Owns(&appsv1.Deployment{}).
Complete(r)
}

0 comments on commit 234e3bd

Please sign in to comment.