Skip to content

Commit 9aedb4d

Browse files
committed
fixup! fix argocd install
1 parent 481a728 commit 9aedb4d

File tree

4 files changed

+40
-39
lines changed

4 files changed

+40
-39
lines changed

pkg/consts/annotations.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,8 @@ const (
4545
UninstallingAnnotationKey = "liqo.io/uninstalling"
4646
// UninstallingAnnotationValue is the value of the annotation used to signal liqo is being uninstalled.
4747
UninstallingAnnotationValue = "true"
48+
49+
// WebhookServiceNameAnnotationKey is the constant representing
50+
// the key of the annotation containing the Webhook service name.
51+
WebhookServiceNameAnnotationKey = "liqo.io/webhook-service-name"
4852
)

pkg/consts/controllers.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ const (
5151
CtrlPodInternalNet = "pod_internalnet"
5252
CtrlPublicKey = "publickey"
5353
CtrlRouteConfiguration = "routeconfiguration"
54+
CtrlSecretWebhook = "secret_webhook"
5455
CtrlWGGatewayClient = "wggatewayclient"
5556
CtrlWGGatewayServer = "wggatewayserver"
5657

pkg/consts/labels.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,4 @@ const (
5151
// WebhookResourceLabelValue is the constant representing
5252
// the value of the label assigned to all Webhook resources.
5353
WebhookResourceLabelValue = "true"
54-
// WebhookServiceNameAnnotationKey is the constant representing
55-
// the key of the annotation containing the Webhook service name.
56-
WebhookServiceNameAnnotationKey = "liqo.io/webhook-service-name"
5754
)

pkg/webhooks/secretcontroller/secret_controller.go

Lines changed: 35 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"fmt"
2626
"math/big"
2727
"os"
28+
"path"
2829
"time"
2930

3031
adminssionregistrationv1 "k8s.io/api/admissionregistration/v1"
@@ -42,6 +43,8 @@ import (
4243
"github.com/liqotech/liqo/pkg/consts"
4344
)
4445

46+
const servingCertsDir = "/tmp/k8s-webhook-server/serving-certs/"
47+
4548
// NewSecretReconciler returns a new SecretReconciler.
4649
func NewSecretReconciler(cl client.Client, s *runtime.Scheme, recorder record.EventRecorder) *SecretReconciler {
4750
return &SecretReconciler{
@@ -106,45 +109,55 @@ func (r *SecretReconciler) SetupWithManager(mgr ctrl.Manager) error {
106109
return fmt.Errorf("unable to create label selector predicate: %w", err)
107110
}
108111

109-
return ctrl.NewControllerManagedBy(mgr).Named(consts.CtrlIdentity).
112+
return ctrl.NewControllerManagedBy(mgr).Named(consts.CtrlSecretWebhook).
110113
For(&corev1.Secret{}, builder.WithPredicates(p)).
111114
Complete(r)
112115
}
113116

114117
// HandleSecret handles the given Secret for webhooks.
115-
func HandleSecret(ctx context.Context, cl client.Client, secret *corev1.Secret) error {
116-
serviceName := secret.Annotations[consts.WebhookServiceNameAnnotationKey]
118+
func HandleSecret(ctx context.Context, cl client.Client, secret *corev1.Secret) (err error) {
119+
if secret.Annotations == nil {
120+
return fmt.Errorf("no annotations found in Secret %s/%s", secret.Namespace, secret.Name)
121+
}
122+
serviceName, serviceNameOk := secret.Annotations[consts.WebhookServiceNameAnnotationKey]
123+
if !serviceNameOk {
124+
return fmt.Errorf("no service name found fot Secret %s/%s. Please, set the annotation %s",
125+
secret.Namespace, secret.Name, consts.WebhookServiceNameAnnotationKey)
126+
}
117127

128+
if secret.Data == nil {
129+
secret.Data = make(map[string][]byte)
130+
}
118131
ca, caOk := secret.Data["ca"]
119132
tlsKey, tlsKeyOk := secret.Data["tls.key"]
120133
tlsCrt, tlsCrtOk := secret.Data["tls.crt"]
121134

122135
if !caOk || !tlsKeyOk || !tlsCrtOk ||
123136
len(ca) == 0 || len(tlsKey) == 0 || len(tlsCrt) == 0 {
124-
caB, crtB, keyB, err := createCA(serviceName, secret.Namespace)
137+
ca, tlsCrt, tlsKey, err = createCA(serviceName, secret.Namespace)
125138
if err != nil {
126139
return fmt.Errorf("unable to create CA: %w", err)
127140
}
128141

129142
if secret.Data == nil {
130143
secret.Data = make(map[string][]byte)
131144
}
132-
secret.Data["ca"] = caB
133-
secret.Data["tls.crt"] = crtB
134-
secret.Data["tls.key"] = keyB
135-
} else {
136-
err := os.MkdirAll("/tmp/k8s-webhook-server/serving-certs/", 0o700)
137-
if err != nil {
138-
return fmt.Errorf("unable to create directory: %w", err)
139-
}
140-
err = writeFile("/tmp/k8s-webhook-server/serving-certs/tls.crt", bytes.NewBuffer(tlsCrt))
141-
if err != nil {
142-
return fmt.Errorf("unable to write file: %w", err)
143-
}
144-
err = writeFile("/tmp/k8s-webhook-server/serving-certs/tls.key", bytes.NewBuffer(tlsKey))
145-
if err != nil {
146-
return fmt.Errorf("unable to write file: %w", err)
147-
}
145+
secret.Data["ca"] = ca
146+
secret.Data["tls.crt"] = tlsCrt
147+
secret.Data["tls.key"] = tlsKey
148+
}
149+
150+
err = os.MkdirAll(servingCertsDir, 0o700)
151+
if err != nil {
152+
return fmt.Errorf("unable to create directory: %w", err)
153+
}
154+
err = writeFile(path.Join(servingCertsDir, "tls.crt"), bytes.NewBuffer(tlsCrt))
155+
if err != nil {
156+
return fmt.Errorf("unable to write file: %w", err)
157+
}
158+
err = writeFile(path.Join(servingCertsDir, "tls.key"), bytes.NewBuffer(tlsKey))
159+
if err != nil {
160+
return fmt.Errorf("unable to write file: %w", err)
148161
}
149162

150163
// patch webhook configurations
@@ -196,7 +209,7 @@ func createCA(serviceName, namespace string) (caB, crtB, keyB []byte, err error)
196209
ca := &x509.Certificate{
197210
SerialNumber: big.NewInt(1),
198211
Subject: pkix.Name{
199-
Organization: []string{"Liqo"},
212+
Organization: []string{"liqo.io"},
200213
},
201214
NotBefore: time.Now(),
202215
NotAfter: time.Now().Add(10 * 365 * 24 * time.Hour),
@@ -224,7 +237,7 @@ func createCA(serviceName, namespace string) (caB, crtB, keyB []byte, err error)
224237
SerialNumber: big.NewInt(1658),
225238
Subject: pkix.Name{
226239
CommonName: commonName,
227-
Organization: []string{"Liqo"},
240+
Organization: []string{"liqo.io"},
228241
},
229242
NotBefore: time.Now(),
230243
NotAfter: time.Now().AddDate(1, 0, 0),
@@ -264,20 +277,6 @@ func createCA(serviceName, namespace string) (caB, crtB, keyB []byte, err error)
264277
return nil, nil, nil, fmt.Errorf("failed to encode server private key: %w", err)
265278
}
266279

267-
// save the server cert and key to disk in the path expected by the webhook server.
268-
err = os.MkdirAll("/tmp/k8s-webhook-server/serving-certs/", 0o700)
269-
if err != nil {
270-
return nil, nil, nil, fmt.Errorf("unable to create directory: %w", err)
271-
}
272-
err = writeFile("/tmp/k8s-webhook-server/serving-certs/tls.crt", serverCertPEM)
273-
if err != nil {
274-
return nil, nil, nil, fmt.Errorf("unable to write file: %w", err)
275-
}
276-
err = writeFile("/tmp/k8s-webhook-server/serving-certs/tls.key", serverPrivKeyPEM)
277-
if err != nil {
278-
return nil, nil, nil, fmt.Errorf("unable to write file: %w", err)
279-
}
280-
281280
return certPEM, serverCertPEM.Bytes(), serverPrivKeyPEM.Bytes(), nil
282281
}
283282

0 commit comments

Comments
 (0)