Merge branch 'nightly' into cleanup-helm-values
This commit is contained in:
@@ -15,10 +15,10 @@ type: application
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.1.0
|
||||
version: 0.2.0
|
||||
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application. Versions are not expected to
|
||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||
# It is recommended to use it with quotes.
|
||||
appVersion: "1.16.0"
|
||||
appVersion: "2.0.0"
|
||||
|
||||
@@ -2,8 +2,8 @@ apiVersion: v2
|
||||
name: shuffle
|
||||
description: A Helm chart for deploying Shuffle on Kubernetes
|
||||
type: application
|
||||
version: 0.0.0
|
||||
appVersion: 0.0.0
|
||||
version: 0.0.0 # Set during publishing in GitHub actions
|
||||
appVersion: nightly # Overwritten during publishing in GitHub actions
|
||||
dependencies:
|
||||
- name: common
|
||||
version: ^2.23.0
|
||||
|
||||
@@ -148,6 +148,7 @@ SHUFFLE_ENCRYPTION_MODIFIER: "MyShuffleEncryptionModifier"
|
||||
| ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
|
||||
| `backend.image.registry` | backend image registry | `ghcr.io` |
|
||||
| `backend.image.repository` | backend image repository | `shuffle/shuffle-backend` |
|
||||
| `backend.image.tag` | backend image tag (immutable tags are recommended, defaults to appVersion) | `""` |
|
||||
| `backend.image.digest` | backend image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended) | `""` |
|
||||
| `backend.image.pullPolicy` | backend image pull policy | `IfNotPresent` |
|
||||
| `backend.image.pullSecrets` | backend image pull secrets | `[]` |
|
||||
@@ -261,6 +262,7 @@ SHUFFLE_ENCRYPTION_MODIFIER: "MyShuffleEncryptionModifier"
|
||||
| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |
|
||||
| `frontend.image.registry` | frontend image registry | `ghcr.io` |
|
||||
| `frontend.image.repository` | frontend image repository | `shuffle/shuffle-frontend` |
|
||||
| `frontend.image.tag` | frontend image tag (immutable tags are recommended, defaults to appVersion) | `""` |
|
||||
| `frontend.image.digest` | frontend image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended) | `""` |
|
||||
| `frontend.image.pullPolicy` | frontend image pull policy | `IfNotPresent` |
|
||||
| `frontend.image.pullSecrets` | frontend image pull secrets | `[]` |
|
||||
@@ -365,6 +367,7 @@ SHUFFLE_ENCRYPTION_MODIFIER: "MyShuffleEncryptionModifier"
|
||||
| ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
|
||||
| `orborus.image.registry` | orborus image registry | `ghcr.io` |
|
||||
| `orborus.image.repository` | orborus image repository | `shuffle/shuffle-orborus` |
|
||||
| `orborus.image.tag` | orborus image tag (immutable tags are recommended, defaults to appVersion) | `""` |
|
||||
| `orborus.image.digest` | orborus image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended) | `""` |
|
||||
| `orborus.image.pullPolicy` | orborus image pull policy | `IfNotPresent` |
|
||||
| `orborus.image.pullSecrets` | orborus image pull secrets | `[]` |
|
||||
@@ -469,6 +472,7 @@ SHUFFLE_ENCRYPTION_MODIFIER: "MyShuffleEncryptionModifier"
|
||||
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
|
||||
| `worker.image.registry` | worker image registry | `ghcr.io` |
|
||||
| `worker.image.repository` | worker image repository | `shuffle/shuffle-worker` |
|
||||
| `worker.image.tag` | worker image tag (immutable tags are recommended, defaults to appVersion) | `""` |
|
||||
| `worker.image.digest` | worker image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended) | `""` |
|
||||
| `worker.serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` |
|
||||
| `worker.serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
|
||||
@@ -570,6 +574,7 @@ SHUFFLE_ENCRYPTION_MODIFIER: "MyShuffleEncryptionModifier"
|
||||
| `volumePermissions.enabled` | Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup` | `false` |
|
||||
| `volumePermissions.image.registry` | OS Shell + Utility image registry | `docker.io` |
|
||||
| `volumePermissions.image.repository` | OS Shell + Utility image repository | `bitnami/os-shell` |
|
||||
| `volumePermissions.image.tag` | OS Shell + Utility image tag (immutable tags are recommended) | `12-debian-12-r30` |
|
||||
| `volumePermissions.image.pullPolicy` | OS Shell + Utility image pull policy | `IfNotPresent` |
|
||||
| `volumePermissions.image.pullSecrets` | OS Shell + Utility image pull secrets | `[]` |
|
||||
| `volumePermissions.resourcesPreset` | Set init container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production). | `nano` |
|
||||
@@ -593,5 +598,3 @@ SHUFFLE_ENCRYPTION_MODIFIER: "MyShuffleEncryptionModifier"
|
||||
|
||||
### Other Parameters
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -119,14 +119,14 @@ app.kubernetes.io/name: shuffle-app
|
||||
Return the proper image name (for the init container volume-permissions image)
|
||||
*/}}
|
||||
{{- define "shuffle.volumePermissions.image" -}}
|
||||
{{- include "common.images.image" ( dict "imageRoot" .Values.volumePermissions.image "global" .Values.global ) -}}
|
||||
{{- include "common.images.image" ( dict "imageRoot" .Values.volumePermissions.image "global" .Values.global "chart" .Chart ) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the proper Shuffle backend image name
|
||||
*/}}
|
||||
{{- define "shuffle.backend.image" -}}
|
||||
{{- include "common.images.image" ( dict "imageRoot" .Values.backend.image "global" .Values.global ) -}}
|
||||
{{- include "common.images.image" ( dict "imageRoot" .Values.backend.image "global" .Values.global "chart" .Chart ) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
@@ -140,7 +140,7 @@ Return the proper Docker Image Registry Secret Names for the backend pod
|
||||
Return the proper Shuffle frontend image name
|
||||
*/}}
|
||||
{{- define "shuffle.frontend.image" -}}
|
||||
{{- include "common.images.image" ( dict "imageRoot" .Values.frontend.image "global" .Values.global ) -}}
|
||||
{{- include "common.images.image" ( dict "imageRoot" .Values.frontend.image "global" .Values.global "chart" .Chart ) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
@@ -154,7 +154,7 @@ Return the proper Docker Image Registry Secret Names for the frontend pod
|
||||
Return the proper Shuffle orborus image name
|
||||
*/}}
|
||||
{{- define "shuffle.orborus.image" -}}
|
||||
{{- include "common.images.image" ( dict "imageRoot" .Values.orborus.image "global" .Values.global ) -}}
|
||||
{{- include "common.images.image" ( dict "imageRoot" .Values.orborus.image "global" .Values.global "chart" .Chart ) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
@@ -168,7 +168,7 @@ Return the proper Docker Image Registry Secret Names for the orborus pod
|
||||
Return the proper Shuffle worker image name
|
||||
*/}}
|
||||
{{- define "shuffle.worker.image" -}}
|
||||
{{- include "common.images.image" ( dict "imageRoot" .Values.worker.image "global" .Values.global ) -}}
|
||||
{{- include "common.images.image" ( dict "imageRoot" .Values.worker.image "global" .Values.global "chart" .Chart ) -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
|
||||
@@ -155,6 +155,11 @@
|
||||
"description": "backend image repository",
|
||||
"default": "shuffle/shuffle-backend"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string",
|
||||
"description": "backend image tag (immutable tags are recommended, defaults to appVersion)",
|
||||
"default": ""
|
||||
},
|
||||
"digest": {
|
||||
"type": "string",
|
||||
"description": "backend image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)",
|
||||
@@ -824,6 +829,11 @@
|
||||
"description": "frontend image repository",
|
||||
"default": "shuffle/shuffle-frontend"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string",
|
||||
"description": "frontend image tag (immutable tags are recommended, defaults to appVersion)",
|
||||
"default": ""
|
||||
},
|
||||
"digest": {
|
||||
"type": "string",
|
||||
"description": "frontend image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)",
|
||||
@@ -1433,6 +1443,11 @@
|
||||
"description": "orborus image repository",
|
||||
"default": "shuffle/shuffle-orborus"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string",
|
||||
"description": "orborus image tag (immutable tags are recommended, defaults to appVersion)",
|
||||
"default": ""
|
||||
},
|
||||
"digest": {
|
||||
"type": "string",
|
||||
"description": "orborus image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)",
|
||||
@@ -2047,6 +2062,11 @@
|
||||
"description": "worker image repository",
|
||||
"default": "shuffle/shuffle-worker"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string",
|
||||
"description": "worker image tag (immutable tags are recommended, defaults to appVersion)",
|
||||
"default": ""
|
||||
},
|
||||
"digest": {
|
||||
"type": "string",
|
||||
"description": "worker image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)",
|
||||
@@ -2546,6 +2566,11 @@
|
||||
"description": "OS Shell + Utility image repository",
|
||||
"default": "bitnami/os-shell"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string",
|
||||
"description": "OS Shell + Utility image tag (immutable tags are recommended)",
|
||||
"default": "12-debian-12-r30"
|
||||
},
|
||||
"pullPolicy": {
|
||||
"type": "string",
|
||||
"description": "OS Shell + Utility image pull policy",
|
||||
|
||||
@@ -96,7 +96,7 @@ backend:
|
||||
## backend image
|
||||
## @param backend.image.registry backend image registry
|
||||
## @param backend.image.repository backend image repository
|
||||
## @skip backend.image.tag backend image tag (immutable tags are recommended)
|
||||
## @param backend.image.tag backend image tag (immutable tags are recommended, defaults to appVersion)
|
||||
## @param backend.image.digest backend image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)
|
||||
## @param backend.image.pullPolicy backend image pull policy
|
||||
## @param backend.image.pullSecrets backend image pull secrets
|
||||
@@ -104,7 +104,7 @@ backend:
|
||||
image:
|
||||
registry: ghcr.io
|
||||
repository: shuffle/shuffle-backend
|
||||
tag: nightly
|
||||
tag: ""
|
||||
digest: ""
|
||||
## Specify a imagePullPolicy
|
||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||
@@ -546,7 +546,7 @@ frontend:
|
||||
## frontend image
|
||||
## @param frontend.image.registry frontend image registry
|
||||
## @param frontend.image.repository frontend image repository
|
||||
## @skip frontend.image.tag frontend image tag (immutable tags are recommended)
|
||||
## @param frontend.image.tag frontend image tag (immutable tags are recommended, defaults to appVersion)
|
||||
## @param frontend.image.digest frontend image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)
|
||||
## @param frontend.image.pullPolicy frontend image pull policy
|
||||
## @param frontend.image.pullSecrets frontend image pull secrets
|
||||
@@ -554,7 +554,7 @@ frontend:
|
||||
image:
|
||||
registry: ghcr.io
|
||||
repository: shuffle/shuffle-frontend
|
||||
tag: nightly
|
||||
tag: ""
|
||||
digest: ""
|
||||
## Specify a imagePullPolicy
|
||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||
@@ -931,7 +931,7 @@ orborus:
|
||||
## orborus image
|
||||
## @param orborus.image.registry orborus image registry
|
||||
## @param orborus.image.repository orborus image repository
|
||||
## @skip orborus.image.tag orborus image tag (immutable tags are recommended)
|
||||
## @param orborus.image.tag orborus image tag (immutable tags are recommended, defaults to appVersion)
|
||||
## @param orborus.image.digest orborus image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)
|
||||
## @param orborus.image.pullPolicy orborus image pull policy
|
||||
## @param orborus.image.pullSecrets orborus image pull secrets
|
||||
@@ -939,7 +939,7 @@ orborus:
|
||||
image:
|
||||
registry: ghcr.io
|
||||
repository: shuffle/shuffle-orborus
|
||||
tag: nightly
|
||||
tag: ""
|
||||
digest: ""
|
||||
## Specify a imagePullPolicy
|
||||
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
|
||||
@@ -1318,13 +1318,13 @@ worker:
|
||||
## worker image
|
||||
## @param worker.image.registry worker image registry
|
||||
## @param worker.image.repository worker image repository
|
||||
## @skip worker.image.tag worker image tag (immutable tags are recommended)
|
||||
## @param worker.image.tag worker image tag (immutable tags are recommended, defaults to appVersion)
|
||||
## @param worker.image.digest worker image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)
|
||||
##
|
||||
image:
|
||||
registry: ghcr.io
|
||||
repository: shuffle/shuffle-worker
|
||||
tag: nightly
|
||||
tag: ""
|
||||
digest: ""
|
||||
|
||||
## ServiceAccount configuration
|
||||
@@ -1689,7 +1689,7 @@ volumePermissions:
|
||||
## ref: https://hub.docker.com/r/bitnami/os-shell/tags/
|
||||
## @param volumePermissions.image.registry OS Shell + Utility image registry
|
||||
## @param volumePermissions.image.repository OS Shell + Utility image repository
|
||||
## @skip volumePermissions.image.tag OS Shell + Utility image tag (immutable tags are recommended)
|
||||
## @param volumePermissions.image.tag OS Shell + Utility image tag (immutable tags are recommended)
|
||||
## @param volumePermissions.image.pullPolicy OS Shell + Utility image pull policy
|
||||
## @param volumePermissions.image.pullSecrets OS Shell + Utility image pull secrets
|
||||
##
|
||||
|
||||
@@ -217,8 +217,7 @@ func skipCheckInCleanup(name string) bool {
|
||||
func cleanupExistingNodes(ctx context.Context) error {
|
||||
|
||||
if isKubernetes == "true" {
|
||||
// of course, this doesn't clean up "nodes" but
|
||||
// rather pods, services, roles etc.
|
||||
// Cleanup all workers created by orborus and all apps created by workers.
|
||||
|
||||
if kubernetesNamespace == "" {
|
||||
kubernetesNamespace = "default"
|
||||
@@ -230,62 +229,38 @@ func cleanupExistingNodes(ctx context.Context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// Delete all pods
|
||||
pods, err := clientset.CoreV1().Pods(kubernetesNamespace).List(context.Background(), metav1.ListOptions{})
|
||||
if err != nil {
|
||||
log.Printf("[ERROR] Failed listing pods: %s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
for _, pod := range pods.Items {
|
||||
// check if pod.Name starts with:
|
||||
// "backend-", "frontend-", "orborus-", "opensearch-" or "memcached-"
|
||||
if skipCheckInCleanup(pod.Name) {
|
||||
continue
|
||||
}
|
||||
|
||||
err := clientset.CoreV1().Pods(kubernetesNamespace).Delete(context.Background(), pod.Name, metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
log.Printf("[ERROR] Failed deleting pod %s: %s", pod.Name, err)
|
||||
}
|
||||
}
|
||||
|
||||
// Delete all services
|
||||
services, err := clientset.CoreV1().Services(kubernetesNamespace).List(context.Background(), metav1.ListOptions{})
|
||||
services, err := clientset.CoreV1().Services(kubernetesNamespace).List(context.Background(), metav1.ListOptions{
|
||||
LabelSelector: "app.kubernetes.io/name in (shuffle-worker, shuffle-app),app.kubernetes.io/managed-by in (shuffle-orborus, shuffle-worker)",
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("[ERROR] Failed listing services: %s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
for _, service := range services.Items {
|
||||
if skipCheckInCleanup(service.Name) {
|
||||
continue
|
||||
}
|
||||
|
||||
err := clientset.CoreV1().Services(kubernetesNamespace).Delete(context.Background(), service.Name, metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
log.Printf("[ERROR] Failed deleting service %s: %s", service.Name, err)
|
||||
}
|
||||
}
|
||||
|
||||
deployments, err := clientset.AppsV1().Deployments(kubernetesNamespace).List(context.Background(), metav1.ListOptions{})
|
||||
deployments, err := clientset.AppsV1().Deployments(kubernetesNamespace).List(context.Background(), metav1.ListOptions{
|
||||
LabelSelector: "app.kubernetes.io/name in (shuffle-worker, shuffle-app),app.kubernetes.io/managed-by in (shuffle-orborus, shuffle-worker)",
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("[ERROR] Failed listing deployments: %s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
for _, deployment := range deployments.Items {
|
||||
if skipCheckInCleanup(deployment.Name) {
|
||||
continue
|
||||
}
|
||||
|
||||
err := clientset.AppsV1().Deployments(kubernetesNamespace).Delete(context.Background(), deployment.Name, metav1.DeleteOptions{})
|
||||
if err != nil {
|
||||
log.Printf("[ERROR] Failed deleting deployment %s: %s", deployment.Name, err)
|
||||
}
|
||||
}
|
||||
|
||||
log.Printf("[INFO] Cleaned up all pods and services in namespace %s. Waiting 10 seconds for cleanup to reflect", kubernetesNamespace)
|
||||
log.Printf("[INFO] Cleaned up all services and deployments in namespace %s. Waiting 10 seconds for cleanup to reflect", kubernetesNamespace)
|
||||
|
||||
time.Sleep(10 * time.Second)
|
||||
|
||||
@@ -1088,10 +1063,21 @@ func deployK8sWorker(image string, identifier string, env []string) error {
|
||||
}
|
||||
}
|
||||
|
||||
containerLabels := map[string]string{
|
||||
labels := map[string]string{
|
||||
"app.kubernetes.io/name": "shuffle-worker",
|
||||
"app.kubernetes.io/instance": identifier,
|
||||
// "app.kubernetes.io/version": "",
|
||||
"app.kubernetes.io/part-of": "shuffle",
|
||||
"app.kubernetes.io/managed-by": "shuffle-orborus",
|
||||
// Keep legacy labels for backward compatibility
|
||||
"container": "shuffle-worker",
|
||||
}
|
||||
|
||||
matchLabels := map[string]string{
|
||||
"app.kubernetes.io/name": "shuffle-worker",
|
||||
"app.kubernetes.io/instance": identifier,
|
||||
}
|
||||
|
||||
containerAttachment := corev1.Container{
|
||||
Name: identifier,
|
||||
Image: kubernetesImage,
|
||||
@@ -1194,16 +1180,17 @@ func deployK8sWorker(image string, identifier string, env []string) error {
|
||||
|
||||
deployment := &appsv1.Deployment{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: identifier,
|
||||
Name: identifier,
|
||||
Labels: labels,
|
||||
},
|
||||
Spec: appsv1.DeploymentSpec{
|
||||
Replicas: &replicaNumberInt32,
|
||||
Selector: &metav1.LabelSelector{
|
||||
MatchLabels: containerLabels,
|
||||
MatchLabels: matchLabels,
|
||||
},
|
||||
Template: corev1.PodTemplateSpec{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Labels: containerLabels,
|
||||
Labels: labels,
|
||||
},
|
||||
Spec: corev1.PodSpec{
|
||||
Containers: []corev1.Container{
|
||||
@@ -1224,10 +1211,11 @@ func deployK8sWorker(image string, identifier string, env []string) error {
|
||||
// kubectl expose deployment shuffle-workers --type=NodePort --port=33333 --target-port=33333
|
||||
service := &corev1.Service{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: identifier,
|
||||
Name: identifier,
|
||||
Labels: labels,
|
||||
},
|
||||
Spec: corev1.ServiceSpec{
|
||||
Selector: containerLabels,
|
||||
Selector: matchLabels,
|
||||
Ports: []corev1.ServicePort{
|
||||
{
|
||||
Protocol: "TCP",
|
||||
@@ -2248,7 +2236,7 @@ func main() {
|
||||
if incRequest.Type == "PIPELINE_CREATE" || incRequest.Type == "PIPELINE_START" || incRequest.Type == "PIPELINE_STOP" || incRequest.Type == "PIPELINE_DELETE" {
|
||||
|
||||
os.Setenv("SHUFFLE_SKIP_PIPELINES", "false")
|
||||
tenzirDisabled = false
|
||||
tenzirDisabled = false
|
||||
|
||||
// Running NEW or editing pipelines
|
||||
err := handlePipeline(incRequest)
|
||||
@@ -2273,7 +2261,7 @@ func main() {
|
||||
|
||||
} else if incRequest.Type == "CATEGORY_UPDATE" {
|
||||
os.Setenv("SHUFFLE_SKIP_PIPELINES", "false")
|
||||
tenzirDisabled = false
|
||||
tenzirDisabled = false
|
||||
|
||||
err = handleFileCategoryChange()
|
||||
if err != nil {
|
||||
@@ -2318,7 +2306,7 @@ func main() {
|
||||
|
||||
// Manual command = overrides to allow starting of Tenzir from the frontend anyway.
|
||||
os.Setenv("SHUFFLE_SKIP_PIPELINES", "false")
|
||||
tenzirDisabled = false
|
||||
tenzirDisabled = false
|
||||
|
||||
// Removed either way
|
||||
toBeRemoved.Data = append(toBeRemoved.Data, incRequest)
|
||||
@@ -2328,7 +2316,7 @@ func main() {
|
||||
if strings.Contains(fmt.Sprintf("%s", err), "node available") {
|
||||
// Disabling until UI is updated
|
||||
os.Setenv("SHUFFLE_SKIP_PIPELINES", "true")
|
||||
tenzirDisabled = true
|
||||
tenzirDisabled = true
|
||||
|
||||
log.Printf("[ERROR] Failed to start tenzir, reason: %s", err)
|
||||
err = shuffle.CreateOrgNotification(
|
||||
@@ -2647,7 +2635,7 @@ func deployTenzirNode() error {
|
||||
// return errors.New("Pipelines are disabled by user with SHUFFLE_SKIP_PIPELINES")
|
||||
//log.Printf("[INFO] Pipelines are enabled by user")
|
||||
} else {
|
||||
return errors.New("Pipelines are disabled by user with SHUFFLE_SKIP_PIPELINES")
|
||||
return errors.New("Pipelines are disabled by user with SHUFFLE_SKIP_PIPELINES")
|
||||
}
|
||||
|
||||
if isKubernetes == "true" {
|
||||
@@ -2847,12 +2835,12 @@ func createAndStartTenzirNode(ctx context.Context, containerName, imageName stri
|
||||
},
|
||||
}
|
||||
|
||||
// FIXME: Is this necessary? Seems to screw up networking:
|
||||
// FIXME: Is this necessary? Seems to screw up networking:
|
||||
// conflicting options: hostname and the network mode
|
||||
/*
|
||||
if isKubernetes != "true" && os.Getenv("SHUFFLE_SWARM_CONFIG") != "run" {
|
||||
hostConfig.NetworkMode = container.NetworkMode(fmt.Sprintf("container:%s", containerId))
|
||||
}
|
||||
if isKubernetes != "true" && os.Getenv("SHUFFLE_SWARM_CONFIG") != "run" {
|
||||
hostConfig.NetworkMode = container.NetworkMode(fmt.Sprintf("container:%s", containerId))
|
||||
}
|
||||
*/
|
||||
|
||||
resp, err := dockercli.ContainerCreate(ctx, config, hostConfig, networkingConfig, nil, containerName)
|
||||
@@ -3060,7 +3048,6 @@ func createPipeline(command, identifier string) (string, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
|
||||
body, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
log.Printf("[ERROR] Failed reading response body: %s", err)
|
||||
@@ -3078,8 +3065,8 @@ func createPipeline(command, identifier string) (string, error) {
|
||||
}
|
||||
|
||||
type PipelineResponse struct {
|
||||
ID string `json:"id"`
|
||||
Message string `json:"message"`
|
||||
ID string `json:"id"`
|
||||
Message string `json:"message"`
|
||||
Severity string `json:"severity"`
|
||||
}
|
||||
|
||||
@@ -3302,7 +3289,7 @@ func handleFileCategoryChange() error {
|
||||
tenzirStorageFolder = "/tmp/"
|
||||
}
|
||||
|
||||
tenzirStorageFolder = strings.TrimRight(tenzirStorageFolder, "/")
|
||||
tenzirStorageFolder = strings.TrimRight(tenzirStorageFolder, "/")
|
||||
sigmaPath := fmt.Sprintf("%s/sigma_rules", tenzirStorageFolder)
|
||||
err = extractZIP("files.zip", sigmaPath)
|
||||
if err != nil {
|
||||
@@ -3310,7 +3297,6 @@ func handleFileCategoryChange() error {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
log.Printf("[DEBUG] Detection files copied to '%s' successfully.", sigmaPath)
|
||||
|
||||
return nil
|
||||
@@ -3399,7 +3385,7 @@ func removeFileCategory() error {
|
||||
tenzirStorageFolder = "/tmp/"
|
||||
}
|
||||
|
||||
tenzirStorageFolder = strings.TrimRight(tenzirStorageFolder, "/")
|
||||
tenzirStorageFolder = strings.TrimRight(tenzirStorageFolder, "/")
|
||||
|
||||
//sigmaPath := "/var/lib/tenzir/sigma_rules/*"
|
||||
sigmaPath := fmt.Sprintf("%s/sigma_rules", tenzirStorageFolder)
|
||||
@@ -3564,9 +3550,8 @@ func getRunningWorkers(ctx context.Context, workerTimeout int) int {
|
||||
return 0
|
||||
}
|
||||
|
||||
labelSelector := "app=shuffle-worker"
|
||||
pods, podErr := clientset.CoreV1().Pods(kubernetesNamespace).List(ctx, metav1.ListOptions{
|
||||
LabelSelector: labelSelector,
|
||||
LabelSelector: "app.kubernetes.io/name=shuffle-worker",
|
||||
})
|
||||
if podErr != nil {
|
||||
log.Printf("[ERROR] Failed getting running workers: %s", podErr)
|
||||
|
||||
@@ -23,8 +23,8 @@ import (
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/api/types/filters"
|
||||
"github.com/docker/docker/api/types/mount"
|
||||
"github.com/docker/docker/api/types/image"
|
||||
"github.com/docker/docker/api/types/mount"
|
||||
dockerclient "github.com/docker/docker/client"
|
||||
|
||||
// This is for automatic removal of certain code :)
|
||||
@@ -482,9 +482,24 @@ func deployk8sApp(image string, identifier string, env []string) error {
|
||||
|
||||
//fix naming convention
|
||||
// podUuid := uuid.NewV4().String()
|
||||
// podName := fmt.Sprintf("%s-%s", value, podUuid)
|
||||
// name := fmt.Sprintf("%s-%s", value, podUuid)
|
||||
// replace identifier "_" with "-"
|
||||
podName := strings.ReplaceAll(identifier, "_", "-")
|
||||
name := strings.ReplaceAll(identifier, "_", "-")
|
||||
|
||||
labels := map[string]string{
|
||||
"app.kubernetes.io/name": "shuffle-app",
|
||||
"app.kubernetes.io/instance": name,
|
||||
// "app.kubernetes.io/version": "",
|
||||
"app.kubernetes.io/part-of": "shuffle",
|
||||
"app.kubernetes.io/managed-by": "shuffle-worker",
|
||||
// Keep legacy labels for backward compatibility
|
||||
"app": name,
|
||||
}
|
||||
|
||||
matchLabels := map[string]string{
|
||||
"app.kubernetes.io/name": "shuffle-app",
|
||||
"app.kubernetes.io/instance": name,
|
||||
}
|
||||
|
||||
// pod := &corev1.Pod{
|
||||
// ObjectMeta: metav1.ObjectMeta{
|
||||
@@ -564,20 +579,17 @@ func deployk8sApp(image string, identifier string, env []string) error {
|
||||
|
||||
deployment := &appsv1.Deployment{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: podName,
|
||||
Name: name,
|
||||
Labels: labels,
|
||||
},
|
||||
Spec: appsv1.DeploymentSpec{
|
||||
Replicas: &replicaNumberInt32,
|
||||
Selector: &metav1.LabelSelector{
|
||||
MatchLabels: map[string]string{
|
||||
"app": podName,
|
||||
},
|
||||
MatchLabels: matchLabels,
|
||||
},
|
||||
Template: corev1.PodTemplateSpec{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Labels: map[string]string{
|
||||
"app": podName,
|
||||
},
|
||||
Labels: labels,
|
||||
},
|
||||
Spec: corev1.PodSpec{
|
||||
Containers: []corev1.Container{
|
||||
@@ -601,12 +613,11 @@ func deployk8sApp(image string, identifier string, env []string) error {
|
||||
// kubectl expose deployment {podName} --type=NodePort --port=80 --target-port=80
|
||||
service := &corev1.Service{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: podName,
|
||||
Name: name,
|
||||
Labels: labels,
|
||||
},
|
||||
Spec: corev1.ServiceSpec{
|
||||
Selector: map[string]string{
|
||||
"app": podName,
|
||||
},
|
||||
Selector: matchLabels,
|
||||
Ports: []corev1.ServicePort{
|
||||
{
|
||||
Protocol: "TCP",
|
||||
@@ -954,7 +965,8 @@ func deployApp(cli *dockerclient.Client, image string, identifier string, env []
|
||||
|
||||
func cleanupKubernetesExecution(clientset *kubernetes.Clientset, workflowExecution shuffle.WorkflowExecution, namespace string) error {
|
||||
// workerName := fmt.Sprintf("worker-%s", workflowExecution.ExecutionId)
|
||||
labelSelector := fmt.Sprintf("app=shuffle-app,executionId=%s", workflowExecution.ExecutionId)
|
||||
// FIXME: The executionId label is currently not set
|
||||
labelSelector := fmt.Sprintf("app.kubernetes.io/name=shuffle-app,executionId=%s", workflowExecution.ExecutionId)
|
||||
|
||||
podList, err := clientset.CoreV1().Pods(namespace).List(context.TODO(), metav1.ListOptions{
|
||||
LabelSelector: labelSelector,
|
||||
|
||||
Reference in New Issue
Block a user