Skip to content

Commit 90aa21a

Browse files
authored
Merge pull request #771 from aaannz/fix_missing_secrets_on_upgrade
Generate template only after secrets are created
2 parents 913b0ed + 7e1b6ed commit 90aa21a

4 files changed

Lines changed: 21 additions & 16 deletions

File tree

mgradm/cmd/uninstall/podman.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ func uninstallForPodman(
9090
podman.DeleteSecret(podman.CASecret, !flags.Force)
9191
podman.DeleteSecret(podman.SSLCertSecret, !flags.Force)
9292
podman.DeleteSecret(podman.SSLKeySecret, !flags.Force)
93+
podman.DeleteSecret(podman.AdminUserSecret, !flags.Force)
94+
podman.DeleteSecret(podman.AdminPassSecret, !flags.Force)
9395

9496
err := systemd.ReloadDaemon(!flags.Force)
9597

mgradm/shared/podman/podman.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -154,32 +154,32 @@ func GenerateSystemdService(
154154
return utils.Errorf(err, L("cannot setup network"))
155155
}
156156

157-
log.Info().Msg(L("Enabling system service"))
158-
if err := GenerateServerSystemdService(mirrorPath, flags.Debug.Java); err != nil {
159-
return err
160-
}
161-
162-
if err := podman.GenerateSystemdConfFile(podman.ServerService, podman.GeneratedConf,
163-
"Environment=UYUNI_IMAGE="+image, true,
164-
); err != nil {
165-
return utils.Errorf(err, L("cannot generate systemd conf file"))
166-
}
167-
168157
// Add the SCC and admin credentials as secrets
169-
if err := podman.CreateCredentialsSecretsIfMissing(
158+
if err := podman.CreateCredentialsSecrets(
170159
podman.AdminUserSecret, flags.Admin.Login, podman.AdminPassSecret, flags.Admin.Password,
171160
); err != nil {
172161
return err
173162
}
174163

175164
if flags.SCC.User != "" {
176-
if err := podman.CreateCredentialsSecretsIfMissing(
165+
if err := podman.CreateCredentialsSecrets(
177166
podman.SCCUserSecret, flags.SCC.User, podman.SCCPassSecret, flags.SCC.Password,
178167
); err != nil {
179168
return err
180169
}
181170
}
182171

172+
log.Info().Msg(L("Enabling system service"))
173+
if err := GenerateServerSystemdService(mirrorPath, flags.Debug.Java); err != nil {
174+
return err
175+
}
176+
177+
if err := podman.GenerateSystemdConfFile(podman.ServerService, podman.GeneratedConf,
178+
"Environment=UYUNI_IMAGE="+image, true,
179+
); err != nil {
180+
return utils.Errorf(err, L("cannot generate systemd conf file"))
181+
}
182+
183183
config := fmt.Sprintf("Environment=\"PODMAN_EXTRA_ARGS=%s\"", strings.Join(podmanArgs, " "))
184184
if !utils.FileExists(podman.GetServiceConfPath(podman.ServerService, podman.CustomConf)) {
185185
if err := podman.GenerateSystemdConfFile(podman.ServerService, podman.CustomConf, config, false); err != nil {

shared/connection.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -361,10 +361,12 @@ func (c *Connection) WaitForContainer() error {
361361
return errors.New(L("container didn't start within 10s."))
362362
}
363363

364-
// WaitForHealthcheck waits at most 120s for healtcheck to succeed.
364+
// WaitForHealthcheck waits at most 180s for healtcheck to succeed.
365365
func (c *Connection) WaitForHealthcheck() error {
366+
// On update consider healtcheck configuration in the container Dockerfile
367+
const maxWaitTime = 180
366368
// Wait for the system to be up
367-
for i := 0; i < 120; i++ {
369+
for i := 0; i < maxWaitTime; i++ {
368370
_, err := c.Healthcheck()
369371
if err != nil {
370372
log.Debug().Err(err)
@@ -373,7 +375,7 @@ func (c *Connection) WaitForHealthcheck() error {
373375
}
374376
return nil
375377
}
376-
return errors.New(L("container didn't start within 120s. Check for the service status"))
378+
return fmt.Errorf(L("container didn't start within %ds. Check for the service status"), maxWaitTime)
377379
}
378380

379381
// Copy transfers a file to or from the container.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Generate service template only after secrets are created

0 commit comments

Comments
 (0)