URL for submodule incorrect
I am trying to use the following job to create an image that uses a repo, which references multiple submodules (hosted in same GitLab instance and even namespace): ``` build-image-kaniko: stage: build image: name: gcr.io/kaniko-project/executor:debug entrypoint: [''] variables: GIT_SUBMODULE_STRATEGY: recursive GIT_DEPTH: 1 GIT_STRATEGY: clone script: - echo Running Kaniko executor and building image - echo "{\"auths\":{\"${CI_REGISTRY}\":{\"auth\":\"$(printf "%s:%s" "${CI_REGISTRY_USER}" "${CI_JOB_TOKEN}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context . --dockerfile Dockerfile --insecure --skip-tls-verify --skip-tls-verify-pull --insecure-pull --destination "${CI_REGISTRY_IMAGE}:latest-test" #--verbosity debug only: - setup-cicd ``` Based on which runner I am using (my own group runner that I know is using Ubuntu Server and a shared one provided by the administrators of the GitLab instance at my institute) I am getting two different URLs both of which are incorrect. **Note:** `NAMESPACE` in my case is something like `/institute/department/group/project-group` and `REPO` is the repository the submodule is referencing. * **Shared runner** - unknown underlying system ``` Cloning into '/builds/NAMESPACE/REPO'... remote: The project you were looking for could not be found or you don't have permission to view it. fatal: repository 'https://gitlab.example.com/NAMESPACE/REPO.git/' not found fatal: clone of 'https://gitlab.example.com/NAMESPACE/REPO.git/' into submodule path '/builds/NAMESPACE/REPO' failed Failed to clone 'REPO'. Retry scheduled ``` Here there are two issues: * the URL string between the `'` contains a trailing backslash `/` * the actual hyperlink in the Web UI yon can click on points at an URL that contains `/'` (backslash AND a single quotation mark) * **Group runner** - Ubuntu Server with microk8s for Kubernetes ``` Cloning into '/builds/NAMESPACE/REPO'... fatal: could not read Username for 'https://gitlab.example.com': No such device or address fatal: clone of 'https://gitlab.example.com/NAMESPACE/REPO.git' into submodule path '/builds/NAMESPACE/REPO' failed Failed to clone 'REPO'. Retry scheduled ``` Here the issue is only an incorrect actual hyperlink in the Web UI that points contains `'` (single quotation mark) The first issue is a mystery to me. The runner may as well be even running on Windows or on Linux but not in Kubernetes, which doesn't really fit a setup required by Kaniko. The second one is only Web UI-related (at least I hope so) since the authentification issue is what I am actually struggling with as part of my journey on discovering how to incorporate repos with submodules in a CI job that require credentials (using both Kaniko and Docker `dind`). We are talking at least a Web UI bug. Worse scenario is things are going much deeper. **UPDATE 1:** I tried adjusting the URL of each submodule: * removed `.git` suffix * removed `.git` suffix and added `/` No difference. I am also overwriting my `.gitmodules` in the CI to include the credentials (e.g. `url = https://${CI_REGISTRY_USER}:${CI_JOB_TOKEN}@gitlab.example.com/NAMESPACE/REPO.git"`) and installing `git` Docker `dind` (currently dumped Kaniko and switched back to Docker for building my image) to manually clone my submodules. Funny enough it doesn't matter whether I manually clone the submodules (`git submodule update --init --recursive`) or use the `GIT_*` CI job variables that are predefined by GitLab. The problem remains. So it appears to be an issue with how GitLab CICD handles such a task. **UPDATE 2:** Using relative URLs (with and without adjustments from first **UPDATE 1**) yield the same result.
issue