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 0a9250af3cb55d399078b81051448b4ebe104838
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Mon Feb 13 18:13:04 2023 +0100

    feature(#3903): Support secret refresh through the existing addons - Azure 
Key Vault
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
---
 addons/vault/azure/azure_key_vault.go | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/addons/vault/azure/azure_key_vault.go 
b/addons/vault/azure/azure_key_vault.go
index 2bec04985..429858c0b 100644
--- a/addons/vault/azure/azure_key_vault.go
+++ b/addons/vault/azure/azure_key_vault.go
@@ -23,6 +23,7 @@ import (
        "github.com/apache/camel-k/pkg/trait"
        "github.com/apache/camel-k/pkg/util"
        "k8s.io/utils/pointer"
+       "strconv"
 )
 
 // The Azure Key Vault trait can be used to use secrets from Azure Key Vault 
service
@@ -48,6 +49,22 @@ type Trait struct {
        ClientSecret string `property:"client-secret,omitempty"`
        // The Azure Vault Name for accessing Key Vault
        VaultName string `property:"vault-name,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, the connection String to point to the 
Eventhub service used to track updates
+       EventhubConnectionString string `property:"refresh-period,omitempty"`
+       // If Refresh is enabled, the account name for Azure Storage Blob 
service used to save checkpoint while consuming from Eventhub
+       BlobAccountName string `property:"refresh-period,omitempty"`
+       // If Refresh is enabled, the access key for Azure Storage Blob service 
used to save checkpoint while consuming from Eventhub
+       BlobAccessKey string `property:"refresh-period,omitempty"`
+       // If Refresh is enabled, the container name for Azure Storage Blob 
service used to save checkpoint while consuming from Eventhub
+       BlobContainerName string `property:"refresh-period,omitempty"`
 }
 
 type azureKeyVaultTrait struct {
@@ -70,6 +87,14 @@ func (t *azureKeyVaultTrait) Configure(environment 
*trait.Environment) (bool, er
                return false, nil
        }
 
+       if t.ContextReloadEnabled == nil {
+               t.ContextReloadEnabled = pointer.Bool(false)
+       }
+
+       if t.RefreshEnabled == nil {
+               t.RefreshEnabled = pointer.Bool(false)
+       }
+
        return true, nil
 }
 
@@ -85,6 +110,16 @@ func (t *azureKeyVaultTrait) Apply(environment 
*trait.Environment) error {
                environment.ApplicationProperties["camel.vault.azure.clientId"] 
= t.ClientID
                
environment.ApplicationProperties["camel.vault.azure.clientSecret"] = 
t.ClientSecret
                
environment.ApplicationProperties["camel.vault.azure.vaultName"] = t.VaultName
+               
environment.ApplicationProperties["camel.vault.azure.refreshEnabled"] = 
strconv.FormatBool(*t.RefreshEnabled)
+               
environment.ApplicationProperties["camel.main.context-reload-enabled"] = 
strconv.FormatBool(*t.ContextReloadEnabled)
+               
environment.ApplicationProperties["camel.vault.azure.refreshPeriod"] = 
t.RefreshPeriod
+               if t.Secrets != "" {
+                       
environment.ApplicationProperties["camel.vault.azure.secrets"] = t.Secrets
+               }
+               
environment.ApplicationProperties["camel.vault.azure.eventhubConnectionString"] 
= t.EventhubConnectionString
+               
environment.ApplicationProperties["camel.vault.azure.blobAccountName"] = 
t.BlobAccountName
+               
environment.ApplicationProperties["camel.vault.azure.blobContainerName"] = 
t.BlobContainerName
+               
environment.ApplicationProperties["camel.vault.azure.blobAccessKey"] = 
t.BlobAccessKey
        }
 
        return nil

Reply via email to