@@ -1576,66 +1576,10 @@ func (mgr *SettingsManager) loadTLSCertificateFromSecret(secret *corev1.Secret)
1576
1576
return & cert , nil
1577
1577
}
1578
1578
1579
- // SaveSettings serializes ArgoCDSettings and upserts it into K8s secret/configmap
1580
- func (mgr * SettingsManager ) SaveSettings (settings * ArgoCDSettings ) error {
1581
- err := mgr .updateConfigMap (func (argoCDCM * corev1.ConfigMap ) error {
1582
- if settings .URL != "" {
1583
- argoCDCM .Data [settingURLKey ] = settings .URL
1584
- } else {
1585
- delete (argoCDCM .Data , settingURLKey )
1586
- }
1587
- if settings .DexConfig != "" {
1588
- argoCDCM .Data [settingDexConfigKey ] = settings .DexConfig
1589
- } else {
1590
- delete (argoCDCM .Data , settings .DexConfig )
1591
- }
1592
- if settings .OIDCConfigRAW != "" {
1593
- argoCDCM .Data [settingsOIDCConfigKey ] = settings .OIDCConfigRAW
1594
- } else {
1595
- delete (argoCDCM .Data , settingsOIDCConfigKey )
1596
- }
1597
- if settings .UiCssURL != "" {
1598
- argoCDCM .Data [settingUICSSURLKey ] = settings .UiCssURL
1599
- }
1600
- if settings .UiBannerContent != "" {
1601
- argoCDCM .Data [settingUIBannerContentKey ] = settings .UiBannerContent
1602
- } else {
1603
- delete (argoCDCM .Data , settingUIBannerContentKey )
1604
- }
1605
- if settings .UiBannerURL != "" {
1606
- argoCDCM .Data [settingUIBannerURLKey ] = settings .UiBannerURL
1607
- } else {
1608
- delete (argoCDCM .Data , settingUIBannerURLKey )
1609
- }
1610
- return nil
1611
- })
1612
- if err != nil {
1613
- return err
1614
- }
1615
-
1579
+ // saveSignatureAndCertificate serializes the server Signature and Certificate ArgoCDSettings and upserts it into the secret
1580
+ func (mgr * SettingsManager ) saveSignatureAndCertificate (settings * ArgoCDSettings ) error {
1616
1581
return mgr .updateSecret (func (argoCDSecret * corev1.Secret ) error {
1617
1582
argoCDSecret .Data [settingServerSignatureKey ] = settings .ServerSignature
1618
- if settings .WebhookGitHubSecret != "" {
1619
- argoCDSecret .Data [settingsWebhookGitHubSecretKey ] = []byte (settings .WebhookGitHubSecret )
1620
- }
1621
- if settings .WebhookGitLabSecret != "" {
1622
- argoCDSecret .Data [settingsWebhookGitLabSecretKey ] = []byte (settings .WebhookGitLabSecret )
1623
- }
1624
- if settings .WebhookBitbucketUUID != "" {
1625
- argoCDSecret .Data [settingsWebhookBitbucketUUIDKey ] = []byte (settings .WebhookBitbucketUUID )
1626
- }
1627
- if settings .WebhookBitbucketServerSecret != "" {
1628
- argoCDSecret .Data [settingsWebhookBitbucketServerSecretKey ] = []byte (settings .WebhookBitbucketServerSecret )
1629
- }
1630
- if settings .WebhookGogsSecret != "" {
1631
- argoCDSecret .Data [settingsWebhookGogsSecretKey ] = []byte (settings .WebhookGogsSecret )
1632
- }
1633
- if settings .WebhookAzureDevOpsUsername != "" {
1634
- argoCDSecret .Data [settingsWebhookAzureDevOpsUsernameKey ] = []byte (settings .WebhookAzureDevOpsUsername )
1635
- }
1636
- if settings .WebhookAzureDevOpsPassword != "" {
1637
- argoCDSecret .Data [settingsWebhookAzureDevOpsPasswordKey ] = []byte (settings .WebhookAzureDevOpsPassword )
1638
- }
1639
1583
// we only write the certificate to the secret if it's not externally
1640
1584
// managed.
1641
1585
if settings .Certificate != nil && ! settings .CertificateIsExternal {
@@ -2095,24 +2039,7 @@ func isIncompleteSettingsError(err error) bool {
2095
2039
// InitializeSettings is used to initialize empty admin password, signature, certificate etc if missing
2096
2040
func (mgr * SettingsManager ) InitializeSettings (insecureModeEnabled bool ) (* ArgoCDSettings , error ) {
2097
2041
const letters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-"
2098
-
2099
- cdSettings , err := mgr .GetSettings ()
2100
- if err != nil && ! isIncompleteSettingsError (err ) {
2101
- return nil , err
2102
- }
2103
- if cdSettings == nil {
2104
- cdSettings = & ArgoCDSettings {}
2105
- }
2106
- if cdSettings .ServerSignature == nil {
2107
- // set JWT signature
2108
- signature , err := util .MakeSignature (32 )
2109
- if err != nil {
2110
- return nil , fmt .Errorf ("error setting JWT signature: %w" , err )
2111
- }
2112
- cdSettings .ServerSignature = signature
2113
- log .Info ("Initialized server signature" )
2114
- }
2115
- err = mgr .UpdateAccount (common .ArgoCDAdminUsername , func (adminAccount * Account ) error {
2042
+ err := mgr .UpdateAccount (common .ArgoCDAdminUsername , func (adminAccount * Account ) error {
2116
2043
if adminAccount .Enabled {
2117
2044
now := time .Now ().UTC ()
2118
2045
if adminAccount .PasswordHash == "" {
@@ -2152,6 +2079,23 @@ func (mgr *SettingsManager) InitializeSettings(insecureModeEnabled bool) (*ArgoC
2152
2079
return nil , err
2153
2080
}
2154
2081
2082
+ cdSettings , err := mgr .GetSettings ()
2083
+ if err != nil && ! isIncompleteSettingsError (err ) {
2084
+ return nil , err
2085
+ }
2086
+ if cdSettings == nil {
2087
+ cdSettings = & ArgoCDSettings {}
2088
+ }
2089
+ if cdSettings .ServerSignature == nil {
2090
+ // set JWT signature
2091
+ signature , err := util .MakeSignature (32 )
2092
+ if err != nil {
2093
+ return nil , fmt .Errorf ("error setting JWT signature: %w" , err )
2094
+ }
2095
+ cdSettings .ServerSignature = signature
2096
+ log .Info ("Initialized server signature" )
2097
+ }
2098
+
2155
2099
if cdSettings .Certificate == nil && ! insecureModeEnabled {
2156
2100
// generate TLS cert
2157
2101
hosts := []string {
@@ -2174,7 +2118,7 @@ func (mgr *SettingsManager) InitializeSettings(insecureModeEnabled bool) (*ArgoC
2174
2118
log .Info ("Initialized TLS certificate" )
2175
2119
}
2176
2120
2177
- err = mgr .SaveSettings (cdSettings )
2121
+ err = mgr .saveSignatureAndCertificate (cdSettings )
2178
2122
if apierrors .IsConflict (err ) {
2179
2123
// assume settings are initialized by another instance of api server
2180
2124
log .Warnf ("conflict when initializing settings. assuming updated by another replica" )
0 commit comments