Merge Develop to prepare V3 #77

Merged
metal3d merged 98 commits from develop into master 2024-10-29 16:45:05 +00:00
2 changed files with 6 additions and 2 deletions
Showing only changes of commit 9a3fc6a2b4 - Show all commits

View File

@@ -91,11 +91,15 @@ func NewDeployment(service types.ServiceConfig, chart *HelmChart) *Deployment {
}
// DependsOn adds a initContainer to the deployment that will wait for the service to be up.
func (d *Deployment) DependsOn(to *Deployment) error {
func (d *Deployment) DependsOn(to *Deployment, servicename string) error {
// Add a initContainer with busybox:latest using netcat to check if the service is up
// it will wait until the service responds to all ports
for _, container := range to.Spec.Template.Spec.Containers {
commands := []string{}
if len(container.Ports) == 0 {
utils.Warn("No ports found for service ", servicename, ". You should declare a port in the service or use "+LABEL_PORTS+" label.")
os.Exit(1)
}
for _, port := range container.Ports {
command := fmt.Sprintf("until nc -z %s %d; do\n sleep 1;\ndone", to.Name, port.ContainerPort)
commands = append(commands, command)

View File

@@ -148,7 +148,7 @@ func Generate(project *types.Project) (*HelmChart, error) {
for _, s := range project.Services {
for _, d := range s.GetDependencies() {
if dep, ok := deployments[d]; ok {
deployments[s.Name].DependsOn(dep)
deployments[s.Name].DependsOn(dep, d)
} else {
log.Printf("service %[1]s depends on %[2]s, but %[2]s is not defined", s.Name, d)
}