Skip to content

Commit

Permalink
Fix: Update repo creation documentation
Browse files Browse the repository at this point in the history
Update docs on porject creation instructions to reflect
what happens with any project configuration files and
credentials.

Issue: RELENG-4616
Change-Id: I693cde08c5efa3c047a34b1a4e633b776ab7b202
Signed-off-by: Jessica Wagantall <jwagantall@linuxfoundation.org>
  • Loading branch information
jwagantall committed Mar 8, 2023
1 parent aba163c commit 2dfc7b9
Showing 1 changed file with 74 additions and 29 deletions.
103 changes: 74 additions & 29 deletions docs/project-creation.rst
@@ -1,8 +1,8 @@
.. _project-creation:

#######################
Project Creation (BETA)
#######################
################
Project Creation
################


Introduction
Expand All @@ -12,8 +12,8 @@ Self serve project creation: To reduce administrator time spent on
project creation automation is in place. Submitting and merging an INFO.yaml
file for a new Gerrit repository now creates the project and its related resources.

Quick Start
===========
Quick Start and INFO.yaml Creation
==================================

To drive Self-serve Project creation submit an INFO.yaml for approval in the
correct location in the Linux Foundation's info-master repository.
Expand All @@ -32,39 +32,84 @@ An example of a parent and child:
gerrit.onap.org/ccsdk/dashboard
Where ccsdk is the parent and dashboard is the child.

Correct clone options for your LFID will be available here:
.. _info-master: https://gerrit.linuxfoundation.org/infra/admin/repos/releng/info-master
#. Correct clone options for your LFID will be available here:
.. _info-master: https://gerrit.linuxfoundation.org/infra/admin/repos/releng/info-master

Example of cloning the info-master repo and creating a new repo
"example-parent/example-child" on gerrit.example.org
Example of cloning the info-master repo and creating a new repo
"example-parent/example-child" on gerrit.example.org

.. code-block:: bash
.. code-block:: bash
git clone ssh://LFID@gerrit.linuxfoundation.org:29418/releng/info-master
cd info-master/gerrit.example.org/example-parent/
mkdir example-child/ && cd example-child
git clone ssh://LFID@gerrit.linuxfoundation.org:29418/releng/info-master
cd info-master/gerrit.example.org/example-parent/
mkdir example-child/ && cd example-child
We are now in an empty directory whose name matches the repository we are creating.
We must create an INFO.yaml file in this directory and submit it for review.
We have created an optional helper to expediate this step, it makes creating and INFO.yaml file
quicker and less error prone.
We are now in an empty directory whose name matches the repository we are creating.

.. code-block:: bash
#. We must create an INFO.yaml file in this directory and submit it for review.
We have created an optional helper to expediate this step, it makes creating and INFO.yaml file
quicker and less error prone.

lftools infofile create-info-file gerrit.example.org example-parent/example-child --empty --tsc_approval "https://link.to.meeting.minutes" > INFO.yaml
.. code-block:: bash
We must now pause and fill out the empty sections on the INFO.yaml
lftools infofile create-info-file gerrit.example.org example-parent/example-child --empty --tsc_approval "https://link.to.meeting.minutes" > INFO.yaml
.. code-block:: bash
#. We must now pause and fill out the empty sections on the INFO.yaml

vim INFO.yaml #(add committers and lead)
tox #(check that you have entered valid yaml)
git add INFO.yaml
git commit -sv
git review
.. code-block:: bash
vim INFO.yaml #(add committers and lead)
tox #(check that you have entered valid yaml)
git add INFO.yaml
git commit -sv
cd to the root path of the info-master repo
git review
.. note::

An LF staff will be automatically added to review your change.
If the --tsc_approval link checks out and the verify job passes
your project creation will happen on the merge of your patch set.

Jenkins Configuration
---------------------

After merging the INFO.yaml, Jenkins updates project managed credentials (username and passwords).

Users still need to create the Jenkins Maven Settings files and used for Nexus artifact and image
deployment.

#. Clone the ci-management repo for your project

.. code-block:: bash
git clone ssh://LFID@gerrit.o-ran-sc.org:29418/ci-management"
#. Navigate to jenkins-config/managed-config-files/mavenSettings and create your project directory
and files. Name the directory "<project-name>-settings"
This folder contains:
* config-params.yaml - Parameters file
* content - Symbolic link to file "../../../managed-config-templates/mavenSettings-content"
* serverCredentialMappings.sandbox.yaml - Symbolic link to file
../../../managed-config-templates/serverCredentialMappings.sandbox.yaml
* serverCredentialMappings.yaml - Maven Server ID and Credential mappings
.. note::
Users can copy these files from an existing repo's settings files to use as a guide and
update them to match their repo names.
#. Push the change. LFIT will review the change and merge it
These jenkins-config files call the Jenkins corresponding repo credentials created after merging the
INFO.yaml file. The is a set of credentials and jenkins-config files per each repo. If a repo has
sub folders for different repo sub components, they all will use the .git repo matching credentials.
jenkins-config files allow artifacts and docker images deployment in Nexus and Nexus3 via Jenkins jobs.
.. note::
An LF staff will be automatically added to review your change.
If the --tsc_approval link checks out and the verify job passes
your project creation will happen on the merge of your patch set.
Please contact support.linuxfoundation.org for any questions during this process or for any related
Jenkins failues with project creentials and Nexus/Nexus3 access issues.

0 comments on commit 2dfc7b9

Please sign in to comment.