...
1 package secret
2
3 import (
4 "context"
5 "os"
6 "time"
7
8 corev1 "k8s.io/api/core/v1"
9 "k8s.io/apimachinery/pkg/api/errors"
10 "sigs.k8s.io/controller-runtime/pkg/client"
11
12 "edge-infra.dev/pkg/sds/remoteaccess/constants"
13 )
14
15 func CreateOrPatchSecret(ctx context.Context, c client.Client, secret *corev1.Secret) error {
16 currentSecret := &corev1.Secret{}
17 err := c.Get(ctx, client.ObjectKeyFromObject(secret), currentSecret)
18 if errors.IsNotFound(err) {
19 return c.Create(ctx, secret)
20 } else if err != nil {
21 return err
22 }
23 return c.Patch(ctx, secret, client.StrategicMergeFrom(currentSecret.DeepCopy()))
24 }
25
26
27 func ExpireAt() *time.Time {
28 current := time.Now()
29 rotateAfter, err := time.ParseDuration(os.Getenv(constants.SecretValidityEnvField))
30 if err != nil {
31
32 future := current.AddDate(0, 0, 30)
33 return &future
34 }
35 future := current.Add(rotateAfter)
36 return &future
37 }
38
View as plain text