Coder Social home page Coder Social logo

paas-sig-ci's Introduction

Continuous Integration for the CentOS PaaS SIG

This repository is designed for the tooling of Continuous Integration of the CentOS Platform as a Service (PaaS) Special Interest Group (SIG).

Project Structure

The paas-sig-ci repository is structured as such:

pass-sig-ci/
├── archived (old way of integration)
├── Jenkinsfile
├── JenkinsfileTrigger
├── playbooks
│   └── openshift
│       ├── bfs.yml
│       ├── cbs.yml
│       ├── group_vars
│       │   └── all
│       │       └── global.yml
│       └── roles
│           ├── bfs
│           │   ├── defaults
│           │   │   └── main.yml
│           │   ├── meta
│           │   │   └── main.yml
│           │   └── tasks
│           │       ├── build_openshift-ansible_srpm.yml
│           │       ├── build_openshift_srpm.yml
│           │       ├── cleanup_bfs.yml
│           │       ├── clone_from_github.yml
│           │       └── main.yml
│           ├── cbs
│           │   ├── defaults
│           │   │   └── main.yml
│           │   ├── meta
│           │   │   └── main.yml
│           │   └── tasks
│           │       ├── cbs_build_srpms.yml
│           │       ├── copy_cbs_certs.yml
│           │       ├── install_cbs_pkgs.yml
│           │       └── main.yml
│           └── common
│               ├── defaults
│               │   └── main.yml
│               ├── handlers
│               │   └── main.yml
│               ├── tasks
│               │   ├── enable_centos_extras.yml
│               │   ├── enable_epel.yml
│               │   ├── install_required_pkgs.yml
│               │   └── main.yml
│               └── templates
│                   ├── centos7-extras-repo.j2
│                   └── epel-repo.j2
└── README.md

playbooks

These playbooks build source RPMs for Openshift origin and openshift-ansible from a known good release tag in those repos.

bfs role

The bfs role creates the source RPM for each project origin and openshift-ansible

cbs role

The cbs role takes the source RPM and builds it against the appropriate build target in CentOS Koji (CentOS Build System - CBS).

Jenkins 2.0 Pipelines

JenkinsTrigger

This is a trigger pipeline that checks the latest tag for Openshift origin and openshift-ansible. If there is a new one then it triggers the Jenkinsfile below to build an official version of origin and openshift-ansible against the appropriate target.

Jenkinsfile

This is a pipeline to build the source RPMs for both being triggered from the JenkinsTrigger to build official releases of origin and openshift-ansible.
Otherwise it builds every hour of the master of both origin and openshift-ansible to the paas7-openshift-future-el7 target.

Parameters

  • ORIGIN_VERSION - current default and ex. v3.11.0
  • OA_VERSION - current default and ex. openshift-ansible-3.11.115-1
  • BUILD_TARGET - current default is ''
  • SCRATCH - current default = true
  • BE - current default = false
  • BUILD_ORIGIN - current default = true
  • BUILD_OA - current default = true

Notes

Everything in the archived directory is what used to be used to build, test and deliver. Since Openshift already creates clusters and runs e2e conformance tests it would be redundant do it again so now we build source RPMs from the release tag and create an official build.

paas-sig-ci's People

Contributors

arilivigni avatar ausil avatar danyc97 avatar detiber avatar herlo avatar samvarankashyap avatar tdawson avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

paas-sig-ci's Issues

Update to haproxy 1.8.26 in http://mirror.centos.org/centos/7/paas/x86_64/openshift-origin311/Packages/h/haproxy18-1.8.23-3.el7.x86_64.rpm

Description of problem:
Update to haproxy version 1.8.26 for adding the samesite feature using the attr attribue in haproxy 1.8.26

I have written a samesite feature which is a critical requirement for some users of openshift which is Samesite in openshift router wherein we require the attr attribute of haproxy 1.8.26

Samesite feature openshift/origin#25542

The Dockerfile in the router code openshift/origin#24958 (comment)

uses centos-openshift-origin.repo

openshift/origin@5566962

which will require the following ->
openshift/origin#24958 (comment)

Wait until the SPRM for the enterprise version is published -> https://ftp.redhat.com/redhat/linux/enterprise/7Server/en/RHOSE/SRPMS/
Someone should drop a mail at the CentOS PASS SIG group if someone could start to rebuilt the rpm and publish to the mirror.centos.org repository.

So we need the latest haproxy version of 1.8 which is 1.8.26 so that the router in OCP 3.11 will use that version and the SameSite feature will work smoothly.

Version-Release number of selected component (if applicable):

Repo centos-openshift-origin.repo
Image openshift/origin-cli
Current old image 1.8.23 at http://mirror.centos.org/centos/7/paas/x86_64/openshift-origin311/

which needs to be replaced with haproxy 1.8.26

How reproducible:
Always

References -
openshift/origin#24958
https://bugzilla.redhat.com/show_bug.cgi?id=1891777

Replace sudo with become so we can drop the deprecation warning

in order to drop the deprecation warnings below

 [DEPRECATION WARNING]: DEFAULT_SUDO_EXE option, In favor of become which is a 
 generic framework . This feature will be removed in version 2.8. Deprecation 
 warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.

 [DEPRECATION WARNING]: DEFAULT_SUDO_USER option, In favor of become which is a 
 generic framework . This feature will be removed in version 2.8. Deprecation 
 warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.

 [DEPRECATION WARNING]: Instead of sudo/sudo_user, use become/become_user and 
 make sure become_method is 'sudo' (default). This feature will be removed in 
version 2.6. Deprecation warnings can be disabled by setting 
deprecation_warnings=False in ansible.cfg.

Remove the deprecated accelerate as a connection method

doing so will get rid of the deprecation warnings

[DEPRECATION WARNING]: ACCELERATE_TIMEOUT option, Removing accelerate as a 
connection method, settings not needed either. . This feature will be removed 
in version 2.5. Deprecation warnings can be disabled by setting 
deprecation_warnings=False in ansible.cfg.

Origin master build fail

Everything was working on 08/04 and now it fails due to

Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.YVtBWj
+ umask 022
+ cd /builddir/build/BUILD
+ cd origin-git-0.165a8d9
+ OS_GIT_MINOR=10+
+ OS_GIT_MAJOR=3
+ OS_GIT_VERSION=v3.10.0-alpha.0+165a8d9-618
+ OS_GIT_TREE_STATE=clean
+ KUBE_GIT_VERSION=v1.10.0+b81c8f8
+ OS_GIT_PATCH=0
+ KUBE_GIT_COMMIT=b81c8f8
+ OS_GIT_COMMIT=165a8d9
+ ETCD_GIT_VERSION=v3.2.16-0-g121edf0
+ ETCD_GIT_COMMIT=121edf0
+ OS_BUILD_RELEASE_ARCHIVES=n
+ make build-cross
hack/build-cross.sh
/builddir/build/BUILD/origin-git-0.165a8d9/hack/lib/constants.sh: line 137: KUBE_GIT_MAJOR: unbound variable

BE flag logic for Origin needs improving

Writing it down before i forget ..
currently when BE flag is enabled we do the following:

  • Jenkins job set the ORIGIN_VERSION to default value
    • default value is static and needs to be changed everytime upstream is being changed. This logic is a catch 22 since someone needs to always be ahead / up to date with upstream so we can get the job working (which runs every 3 h)
  • we clone master origin branch
  • we set ORIGIN_VERSION default value passed in in the origin.spec file
  • tito builds the rpm with the modified rpm
  • cbs is pushing the rpm however that fails - see here since the rpm is origin-3.10.0-0.alpha.0.el7.git.0.af33468.src.rpm but in the build.log we can see it detects a different OS_GIT_VERSION=v3.11.0-alpha.0+af33468-8 . That is because we passed something else [1]

[1]
" Fixup spec file - v3.10.0-alpha.0", "", "diff --git a/origin.spec b/origin.spec", "index 49b7bf8..0816950 100644", "--- a/origin.spec", "+++ b/origin.spec", "@@ -65,8 +65,8 @@", " %{!?release: %global release 1}", " ", " Name: %{package_name}", "-Version: %{version}", "-Release: %{release}%{package_dist}", "+Version: 3.10.0", "+Release: 0.alpha.0%{dist}", " Summary: Open Source Container Management by Red Hat", " License: ASL 2.0", " URL: https://%{import_path}" ]

paas-ci-cd-dev

@DanyC97 please don't disable the paas-ci-cd job

  • I don't think this is the right approach to have an identical job for dev.
  • In our CI we have a trigger that picks up PRs and then just calls the production job.

Let's discuss :) thanks again for all the help

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.