Skip to content

Commit 04bf86d

Browse files
committed
Remove old binderhub.build.Build
1 parent 5969487 commit 04bf86d

File tree

4 files changed

+37
-161
lines changed

4 files changed

+37
-161
lines changed

binderhub/app.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -845,22 +845,15 @@ def initialize(self, *args, **kwargs):
845845
self.tornado_settings.update(
846846
{
847847
"log_function": log_request,
848-
"push_secret": self.push_secret,
849848
"image_prefix": self.image_prefix,
850849
"debug": self.debug,
851850
"launcher": self.launcher,
852-
"appendix": self.appendix,
853851
"ban_networks": self.ban_networks,
854852
"ban_networks_min_prefix_len": self.ban_networks_min_prefix_len,
855-
"build_namespace": self.build_namespace,
856-
"build_image": self.build_image,
857-
"build_node_selector": self.build_node_selector,
858853
"build_pool": self.build_pool,
859854
"build_token_check_origin": self.build_token_check_origin,
860855
"build_token_secret": self.build_token_secret,
861856
"build_token_expires_seconds": self.build_token_expires_seconds,
862-
"sticky_builds": self.sticky_builds,
863-
"log_tail_lines": self.log_tail_lines,
864857
"pod_quota": self.pod_quota,
865858
"per_repo_quota": self.per_repo_quota,
866859
"per_repo_quota_higher": self.per_repo_quota_higher,
@@ -877,9 +870,6 @@ def initialize(self, *args, **kwargs):
877870
"banner_message": self.banner_message,
878871
"extra_footer_scripts": self.extra_footer_scripts,
879872
"jinja2_env": jinja_env,
880-
"build_memory_limit": self.build_memory_limit,
881-
"build_memory_request": self.build_memory_request,
882-
"build_docker_host": self.build_docker_host,
883873
"build_docker_config": self.build_docker_config,
884874
"base_url": self.base_url,
885875
"badge_base_url": self.badge_base_url,

binderhub/build.py

Lines changed: 7 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ class BuildExecutor(LoggingConfigurable):
7777

7878
git_credentials = Unicode(
7979
"",
80-
allow_none=True,
8180
help=(
8281
"Git credentials to use when cloning the repository, passed via the GIT_CREDENTIAL_ENV environment variable."
8382
"Can be anything that will be accepted by git as a valid output from a git-credential helper. "
@@ -88,7 +87,6 @@ class BuildExecutor(LoggingConfigurable):
8887

8988
push_secret = Unicode(
9089
"",
91-
allow_none=True,
9290
help="Implementation dependent secret for pushing image to a registry.",
9391
config=True,
9492
)
@@ -220,6 +218,13 @@ def _default_api(self):
220218
kubernetes.config.load_kube_config()
221219
return client.CoreV1Api()
222220

221+
# Overrides the default for BuildExecutor
222+
push_secret = Unicode(
223+
"binder-build-docker-config",
224+
help="Implementation dependent secret for pushing image to a registry.",
225+
config=True,
226+
)
227+
223228
namespace = Unicode(
224229
help="Kubernetes namespace to spawn build pods into", config=True
225230
)
@@ -710,89 +715,3 @@ def stream_logs(self):
710715
}
711716
),
712717
)
713-
714-
715-
class Build(KubernetesBuildExecutor):
716-
"""DEPRECATED: Use KubernetesBuildExecutor and configure with Traitlets
717-
718-
Represents a build of a git repository into a docker image.
719-
720-
This ultimately maps to a single pod on a kubernetes cluster. Many
721-
different build objects can point to this single pod and perform
722-
operations on the pod. The code in this class needs to be careful and take
723-
this into account.
724-
725-
For example, operations a Build object tries might not succeed because
726-
another Build object pointing to the same pod might have done something
727-
else. This should be handled gracefully, and the build object should
728-
reflect the state of the pod as quickly as possible.
729-
730-
``name``
731-
The ``name`` should be unique and immutable since it is used to
732-
sync to the pod. The ``name`` should be unique for a
733-
``(repo_url, ref)`` tuple, and the same tuple should correspond
734-
to the same ``name``. This allows use of the locking provided by k8s
735-
API instead of having to invent our own locking code.
736-
737-
"""
738-
739-
"""
740-
For backwards compatibility: BinderHub previously assumed a single cleaner for all builds
741-
"""
742-
_cleaners = {}
743-
744-
def __init__(
745-
self,
746-
q,
747-
api,
748-
name,
749-
*,
750-
namespace,
751-
repo_url,
752-
ref,
753-
build_image,
754-
docker_host,
755-
image_name,
756-
git_credentials=None,
757-
push_secret=None,
758-
memory_limit=0,
759-
memory_request=0,
760-
node_selector=None,
761-
appendix="",
762-
log_tail_lines=100,
763-
sticky_builds=False,
764-
):
765-
warnings.warn(
766-
"Class Build is deprecated, use KubernetesBuildExecutor and configure with Traitlets",
767-
DeprecationWarning,
768-
)
769-
770-
super().__init__()
771-
772-
self.q = q
773-
self.api = api
774-
self.repo_url = repo_url
775-
self.ref = ref
776-
self.name = name
777-
self.namespace = namespace
778-
self.image_name = image_name
779-
self.push_secret = push_secret
780-
self.build_image = build_image
781-
self.memory_limit = memory_limit
782-
self.memory_request = memory_request
783-
self.docker_host = docker_host
784-
self.node_selector = node_selector
785-
self.appendix = appendix
786-
self.log_tail_lines = log_tail_lines
787-
self.git_credentials = git_credentials
788-
self.sticky_builds = sticky_builds
789-
790-
@classmethod
791-
def cleanup_builds(cls, kube, namespace, max_age):
792-
"""Delete stopped build pods and build pods that have aged out"""
793-
key = (kube, namespace, max_age)
794-
if key not in Build._cleaners:
795-
Build._cleaners[key] = KubernetesCleaner(
796-
kube=kube, namespace=namespace, max_age=max_age
797-
)
798-
Build._cleaners[key].cleanup()

binderhub/builder.py

Lines changed: 21 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from tornado.web import Finish, authenticated
2323

2424
from .base import BaseHandler
25-
from .build import Build, ProgressEvent
25+
from .build import ProgressEvent
2626
from .utils import KUBE_REQUEST_TIMEOUT
2727

2828
# Separate buckets for builds and launches.
@@ -410,64 +410,31 @@ async def get(self, provider_prefix, _unescaped_spec):
410410
# Prepare to build
411411
q = Queue()
412412

413-
if self.settings["use_registry"] or self.settings["build_docker_config"]:
414-
push_secret = self.settings["push_secret"]
415-
else:
416-
push_secret = None
413+
# if self.settings["use_registry"] or self.settings["build_docker_config"]:
414+
# push_secret = self.settings["push_secret"]
415+
# else:
416+
# push_secret = None
417417

418418
BuildClass = self.settings.get("build_class")
419419

420-
appendix = self.settings["appendix"].format(
421-
binder_url=self.binder_launch_host + self.binder_request,
422-
persistent_binder_url=self.binder_launch_host
423-
+ self.binder_persistent_request,
420+
# appendix = self.settings["appendix"].format(
421+
# binder_url=self.binder_launch_host + self.binder_request,
422+
# persistent_binder_url=self.binder_launch_host
423+
# + self.binder_persistent_request,
424+
# repo_url=repo_url,
425+
# ref_url=self.ref_url,
426+
# )
427+
428+
build = BuildClass(
429+
# All other properties should be set in traitlets config
430+
parent=self.settings["traitlets_parent"],
431+
q=q,
432+
name=build_name,
424433
repo_url=repo_url,
425-
ref_url=self.ref_url,
434+
ref=ref,
435+
image_name=image_name,
436+
git_credentials=provider.git_credentials,
426437
)
427-
428-
if issubclass(BuildClass, Build):
429-
# Deprecated, see docstring of the Build class for more details
430-
build = BuildClass(
431-
q=q,
432-
# api object can be None if we are using FakeBuild
433-
api=self.settings.get("kubernetes_client"),
434-
name=build_name,
435-
namespace=self.settings["build_namespace"],
436-
repo_url=repo_url,
437-
ref=ref,
438-
image_name=image_name,
439-
push_secret=push_secret,
440-
build_image=self.settings["build_image"],
441-
memory_limit=self.settings["build_memory_limit"],
442-
memory_request=self.settings["build_memory_request"],
443-
docker_host=self.settings["build_docker_host"],
444-
node_selector=self.settings["build_node_selector"],
445-
appendix=appendix,
446-
log_tail_lines=self.settings["log_tail_lines"],
447-
git_credentials=provider.git_credentials,
448-
sticky_builds=self.settings["sticky_builds"],
449-
)
450-
else:
451-
build = BuildClass(
452-
# Commented properties should be set in traitlets config
453-
parent=self.settings["traitlets_parent"],
454-
q=q,
455-
name=build_name,
456-
# namespace=self.settings["build_namespace"],
457-
repo_url=repo_url,
458-
ref=ref,
459-
image_name=image_name,
460-
# push_secret=push_secret,
461-
# build_image=self.settings["build_image"],
462-
# memory_limit=self.settings["build_memory_limit"],
463-
# memory_request=self.settings["build_memory_request"],
464-
# docker_host=self.settings["build_docker_host"],
465-
# node_selector=self.settings["build_node_selector"],
466-
# appendix=appendix,
467-
# log_tail_lines=self.settings["log_tail_lines"],
468-
git_credentials=provider.git_credentials,
469-
# sticky_builds=self.settings["sticky_builds"],
470-
)
471438
self.build = build
472439

473440
with BUILDS_INPROGRESS.track_inprogress():

binderhub/tests/test_build.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from tornado.httputil import url_concat
1414
from tornado.queues import Queue
1515

16-
from binderhub.build import Build, ProgressEvent
16+
from binderhub.build import KubernetesBuildExecutor, ProgressEvent
1717
from binderhub.build_local import LocalRepo2dockerBuild, ProcessTerminated, _execute_cmd
1818

1919
from .utils import async_requests
@@ -117,8 +117,8 @@ def test_default_affinity():
117117

118118
mock_k8s_api = _list_dind_pods_mock()
119119

120-
build = Build(
121-
mock.MagicMock(),
120+
build = KubernetesBuildExecutor(
121+
q=mock.MagicMock(),
122122
api=mock_k8s_api,
123123
name="test_build",
124124
namespace="build_namespace",
@@ -128,7 +128,7 @@ def test_default_affinity():
128128
image_name="name",
129129
push_secret="",
130130
memory_limit=0,
131-
git_credentials=None,
131+
git_credentials="",
132132
docker_host="http://mydockerregistry.local",
133133
node_selector={},
134134
)
@@ -145,8 +145,8 @@ def test_sticky_builds_affinity():
145145
# Setup some mock objects for the response from the k8s API
146146
mock_k8s_api = _list_dind_pods_mock()
147147

148-
build = Build(
149-
mock.MagicMock(),
148+
build = KubernetesBuildExecutor(
149+
q=mock.MagicMock(),
150150
api=mock_k8s_api,
151151
name="test_build",
152152
namespace="build_namespace",
@@ -156,7 +156,7 @@ def test_sticky_builds_affinity():
156156
image_name="name",
157157
push_secret="",
158158
memory_limit=0,
159-
git_credentials=None,
159+
git_credentials="",
160160
docker_host="http://mydockerregistry.local",
161161
node_selector={},
162162
sticky_builds=True,
@@ -183,8 +183,8 @@ def test_git_credentials_passed_to_podspec_upon_submit():
183183

184184
mock_k8s_api = _list_dind_pods_mock()
185185

186-
build = Build(
187-
mock.MagicMock(),
186+
build = KubernetesBuildExecutor(
187+
q=mock.MagicMock(),
188188
api=mock_k8s_api,
189189
name="test_build",
190190
namespace="build_namespace",

0 commit comments

Comments
 (0)