Features 11017 and 11018: setup of mgmt cluster and git repo
This change incorporates the changes to setup a mgmt cluster for
cloud-native operations in OSM following a GitOps model, which includes
the setup of an internal git repository.
Change-Id: If828d18ad64d852a9a89ec9ba7c2d3a96d281565
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
diff --git a/installers/mgmt-cluster/gitea/91-provision-local-git-user.sh b/installers/mgmt-cluster/gitea/91-provision-local-git-user.sh
new file mode 100755
index 0000000..27f9ffe
--- /dev/null
+++ b/installers/mgmt-cluster/gitea/91-provision-local-git-user.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#######################################################################################
+
+set -e -o pipefail
+
+export HERE=$(dirname "$(readlink --canonicalize "$BASH_SOURCE")")
+source "${HERE}/library/functions.sh"
+source "${HERE}/library/trap.sh"
+
+
+# Create new user
+export USER_NAME=$(git config --get user.name)
+export USER_MAIL=$(git config --get user.email)
+export USER_PASS="${GITEA_STD_USER_PASS}" # Same as standard user
+"${HERE}/admin/create-user.sh" \
+ "${USER_NAME}" \
+ "${USER_PASS}" \
+ "${USER_MAIL}"
+
+# Create token
+export USER_TOKEN_NAME=user_token_name
+export USER_TOKEN=$( \
+ "${HERE}/admin/create-cmd-access-token.sh" \
+ "${USER_NAME}" \
+ "${USER_TOKEN_NAME}" | \
+ grep 'Access token was successfully created' | \
+ cut -d ' ' -f 6 \
+)
+
+# Add user's public SSH key
+"${HERE}/admin/create-user-ssh-key.sh" \
+ "${GITEA_HTTP_URL}" \
+ "${USER_NAME}" \
+ "${USER_TOKEN}" \
+ "$(<${HOME}/.ssh/id_rsa.pub)" \
+ "local_user_ssh_key" \
+ false
+
+# Add user as collaborator of the relevant repos
+## Fleet repo
+"${HERE}/admin/add-collaborator-to-user-repo.sh" \
+ "${GITEA_HTTP_URL}" \
+ "${GITEA_STD_USERNAME}" \
+ "${GITEA_STD_TOKEN}" \
+ "fleet-osm" \
+ "${USER_NAME}" \
+ "write"
+
+## SW-Catalogs repo
+"${HERE}/admin/add-collaborator-to-user-repo.sh" \
+ "${GITEA_HTTP_URL}" \
+ "${GITEA_STD_USERNAME}" \
+ "${GITEA_STD_TOKEN}" \
+ "sw-catalogs-osm" \
+ "${USER_NAME}" \
+ "write"
+
+# Prevents non-interactive recognition of the SSH host
+ssh-keyscan -p "${GITEA_SSH_PORT}" "${GITEA_SSH_SERVER}" >> ~/.ssh/known_hosts