|
@@ -56,20 +56,9 @@ func (r *BlueGreenReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
|
|
|
|
|
|
// Create or Update Service
|
|
// Create or Update Service
|
|
svc := &corev1.Service{ObjectMeta: metav1.ObjectMeta{Namespace: req.Namespace, Name: req.Name}}
|
|
svc := &corev1.Service{ObjectMeta: metav1.ObjectMeta{Namespace: req.Namespace, Name: req.Name}}
|
|
- if _, err := ctrl.CreateOrUpdate(ctx, r.Client, svc, func() error {
|
|
|
|
- if err := ctrl.SetControllerReference(bluegreen, svc, r.Scheme); err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- svc.Spec.Ports = []corev1.ServicePort{
|
|
|
|
- {Name: "http", Protocol: corev1.ProtocolTCP, Port: 80},
|
|
|
|
- }
|
|
|
|
- svc.Spec.Selector = map[string]string{
|
|
|
|
- "app.kubernetes.io/managed-by": "app.demo.kakao.com",
|
|
|
|
- "app.kubernetes.io/name": req.Name,
|
|
|
|
- "app.kubernetes.io/phase": string(bluegreen.Spec.RouteTo),
|
|
|
|
- }
|
|
|
|
- return nil
|
|
|
|
- }); err != nil {
|
|
|
|
|
|
+ if _, err := ctrl.CreateOrUpdate(ctx, r.Client, svc,
|
|
|
|
+ r.mutateBlueGreenService(bluegreen, svc, req.Name, bluegreen.Spec.RouteTo),
|
|
|
|
+ ); err != nil {
|
|
return ctrl.Result{}, err
|
|
return ctrl.Result{}, err
|
|
}
|
|
}
|
|
|
|
|
|
@@ -121,3 +110,20 @@ func (r *BlueGreenReconciler) SetupWithManager(mgr ctrl.Manager) error {
|
|
func deploymentName(name string, phase v1.BlueOrGreen) string {
|
|
func deploymentName(name string, phase v1.BlueOrGreen) string {
|
|
return fmt.Sprintf("%s-%s", name, strings.ToLower(string(phase)))
|
|
return fmt.Sprintf("%s-%s", name, strings.ToLower(string(phase)))
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+func (r *BlueGreenReconciler) mutateBlueGreenService(owner metav1.Object, svc *corev1.Service, appName string, routeTo v1.BlueOrGreen) func() error {
|
|
|
|
+ return func() error {
|
|
|
|
+ if err := ctrl.SetControllerReference(owner, svc, r.Scheme); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ svc.Spec.Ports = []corev1.ServicePort{
|
|
|
|
+ {Name: "http", Protocol: corev1.ProtocolTCP, Port: 80},
|
|
|
|
+ }
|
|
|
|
+ svc.Spec.Selector = map[string]string{
|
|
|
|
+ "app.kubernetes.io/managed-by": "app.demo.kakao.com",
|
|
|
|
+ "app.kubernetes.io/name": appName,
|
|
|
|
+ "app.kubernetes.io/phase": string(routeTo),
|
|
|
|
+ }
|
|
|
|
+ return nil
|
|
|
|
+ }
|
|
|
|
+}
|