Made sure SHUFFLE_BASE_IMAGE_REGISTRY is passed for k8s, and that registry/basepath/imagename:version now works

This commit is contained in:
Frikky
2025-08-25 21:41:17 +02:00
parent 220547fe4a
commit c729baedc6
2 changed files with 34 additions and 8 deletions
+17 -8
View File
@@ -85,9 +85,8 @@ var appContainerSecurityContext = os.Getenv("SHUFFLE_APP_CONTAINER_SECURITY_CONT
// var baseimagename = "docker.pkg.github.com/shuffle/shuffle"
// var baseimagename = "ghcr.io/frikky"
// var baseimagename = "shuffle/shuffle"
var baseimagename = os.Getenv("SHUFFLE_BASE_IMAGE_NAME")
var baseimageregistry = os.Getenv("SHUFFLE_BASE_IMAGE_REGISTRY")
var baseimagename = os.Getenv("SHUFFLE_BASE_IMAGE_NAME")
//var baseimagetagsuffix = os.Getenv("SHUFFLE_BASE_IMAGE_TAG_SUFFIX")
// Used for cloud with auth. Onprem in certain cases too.
@@ -1041,6 +1040,10 @@ func deployK8sWorker(image string, identifier string, env []string) error {
env = append(env, fmt.Sprintf("KUBERNETES_SERVICE_PORT=%s", os.Getenv("KUBERNETES_SERVICE_PORT")))
}
if len(os.Getenv("SHUFFLE_BASE_IMAGE_REGISTRY")) > 0 {
env = append(env, fmt.Sprintf("SHUFFLE_BASE_IMAGE_REGISTRY=%s", os.Getenv("SHUFFLE_BASE_IMAGE_REGISTRY")))
}
if len(os.Getenv("REGISTRY_URL")) > 0 {
env = append(env, fmt.Sprintf("REGISTRY_URL=%s", os.Getenv("REGISTRY_URL")))
}
@@ -1100,8 +1103,13 @@ func deployK8sWorker(image string, identifier string, env []string) error {
}
}
// Required format:
// url/org/repo/appname:tag
// url/org/repo/appname:tag
//env = append(env, fmt.Sprintf("SHUFFLE_SWARM_CONFIG=%s", swarmConfig))
env = append(env, fmt.Sprintf("BASE_URL=%s", baseUrl))
env = append(env, fmt.Sprintf("SHUFFLE_SWARM_CONFIG=%s", swarmConfig))
env = append(env, fmt.Sprintf("SHUFFLE_SWARM_CONFIG=run")
env = append(env, fmt.Sprintf("WORKER_HOSTNAME=%s", "shuffle-workers"))
if len(kubernetesNamespace) == 0 {
@@ -2137,16 +2145,17 @@ func main() {
if isKubernetes != "true" {
deployServiceWorkers(workerImage)
err := setBackendToSwarmNetwork(ctx)
if err != nil {
log.Printf("[WARNING] Failed setting backend to swarm network: %s", err)
}
} else {
deployK8sWorker(workerImage, "shuffle-workers", []string{})
runString = "Run: \"kubectl get pods\" for more info"
}
err := setBackendToSwarmNetwork(ctx)
if err != nil {
log.Printf("[WARNING] Failed setting backend to swarm network: %s", err)
}
log.Printf("[DEBUG] Waiting 45 seconds to ensure workers are deployed. %s", runString)
time.Sleep(time.Duration(45) * time.Second)
+17
View File
@@ -404,6 +404,8 @@ func deployk8sApp(image string, identifier string, env []string) error {
kubernetesNamespace = "default"
}
log.Printf("[DEBUG] Deploying k8s app with identifier %s to namespace %s", identifier, kubernetesNamespace)
deployport, err := strconv.Atoi(os.Getenv("SHUFFLE_APP_EXPOSED_PORT"))
if err != nil {
deployport = 80
@@ -866,6 +868,11 @@ func deployApp(cli *dockerclient.Client, image string, identifier string, env []
} else {
// ** STARTREMOVE ***/
exposedPort = 80
deployport, err := strconv.Atoi(os.Getenv("SHUFFLE_APP_EXPOSED_PORT"))
if err == nil {
exposedPort = deployport
}
err = findAppInfoKubernetes(image, appName, env)
if err != nil {
log.Printf("[ERROR] Failed finding and creating port for %s: %s", appName, err)
@@ -1432,6 +1439,16 @@ func handleExecutionResult(workflowExecution shuffle.WorkflowExecution) {
imageName = strings.ReplaceAll(imageName, " ", "-")
}
// Kubernetes specific.
// Should it be though?
if isKubernetes == "true" {
// Map it to:
// <registry>/baseimagename/<appname>:<appversion>
if len(localRegistry) > 0 && len(os.Getenv("SHUFFLE_BASE_IMAGE_REGISTRY")) > 0 {
imageName = fmt.Sprintf("%s/%s/%s:%s", os.Getenv("SHUFFLE_BASE_IMAGE_REGISTRY"), baseimagename, parsedAppname, action.AppVersion)
}
}
askOtherWorkersToDownloadImage(imageName)
// Added UUID to identifier just in case