-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTiltfile
118 lines (92 loc) · 3.05 KB
/
Tiltfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# default values
settings = {
"allowedContexts": [
"docker-desktop",
"minikube",
"kind-kind",
],
"installMinio": True,
"installWandb": True,
"wandbCRD": "default",
}
# global settings
settings.update(read_json(
"tilt-settings.json",
default={},
))
# Configure global watch settings with a 2-second debounce
watch_settings(ignore=["**/.git", "**/*.out"])
allow_k8s_contexts(settings.get("allowed_k8s_contexts"))
os.putenv('PATH', './bin:' + os.getenv('PATH'))
load('ext://restart_process', 'docker_build_with_restart')
DOCKERFILE = '''
FROM registry.access.redhat.com/ubi9/ubi-minimal
ADD tilt_bin/manager /manager
ENV HELM_CACHE_HOME=/helm/.cache/helm
ENV HELM_CONFIG_HOME=/helm/.config/helm
ENV HELM_DATA_HOME=/helm/.local/share/helm
'''
DOMAIN = "wandb.com"
GROUP = "apps"
VERSION = "v1"
KIND = "wandb"
IMG = 'controller:latest'
CONTROLLERGEN = 'rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases;'
DISABLE_SECURITY_CONTEXT = True
def manifests():
return 'controller-gen ' + CONTROLLERGEN
def generate():
return 'controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./...";'
def vetfmt():
return 'go vet ./...; go fmt ./...'
# build to tilt_bin because kubebuilder has a dockerignore for bin/
def binary():
return 'CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -o tilt_bin/manager main.go'
installed = local("which kubebuilder")
print("kubebuilder is present:", installed)
DIRNAME = os.path.basename(os. getcwd())
local(manifests() + generate())
if settings.get("installMinio"):
k8s_yaml('./hack/testing-manifests/minio/minio.yaml')
k8s_resource(
'minio',
'Minio',
objects=[
'minio:service',
'minio:namespace'
]
)
k8s_yaml(local(manifests() + 'kustomize build config/default'))
k8s_resource(
new_name='CRD',
objects=['weightsandbiases.apps.wandb.com:customresourcedefinition'])
k8s_resource(
new_name='RBAC',
objects=[
'operator-manager-role:clusterrole',
'operator-manager-rolebinding:clusterrolebinding',
'operator-leader-election-role:role',
'operator-leader-election-rolebinding:rolebinding'
]
)
deps = ['controllers', 'pkg', 'main.go']
deps.append('api')
local_resource('Watch&Compile', generate() + binary(),
deps=deps, ignore=['*/*/zz_generated.deepcopy.go'])
if settings.get("installWandb"):
k8s_yaml('./hack/testing-manifests/wandb/' + settings.get('wandbCRD') + '.yaml')
k8s_resource(
new_name='Wandb',
objects=[
'wandb-default:weightsandbiases'
],
resource_deps=["operator-controller-manager"]
)
docker_build_with_restart(IMG, '.',
dockerfile_contents=DOCKERFILE,
entrypoint='/manager',
only=['./tilt_bin/manager'],
live_update=[
sync('./tilt_bin/manager', '/manager'),
]
)