From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BBB7364123 for ; Tue, 12 Dec 2023 20:34:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aaRLYVFy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 309F5C433C9; Tue, 12 Dec 2023 20:34:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1702413274; bh=QEbeA2HHCQOwgDxE+1j8uzRyeMmcN64pNBQP6jjcf8k=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=aaRLYVFyOmNwA0WmZU4U8AEdsaKK5+e77zc91URhf2oMZvfHTqfYapyFkul0ymQeF Z44gj76cXBgD1O6vff8CaJUM1M2H4SJ5+pLijgbVQaOHUozDjmcGEKOV2yr5wCty/9 gzyRngaTLkNE7KJ+s8UYNtDPjFSV0BXQJyJKMm+BKOeFYvK9DYPDe84FFlZvGQx79j fNLLvFQlyWnrcwSYqsfXZusjjgHVEv+a4jPga141ZpysYEbJ4958TWox3P5cqWbeKN E2F2mGBSK0xnKxQhIh2Ytto9XVhWVTtfkzZmuDLzRA8n3c3H0RNeX0noJ12YC1YLYb Afm5kZ1vWvC2w== Message-ID: Subject: Re: [PATCH RFC 1/5] Add playbook for the git regression workflow From: Jeff Layton To: Chuck Lever III Cc: Chuck Lever , "kdevops@lists.linux.dev" Date: Tue, 12 Dec 2023 15:34:32 -0500 In-Reply-To: <735D77A5-98AE-4146-93D3-BA10699B2844@oracle.com> References: <170239814820.465055.13743281413387457951.stgit@renoir.1015granger.net> <170239859866.465055.695373279749357532.stgit@renoir.1015granger.net> <46dd5e395eba02e71a2a321fdad33cc09fa436a7.camel@kernel.org> <735D77A5-98AE-4146-93D3-BA10699B2844@oracle.com> Autocrypt: addr=jlayton@kernel.org; prefer-encrypt=mutual; keydata=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 kZWuOsJdJQdmwlWC5L5ln9xgfr/4mOY38B0U= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.50.2 (3.50.2-1.fc39) Precedence: bulk X-Mailing-List: kdevops@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 On Tue, 2023-12-12 at 19:23 +0000, Chuck Lever III wrote: >=20 > > On Dec 12, 2023, at 12:52=E2=80=AFPM, Jeff Layton = wrote: > >=20 > > On Tue, 2023-12-12 at 11:29 -0500, Chuck Lever wrote: > > > From: Chuck Lever > > >=20 > > > This workflow builds the git tool and runs its built-in regression > > > suite on the target file system. The git regression suite acts as an > > > extensive file system behavior test. This workflow runs the suite in > > > multiple threads to add timing stress to the file system under test. > > >=20 > > > Signed-off-by: Chuck Lever > > > --- > > > playbooks/gitr.yml | 4 + > > > playbooks/roles/gitr/defaults/main.yml | 8 ++ > > > .../roles/gitr/tasks/install-deps/debian/main.yml | 28 ++++++ > > > playbooks/roles/gitr/tasks/install-deps/main.yml | 13 +++ > > > .../roles/gitr/tasks/install-deps/redhat/main.yml | 38 ++++++++ > > > .../roles/gitr/tasks/install-deps/suse/main.yml | 24 +++++ > > > playbooks/roles/gitr/tasks/main.yml | 97 +++++++++++= +++++++++ > > > 7 files changed, 212 insertions(+) > > > create mode 100644 playbooks/gitr.yml > > > create mode 100644 playbooks/roles/gitr/defaults/main.yml > > > create mode 100644 playbooks/roles/gitr/tasks/install-deps/debian/mai= n.yml > > > create mode 100644 playbooks/roles/gitr/tasks/install-deps/main.yml > > > create mode 100644 playbooks/roles/gitr/tasks/install-deps/redhat/mai= n.yml > > > create mode 100644 playbooks/roles/gitr/tasks/install-deps/suse/main.= yml > > > create mode 100644 playbooks/roles/gitr/tasks/main.yml > > >=20 > > > diff --git a/playbooks/gitr.yml b/playbooks/gitr.yml > > > new file mode 100644 > > > index 000000000000..4c3e3ba919d7 > > > --- /dev/null > > > +++ b/playbooks/gitr.yml > > > @@ -0,0 +1,4 @@ > > > +--- > > > +- hosts: all > > > + roles: > > > + - role: gitr > > > diff --git a/playbooks/roles/gitr/defaults/main.yml b/playbooks/roles= /gitr/defaults/main.yml > > > new file mode 100644 > > > index 000000000000..faddb5679bc9 > > > --- /dev/null > > > +++ b/playbooks/roles/gitr/defaults/main.yml > > > @@ -0,0 +1,8 @@ > > > +# SPDX-License-Identifier GPL-2.0+ > > > +--- > > > +# Our sensible defaults for the gitr role. > > > +# > > > +# We default to not run tests. > > > +kdevops_run_gitr: False > > > + > > > +gitr_data: "{{ data_path }}/gitr" > > > diff --git a/playbooks/roles/gitr/tasks/install-deps/debian/main.yml = b/playbooks/roles/gitr/tasks/install-deps/debian/main.yml > > > new file mode 100644 > > > index 000000000000..50d4ba1037f3 > > > --- /dev/null > > > +++ b/playbooks/roles/gitr/tasks/install-deps/debian/main.yml > > > @@ -0,0 +1,28 @@ > > > +--- > > > +- name: Install build dependencies for git > > > + become: yes > > > + become_method: sudo > > > + apt: > > > + name: > > > + - gcc > > > + - git-core > > > + - gettext > > > + - libcurl4-openssl-dev > > > + - libexpat1-dev > > > + - libssl-dev > > > + - libz-dev > > > + state: present > > > + update_cache: yes > > > + tags: [ 'gitr', 'deps' ] > > > + > > > +- name: Install run-time dependencies for git regression tests > > > + become: yes > > > + become_method: sudo > > > + apt: > > > + name: > > > + - cvs > > > + - cvsps > > > + - sqlite3 > > > + state: present > > > + update_cache: yes > > > + tags: [ 'gitr', 'deps' ] > > > diff --git a/playbooks/roles/gitr/tasks/install-deps/main.yml b/playb= ooks/roles/gitr/tasks/install-deps/main.yml > > > new file mode 100644 > > > index 000000000000..005bb32650bf > > > --- /dev/null > > > +++ b/playbooks/roles/gitr/tasks/install-deps/main.yml > > > @@ -0,0 +1,13 @@ > > > +--- > > > +# tasks to install dependencies for gitr > > > +- name: Debian-specific setup > > > + ansible.builtin.include_tasks: roles/gitr/tasks/install-deps/debia= n/main.yml > > > + when: ansible_os_family =3D=3D 'Debian' > > > + > > > +- name: SuSE-specific setup > > > + ansible.builtin.include_tasks: roles/gitr/tasks/install-deps/suse/= main.yml > > > + when: ansible_os_family =3D=3D 'Suse' > > > + > > > +- name: Red Hat-specific setup > > > + ansible.builtin.include_tasks: roles/gitr/tasks/install-deps/redha= t/main.yml > > > + when: ansible_os_family =3D=3D 'RedHat' > > > diff --git a/playbooks/roles/gitr/tasks/install-deps/redhat/main.yml = b/playbooks/roles/gitr/tasks/install-deps/redhat/main.yml > > > new file mode 100644 > > > index 000000000000..30fb0f9b16d5 > > > --- /dev/null > > > +++ b/playbooks/roles/gitr/tasks/install-deps/redhat/main.yml > > > @@ -0,0 +1,38 @@ > > > +--- > > > +- name: Install build dependencies for git > > > + become: yes > > > + become_method: sudo > > > + yum: > > > + update_cache: yes > > > + name: "{{ packages }}" > > > + retries: 3 > > > + delay: 5 > > > + register: result > > > + until: result.rc =3D=3D 0 > > > + vars: > > > + packages: > > > + - expat-devel > > > + - gcc > > > + - gettext > > > + - git-core > > > + - libcurl-devel > > > + - openssl-devel > > > + - zlib-devel > > > + > > > +- name: Install run-time dependencies for git regression tests > > > + become: yes > > > + become_method: sudo > > > + yum: > > > + update_cache: yes > > > + name: "{{ packages }}" > > > + retries: 3 > > > + delay: 5 > > > + register: result > > > + until: result.rc =3D=3D 0 > > > + vars: > > > + packages: > > > + - cvs > > > + - cvsps > > > + - git-email > > > + - subversion > > > +# - subversion-perl > > > diff --git a/playbooks/roles/gitr/tasks/install-deps/suse/main.yml b/= playbooks/roles/gitr/tasks/install-deps/suse/main.yml > > > new file mode 100644 > > > index 000000000000..0db06c5b66d0 > > > --- /dev/null > > > +++ b/playbooks/roles/gitr/tasks/install-deps/suse/main.yml > > > @@ -0,0 +1,24 @@ > > > +--- > > > +- name: Install build dependencies for git > > > + become: yes > > > + become_method: sudo > > > + zypper: > > > + name: > > > + - gcc > > > + - gettext > > > + - git-core > > > + - libcurl-devel > > > + - libexpat-devel > > > + - libopenssl-1_1-devel > > > + state: present > > > + > > > +- name: Install run-time dependencies for git regression tests > > > + become: yes > > > + become_method: sudo > > > + zypper: > > > + name: > > > + - cvs > > > + - cvsps > > > + - subversion > > > + - subversion-perl > > > + state: present > > > diff --git a/playbooks/roles/gitr/tasks/main.yml b/playbooks/roles/gi= tr/tasks/main.yml > > > new file mode 100644 > > > index 000000000000..199b3aa7f432 > > > --- /dev/null > > > +++ b/playbooks/roles/gitr/tasks/main.yml > > > @@ -0,0 +1,97 @@ > > > +--- > > > +- name: Import optional extra_args file > > > + include_vars: "{{ item }}" > > > + ignore_errors: yes > > > + with_first_found: > > > + - files: > > > + - "../extra_vars.yml" > > > + - "../extra_vars.yaml" > > > + - "../extra_vars.json" > > > + skip: true > > > + tags: vars > > > + > > > +- name: Set the path where we collect gitr test results > > > + set_fact: > > > + gitr_workflow_dir: "../workflows/gitr" > > > + tags: [ 'vars' ] > > > + > > > +- name: Clean up localhost results directory and files > > > + local_action: file path=3D"{{ gitr_workflow_dir }}/results/" state= =3Dabsent > > > + run_once: true > > > + tags: [ 'clean_local_results' ] > > > + > > > +- name: Create the results directory > > > + local_action: file path=3D"{{ gitr_workflow_dir }}/results/" state= =3Ddirectory > > > + run_once: true > > > + tags: [ 'first_run' ] > > > + > > > +- include_role: > > > + name: create_data_partition > > > + tags: [ 'data_partition' ] > > > + > >=20 > > The above role will create /data on the host, of course, but that's > > probably not where you want to run the tests since it's not very > > flexible. >=20 > After "make gitr" I logged into the guests and found /data > mounted there, and it was the same fstype as was selected in > the "Shared workflow data partition". And the cloned git > repo was there in /data on the guest. >=20 >=20 > > > With NFS, you'll want to create an export and mount that (like I noted > > in the other email). >=20 > It seems like the selection mechanism for the fstype to test > on the guests (kdevops) ought to be a separate choice than it > is on the NFS server (kdevops-nfsd). > > Say: I want nfs (with certain mount options) on kdevops and > I want nfs or btrfs or xfs or tmpfs on kdevops-nfsd. >=20 > But right now I'm focused on running on local file systems > just to keep the learning curve down to a dull roar. >=20 >=20 Yes. This is something that could use some work in kdevops in general. In principle, the test that is requesting a new export could request the underlying fstype too. > > It would probably be nice to allow it to run this > > test in parallel on multiple hosts using different mount options (like > > we can with fstests). >=20 > Yes, I was thinking of doing that, but down the road. >=20 > > On local machines you probably want to run this test on dedicated > > devices (i.e. not in /data). When testing fstests with a local fs, the > > clients mount up one of their 100g block devices to a different > > directory, and then create sparse files in there that are loop mounted > > to create a bunch of block devices for testing different filesystem > > options. It might be nice to abstract that out or copy it here. >=20 > OK, that's kind of what I was asking: is using /data as the > target to test what I should be doing? Or should gitr target > something else? >=20 > If it's not /data, then I can rework that part of "make gitr" -- > strip out the create_partition play and set up one of the > block devices on the guest (or set up nfs or tmpfs) by hand. >=20 The workflow more or less decides how it's going to use the storage it has. With a locally virtualized setup, there are 4 drives total. /data is usually "disk0". In general /data is the place where stuff like the testcases themselves go, in the case of fstests or pynfs and sometimes other data. The git cloned trees go into there and then we either make install out of that directory (fstests) or just run out it directly (pynfs). pynfs runs locally on nfsd host (which requires /data). That means we can't use disk0 there. There we use disk2 and disk3 as LVM PVs (and I was thinking about scarfing up disk1 too). I think that's simpler and more efficient than messing around with loop devices. In the future we could probably experiment with lvmthin too. >=20 > > I wonder if there is a way to make the fstests filesystem option > > selection more generic, so you could reuse all of that work here? Then > > you could run the gitr suite on all of the different xfs or btrfs > > variants that we already have defined for fstests (for instance). >=20 > I considered it, and even started doing that, but didn't feel > I had the expertise quite yet to tackle that. >=20 >=20 Understood. Baby steps are fine here, IMO. > > > +- include: tasks/install-deps/main.yml > > > + > > > +- name: Remove old git dir > > > + tags: [ 'git', 'gitr' ] > > > + become: yes > > > + become_flags: 'su - -c' > > > + become_method: sudo > > > + file: > > > + path: "{{ gitr_data }}" > > > + state: absent > > > + > > > +- name: git clone git > > > + tags: [ 'git', 'gitr' ] > > > + git: > > > + repo: "{{ gitr_git }}" > > > + dest: "{{ gitr_data }}" > > > + update: yes > > > + version: "{{ gitr_git_tag }}" > > > + retries: 3 > > > + delay: 5 > > > + register: result > > > + until: not result.failed > > > + > > > +- name: Get nproc > > > + tags: [ 'oscheck', 'gitr', 'build', 'vars' ] > > > + command: "{{ num_jobs }}" > > > + register: nproc > > > + > > > +- name: Build git > > > + tags: [ 'oscheck', 'gitr', 'build' ] > > > + community.general.make: > > > + chdir: "{{ gitr_data }}" > > > + jobs: "{{ nproc.stdout }}" > > > + > > > +- name: Run the git regression suite > > > + tags: [ 'run_tests' ] > > > + community.general.make: > > > + chdir: "{{ gitr_data }}" > > > + target: "test" > > > + jobs: "{{ nproc.stdout }}" > > > + register: gitr_out > > > + ignore_errors: true > > > + > > > +- name: Save git regression test output > > > + tags: [ 'copy_results' ] > > > + copy: > > > + content: "{{ gitr_out.stdout_lines|join('\n') }}" > > > + dest: "{{ gitr_data }}/gitr.log" > > > + > > > +- name: Get used target kernel version > > > + tags: [ 'copy_results' ] > > > + command: "uname -r" > > > + register: uname_cmd > > > + > > > +- name: Store kernel_rev variable > > > + tags: [ 'copy_results' ] > > > + set_fact: > > > + kernel_rev: "{{ uname_cmd.stdout_lines | regex_replace('\\]') | = regex_replace('\\[') | replace(\"'\",'') }}" > > > + run_once: true > > > + > > > +- name: Copy test results over > > > + tags: [ 'copy_results' ] > > > + fetch: > > > + src: "{{ gitr_data }}/gitr.log" > > > + dest: "{{ gitr_workflow_dir }}/results/{{ kernel_rev }}.txt" > > > + flat: yes > > >=20 > > >=20 > > >=20 > >=20 > > --=20 > > Jeff Layton >=20 >=20 > -- > Chuck Lever >=20 >=20 --=20 Jeff Layton