mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-07 16:27:40 +00:00
fix(k8s): fixed dynamic secret bugs
This commit is contained in:
@@ -118,33 +118,6 @@ func (r *InfisicalDynamicSecretReconciler) SetCreatedLeaseStatus(ctx context.Con
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *InfisicalDynamicSecretReconciler) SetRevokedLeaseStatus(ctx context.Context, logger logr.Logger, infisicalDynamicSecret *v1alpha1.InfisicalDynamicSecret, errorToConditionOn error) {
|
|
||||||
if infisicalDynamicSecret.Status.Conditions == nil {
|
|
||||||
infisicalDynamicSecret.Status.Conditions = []metav1.Condition{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if errorToConditionOn == nil {
|
|
||||||
meta.SetStatusCondition(&infisicalDynamicSecret.Status.Conditions, metav1.Condition{
|
|
||||||
Type: "secrets.infisical.com/LeaseRevoked",
|
|
||||||
Status: metav1.ConditionTrue,
|
|
||||||
Reason: "OK",
|
|
||||||
Message: "Infisical has successfully revoked the lease",
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
meta.SetStatusCondition(&infisicalDynamicSecret.Status.Conditions, metav1.Condition{
|
|
||||||
Type: "secrets.infisical.com/LeaseRevoked",
|
|
||||||
Status: metav1.ConditionFalse,
|
|
||||||
Reason: "Error",
|
|
||||||
Message: fmt.Sprintf("Failed to revoke the lease because: %v", errorToConditionOn),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
err := r.Client.Status().Update(ctx, infisicalDynamicSecret)
|
|
||||||
if err != nil {
|
|
||||||
logger.Error(err, "Could not set condition for LeaseRevoked")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *InfisicalDynamicSecretReconciler) SetReconcileStatus(ctx context.Context, logger logr.Logger, infisicalDynamicSecret *v1alpha1.InfisicalDynamicSecret, errorToConditionOn error) {
|
func (r *InfisicalDynamicSecretReconciler) SetReconcileStatus(ctx context.Context, logger logr.Logger, infisicalDynamicSecret *v1alpha1.InfisicalDynamicSecret, errorToConditionOn error) {
|
||||||
if infisicalDynamicSecret.Status.Conditions == nil {
|
if infisicalDynamicSecret.Status.Conditions == nil {
|
||||||
infisicalDynamicSecret.Status.Conditions = []metav1.Condition{}
|
infisicalDynamicSecret.Status.Conditions = []metav1.Condition{}
|
||||||
|
|||||||
@@ -86,7 +86,6 @@ func (r *InfisicalDynamicSecretReconciler) Reconcile(ctx context.Context, req ct
|
|||||||
}
|
}
|
||||||
|
|
||||||
err := r.HandleLeaseRevocation(ctx, logger, infisicalDynamicSecretCRD)
|
err := r.HandleLeaseRevocation(ctx, logger, infisicalDynamicSecretCRD)
|
||||||
r.SetRevokedLeaseStatus(ctx, logger, &infisicalDynamicSecretCRD, err)
|
|
||||||
|
|
||||||
if infisicalDynamicSecretsResourceVariablesMap != nil {
|
if infisicalDynamicSecretsResourceVariablesMap != nil {
|
||||||
if rv, ok := infisicalDynamicSecretsResourceVariablesMap[string(infisicalDynamicSecretCRD.GetUID())]; ok {
|
if rv, ok := infisicalDynamicSecretsResourceVariablesMap[string(infisicalDynamicSecretCRD.GetUID())]; ok {
|
||||||
|
|||||||
@@ -256,7 +256,7 @@ func (r *InfisicalDynamicSecretReconciler) updateResourceVariables(infisicalDyna
|
|||||||
infisicalDynamicSecretsResourceVariablesMap[string(infisicalDynamicSecret.UID)] = resourceVariables
|
infisicalDynamicSecretsResourceVariablesMap[string(infisicalDynamicSecret.UID)] = resourceVariables
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *InfisicalDynamicSecretReconciler) HandleLeaseRevocation(ctx context.Context, logger logr.Logger, infisicalDynamicSecret v1alpha1.InfisicalDynamicSecret) error {
|
func (r *InfisicalDynamicSecretReconciler) HandleLeaseRevocation(ctx context.Context, logger logr.Logger, infisicalDynamicSecret *v1alpha1.InfisicalDynamicSecret) error {
|
||||||
if infisicalDynamicSecret.Spec.LeaseRevocationPolicy != string(constants.DYNAMIC_SECRET_LEASE_REVOCATION_POLICY_ENABLED) {
|
if infisicalDynamicSecret.Spec.LeaseRevocationPolicy != string(constants.DYNAMIC_SECRET_LEASE_REVOCATION_POLICY_ENABLED) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -266,7 +266,6 @@ func (r *InfisicalDynamicSecretReconciler) HandleLeaseRevocation(ctx context.Con
|
|||||||
|
|
||||||
logger.Info("Authenticating for lease revocation")
|
logger.Info("Authenticating for lease revocation")
|
||||||
authDetails, err := r.handleAuthentication(ctx, infisicalDynamicSecret, infisicalClient)
|
authDetails, err := r.handleAuthentication(ctx, infisicalDynamicSecret, infisicalClient)
|
||||||
r.SetAuthenticatedStatus(ctx, logger, &infisicalDynamicSecret, err)
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("unable to authenticate for lease revocation [err=%s]", err)
|
return fmt.Errorf("unable to authenticate for lease revocation [err=%s]", err)
|
||||||
@@ -349,20 +348,28 @@ func (r *InfisicalDynamicSecretReconciler) ReconcileInfisicalDynamicSecret(ctx c
|
|||||||
Namespace: infisicalDynamicSecret.Spec.ManagedSecretReference.SecretNamespace,
|
Namespace: infisicalDynamicSecret.Spec.ManagedSecretReference.SecretNamespace,
|
||||||
})
|
})
|
||||||
|
|
||||||
if err != nil && !k8Errors.IsNotFound(err) {
|
|
||||||
annotationValue := ""
|
|
||||||
if infisicalDynamicSecret.Status.Lease != nil {
|
|
||||||
annotationValue = fmt.Sprintf("%s-%d", infisicalDynamicSecret.Status.Lease.ID, infisicalDynamicSecret.Status.Lease.Version)
|
|
||||||
}
|
|
||||||
r.createInfisicalManagedKubeSecret(ctx, logger, *infisicalDynamicSecret, annotationValue)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if k8Errors.IsNotFound(err) {
|
if k8Errors.IsNotFound(err) {
|
||||||
return nextReconcile, fmt.Errorf("destination secret not found")
|
|
||||||
}
|
|
||||||
|
|
||||||
return nextReconcile, fmt.Errorf("unable to fetch destination secret")
|
annotationValue := ""
|
||||||
|
if infisicalDynamicSecret.Status.Lease != nil {
|
||||||
|
annotationValue = fmt.Sprintf("%s-%d", infisicalDynamicSecret.Status.Lease.ID, infisicalDynamicSecret.Status.Lease.Version)
|
||||||
|
}
|
||||||
|
|
||||||
|
r.createInfisicalManagedKubeSecret(ctx, logger, *infisicalDynamicSecret, annotationValue)
|
||||||
|
|
||||||
|
destination, err = util.GetKubeSecretByNamespacedName(ctx, r.Client, types.NamespacedName{
|
||||||
|
Name: infisicalDynamicSecret.Spec.ManagedSecretReference.SecretName,
|
||||||
|
Namespace: infisicalDynamicSecret.Spec.ManagedSecretReference.SecretNamespace,
|
||||||
|
})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nextReconcile, fmt.Errorf("unable to fetch destination secret after creation [err=%s]", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return nextReconcile, fmt.Errorf("unable to fetch destination secret")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if infisicalDynamicSecret.Status.Lease == nil {
|
if infisicalDynamicSecret.Status.Lease == nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user