added migration compatibility
parent
c0a1f80330
commit
bc419043ad
|
|
@ -160,7 +160,7 @@
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Auditor} Ein Auditor besitzt nur Lese-Zugriff auf alle zur Verfügung stehenden Ressourcen. Auditoren werden in der Praxis meist verwendet um die Einhaltung von bspw. gesetzlichen Regularien und Richtlinien, die von einem Unternehmen erfüllt werden sollen, zu überprüfen. Auditoren sind nur innerhalb des selbstgehosten und dedizierten Lösung möglich.
|
\item \textbf{Auditor} Ein Auditor besitzt nur Lese-Zugriff auf alle zur Verfügung stehenden Ressourcen. Auditoren werden in der Praxis meist verwendet um die Einhaltung von bspw. gesetzlichen Regularien und Richtlinien, die von einem Unternehmen erfüllt werden sollen, zu überprüfen. Auditoren sind nur innerhalb des selbstgehosten und dedizierten Lösung möglich.
|
||||||
\item \textbf{External} Ein externer Nutzer besitzt eingeschränkten Zugriff auf private Ressourcen einer GitLab-Instanz. Diese müssen davor explizit als externe Nutzer hinzugefügt werden. Meistens werden externe Nutzer verwendet um Nutzern außerhalb eines Unternehmens spezifischen Zugriff auf ein Projekt oder eine Gruppe zu geben. Externe Nutzer sind nur innerhalb des selbstgehosten und dedizierten Lösung möglich.
|
\item \textbf{External} Ein externer Nutzer besitzt eingeschränkten Zugriff auf private Ressourcen einer GitLab-Instanz. Diese müssen davor explizit als externe Nutzer hinzugefügt werden. Meistens werden externe Nutzer verwendet um Nutzern außerhalb eines Unternehmens spezifischen Zugriff auf ein Projekt oder eine Gruppe zu geben. Externe Nutzer sind nur innerhalb des selbstgehosten und dedizierten Lösung möglich.
|
||||||
\item \textbf{Internal} Ein Interner Nutzer besitzt meist eingschränkten Zugriff und wird durch GitLab automatisch erstellt. Interne Nutzer können als Bots betrachtet werden, die automatisierte Prozesse durchführen, die durch normale Nutzer nicht ausgeführt werden können. Interne Nutzer sind für alle Lösungen von GitLab erhältlich.
|
\item \textbf{Internal} Ein Interner Nutzer besitzt meist eingeschränkten Zugriff und wird durch GitLab automatisch erstellt. Interne Nutzer können als Bots betrachtet werden, die automatisierte Prozesse durchführen, die durch normale Nutzer nicht ausgeführt werden können. Interne Nutzer sind für alle Lösungen von GitLab erhältlich.
|
||||||
\item \textbf{Service} Service Accounts repräsentieren nicht menschliche Nutzer. Service Nutzer kommen bei der automatischen Ausführung von Prozessen und Pipelines zum Einsatz. Service Nutzer sind für alle Lösungen von GitLab erhältlich.
|
\item \textbf{Service} Service Accounts repräsentieren nicht menschliche Nutzer. Service Nutzer kommen bei der automatischen Ausführung von Prozessen und Pipelines zum Einsatz. Service Nutzer sind für alle Lösungen von GitLab erhältlich.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
@ -200,32 +200,90 @@
|
||||||
|
|
||||||
\subsection{Kompatibilität}
|
\subsection{Kompatibilität}
|
||||||
|
|
||||||
GitLab als Code-Hosting Plattform ist ausschließlich für Linux-Distributionen erhältlich. Für Linux sind Pakete für jeweils \textit{Enterprise Edition} und \textit{Community Edition} erhältlich. GitLab plant Pakete hauptsächlich für Betriebssysteme, mit \ac{LTS} Versionen zu veröffentlichen. Releases werden nicht mehr publiziert, wenn der Anbieter des Betriebssystems \ac{EOL} des Systems bekannt gibt. GitLab nimmt sich die Freiheit unter anderen Gründen den Support für ein Betriebssystem einzustellen \cite{gitlab_gitlab_nodate}:
|
GitLab als Code-Hosting Plattform ist ausschließlich für Linux-Distributionen erhältlich. Es wird differenziert in die kostenpflichtige Variante \ac{EE} und die kostenlose \ac{CE} erhältlich.
|
||||||
|
GitLab plant Pakete hauptsächlich für Betriebssysteme, mit \ac{LTS} Versionen zu veröffentlichen. Releases werden nicht mehr publiziert, wenn der Anbieter des Betriebssystems \ac{EOL} des Systems bekannt gibt. GitLab nimmt sich die Freiheit unter anderen Gründen den Support für ein Betriebssystem einzustellen \cite{gitlab_gitlab_nodate}:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{keine Wirtschaftlichkeit}, da zu hohe Wartungskosten oder zu wenig Kunden auf die Technologien setzen
|
\item \textbf{keine Wirtschaftlichkeit}, da zu hohe Wartungskosten oder zu wenig Kunden auf die Technologien setzen
|
||||||
\item \textbf{technische Einschränkungen} wie bspw. zusätzliche Abhängigkeiten, Sicherheitsanforderungen oder technologische Veränderungen die eine Erstellung von Paketen erschwert oder unmöglich gestaltet.
|
\item \textbf{technische Einschränkungen} wie bspw. zusätzliche Abhängigkeiten, Sicherheitsanforderungen oder technologische Veränderungen die eine Erstellung von Paketen erschwert oder unmöglich gestaltet.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
Die folgende Tabelle \ref{tab:supported_os} zeigt eine Auflistung aller aktuell (zum 15.05.2026) von GitLab unterstützten Betriebssysteme und ihrer Architekturen (Siehe \url{https://docs.gitlab.com/install/package/#supported-platforms}). Neben den offiziellen GitLab -Paketen existieren ebenso inoffizielle Pakete der GitLab-Community.
|
Die folgende Tabelle \ref{tab:supported_os} zeigt eine Auflistung aller aktuell (zum 15.05.2026) von GitLab unterstützten Betriebssysteme und ihrer Architekturen (Siehe \url{https://docs.gitlab.com/install/package/#supported-platforms}). Neben den offiziellen GitLab-Paketen existieren ebenso inoffizielle Pakete der GitLab-Community.
|
||||||
|
\begin{table}[H]
|
||||||
|
\centering
|
||||||
|
\resizebox{\columnwidth}{!}{%
|
||||||
|
\begin{tabular}{@{}llll@{}}
|
||||||
|
\toprule
|
||||||
|
Betriebsystem & OS-Version & CE & EE \\ \midrule
|
||||||
|
AlmaLinux & 8-10 & X & X \\
|
||||||
|
Amazon Linux & 2, 2023 & X & X \\
|
||||||
|
Debian & 11-13 & X & X \\
|
||||||
|
openSUSE Leap & 15.6 & X & X \\
|
||||||
|
\makecell[cl]{SUSE Linux Enterprise Server} & 12 & & X \\
|
||||||
|
Oracle Linux & 8-9 & X & X \\
|
||||||
|
\makecell[cl]{Red Hat Enterprise Linux } & 8-10 & X & X\\
|
||||||
|
Ubuntu & \makecell[cl]{22.04, 24.04} & X & X\\ \bottomrule
|
||||||
|
\end{tabular}%
|
||||||
|
}
|
||||||
|
\caption{unterstützte Betriebssysteme für GitLab}
|
||||||
|
\label{tab:supported_os}
|
||||||
|
\end{table}
|
||||||
|
Folgende Installationsmöglichkeiten existieren für \ac{CE} und \ac{EE} sowie für GitLab Runner:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Installation als Linux-Paket für das jeweilige unterstützte Betriebssystem
|
||||||
|
\item Betrieb mithilfe des offiziellen Docker-Images von GitLab (Siehe Dockerhub: \url{https://hub.docker.com/u/gitlab})
|
||||||
|
\item In Kubernetes als Helm-Chart, einem speziellen Paketformat für Kubernetes
|
||||||
|
\item Installation per GitLab Operator unter Kubernetes. Ein Kubernetes Operator erlaubt Erweiterung bzgl. des Verhaltens von Clustern, ohne dabei den ursprünglichen Quellcode von Kubernetes zu modifizieren.
|
||||||
|
\end{itemize}
|
||||||
|
GitLab Runner kann für eine grössere Auswahl an Betriebssystemen installiert werden. Tabelle \ref{tab:runner_os} zeigt eine Auflistung unterstützter Versionen von Betriebssystemen für GitLab Runner. Wird - verwendet, so ist keine Version von GitLab für das jeweilige Betriebssystem spezifiziert.
|
||||||
|
\begin{table}[H]
|
||||||
|
\centering
|
||||||
|
\resizebox{\columnwidth}{!}{%
|
||||||
|
\begin{tabular}{@{}ll@{}}
|
||||||
|
\toprule
|
||||||
|
Betriebsystem & OS-Version \\ \midrule
|
||||||
|
Debian & 11-15 \\
|
||||||
|
Mint & 21-22.1 \\
|
||||||
|
Raspbian & 11-15 \\
|
||||||
|
Ubuntu & 25.10, 24.04, 22.04, 20.4, 18.04 \\
|
||||||
|
Amazon Linux & 2, 2023, 2025 \\
|
||||||
|
\makecell[cl]{Red Hat\\Enterprise Linux} & 7-10 \\
|
||||||
|
Fedora & 42, 43 \\
|
||||||
|
Oracle Linux & 10, 9, 8, 7 \\
|
||||||
|
openSUSE & 16.0, 15.6 \\
|
||||||
|
\makecell[cl]{SUSE Linux\\Enterprise Server} & 15.7, 15.6, 15.5, 15.4, 12.5 \\
|
||||||
|
FreeBSD & - \\
|
||||||
|
Windows & - \\
|
||||||
|
macOS & - \\ \bottomrule
|
||||||
|
\end{tabular}%
|
||||||
|
}
|
||||||
|
\caption{Unterstützte Betriebssysteme für GitLab Runner}
|
||||||
|
\label{tab:runner_os}
|
||||||
|
\end{table}
|
||||||
|
Zur Kompatibilität zählt ebenso die Möglichkeit von anderen Code-Hosting Plattformen zu GitLab zu migrieren. GitLab bietet nur die Möglichkeit an automatische Migrationen von Git-Repositories durchzuführen. Auf \ac{SVN} basierende Repositories müssen externe Werkzeuge (wie bspw. \href{https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git}{git svn} oder \href{http://www.catb.org/~esr/reposurgeon/repository-editing.html}{Reposurgeon})verwendet werden um diese in Git-Repositories umzuwandeln. Für eine Auswahl an Plattformen bietet GitLab ein Migrationswerkzeug. Bei der Migration werden, bspw. für Autoren von Commits, Platzhalter für Nutzer eingeführt. Es besteht die Möglichkeit Platzhalter-Nutzer wieder realen Nutzern der GitLab-Instanz zuzuordnen. Dieser Vorgang wird als \textit{Post-migration Mapping} bezeichnet. Wird das Projekt in den Namensraum eines Nutzers exportiert, ist eine solche Zuordnung nicht möglich. Stattdessen wird dem Besitzer des Namensraum jeder Beitrag zugeordnet. \cite{gitlab_gitlab_nodate}. Tabelle \ref{tab:migration_platforms} zeigt eine Auflistung an Plattformen bzw. Repositories, für die Gruppen oder Projekte, unter der Verwendung des Migrationswerkzeug und \textit{Post-migration Mapping} importiert werden können.
|
||||||
\begin{table}[H]
|
\begin{table}[H]
|
||||||
\centering
|
\centering
|
||||||
\resizebox{\columnwidth}{!}{%
|
\resizebox{\columnwidth}{!}{%
|
||||||
\begin{tabular}{@{}lllll@{}}
|
\begin{tabular}{@{}lllll@{}}
|
||||||
\toprule
|
\toprule
|
||||||
Betriebsystem & OS & CE & EE & Architektur \\ \midrule
|
Ursprung & Gruppen & Projekte & Werkzeug & Post-Mapping \\ \midrule
|
||||||
AlmaLinux & 8-10 & X & X & amd64, arm64 \\
|
GitLab (direkter Transfer) & X & X & X & X \\
|
||||||
Amazon Linux & 2, 2023 & X & X & amd64, arm64 \\
|
GitLab (Datei-Export) & X & X & X & - \\
|
||||||
Debian & 11-13 & X & X & amd64, arm64 \\
|
Bitbucket Server & - & X & X & X \\
|
||||||
openSUSE Leap & 15.6 & X & X & amd64, arm64 \\
|
GitHub & - & X & X & X \\
|
||||||
\makecell[cl]{SUSE Linux\\Enterprise Server} & 12 & & X & amd64 \\
|
Gitea & - & X & X & X \\
|
||||||
Oracle Linux & 8-9 & X & X & amd64 \\
|
Bitbucket Cloud & - & X & X & - \\
|
||||||
\makecell[cl]{Red Hat\\Enterprise Linux } & 8-10 & X & X & amd64, arm64 \\
|
FogBugz & - & X & X & - \\
|
||||||
Ubuntu & \makecell[cl]{22.04,\\24.04} & X & X & amd64, arm64 \\ \bottomrule
|
Git Repo (Manifest) & - & X & X & - \\
|
||||||
\end{tabular}%
|
Git Repo (URL) & - & X & X & - \\
|
||||||
}
|
IBM Devops ClearCase & - & X & - & - \\
|
||||||
\caption{unterstützte Betriebssysteme durch GitLab}
|
\acs{CVS} & - & X & - & - \\
|
||||||
\label{tab:supported_os}
|
Perforce P4 & - & X & - & - \\
|
||||||
|
Subversion & - & X & - & - \\
|
||||||
|
\acs{TFVC} & - & X & - & - \\
|
||||||
|
Jira (Issues) & - & - & X & - \\ \bottomrule
|
||||||
|
\end{tabular}}
|
||||||
|
\caption{Migrations-Unterstützung von GitLab}
|
||||||
|
\label{tab:migration_platforms}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
\subsection{Skalierbarkeit}
|
\subsection{Skalierbarkeit}
|
||||||
|
|
||||||
\subsection{Dokumentation}
|
\subsection{Dokumentation}
|
||||||
|
|
@ -248,6 +306,12 @@
|
||||||
\acro{GLFM}{Gitlab Flavored Markdown}
|
\acro{GLFM}{Gitlab Flavored Markdown}
|
||||||
\acro{EOL}{End of Life}
|
\acro{EOL}{End of Life}
|
||||||
\acro{LTS}{Long Term Support}
|
\acro{LTS}{Long Term Support}
|
||||||
|
\acro{CE}{Community Edition}
|
||||||
|
\acro{EE}{Enterprise Edition}
|
||||||
|
\acro{OS}{Operating System}
|
||||||
|
\acro{SVN}{Subversion}
|
||||||
|
\acro{TFVC}{Team Foundation Version Control (TFVC)}
|
||||||
|
\acro{CVS}{Concurrent Versions System}
|
||||||
\end{acronym}
|
\end{acronym}
|
||||||
|
|
||||||
\printbibliography
|
\printbibliography
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue