Create first record

This commit is contained in:
superflo22 2025-04-11 18:02:57 +02:00
parent fda3120bd3
commit 264fdb756d

View file

@ -23,6 +23,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/handler" "sigs.k8s.io/controller-runtime/pkg/handler"
gatewayv1 "sigs.k8s.io/gateway-api/apis/v1" gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
"strings"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
ctrl "sigs.k8s.io/controller-runtime" ctrl "sigs.k8s.io/controller-runtime"
@ -61,6 +62,7 @@ func (r *ExternalDNSWatcherReconciler) Reconcile(ctx context.Context, req ctrl.R
// Step 2: Check annotation // Step 2: Check annotation
annotations := gateway.GetAnnotations() annotations := gateway.GetAnnotations()
if annotations["dns.mayers.cloud/enabled"] != "true" { if annotations["dns.mayers.cloud/enabled"] != "true" {
log.Info("ExternalDNS watcher is not enabled")
return ctrl.Result{}, nil return ctrl.Result{}, nil
} }
@ -93,8 +95,12 @@ func (r *ExternalDNSWatcherReconciler) Reconcile(ctx context.Context, req ctrl.R
// Step 5: Collect hostnames // Step 5: Collect hostnames
for _, hostname := range route.Spec.Hostnames { for _, hostname := range route.Spec.Hostnames {
record := &dnsv1alpha1.TechnitiumRecord{ record := &dnsv1alpha1.TechnitiumRecord{
TypeMeta: metav1.TypeMeta{
Kind: "TechnitiumRecord",
APIVersion: "dns.mayers.cloud/v1alpha1",
},
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: fmt.Sprintf("%s-%s", route.Name, string(hostname)), Name: fmt.Sprintf("%s", strings.ReplaceAll(string(hostname), ".", "-")),
Namespace: route.Namespace, Namespace: route.Namespace,
}, },
Spec: dnsv1alpha1.TechnitiumRecordSpec{ Spec: dnsv1alpha1.TechnitiumRecordSpec{
@ -109,6 +115,8 @@ func (r *ExternalDNSWatcherReconciler) Reconcile(ctx context.Context, req ctrl.R
}, },
}, },
} }
// Log the record yaml
log.Info("TechnitiumRecord", "record", record)
if err := r.Client.Patch(ctx, record, client.Apply, client.ForceOwnership, client.FieldOwner("external-dns-watcher")); err != nil { if err := r.Client.Patch(ctx, record, client.Apply, client.ForceOwnership, client.FieldOwner("external-dns-watcher")); err != nil {
log.Error(err, "Failed to apply TechnitiumRecord") log.Error(err, "Failed to apply TechnitiumRecord")