mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 16:27:46 +00:00
requested changes
This commit is contained in:
@@ -34,7 +34,6 @@ type ClusterGeneratorSpec struct {
|
|||||||
Kind GeneratorKind `json:"kind"`
|
Kind GeneratorKind `json:"kind"`
|
||||||
|
|
||||||
// Generator the spec for this generator, must match the kind.
|
// Generator the spec for this generator, must match the kind.
|
||||||
// +kubebuilder:validation:Optional
|
|
||||||
Generator GeneratorSpec `json:"generator,omitempty"`
|
Generator GeneratorSpec `json:"generator,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,26 +95,29 @@ type UUIDList struct {
|
|||||||
type PasswordSpec struct {
|
type PasswordSpec struct {
|
||||||
// Length of the password to be generated.
|
// Length of the password to be generated.
|
||||||
// Defaults to 24
|
// Defaults to 24
|
||||||
|
// +kubebuilder:validation:Optional
|
||||||
// +kubebuilder:default=24
|
// +kubebuilder:default=24
|
||||||
Length int `json:"length"`
|
Length int `json:"length"`
|
||||||
|
|
||||||
// Digits specifies the number of digits in the generated
|
// digits specifies the number of digits in the generated
|
||||||
// password. If omitted it defaults to 25% of the length of the password
|
// password. If omitted it defaults to 25% of the length of the password
|
||||||
Digits *int `json:"digits,omitempty"`
|
Digits *int `json:"digits,omitempty"`
|
||||||
|
|
||||||
// Symbols specifies the number of symbol characters in the generated
|
// symbols specifies the number of symbol characters in the generated
|
||||||
// password. If omitted it defaults to 25% of the length of the password
|
// password. If omitted it defaults to 25% of the length of the password
|
||||||
Symbols *int `json:"symbols,omitempty"`
|
Symbols *int `json:"symbols,omitempty"`
|
||||||
|
|
||||||
// SymbolCharacters specifies the special characters that should be used
|
// symbolCharacters specifies the special characters that should be used
|
||||||
// in the generated password.
|
// in the generated password.
|
||||||
SymbolCharacters *string `json:"symbolCharacters,omitempty"`
|
SymbolCharacters *string `json:"symbolCharacters,omitempty"`
|
||||||
|
|
||||||
// Set NoUpper to disable uppercase characters
|
// Set noUpper to disable uppercase characters
|
||||||
|
// +kubebuilder:validation:Optional
|
||||||
// +kubebuilder:default=false
|
// +kubebuilder:default=false
|
||||||
NoUpper bool `json:"noUpper"`
|
NoUpper bool `json:"noUpper"`
|
||||||
|
|
||||||
// set AllowRepeat to true to allow repeating characters.
|
// set allowRepeat to true to allow repeating characters.
|
||||||
|
// +kubebuilder:validation:Optional
|
||||||
// +kubebuilder:default=false
|
// +kubebuilder:default=false
|
||||||
AllowRepeat bool `json:"allowRepeat"`
|
AllowRepeat bool `json:"allowRepeat"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ func (r *InfisicalPushSecretReconciler) updateResourceVariables(infisicalPushSec
|
|||||||
infisicalPushSecretResourceVariablesMap[string(infisicalPushSecret.UID)] = resourceVariables
|
infisicalPushSecretResourceVariablesMap[string(infisicalPushSecret.UID)] = resourceVariables
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *InfisicalPushSecretReconciler) processGenerators(infisicalPushSecret v1alpha1.InfisicalPushSecret) (map[string]string, error) {
|
func (r *InfisicalPushSecretReconciler) processGenerators(ctx context.Context, infisicalPushSecret v1alpha1.InfisicalPushSecret) (map[string]string, error) {
|
||||||
|
|
||||||
processedSecrets := make(map[string]string)
|
processedSecrets := make(map[string]string)
|
||||||
|
|
||||||
@@ -119,13 +119,17 @@ func (r *InfisicalPushSecretReconciler) processGenerators(infisicalPushSecret v1
|
|||||||
generatorRef := generator.GeneratorRef
|
generatorRef := generator.GeneratorRef
|
||||||
|
|
||||||
clusterGenerator := &v1alpha1.ClusterGenerator{}
|
clusterGenerator := &v1alpha1.ClusterGenerator{}
|
||||||
err := r.Client.Get(context.TODO(), types.NamespacedName{Name: generatorRef.Name}, clusterGenerator)
|
err := r.Client.Get(ctx, types.NamespacedName{Name: generatorRef.Name}, clusterGenerator)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("unable to get ClusterGenerator resource [err=%s]", err)
|
return nil, fmt.Errorf("unable to get ClusterGenerator resource [err=%s]", err)
|
||||||
}
|
}
|
||||||
if generatorRef.Kind == v1alpha1.GeneratorKindPassword {
|
if generatorRef.Kind == v1alpha1.GeneratorKindPassword {
|
||||||
// get the custom ClusterGenerator resource from the cluster
|
// get the custom ClusterGenerator resource from the cluster
|
||||||
|
|
||||||
|
if clusterGenerator.Spec.Generator.PasswordSpec == nil {
|
||||||
|
return nil, fmt.Errorf("password spec is not defined in the ClusterGenerator resource")
|
||||||
|
}
|
||||||
|
|
||||||
password, err := generatorUtil.GeneratorPassword(*clusterGenerator.Spec.Generator.PasswordSpec)
|
password, err := generatorUtil.GeneratorPassword(*clusterGenerator.Spec.Generator.PasswordSpec)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("unable to generate password [err=%s]", err)
|
return nil, fmt.Errorf("unable to generate password [err=%s]", err)
|
||||||
@@ -233,7 +237,7 @@ func (r *InfisicalPushSecretReconciler) ReconcileInfisicalPushSecret(ctx context
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
generatorSecrets, err := r.processGenerators(infisicalPushSecret)
|
generatorSecrets, err := r.processGenerators(ctx, infisicalPushSecret)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("unable to process generators [err=%s]", err)
|
return fmt.Errorf("unable to process generators [err=%s]", err)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -4,10 +4,12 @@ go 1.21
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Masterminds/sprig/v3 v3.3.0
|
github.com/Masterminds/sprig/v3 v3.3.0
|
||||||
|
github.com/aws/smithy-go v1.20.3
|
||||||
github.com/infisical/go-sdk v0.4.4
|
github.com/infisical/go-sdk v0.4.4
|
||||||
github.com/lestrrat-go/jwx/v2 v2.1.4
|
github.com/lestrrat-go/jwx/v2 v2.1.4
|
||||||
github.com/onsi/ginkgo/v2 v2.6.0
|
github.com/onsi/ginkgo/v2 v2.6.0
|
||||||
github.com/onsi/gomega v1.24.1
|
github.com/onsi/gomega v1.24.1
|
||||||
|
github.com/sethvargo/go-password v0.3.1
|
||||||
k8s.io/apimachinery v0.26.1
|
k8s.io/apimachinery v0.26.1
|
||||||
k8s.io/client-go v0.26.1
|
k8s.io/client-go v0.26.1
|
||||||
sigs.k8s.io/controller-runtime v0.14.4
|
sigs.k8s.io/controller-runtime v0.14.4
|
||||||
@@ -34,7 +36,6 @@ require (
|
|||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.2 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.2 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 // indirect
|
||||||
github.com/aws/smithy-go v1.20.3 // indirect
|
|
||||||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
|
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
|
||||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
@@ -51,7 +52,6 @@ require (
|
|||||||
github.com/mitchellh/copystructure v1.2.0 // indirect
|
github.com/mitchellh/copystructure v1.2.0 // indirect
|
||||||
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
||||||
github.com/segmentio/asm v1.2.0 // indirect
|
github.com/segmentio/asm v1.2.0 // indirect
|
||||||
github.com/sethvargo/go-password v0.3.1 // indirect
|
|
||||||
github.com/shopspring/decimal v1.4.0 // indirect
|
github.com/shopspring/decimal v1.4.0 // indirect
|
||||||
github.com/spf13/cast v1.7.0 // indirect
|
github.com/spf13/cast v1.7.0 // indirect
|
||||||
go.opencensus.io v0.24.0 // indirect
|
go.opencensus.io v0.24.0 // indirect
|
||||||
@@ -86,7 +86,7 @@ require (
|
|||||||
github.com/google/gnostic v0.5.7-v3refs // indirect
|
github.com/google/gnostic v0.5.7-v3refs // indirect
|
||||||
github.com/google/go-cmp v0.6.0 // indirect
|
github.com/google/go-cmp v0.6.0 // indirect
|
||||||
github.com/google/gofuzz v1.1.0 // indirect
|
github.com/google/gofuzz v1.1.0 // indirect
|
||||||
github.com/google/uuid v1.6.0 // indirect
|
github.com/google/uuid v1.6.0
|
||||||
github.com/imdario/mergo v0.3.12 // indirect
|
github.com/imdario/mergo v0.3.12 // indirect
|
||||||
github.com/josharian/intern v1.0.0 // indirect
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
github.com/json-iterator/go v1.1.12 // indirect
|
github.com/json-iterator/go v1.1.12 // indirect
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ func GeneratorPassword(spec v1alpha1.PasswordSpec) (string, error) {
|
|||||||
|
|
||||||
symbolCharacters := defaultSymbolChars
|
symbolCharacters := defaultSymbolChars
|
||||||
|
|
||||||
if spec.SymbolCharacters != nil {
|
if spec.SymbolCharacters != nil && *spec.SymbolCharacters != "" {
|
||||||
symbolCharacters = *spec.SymbolCharacters
|
symbolCharacters = *spec.SymbolCharacters
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
|
|
||||||
func ConvertIntervalToDuration(resyncInterval *string) (time.Duration, error) {
|
func ConvertIntervalToDuration(resyncInterval *string) (time.Duration, error) {
|
||||||
|
|
||||||
if resyncInterval == nil {
|
if resyncInterval == nil || *resyncInterval == "" {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user