.. _project-creation:
-#######################
-Project Creation (BETA)
-#######################
+################
+Project Creation
+################
Introduction
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.
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.