@@ -811,13 +811,11 @@ async def _handler(
811811 image = environment .container_image
812812 default_resource_class = await self .rp_repo .get_default_resource_class ()
813813 if default_resource_class .id is None :
814- raise errors .ProgrammingError (message = "The default reosurce class has to have an ID" , quiet = True )
814+ raise errors .ProgrammingError (message = "The default resource class has to have an ID" , quiet = True )
815815 resource_class_id = body .resource_class_id or default_resource_class .id
816- parsed_server_options = await self .nb_config .crc_validator .validate_class_storage (
817- user , resource_class_id , body .disk_storage
818- )
816+ await self .nb_config .crc_validator .validate_class_storage (user , resource_class_id , body .disk_storage )
819817 work_dir = environment .working_directory
820- user_secrets : K8sUserSecrets | None = None
818+ # user_secrets: K8sUserSecrets | None = None
821819 # if body.user_secrets:
822820 # user_secrets = K8sUserSecrets(
823821 # name=server_name,
@@ -860,33 +858,13 @@ async def _handler(
860858 quiet = True ,
861859 )
862860 cloud_storage [csr_id ] = csr
863- # repositories = [Repository(i.url, branch=i.branch, commit_sha=i.commit_sha) for i in body.repositories]
864861 repositories = [Repository (url = i ) for i in project .repositories ]
865862 secrets_to_create : list [V1Secret ] = []
866- server = Renku2UserServer (
867- user = user ,
868- image = image ,
869- project_id = str (launcher .project_id ),
870- launcher_id = body .launcher_id ,
871- server_name = server_name ,
872- server_options = parsed_server_options ,
873- environment_variables = {},
874- user_secrets = user_secrets ,
875- cloudstorage = [i for i in cloud_storage .values ()],
876- k8s_client = self .nb_config .k8s_v2_client ,
877- workspace_mount_path = work_dir ,
878- work_dir = work_dir ,
879- repositories = repositories ,
880- config = self .nb_config ,
881- using_default_image = self .nb_config .sessions .default_image == image ,
882- is_image_private = False ,
883- internal_gitlab_user = internal_gitlab_user ,
884- )
885- # Generate the cloud storage secrets
863+ # Generate the cloud starge secrets
886864 data_sources : list [DataSource ] = []
887865 for ics , cs in enumerate (cloud_storage .values ()):
888866 secret_name = f"{ server_name } -ds-{ ics } "
889- secrets_to_create .append (cs .secret (secret_name , server .k8s_client .preferred_namespace ))
867+ secrets_to_create .append (cs .secret (secret_name , self . nb_config .k8s_client .preferred_namespace ))
890868 data_sources .append (
891869 DataSource (mountPath = cs .mount_folder , secretRef = SecretRefWhole (name = secret_name , adopt = True ))
892870 )
@@ -905,17 +883,26 @@ async def _handler(
905883 ),
906884 )
907885 )
908- git_clone = await init_containers .git_clone_container_v2 (server )
886+ git_providers = await self .nb_config .git_provider_helper .get_providers (user )
887+ git_clone = await init_containers .git_clone_container_v2 (
888+ user ,
889+ self .nb_config ,
890+ repositories ,
891+ git_providers ,
892+ launcher .environment .mount_directory ,
893+ launcher .environment .working_directory ,
894+ )
909895 if git_clone is not None :
910896 session_init_containers .append (InitContainer .model_validate (git_clone ))
911897 extra_containers : list [ExtraContainer ] = []
912- git_proxy_container = await git_proxy .main_container (server )
898+ git_proxy_container = await git_proxy .main_container (user , self . nb_config , repositories , git_providers )
913899 if git_proxy_container is not None :
914900 extra_containers .append (
915901 ExtraContainer .model_validate (self .nb_config .k8s_v2_client .sanitize (git_proxy_container ))
916902 )
917903
918- parsed_server_url = urlparse (server .server_url )
904+ base_server_url = self .nb_config .sessions .ingress .base_url (server_name )
905+ base_server_path = self .nb_config .sessions .ingress .base_path (server_name )
919906 annotations : dict [str , str ] = {
920907 "renku.io/project_id" : str (launcher .project_id ),
921908 "renku.io/launcher_id" : body .launcher_id ,
@@ -928,7 +915,7 @@ async def _handler(
928915 hibernated = False ,
929916 session = Session (
930917 image = image ,
931- urlPath = parsed_server_url . path ,
918+ urlPath = base_server_path ,
932919 port = environment .port ,
933920 storage = Storage (
934921 className = self .nb_config .sessions .storage .pvs_storage_class ,
@@ -944,8 +931,8 @@ async def _handler(
944931 args = environment .args ,
945932 shmSize = "1G" ,
946933 env = [
947- SessionEnvItem (name = "RENKU_BASE_URL_PATH" , value = parsed_server_url . path ),
948- SessionEnvItem (name = "RENKU_BASE_URL" , value = server . server_url ),
934+ SessionEnvItem (name = "RENKU_BASE_URL_PATH" , value = base_server_url ),
935+ SessionEnvItem (name = "RENKU_BASE_URL" , value = base_server_path ),
949936 ],
950937 ),
951938 ingress = Ingress (
@@ -981,7 +968,7 @@ async def _handler(
981968 dataSources = data_sources ,
982969 ),
983970 )
984- parsed_proxy_url = urlparse (urljoin (server . server_url + "/" , "oauth2" ))
971+ parsed_proxy_url = urlparse (urljoin (base_server_url + "/" , "oauth2" ))
985972 secret_data = {}
986973 if isinstance (user , AuthenticatedAPIUser ):
987974 secret_data ["auth" ] = dumps (
@@ -991,8 +978,8 @@ async def _handler(
991978 "oidc_issuer_url" : self .nb_config .sessions .oidc .issuer_url ,
992979 "session_cookie_minimal" : True ,
993980 "skip_provider_button" : True ,
994- "redirect_url" : urljoin (server . server_url + "/" , "oauth2/callback" ),
995- "cookie_path" : parsed_server_url . path ,
981+ "redirect_url" : urljoin (base_server_url + "/" , "oauth2/callback" ),
982+ "cookie_path" : base_server_path ,
996983 "proxy_prefix" : parsed_proxy_url .path ,
997984 "authenticated_emails_file" : "/authorized_emails/authorized_emails" ,
998985 "client_secret" : self .nb_config .sessions .oidc .client_secret ,
0 commit comments