From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 Date: Sat, 4 Dec 2021 22:12:01 +0100 From: Konstantin Lepikhov To: devel-distro@lists.altlinux.org Message-ID: Mail-Followup-To: devel-distro@lists.altlinux.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Suci8nNDZAk/5tkt" Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Operation-System: ALT Sisyphus Sisyphus (unstable) (sisyphus) 5.10.0-lks-wks-alt13 User-Agent: Mutt/2.1.1.0.3.g6c0f75cca (2021-07-12) Subject: [devel-distro] feature/gitlab-runner X-BeenThere: devel-distro@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: Distributions development List-Id: Distributions development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Dec 2021 21:12:05 -0000 Archived-At: List-Archive: --Suci8nNDZAk/5tkt Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Привет! Сделал feature для добавления gitlab-runner. Пакет было собирать влом, поэтому обошелся доп. функционалом в mkimage и hasher. Как конфигурировать потом этот gitlab-runner зависит от задачи, поэтому оставляю простор для творчества. -- WBR et al. --Suci8nNDZAk/5tkt Content-Type: text/x-patch; charset=us-ascii Content-Disposition: attachment; filename="0091-features-add-gitlab-runner.patch" >>From 930995ae8a82d4e8ffd95cebea23f4a6c533f82b Mon Sep 17 00:00:00 2001 From: "Konstantin A. Lepikhov" Date: Sat, 4 Dec 2021 14:51:18 +0100 Subject: [PATCH 91/94] features: add gitlab-runner - Add gitlab-runner feature. --- features.in/gitlab-runner/README | 11 ++++ features.in/gitlab-runner/config.mk | 13 ++++ .../rootfs/image-scripts.d/60-gitlab-install | 61 +++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 features.in/gitlab-runner/README create mode 100644 features.in/gitlab-runner/config.mk create mode 100755 features.in/gitlab-runner/rootfs/image-scripts.d/60-gitlab-install diff --git a/features.in/gitlab-runner/README b/features.in/gitlab-runner/README new file mode 100644 index 00000000..2e09e84b --- /dev/null +++ b/features.in/gitlab-runner/README @@ -0,0 +1,11 @@ +This feature installs gitlab-runner according official guide [1] + +The following envs can be altered: + +GL_USER - define default gitlab-runner username ('gitlab-runner' by default) +GL_SSH_KEY - ssh pubkey added to authorized_keys of GL_USER + +NOTE: this feature depends on network enablement in hasher (see [2] for details) + +1. https://docs.gitlab.com/runner/install/linux-manually.html +2. https://bugzilla.altlinux.org/34596 diff --git a/features.in/gitlab-runner/config.mk b/features.in/gitlab-runner/config.mk new file mode 100644 index 00000000..3bb3e719 --- /dev/null +++ b/features.in/gitlab-runner/config.mk @@ -0,0 +1,13 @@ +# WARNING: the variable values are stored in build config/log! +use/gitlab-runner: + @$(call add_feature) + @$(call add,THE_PACKAGES,shadow-utils passwd curl) + @$(call xport,GL_USER) + @$(call xport,GL_SSH_KEY) + +# some presets +# USERS variable chunk format is "login:passwd:admin:sudo" +# GROUPS are just stashed there to include USERS logins created +# GL_SSH_KEY should be changed accordingly +use/gitlab-runner/defuser: use/gitlab-runner + @$(call add,GL_USER,gitlab-runner) diff --git a/features.in/gitlab-runner/rootfs/image-scripts.d/60-gitlab-install b/features.in/gitlab-runner/rootfs/image-scripts.d/60-gitlab-install new file mode 100755 index 00000000..259c6d97 --- /dev/null +++ b/features.in/gitlab-runner/rootfs/image-scripts.d/60-gitlab-install @@ -0,0 +1,61 @@ +#!/bin/sh -efu + +gl_url="https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-" + +add_user() { + useradd -c 'Gitlab Runner' -m "$1" + [ -z "$GLOBAL_GL_SSH_KEY" ] || echo "$GLOBAL_GL_SSH_KEY" >> /home/"$1"/.ssh/authorized_keys + usermod -L "$1" || + echo "*** failed to add user '$1'" +} + + +case "$GLOBAL_ARCH" in + x86_64) + gl_url="${gl_url}amd64" + ;; + i586) + gl_url="${gl_url}386" + ;; + armh) + gl_url="${gl_url}arm" + ;; + aarch64) + gl_url="${gl_url}arm64" + ;; + ppc64le) + gl_url="${gl_url}ppc64le" + ;; + *) + echo "arch $GLOBAL_ARCH not supported!" + exit 1 + ;; +esac + +if [ -n "$GLOBAL_GL_USER" ]; then + add_user "$GLOBAL_GL_USER" + echo 'nameserver 8.8.8.8' >> /etc/resolv.conf + curl -L --output /usr/local/bin/gitlab-runner "$gl_url" + chmod +x /usr/local/bin/gitlab-runner + cat > /lib/systemd/system/gitlab-runner.service << EOF +[Unit] +Description=GitLab Runner +ConditionFileIsExecutable=/usr/local/bin/gitlab-runner + +After=syslog.target network.target + +[Service] +StartLimitInterval=5 +StartLimitBurst=10 +ExecStart=/usr/bin/gitlab-runner "run" "--working-directory" "/home/$GLOBAL_GL_USER" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--user" "$GLOBAL_GL_USER" + +Restart=always + +RestartSec=120 +EnvironmentFile=-/etc/sysconfig/gitlab-runner + +[Install] +WantedBy=multi-user.target +EOF + systemctl enable gitlab-runner +fi -- 2.33.0 --Suci8nNDZAk/5tkt Content-Type: text/x-patch; charset=us-ascii Content-Disposition: attachment; filename="0094-use-gitlab-runner-update-README.patch" >>From 0932e5b015e76185dcde52dd31ee788ee4e24f13 Mon Sep 17 00:00:00 2001 From: "Konstantin A. Lepikhov" Date: Sat, 4 Dec 2021 22:01:28 +0100 Subject: [PATCH 94/94] use/gitlab-runner: update README - added notes about mkimage network options. --- features.in/gitlab-runner/README | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/features.in/gitlab-runner/README b/features.in/gitlab-runner/README index 2e09e84b..0555b043 100644 --- a/features.in/gitlab-runner/README +++ b/features.in/gitlab-runner/README @@ -6,6 +6,8 @@ GL_USER - define default gitlab-runner username ('gitlab-runner' by default) GL_SSH_KEY - ssh pubkey added to authorized_keys of GL_USER NOTE: this feature depends on network enablement in hasher (see [2] for details) + and mkimage [3] 1. https://docs.gitlab.com/runner/install/linux-manually.html 2. https://bugzilla.altlinux.org/34596 +3. https://git.altlinux.org/people/legion/packages/mkimage.git?p=mkimage.git;a=commitdiff;h=6e90f032f15f89de1c2c523a725e369ab6cad1a0 -- 2.33.0 --Suci8nNDZAk/5tkt--