-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTiltfile
77 lines (60 loc) · 2.69 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
load('ext://restart_process', 'docker_build_with_restart')
OPERATOR_DOCKERFILE = '''FROM golang:alpine
WORKDIR /
COPY ./bin/website-operator /
CMD ["/website-operator"]
'''
REPOCHECKER_DOCKERFILE = '''FROM golang:alpine
RUN apk update && apk add git
WORKDIR /
COPY ./bin/repo-checker /
CMD ["/repo-checker"]
'''
UI_DOCKERFILE = '''FROM golang:alpine
WORKDIR /
COPY ./ui/frontend/dist/* /dist/
COPY ./bin/website-operator-ui /
CMD ["/website-operator-ui"]
'''
# Generate manifests and go files
local_resource('make manifests', "make manifests", deps=["api", "controllers"], ignore=['*/*/zz_generated.deepcopy.go'])
local_resource('make generate', "make generate", deps=["api", "controllers"], ignore=['*/*/zz_generated.deepcopy.go'])
# Deploy CRD
local_resource(
'CRD', 'make install', deps=["api"],
ignore=['*/*/zz_generated.deepcopy.go'])
installed = local("which kubebuilder")
print("kubebuilder is present:", installed)
DIRNAME = os.path.basename(os. getcwd())
watch_settings(ignore=['config/crd/bases/', 'config/rbac/role.yaml', 'config/webhook/manifests.yaml'])
k8s_yaml(kustomize('./config/dev'))
operator_deps = ['api', 'controllers', 'cmd/website-operator', 'version.go', 'constants.go']
local_resource('Watch&Compile website-operator', "make bin/website-operator", deps=operator_deps, ignore=['*/*/zz_generated.deepcopy.go'])
repochecker_deps = ['checker', 'cmd/repo-checker', 'version.go', 'constants.go']
local_resource('Watch&Compile repo-checker', "make bin/repo-checker", deps=repochecker_deps)
ui_deps = ['ui', 'cmd/website-operator-ui', 'version.go', 'constants.go']
local_resource('Watch&Compile website-operator-ui', "make frontend; make bin/website-operator-ui", deps=ui_deps, ignore=['ui/frontend/node_modules', 'ui/frontend/dist', 'ui/frontend/.parcel-cache', 'ui/frontend/package*'])
local_resource('Sample YAML', 'kubectl apply -f ./config/samples', deps=["./config/samples"], resource_deps=[DIRNAME + "-controller-manager"])
docker_build_with_restart('website-operator:dev', '.',
dockerfile_contents=OPERATOR_DOCKERFILE,
entrypoint=['/website-operator'],
only=['./bin/website-operator'],
live_update=[
sync('./bin/website-operator', '/website-operator'),
]
)
docker_build('repo-checker:dev', '.',
dockerfile_contents=REPOCHECKER_DOCKERFILE,
only=['./bin/repo-checker'],
match_in_env_vars=True
)
docker_build_with_restart('website-operator-ui:dev', '.',
dockerfile_contents=UI_DOCKERFILE,
entrypoint=['/website-operator-ui'],
only=['./bin/website-operator-ui', './ui/frontend/dist'],
live_update=[
sync('./bin/website-operator-ui', '/website-operator-ui'),
sync('./ui/frontend/dist', '/dist'),
]
)
k8s_resource(workload='website-operator-ui', port_forwards='8080:8080')