|
| 1 | +load_dynamic("./configs/tiltfiles/setup.tiltfile") |
| 2 | + |
| 3 | +config.define_string_list("services") |
| 4 | + |
| 5 | +parsed_config = config.parse() |
| 6 | + |
| 7 | +for service in parsed_config.get("services", []): |
| 8 | + load_dynamic("./configs/tiltfiles/%s.tiltfile" % (service)) |
| 9 | + |
| 10 | +manifests = kustomize("../workspaces/controller/config/default") |
| 11 | + |
| 12 | +objects = decode_yaml_stream(manifests) |
| 13 | + |
| 14 | +for o in objects: |
| 15 | + if o["kind"] == "Deployment" and o.get("metadata").get("name") in ["workspace-controller-controller-manager"]: |
| 16 | + o["spec"]["template"]["spec"]["securityContext"] = {"runAsNonRoot": False, "readOnlyRootFilesystem": False} |
| 17 | + o["spec"]["template"]["spec"]["containers"][0]["imagePullPolicy"] = "Always" |
| 18 | + |
| 19 | +overridden_manifests = encode_yaml_stream(objects) |
| 20 | + |
| 21 | +k8s_yaml(overridden_manifests, allow_duplicates=True) |
| 22 | + |
| 23 | +k8s_resource( |
| 24 | + workload="workspace-controller-controller-manager", |
| 25 | + objects=[ |
| 26 | + "workspace-controller-system:namespace", |
| 27 | + "workspacekinds.kubeflow.org:customresourcedefinition", |
| 28 | + "workspaces.kubeflow.org:customresourcedefinition", |
| 29 | + "workspace-controller-controller-manager:serviceaccount", |
| 30 | + "workspace-controller-leader-election-role:role", |
| 31 | + "workspace-controller-manager-role:clusterrole", |
| 32 | + "workspace-controller-workspace-editor-role:clusterrole", |
| 33 | + "workspace-controller-workspace-viewer-role:clusterrole", |
| 34 | + "workspace-controller-workspacekind-editor-role:clusterrole", |
| 35 | + "workspace-controller-workspacekind-viewer-role:clusterrole", |
| 36 | + "workspace-controller-leader-election-rolebinding:rolebinding", |
| 37 | + "workspace-controller-manager-rolebinding:clusterrolebinding", |
| 38 | + "workspace-controller-serving-cert:certificate", |
| 39 | + "workspace-controller-selfsigned-issuer:issuer", |
| 40 | + "workspace-controller-validating-webhook-configuration:validatingwebhookconfiguration" |
| 41 | + ], |
| 42 | + labels="controller", |
| 43 | + resource_deps=[ |
| 44 | + "cert-manager" |
| 45 | + ] |
| 46 | +) |
| 47 | + |
| 48 | +load("ext://restart_process", "docker_build_with_restart") |
| 49 | + |
| 50 | +local_resource( |
| 51 | + "manager", |
| 52 | + "CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o bin/manager cmd/main.go", |
| 53 | + dir = "../workspaces/controller", |
| 54 | + deps = [ |
| 55 | + "../workspaces/controller/cmd", |
| 56 | + "../workspaces/controller/internal", |
| 57 | + "../workspaces/controller/go.mod", |
| 58 | + "../workspaces/controller/go.sum", |
| 59 | + ], |
| 60 | + labels="controller", |
| 61 | +) |
| 62 | + |
| 63 | +docker_build_with_restart( |
| 64 | + "ghcr.io/kubeflow/notebooks/workspace-controller", |
| 65 | + context = "../workspaces/controller", |
| 66 | + dockerfile = "../workspaces/controller/tilt.dockerfile", |
| 67 | + entrypoint = ["/manager"], |
| 68 | + only=[ |
| 69 | + "bin/", |
| 70 | + ], |
| 71 | + live_update = [ |
| 72 | + sync("../workspaces/controller/bin/manager", "/manager"), |
| 73 | + ], |
| 74 | +) |
0 commit comments