Testing Ansible and Friends together

tags: Design

Projects targetted

  • ceph-ansible
  • Ansible
  • podman
  • ansible-podman-collections
  • Molecule [used in ansible role testing]

user story:

https://tree.taiga.io/project/tripleo-ci-board/us/1606

Goal

New releases of Ansible and friends does not break TripleO
Goal should me more descriptive here so that everyone will understand

Meeting Topics

  • Current Status:
    • ceph-ansible with stable-4.0 branch and podman with latest master gatted with tripleo
    • No failures caught till now
  • Do we want to gate Ansible and Friends? If yes
  • Do we want to go ahead with the same way as we had done for third party testing?
    • Build the rpm and then feed into the CI
  • What other jobs do we want to cover?
  • Do we want to keep a sync what is going to come in next release of RHEL-8.x with the testing?
  • Other questions?
  • You mean here we want the third party job should run on recent stable branch/master branch of ceph-ansible?

Initial Goal

  • Make sure ceph-ansible and ansible works together

Opinion from ceph-ansible team

  • Summarry:
    • try to bump up ansible on the existing tripleo jobs and see if we got a successful deployment

Ceph-ansible test matrix

  • check-rdo /check-github workflow
    ceph-ansible version <-> openstack-release <-> distro version
    master -> master -> centos-8
    stable-4.0 -> train -> centos-7

  • testing with ansible-2.9 for openstack-regular pipeline
    ceph-ansible version <-> openstack-release <-> distro version -> ansible-version
    master -> master -> centos-8 -> ansible-2.9
    stable-4.0 -> train -> centos-7 -> 2.9

Things to fix based on current matrix without ansible

  • tripleo-ceph-integration-master -> build rpm from master branch
    • currently running from stable-4.0 that needs to be fixed to master
    • Add sc1 and sc4 centos-8 based jobs which will be running from master branch
    • Make sure it gets triggered using check-rdo or check-github pr
    • Add these same jobs in regular pipeline
  • Define a new job named tripleo-ceph-integration-train -> which will build rpm from stable-4.0 branch
    • It should be based on centos-7
    • Add sc1 and sc4 centos-7 based jobs which will be running from stable/train branch
    • Make sure it gets triggered using check-rdo or check-github pr
    • Add these same jobs in regular pipeline

Things to fix based on ansible-2.9

  • add build rpm jobs
    • ceph-ansible master + ansible-2.9 -> centos-8
    • ceph-ansible stable-4.0 + ansible-2.9 -> centos-7
  • Add scenario 1 and 4 job
    • master
      • ceph-ansible master + ansible-2.9 -> centos-8
    • train
      • ceph-ansible stable-4.0 + ansible-2.9 -> centos-7

Add below jobs:

Based on the discussion on IRC with John and Giulio, Here is what we
need to cover:
Jobs running when 'check-rdo' or 'check-github' comment is added to
ceph-ansible PR on

  • ceph-ansible-4.0 branch
    • build rpm of ceph-ansible from stable-4.0 branch
      • for train
        • centos-7 rpm build job
        • rpm will get consumed in sc1 and sc4 on centos-7
  • ceph-ansible stable-3.2 branch
    • build rpm of ceph-ansible stable-3.2 branch on centos-7
      • rpm will be get consumed in sc 1 and sc 4 job on centos-7
    • ceph-ansible-4.0 branch with ansible-2.9
    • build rpm of ceph-ansible from stable-4.0 branch + ansible -2.9
      • for train
        • centos-7 rpm build job
          • rpm will get consumed in sc1 and sc4 on centos-7
  • ceph-ansible stable-3.2 branch + ansible-2.7
    • build rpm of ceph-ansible stable-3.2 branch on centos-7
      • rpm will be get consumed in sc 1 and sc 4 job on centos-7

Jobs running in regular or weekend pipeline

  • Add all the above jobs here
  • Add sc10 for master with ceph-ansible from stable-4.0 branch and ansible-2.9 on centos-8

Add jobs to test ceph-ansible and tripleo according to below test matrix

  • acronym:
    ver = version
    sc = scenario10

  • check-rdo /check-github workflow

    • Matrix-1:

      ceph-ansible ver <-> openstack-release <-> distro ver <-> ansible-ver <-> test
      stable-3.2 -> queens -> centos-7 -> -> sc001 and 004
      stable-3.2 -> queens -> centos-7 -> ansible-2.7 -> sc001 and 004

    • Matrix-2:

      ceph-ansible ver <-> openstack-release <-> distro ver <-> ansible-ver <-> test
      stable-4.0 -> train -> centos-7 -> -> sc001 and 004
      stable-4.0 -> train -> centos-7 -> ansible-2.9 -> sc001 and 004

    • Matrix-3:

      ceph-ansible ver <-> openstack-release <-> distro ver <-> ansible-ver <-> test
      stable-4.0-> master -> centos-8 -> -> sc001 and 004
      stable-4.0 -> master -> centos-8 -> ansible-2.9 -> sc001 and 004

    • Matrix-4:

      ceph-ansible ver <-> openstack-release <-> distro ver <-> ansible-ver <-> test
      stable-4.0-> master -> centos-8 -> ansible-2.9 -> sc10

  • testing with openstack-regular pipeline

    • Add all the above added jobs into the openstack-regular pipline
  • Note: Matrix-3 work is completed and Matrix 2 work is in progress.

Notes:

  • Gate podman https://github.com/containers/libpod/tree/v1.4.2-stable

    • Need to fix the branch
  • testing podman and ansible-podman-collection and ansible-podman-molecule driver jobs

    • change of podman should work with ansible-podman-collection
      • test the change with podman molecule driver

        • [sagi] can help on installing sf zuul ap on ansible-podman-collection
        • It is not used currently in tripleo deployment
      • Create userstory of podman , ansible-podman-collection and podman molecule driver.

  • testing with Ansible and ceph-ansible

    • Create a job which will test the ansible-(stable-2.9 branch, Install it from pip) with ceph-ansible
      • In tripleo once ceph-ansible is getting installed
      • first remove ansible rpm
        • tell dnf not remove ansible deps
        • Install Ansible from pip
          • Hack on undercloud / overcloud to install Ansible from pip
  • Need to find out escalation point of the failures from third party deps in future

    • need to find the ownership of failing jobs
      • Adding these jobs to grafana
      • Documenting Add job description if job fails, who owns the job and add the channel name to ping
Select a repo