Browse Source

inject secrets/config just before container is started

Signed-off-by: Nicolas De Loof <[email protected]>
Nicolas De Loof 5 months ago
parent
commit
aadce87b16
2 changed files with 20 additions and 9 deletions
  1. 12 8
      pkg/compose/convergence.go
  2. 8 1
      pkg/compose/run.go

+ 12 - 8
pkg/compose/convergence.go

@@ -756,14 +756,7 @@ func (s *composeService) createMobyContainer(ctx context.Context,
 			}
 		}
 	}
-
-	err = s.injectSecrets(ctx, project, service, created.ID)
-	if err != nil {
-		return created, err
-	}
-
-	err = s.injectConfigs(ctx, project, service, created.ID)
-	return created, err
+	return created, nil
 }
 
 // getLinks mimics V1 compose/service.py::Service::_get_links()
@@ -897,6 +890,17 @@ func (s *composeService) startService(ctx context.Context,
 		if ctr.State == ContainerRunning {
 			continue
 		}
+
+		err = s.injectSecrets(ctx, project, service, ctr.ID)
+		if err != nil {
+			return err
+		}
+
+		err = s.injectConfigs(ctx, project, service, ctr.ID)
+		if err != nil {
+			return err
+		}
+
 		eventName := getContainerProgressName(ctr)
 		w.Event(progress.StartingEvent(eventName))
 		err = s.apiClient().ContainerStart(ctx, ctr.ID, containerType.StartOptions{})

+ 8 - 1
pkg/compose/run.go

@@ -127,7 +127,14 @@ func (s *composeService) prepareRun(ctx context.Context, project *types.Project,
 	if err != nil {
 		return "", err
 	}
-	return created.ID, nil
+
+	err = s.injectSecrets(ctx, project, service, created.ID)
+	if err != nil {
+		return created.ID, err
+	}
+
+	err = s.injectConfigs(ctx, project, service, created.ID)
+	return created.ID, err
 }
 
 func applyRunOptions(project *types.Project, service *types.ServiceConfig, opts api.RunOptions) {