@@ -798,13 +798,11 @@ async def _handler(
798798 image = environment .container_image
799799 default_resource_class = await self .rp_repo .get_default_resource_class ()
800800 if default_resource_class .id is None :
801- raise errors .ProgrammingError (message = "The default reosurce class has to have an ID" , quiet = True )
801+ raise errors .ProgrammingError (message = "The default resource class has to have an ID" , quiet = True )
802802 resource_class_id = body .resource_class_id or default_resource_class .id
803- parsed_server_options = await self .nb_config .crc_validator .validate_class_storage (
804- user , resource_class_id , body .disk_storage
805- )
803+ await self .nb_config .crc_validator .validate_class_storage (user , resource_class_id , body .disk_storage )
806804 work_dir = environment .working_directory
807- user_secrets : K8sUserSecrets | None = None
805+ # user_secrets: K8sUserSecrets | None = None
808806 # if body.user_secrets:
809807 # user_secrets = K8sUserSecrets(
810808 # name=server_name,
@@ -843,33 +841,13 @@ async def _handler(
843841 for csr_id , csr in cloud_storage_request .items ():
844842 if csr_id in cloud_storage :
845843 cloud_storage [csr_id ] = csr
846- # repositories = [Repository(i.url, branch=i.branch, commit_sha=i.commit_sha) for i in body.repositories]
847844 repositories = [Repository (url = i ) for i in project .repositories ]
848845 secrets_to_create : list [V1Secret ] = []
849- server = Renku2UserServer (
850- user = user ,
851- image = image ,
852- project_id = str (launcher .project_id ),
853- launcher_id = body .launcher_id ,
854- server_name = server_name ,
855- server_options = parsed_server_options ,
856- environment_variables = {},
857- user_secrets = user_secrets ,
858- cloudstorage = [i for i in cloud_storage .values ()],
859- k8s_client = self .nb_config .k8s_v2_client ,
860- workspace_mount_path = work_dir ,
861- work_dir = work_dir ,
862- repositories = repositories ,
863- config = self .nb_config ,
864- using_default_image = self .nb_config .sessions .default_image == image ,
865- is_image_private = False ,
866- internal_gitlab_user = internal_gitlab_user ,
867- )
868846 # Generate the cloud starge secrets
869847 data_sources : list [DataSource ] = []
870848 for ics , cs in enumerate (cloud_storage .values ()):
871849 secret_name = f"{ server_name } -ds-{ ics } "
872- secrets_to_create .append (cs .secret (secret_name , server .k8s_client .preferred_namespace ))
850+ secrets_to_create .append (cs .secret (secret_name , self . nb_config .k8s_client .preferred_namespace ))
873851 data_sources .append (
874852 DataSource (mountPath = cs .mount_folder , secretRef = SecretRefWhole (name = secret_name , adopt = True ))
875853 )
@@ -886,17 +864,26 @@ async def _handler(
886864 ),
887865 )
888866 )
889- git_clone = await init_containers .git_clone_container_v2 (server )
867+ git_providers = await self .nb_config .git_provider_helper .get_providers (user )
868+ git_clone = await init_containers .git_clone_container_v2 (
869+ user ,
870+ self .nb_config ,
871+ repositories ,
872+ git_providers ,
873+ launcher .environment .mount_directory ,
874+ launcher .environment .working_directory ,
875+ )
890876 if git_clone is not None :
891877 session_init_containers .append (InitContainer .model_validate (git_clone ))
892878 extra_containers : list [ExtraContainer ] = []
893- git_proxy_container = await git_proxy .main_container (server )
879+ git_proxy_container = await git_proxy .main_container (user , self . nb_config , repositories , git_providers )
894880 if git_proxy_container is not None :
895881 extra_containers .append (
896882 ExtraContainer .model_validate (self .nb_config .k8s_v2_client .sanitize (git_proxy_container ))
897883 )
898884
899- parsed_server_url = urlparse (server .server_url )
885+ base_server_url = self .nb_config .sessions .ingress .base_url (server_name )
886+ base_server_path = self .nb_config .sessions .ingress .base_path (server_name )
900887 annotations : dict [str , str ] = {
901888 "renku.io/project_id" : str (launcher .project_id ),
902889 "renku.io/launcher_id" : body .launcher_id ,
@@ -909,7 +896,7 @@ async def _handler(
909896 hibernated = False ,
910897 session = Session (
911898 image = image ,
912- urlPath = parsed_server_url . path ,
899+ urlPath = base_server_path ,
913900 port = environment .port ,
914901 storage = Storage (
915902 className = self .nb_config .sessions .storage .pvs_storage_class ,
@@ -925,8 +912,8 @@ async def _handler(
925912 args = environment .args ,
926913 shmSize = "1G" ,
927914 env = [
928- SessionEnvItem (name = "RENKU_BASE_URL_PATH" , value = parsed_server_url . path ),
929- SessionEnvItem (name = "RENKU_BASE_URL" , value = server . server_url ),
915+ SessionEnvItem (name = "RENKU_BASE_URL_PATH" , value = base_server_url ),
916+ SessionEnvItem (name = "RENKU_BASE_URL" , value = base_server_path ),
930917 ],
931918 ),
932919 ingress = Ingress (
@@ -962,7 +949,7 @@ async def _handler(
962949 dataSources = data_sources ,
963950 ),
964951 )
965- parsed_proxy_url = urlparse (urljoin (server . server_url + "/" , "oauth2" ))
952+ parsed_proxy_url = urlparse (urljoin (base_server_url + "/" , "oauth2" ))
966953 secret_data = {}
967954 if isinstance (user , AuthenticatedAPIUser ):
968955 secret_data ["auth" ] = dumps (
@@ -972,8 +959,8 @@ async def _handler(
972959 "oidc_issuer_url" : self .nb_config .sessions .oidc .issuer_url ,
973960 "session_cookie_minimal" : True ,
974961 "skip_provider_button" : True ,
975- "redirect_url" : urljoin (server . server_url + "/" , "oauth2/callback" ),
976- "cookie_path" : parsed_server_url . path ,
962+ "redirect_url" : urljoin (base_server_url + "/" , "oauth2/callback" ),
963+ "cookie_path" : base_server_path ,
977964 "proxy_prefix" : parsed_proxy_url .path ,
978965 "authenticated_emails_file" : "/authorized_emails/authorized_emails" ,
979966 "client_secret" : self .nb_config .sessions .oidc .client_secret ,
0 commit comments