This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 19c126abab655307efe8998f9c96cfdeb1bcdefe
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Mon Feb 13 07:54:10 2023 +0100

    feature(#3903): Support secret refresh through the existing addons - Google 
Secret Manager
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
---
 addons/vault/gcp/gcp_secret_manager.go | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/addons/vault/gcp/gcp_secret_manager.go 
b/addons/vault/gcp/gcp_secret_manager.go
index 0b832d682..910565dac 100644
--- a/addons/vault/gcp/gcp_secret_manager.go
+++ b/addons/vault/gcp/gcp_secret_manager.go
@@ -48,6 +48,16 @@ type Trait struct {
        ServiceAccountKey string `property:"service-account-key,omitempty"`
        // Define if we want to use the Default Instance approach for accessing 
the Google Secret Manager service
        UseDefaultInstance *bool `property:"use-default-instance,omitempty"`
+       // Define if we want to use the Camel Context Reload feature or not
+       ContextReloadEnabled *bool `property:"context-reload-enabled,omitempty"`
+       // Define if we want to use the Refresh Feature for secrets
+       RefreshEnabled *bool `property:"refresh-enabled,omitempty"`
+       // If Refresh is enabled, this defines the interval to check the 
refresh event
+       RefreshPeriod string `property:"refresh-period,omitempty"`
+       // If Refresh is enabled, the regular expression representing the 
secrets we want to track
+       Secrets string `property:"refresh-period,omitempty"`
+       // If Refresh is enabled, this defines the subscription name to the 
Google PubSub topic used to keep track of updates
+       SubscriptionName string `property:"refresh-period,omitempty"`
 }
 
 type gcpSecretManagerTrait struct {
@@ -74,6 +84,14 @@ func (t *gcpSecretManagerTrait) Configure(environment 
*trait.Environment) (bool,
                t.UseDefaultInstance = pointer.Bool(false)
        }
 
+       if t.ContextReloadEnabled == nil {
+               t.ContextReloadEnabled = pointer.Bool(false)
+       }
+       
+       if t.RefreshEnabled == nil {
+               t.RefreshEnabled = pointer.Bool(false)
+       }
+
        return true, nil
 }
 
@@ -88,6 +106,13 @@ func (t *gcpSecretManagerTrait) Apply(environment 
*trait.Environment) error {
                environment.ApplicationProperties["camel.vault.gcp.projectId"] 
= t.ProjectID
                
environment.ApplicationProperties["camel.vault.gcp.serviceAccountKey"] = 
t.ServiceAccountKey
                
environment.ApplicationProperties["camel.vault.gcp.useDefaultInstance"] = 
strconv.FormatBool(*t.UseDefaultInstance)
+               
environment.ApplicationProperties["camel.vault.gcp.refreshEnabled"] = 
strconv.FormatBool(*t.RefreshEnabled)
+               
environment.ApplicationProperties["camel.main.context-reload-enabled"] = 
strconv.FormatBool(*t.ContextReloadEnabled)
+               
environment.ApplicationProperties["camel.vault.gcp.refreshPeriod"] = 
t.RefreshPeriod
+               
environment.ApplicationProperties["camel.vault.gcp.subscriptionName"] = 
t.SubscriptionName
+               if t.Secrets != "" {
+                       
environment.ApplicationProperties["camel.vault.gcp.secrets"] = t.Secrets
+               }
        }
 
        return nil

Reply via email to