@@ -13,21 +13,15 @@ var (
1313 vaultAppRoleTokenSecret = "approle-vault-token"
1414 vaultAddress = "http://vault.%s"
1515 cluserAppRoleName = "capten-approle-%s"
16- secretStoreName = "approle -vault-store"
16+ secretStoreName = "capten -vault-store"
1717)
1818
1919func (cp * CrossPlaneApp ) configureExternalSecretsOnCluster (ctx context.Context ,
20- clusterName , clusterID string , extSecrets []clusterExternalSecret ) error {
20+ clusterName , clusterID string , appRoleTokenPaths [] string , extSecrets []clusterExternalSecret ) error {
2121 logger .Infof ("configure external secrets for cluster %s/%s" , clusterName , clusterID )
2222
23- credentialPaths , namespaces := getUniqueSecretPathsAndNamespaces (extSecrets )
24- if len (namespaces ) == 0 {
25- logger .Infof ("no external secrets defined for cluster %s/%s" , clusterName , clusterID )
26- return nil
27- }
28-
2923 cluserAppRoleNameStr := fmt .Sprintf (cluserAppRoleName , clusterName )
30- token , err := vaultcred .GetAppRoleToken (cluserAppRoleNameStr , credentialPaths )
24+ token , err := vaultcred .GetAppRoleToken (cluserAppRoleNameStr , appRoleTokenPaths )
3125 if err != nil {
3226 return err
3327 }
@@ -38,24 +32,27 @@ func (cp *CrossPlaneApp) configureExternalSecretsOnCluster(ctx context.Context,
3832 return fmt .Errorf ("failed to initalize k8s client, %v" , err )
3933 }
4034
35+ namespace := "capten"
4136 vaultAddressStr := fmt .Sprintf (vaultAddress , cp .cfg .DomainName )
37+ err = k8sclient .CreateNamespace (ctx , namespace )
38+ if err != nil {
39+ logger .Infof ("failed to create namespace %s, %v" , namespace , err )
40+ }
4241
43- for _ , namespace := range namespaces {
44- cred := map [string ][]byte {"token" : []byte (token )}
45- err = k8sclient .CreateOrUpdateSecret (ctx , namespace , vaultAppRoleTokenSecret , v1 .SecretTypeOpaque , cred , nil )
46- if err != nil {
47- logger .Infof ("failed to create cluter vault token secret %s/%s, %v" , namespace , vaultAppRoleTokenSecret , err )
48- continue
49- }
42+ cred := map [string ][]byte {"token" : []byte (token )}
43+ err = k8sclient .CreateOrUpdateSecret (ctx , namespace , vaultAppRoleTokenSecret , v1 .SecretTypeOpaque , cred , nil )
44+ if err != nil {
45+ logger .Infof ("failed to create cluter vault token secret %s/%s, %v" , namespace , vaultAppRoleTokenSecret , err )
46+ }
5047
51- err := k8sclient .CreateOrUpdateSecretStore (ctx , secretStoreName , namespace ,
52- vaultAddressStr , vaultAppRoleTokenSecret , "token" )
53- if err != nil {
54- return fmt .Errorf ("failed to create cluter vault token secret, %v" , err )
55- }
56- logger .Infof ("created %s/%s on cluster cluster %s" , namespace , secretStoreName , clusterName )
48+ err = k8sclient .CreateOrUpdateSecretStore (ctx , secretStoreName , namespace ,
49+ vaultAddressStr , vaultAppRoleTokenSecret , "token" )
50+ if err != nil {
51+ return fmt .Errorf ("failed to create cluter vault token secret, %v" , err )
5752 }
5853
54+ logger .Infof ("created %s on cluster cluster %s" , secretStoreName , secretStoreName , clusterName )
55+
5956 for _ , extSecret := range extSecrets {
6057 externalSecretName := "external-" + extSecret .SecretName
6158 vaultSecretData := map [string ]string {}
@@ -72,25 +69,3 @@ func (cp *CrossPlaneApp) configureExternalSecretsOnCluster(ctx context.Context,
7269 }
7370 return nil
7471}
75-
76- func getUniqueSecretPathsAndNamespaces (extSecrets []clusterExternalSecret ) ([]string , []string ) {
77- credentialPaths := map [string ]bool {}
78- namspaces := map [string ]bool {}
79- for _ , extSecret := range extSecrets {
80- for _ , secretData := range extSecret .VaultSecrets {
81- credentialPaths [secretData .SecretPath ] = true
82- }
83- namspaces [extSecret .Namespace ] = true
84- }
85- return getKeysFromBoolMap (credentialPaths ), getKeysFromBoolMap (namspaces )
86- }
87-
88- func getKeysFromBoolMap (inputMap map [string ]bool ) []string {
89- var keys []string
90-
91- for key := range inputMap {
92- keys = append (keys , key )
93- }
94-
95- return keys
96- }
0 commit comments