#153 [WIP]Enable CI/CD for Fedora Docs
Opened 3 years ago by richardgreg. Modified 3 years ago
fedora-docs/ richardgreg/docs-fp-o openshift-cicd  into  stg

empty or binary file added
@@ -0,0 +1,23 @@ 

+ apiVersion: v1

+ kind: List

+ items:

+ - apiVersion: project.openshift.io/v1

+   kind: ProjectRequest

+   metadata:

+     name: fedora-documentation-build

+     creationTimestamp: null

+   displayName: Fedora Documentation - Build

+ - apiVersion: project.openshift.io/v1

+   kind: ProjectRequest

+   metadata:

+     name: fedora-documentation-stage

+     creationTimestamp: null

+   displayName: Fedora Documentation - Stage

+ - apiVersion: project.openshift.io/v1

+   kind: ProjectRequest

+   metadata:

+     name: fedora-documentation-prod

+     labels:

+       environment: production

+     creationTimestamp: null

+   displayName: Fedora Documentation - Prod

empty or binary file added
empty or binary file added
empty or binary file added
file added
+35
@@ -0,0 +1,35 @@ 

+ # CI/CD for Fedora Docs

+ Instructions on enabling continuous integration and development for the Fedora documentation website.

+ 

+ ### 1. Create Lifecycle Stages

+ There are three stages for the application to be promoted through:

+ 

+ * fedora-documentation-build

+ * fedora-documentation-stage

+ * fedora-documentation-prod

+ 

+ Use the YAML that defines project requests to quickly create application

+ ```

+ $ oc create -f .openshift/projects/projects.yml

+ project.project.openshift.io/fedora-documentation-build created

+ project.project.openshift.io/fedora-documentation-stage created

+ project.project.openshift.io/fedora-documentation-prod created

+ ```

+ 

+ ### 2. Start up Jenkins master

+ ```

+ $ oc process openshift//jenkins-persistent | oc apply -f- -n fedora-documentation-build

+ route.route.openshift.io/jenkins created

+ persistentvolumeclaim/jenkins created

+ deploymentconfig.apps.openshift.io/jenkins created

+ serviceaccount/jenkins created

+ rolebinding.authorization.openshift.io/jenkins_edit created

+ service/jenkins-jnlp created

+ service/jenkins created

+ ```

+ 

+ ### Cleanup

+ `$ oc delete project fedora-documentation-build fedora-documentation-stage fedora-documetation-prod`

+ 

+ ### Reference

+ [Red Hat Communities of Practice](https://github.com/redhat-cop/container-pipelines/tree/master/basic-spring-boot)

@@ -0,0 +1,8 @@ 

+ # This is the Ansible Galaxy requirements file to pull in the correct roles

+ # to support the operation of CASL provisioning/runs.

+ 

+ # From 'openshift-applier'

+ - name: openshift-applier

+   scm: git

+   src: https://github.com/redhat-cop/openshift-applier

+   version: v2.1.1

Signed-off-by: Richard Gregory richardgrecoson@gmail.com

is this a good place to suggest CI test? (I'll move it to some other place if needed)

this python3 tool could be used to detect 404 links: https://github.com/linkchecker/linkchecker
I ran it and here are the results:
English: 26 links with error 404
French: 266 links with error 404

Main reason to these errors, hard codded links "https://docs.fedoraproject.org/*" instead of Antora links: https://docs.antora.org/antora/2.3/navigation/xrefs-and-link-text/
Secondary reason: moved/renamed pages

I'm unsure testing localized content is needed, a simple linter would probably do the job.
Each localized content is 2200 pages to scan. It's costly.

is this a good place to suggest CI test? (I'll move it to some other place if needed)

Most likely not yet but @richardgreg will likely keep these ideas in mind ;-)

@richardgreg I'm going to confirm this first, but we'll likely want to run the CI jobs in the Fedora infrastructure's openshift where each project is deployed via ansible.
You can find some examples of projects deployed there at: https://pagure.io/fedora-infra/ansible/blob/master/f/playbooks/openshift-apps (and their corresponding roles: https://pagure.io/fedora-infra/ansible/blob/master/f/roles/openshift-apps )

So we'll likely need to adjust this a bit before submitting it to the ansible repo. The idea is that everything is deployed by ansible, so there nothing to do manually if we ever need to migrate the project to another cluster or need to rebuild it from scratch.
Does this make sense to you?

@richardgreg I'm going to confirm this first, but we'll likely want to run the CI jobs in the Fedora infrastructure's openshift where each project is deployed via ansible.
You can find some examples of projects deployed there at: https://pagure.io/fedora-infra/ansible/blob/master/f/playbooks/openshift-apps (and their corresponding roles: https://pagure.io/fedora-infra/ansible/blob/master/f/roles/openshift-apps )

So we'll likely need to adjust this a bit before submitting it to the ansible repo. The idea is that everything is deployed by ansible, so there nothing to do manually if we ever need to migrate the project to another cluster or need to rebuild it from scratch.
Does this make sense to you?

Alright. I'm looking into it.

Hi @pingou, do you have an idea which example in the ansible projects most likely resembles what we want to achieve?

Hi @pingou, do you have an idea which example in the ansible projects most likely resembles what we want to achieve?

Considering we're not deploying in the Openshift instance of the Fedora
infrastructure, we can do things differently. The only requirement being to be
able to re-deploy fully from scratch.

Oh right. We've moved to CentOS CI

Hi @pingou, do you have an idea which example in the ansible projects most likely resembles what we want to achieve?

Considering we're not deploying in the Openshift instance of the Fedora
infrastructure, we can do things differently. The only requirement being to be
able to re-deploy fully from scratch.

I know we went through an overview of how to proceed from start to finish in the last meeting. I did not take notes quickly enough. Maybe go over it one more time or @siddharthvipul1 can chime in? Thanks :)

Does the location of the CI impacts the existing Openshift projects?

Docs build are through Openshift.

Does the location of the CI impacts the existing Openshift projects?

Not really, one is CI so temporary/throw-away for PRs while the links you're
giving are about the official build of the doc

@pingou so I found out about VM templates and I wish to use it to build the docs. I'm going to need a PVC in the namespace to try it out. What are your thoughts?

so I found out about VM templates and I wish to use it to build the docs

That part confuses me a little though, don't we want to use containers?

@siddharthvipul1 any thought on this ^?

I have had a discussion with Richard. He can ping me anytime or open a ticket on centos-infra for pvc and I can issue one.
Also, I agree with you about usage of containers for less load on infra but at this point let's see something working (if vm works, vm it is) :)

Turns out it's better that the configurations have its own repo at least for now https://pagure.io/fedora-docs-cicd

Le 2021-01-20 15:45, Richard Gregory a écrit :

Turns out it's better that the configurations have its own repo
https://pagure.io/fedora-docs-cicd

Could you please move it to "fedora-docs" namespace so we can easily
find it in https://pagure.io/projects/fedora-docs/%2A ?

Le 2021-01-20 15:45, Richard Gregory a écrit :

Turns out it's better that the configurations have its own repo
https://pagure.io/fedora-docs-cicd

Could you please move it to "fedora-docs" namespace so we can easily
find it in https://pagure.io/projects/fedora-docs/%2A ?

I take this can only be done during the creation of a new project, right?

Le 2021-01-21 15:31, Richard Gregory a écrit :

I take this can only be done during the creation of a new project,
right?

no idea

but if that's the case, just create a new project, add it as a remote
and push, should work fine.
then remove the old project