@meshxdata/fops 0.1.40 → 0.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +2 -376
  2. package/package.json +1 -1
  3. package/src/agent/llm.js +0 -2
  4. package/src/doctor.js +21 -93
  5. package/src/plugins/bundled/fops-plugin-1password/index.js +1 -13
  6. package/src/plugins/bundled/fops-plugin-azure/index.js +2 -4
  7. package/src/plugins/bundled/fops-plugin-azure/lib/azure-aks.js +2 -130
  8. package/src/plugins/bundled/fops-plugin-azure/lib/azure-auth.js +32 -68
  9. package/src/plugins/bundled/fops-plugin-azure/lib/azure-helpers.js +2 -64
  10. package/src/plugins/bundled/fops-plugin-azure/lib/azure-ops.js +28 -36
  11. package/src/plugins/bundled/fops-plugin-azure/lib/azure-shared-cache.js +1 -1
  12. package/src/plugins/bundled/fops-plugin-azure/lib/azure-sync.js +4 -4
  13. package/src/plugins/bundled/fops-plugin-azure/lib/azure-vm-lifecycle.js +10 -3
  14. package/src/plugins/bundled/fops-plugin-azure/lib/commands/infra-cmds.js +0 -4
  15. package/src/plugins/bundled/fops-plugin-azure/lib/commands/test-cmds.js +0 -22
  16. package/src/plugins/bundled/fops-plugin-azure/lib/commands/vm-cmds.js +30 -0
  17. package/src/plugins/bundled/fops-plugin-foundation/index.js +1 -18
  18. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/dai-backend.yaml +0 -13
  19. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/dai-frontend.yaml +0 -13
  20. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-backend.yaml +0 -13
  21. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-frontend.yaml +0 -13
  22. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-hive.yaml +0 -13
  23. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-kafka.yaml +0 -13
  24. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-meltano.yaml +0 -13
  25. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-mlflow.yaml +0 -13
  26. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-opa.yaml +0 -13
  27. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-processor.yaml +0 -13
  28. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-scheduler.yaml +0 -13
  29. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-storage-engine.yaml +0 -13
  30. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-trino.yaml +0 -13
  31. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/apps/foundation-watcher.yaml +0 -13
  32. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/config/repository.yaml +0 -66
  33. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/kustomization.yaml +0 -30
  34. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/acr-webhook-controller.yaml +0 -63
  35. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/externalsecrets.yaml +0 -15
  36. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/istio.yaml +0 -42
  37. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/kafka.yaml +0 -15
  38. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/kube-reflector.yaml +0 -33
  39. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/kubecost.yaml +0 -12
  40. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/nats-server.yaml +0 -15
  41. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/prometheus-agent.yaml +0 -34
  42. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/reloader.yaml +0 -12
  43. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/spark.yaml +0 -112
  44. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/tailscale.yaml +0 -67
  45. package/src/plugins/bundled/fops-plugin-azure/templates/cluster/operator/vertical-pod-autoscaler.yaml +0 -15
@@ -986,24 +986,11 @@ app.run()
986
986
  .option("--url <url>", "Override the backend API URL")
987
987
  .action(async (opts) => {
988
988
  const { spawn } = await import("node:child_process");
989
- const { writeFileSync, existsSync, realpathSync, readFileSync, unlinkSync, mkdirSync } = await import("node:fs");
989
+ const { writeFileSync, existsSync, realpathSync, readFileSync } = await import("node:fs");
990
990
  const { tmpdir, homedir } = await import("node:os");
991
991
  const { join, dirname } = await import("node:path");
992
992
  const { findComposeRoot } = await import("./lib/tools-write.js");
993
993
 
994
- // ── Singleton: kill any existing tray process ──────────────────────────
995
- const pidDir = join(homedir(), ".fops");
996
- const pidFile = join(pidDir, "tray.pid");
997
- if (existsSync(pidFile)) {
998
- try {
999
- const oldPid = parseInt(readFileSync(pidFile, "utf8").trim(), 10);
1000
- if (oldPid) process.kill(oldPid, "SIGTERM");
1001
- } catch {
1002
- // process already gone — ignore
1003
- }
1004
- try { unlinkSync(pidFile); } catch {}
1005
- }
1006
-
1007
994
  const composeRoot = program._fopsRoot || findComposeRoot() || "";
1008
995
 
1009
996
  let apiUrl = opts.url || process.env.FOPS_API_URL || "http://127.0.0.1:9001";
@@ -1248,8 +1235,6 @@ $tray.Visible = $false
1248
1235
  env: trayEnv,
1249
1236
  windowsHide: true,
1250
1237
  });
1251
- if (!existsSync(pidDir)) mkdirSync(pidDir, { recursive: true });
1252
- writeFileSync(pidFile, String(winChild.pid));
1253
1238
  winChild.unref();
1254
1239
  return;
1255
1240
  }
@@ -2010,8 +1995,6 @@ app.run()
2010
1995
  detached: true,
2011
1996
  env: trayEnv,
2012
1997
  });
2013
- if (!existsSync(pidDir)) mkdirSync(pidDir, { recursive: true });
2014
- writeFileSync(pidFile, String(child.pid));
2015
1998
  child.unref();
2016
1999
  });
2017
2000
  });
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: dai-backend
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/dai/backend/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: dai-frontend
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/dai/frontend/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-backend
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/backend/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-frontend
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/frontend/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-hive
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/hive/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-kafka
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/kafka/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-meltano
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/meltano/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-mlflow
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/mlflow/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-opa
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/opa/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-processor
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/processor/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-scheduler
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/scheduler/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-storage-engine
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/storage-engine/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-trino
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/trino/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,13 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: foundation-watcher
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./apps/foundation/watcher/overlays/meshx/{{OVERLAY}}
13
- prune: true
@@ -1,66 +0,0 @@
1
- ---
2
- apiVersion: source.toolkit.fluxcd.io/v1
3
- kind: HelmRepository
4
- metadata:
5
- name: foundation
6
- namespace: flux-system
7
- spec:
8
- type: oci
9
- interval: 1m0s
10
- url: oci://meshxregistry.azurecr.io/helm
11
- secretRef:
12
- name: meshxregistry-helm-secret
13
- ---
14
- apiVersion: source.toolkit.fluxcd.io/v1
15
- kind: HelmRepository
16
- metadata:
17
- name: foundation
18
- namespace: velora
19
- spec:
20
- type: oci
21
- interval: 1m0s
22
- url: oci://meshxregistry.azurecr.io/helm
23
- secretRef:
24
- name: meshxregistry-helm-secret
25
- ---
26
- apiVersion: source.toolkit.fluxcd.io/v1
27
- kind: HelmRepository
28
- metadata:
29
- name: dai
30
- namespace: velora
31
- spec:
32
- type: oci
33
- interval: 1m0s
34
- url: oci://meshxregistry.azurecr.io/helm/dai
35
- secretRef:
36
- name: meshxregistry-helm-secret
37
- ---
38
- apiVersion: source.toolkit.fluxcd.io/v1
39
- kind: HelmRepository
40
- metadata:
41
- name: hive-metastore
42
- namespace: flux-system
43
- spec:
44
- type: oci
45
- interval: 1m0s
46
- url: oci://meshxregistry.azurecr.io/helm
47
- secretRef:
48
- name: meshxregistry-helm-secret
49
- ---
50
- apiVersion: source.toolkit.fluxcd.io/v1
51
- kind: HelmRepository
52
- metadata:
53
- name: trinodb
54
- namespace: flux-system
55
- spec:
56
- interval: 30m
57
- url: https://trinodb.github.io/charts
58
- ---
59
- apiVersion: source.toolkit.fluxcd.io/v1
60
- kind: HelmRepository
61
- metadata:
62
- name: mlflow
63
- namespace: flux-system
64
- spec:
65
- interval: 1m0s
66
- url: https://community-charts.github.io/helm-charts
@@ -1,30 +0,0 @@
1
- apiVersion: kustomize.config.k8s.io/v1beta1
2
- kind: Kustomization
3
- resources:
4
- - config/repository.yaml
5
- - operator/acr-webhook-controller.yaml
6
- - operator/kube-reflector.yaml
7
- - operator/externalsecrets.yaml
8
- - operator/istio.yaml
9
- - operator/kafka.yaml
10
- - operator/kubecost.yaml
11
- - operator/spark.yaml
12
- - operator/vertical-pod-autoscaler.yaml
13
- - operator/prometheus-agent.yaml
14
- - operator/tailscale.yaml
15
- - operator/nats-server.yaml
16
- - operator/reloader.yaml
17
- - apps/foundation-backend.yaml
18
- - apps/foundation-frontend.yaml
19
- - apps/foundation-scheduler.yaml
20
- - apps/foundation-processor.yaml
21
- - apps/foundation-watcher.yaml
22
- - apps/foundation-opa.yaml
23
- - apps/foundation-meltano.yaml
24
- - apps/foundation-kafka.yaml
25
- - apps/foundation-hive.yaml
26
- - apps/foundation-storage-engine.yaml
27
- - apps/foundation-trino.yaml
28
- - apps/foundation-mlflow.yaml
29
- - apps/dai-backend.yaml
30
- - apps/dai-frontend.yaml
@@ -1,63 +0,0 @@
1
- apiVersion: kustomize.toolkit.fluxcd.io/v1
2
- kind: Kustomization
3
- metadata:
4
- name: acr-webhook-controller
5
- namespace: flux-system
6
- spec:
7
- interval: 1m0s
8
- sourceRef:
9
- kind: GitRepository
10
- name: flux-system
11
- path: ./infrastructure/acr-webhook-controller
12
- prune: false
13
- patches:
14
- - target:
15
- kind: Secret
16
- name: acr-pull-secret
17
- namespace: acr-cache-system
18
- patch: |-
19
- - op: replace
20
- path: /stringData/.dockerconfigjson
21
- value: |
22
- {
23
- "auths": {
24
- "meshxregistry.azurecr.io": {
25
- "username": "{{ACR_USERNAME}}",
26
- "password": "{{ACR_PASSWORD}}"
27
- }
28
- }
29
- }
30
- - target:
31
- kind: Secret
32
- name: meshxregistry-helm-secret
33
- namespace: acr-cache-system
34
- patch: |-
35
- - op: replace
36
- path: /stringData/username
37
- value: "{{ACR_USERNAME}}"
38
- - op: replace
39
- path: /stringData/password
40
- value: "{{ACR_PASSWORD}}"
41
- - target:
42
- kind: Deployment
43
- name: acr-cache-webhook
44
- namespace: acr-cache-system
45
- patch: |
46
- apiVersion: apps/v1
47
- kind: Deployment
48
- metadata:
49
- name: acr-cache-webhook
50
- spec:
51
- replicas: 3
52
- template:
53
- spec:
54
- affinity:
55
- podAntiAffinity:
56
- requiredDuringSchedulingIgnoredDuringExecution:
57
- - labelSelector:
58
- matchExpressions:
59
- - key: app
60
- operator: In
61
- values:
62
- - acr-cache-webhook
63
- topologyKey: kubernetes.io/hostname
@@ -1,15 +0,0 @@
1
- apiVersion: kustomize.toolkit.fluxcd.io/v1
2
- kind: Kustomization
3
- metadata:
4
- name: external-secrets
5
- namespace: flux-system
6
- spec:
7
- interval: 1h
8
- sourceRef:
9
- kind: GitRepository
10
- name: flux-system
11
- path: ./infrastructure/external-secrets/manifests
12
- prune: false
13
- dependsOn:
14
- - name: acr-webhook-controller
15
- namespace: flux-system
@@ -1,42 +0,0 @@
1
- apiVersion: kustomize.toolkit.fluxcd.io/v1
2
- kind: Kustomization
3
- metadata:
4
- name: istio-operator
5
- namespace: flux-system
6
- spec:
7
- interval: 1h
8
- sourceRef:
9
- kind: GitRepository
10
- name: flux-system
11
- path: ./infrastructure/istio-operator
12
- prune: false
13
- ---
14
- apiVersion: kustomize.toolkit.fluxcd.io/v1
15
- kind: Kustomization
16
- metadata:
17
- name: istio-controlplane
18
- namespace: flux-system
19
- spec:
20
- dependsOn:
21
- - name: istio-operator
22
- interval: 10s
23
- sourceRef:
24
- kind: GitRepository
25
- name: flux-system
26
- path: ./infrastructure/istio-tenant/demo/azure/uaenorth
27
- prune: false
28
- ---
29
- apiVersion: kustomize.toolkit.fluxcd.io/v1
30
- kind: Kustomization
31
- metadata:
32
- name: jaeger
33
- namespace: flux-system
34
- spec:
35
- dependsOn:
36
- - name: istio-operator
37
- interval: 10m0s
38
- sourceRef:
39
- kind: GitRepository
40
- name: flux-system
41
- path: ./infrastructure/jaeger
42
- prune: false
@@ -1,15 +0,0 @@
1
- apiVersion: kustomize.toolkit.fluxcd.io/v1
2
- kind: Kustomization
3
- metadata:
4
- name: kafka-operator
5
- namespace: flux-system
6
- spec:
7
- interval: 1m0s
8
- sourceRef:
9
- kind: GitRepository
10
- name: flux-system
11
- path: ./infrastructure/kafka-operator/velora
12
- prune: false
13
- dependsOn:
14
- - name: acr-webhook-controller
15
- namespace: flux-system
@@ -1,33 +0,0 @@
1
- apiVersion: kustomize.toolkit.fluxcd.io/v1
2
- kind: Kustomization
3
- metadata:
4
- name: kube-reflector
5
- namespace: flux-system
6
- spec:
7
- interval: 1m0s
8
- sourceRef:
9
- kind: GitRepository
10
- name: flux-system
11
- path: ./infrastructure/reflector
12
- prune: false
13
- targetNamespace: reflector
14
- dependsOn:
15
- - name: acr-webhook-controller
16
- namespace: flux-system
17
- patches:
18
- - target:
19
- kind: Secret
20
- name: acr-pull-secret
21
- namespace: reflector
22
- patch: |-
23
- - op: replace
24
- path: /stringData/.dockerconfigjson
25
- value: |
26
- {
27
- "auths": {
28
- "meshxregistry.azurecr.io": {
29
- "username": "{{ACR_USERNAME}}",
30
- "password": "{{ACR_PASSWORD}}"
31
- }
32
- }
33
- }
@@ -1,12 +0,0 @@
1
- apiVersion: kustomize.toolkit.fluxcd.io/v1
2
- kind: Kustomization
3
- metadata:
4
- name: kubecost
5
- namespace: flux-system
6
- spec:
7
- interval: 1m0s
8
- sourceRef:
9
- kind: GitRepository
10
- name: flux-system
11
- path: ./infrastructure/kubecost/{{CLUSTER_NAME}}
12
- prune: false
@@ -1,15 +0,0 @@
1
- apiVersion: kustomize.toolkit.fluxcd.io/v1
2
- kind: Kustomization
3
- metadata:
4
- name: nats-server
5
- namespace: flux-system
6
- spec:
7
- interval: 1m0s
8
- sourceRef:
9
- kind: GitRepository
10
- name: flux-system
11
- path: ./infrastructure/nats-server/velora
12
- prune: false
13
- dependsOn:
14
- - name: acr-webhook-controller
15
- namespace: flux-system
@@ -1,34 +0,0 @@
1
- ---
2
- apiVersion: kustomize.toolkit.fluxcd.io/v1
3
- kind: Kustomization
4
- metadata:
5
- name: prometheus-agent
6
- namespace: flux-system
7
- spec:
8
- interval: 1m
9
- sourceRef:
10
- kind: GitRepository
11
- name: flux-system
12
- path: ./infrastructure/prometheus-agent
13
- prune: false
14
- patches:
15
- - target:
16
- kind: ConfigMap
17
- name: prometheus-agent-server
18
- patch: |
19
- apiVersion: v1
20
- kind: ConfigMap
21
- metadata:
22
- name: prometheus-agent-server
23
- namespace: monitoring
24
- data:
25
- prometheus.yml: |
26
- global:
27
- scrape_interval: 15s
28
- evaluation_interval: 30s
29
- scrape_configs:
30
- - job_name: "{{CLUSTER_NAME}}-nats-exporter"
31
- static_configs:
32
- - targets: ["nats.nats.svc.cluster.local:7777"]
33
- remote_write:
34
- - url: "http://central-live-prometheus.privatelink.uaenorth.azmk8s.io/api/v1/write"
@@ -1,12 +0,0 @@
1
- apiVersion: kustomize.toolkit.fluxcd.io/v1
2
- kind: Kustomization
3
- metadata:
4
- name: reloader
5
- namespace: flux-system
6
- spec:
7
- interval: 1m0s
8
- sourceRef:
9
- kind: GitRepository
10
- name: flux-system
11
- path: ./infrastructure/reloader
12
- prune: false