Rename Airship folder and all other mentions of it to Metal3 and bml prefix to capm3

Change-Id: Iec3093938b305d008c7f302de3d8e5d26ac6f6c2
diff --git a/jjb/metal3/defaults.yml b/jjb/metal3/defaults.yml
new file mode 100644
index 0000000..884d641
--- /dev/null
+++ b/jjb/metal3/defaults.yml
@@ -0,0 +1,37 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+
+# Description:
+# ============
+# This file contains global default values for metal3 projects
+
+# Project Defaults
+- defaults:
+    name: global
+    job_prefix: 'metal3'
+    ci_github_admin_user: 'nordixinfra'
+    ci_github_whitelist_org:
+    - metal3-io
+    - nordix-metal3
+    ci_github_repo: 'https://github.com/metal3-io/project-infra.git'
+    ci_github_pipeline: 'jenkins/jobs/integration_tests.pipeline'
+    ci_github_jenkins_credentials_id: 'metal3-jenkins-github-username-token'
+    ci_ghprb_auth_id: '66556785-bf9b-42a0-812f-ccfd3c59f85c'
diff --git a/jjb/metal3/job_artifactory_cleanup.yml b/jjb/metal3/job_artifactory_cleanup.yml
new file mode 100644
index 0000000..deff01d
--- /dev/null
+++ b/jjb/metal3/job_artifactory_cleanup.yml
@@ -0,0 +1,59 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for nordix Artifacotry cleanup.
+# This job can be triggered manually. It creates a pipeline job.
+# The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: artifactory_cleanup
+    name: '{job_prefix}_artifactory_cleanup'
+    description: "Artifactory cleanup"
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: False
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "0 */48 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - 'master'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'ci/jobs/{id}.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_bml_integration_tests_centos.yml b/jjb/metal3/job_bml_integration_tests_centos.yml
new file mode 100644
index 0000000..252ea72
--- /dev/null
+++ b/jjb/metal3/job_bml_integration_tests_centos.yml
@@ -0,0 +1,122 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) BML
+# integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: bml_integration_tests_centos
+    name: '{job_prefix}_{name}_bml_integration_tests_centos'
+    description: "CAPM3 v1beta1 integration tests for {repo[org]}/{repo[name]} on CentOS in Bare Metal Lab."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-integration-bml-centos(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+        status-context: "test-integration-bml-centos"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'jenkins/jobs/bml_integration_tests.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_bml_master_integration_tests_centos.yml b/jjb/metal3/job_bml_master_integration_tests_centos.yml
new file mode 100644
index 0000000..0d713e5
--- /dev/null
+++ b/jjb/metal3/job_bml_master_integration_tests_centos.yml
@@ -0,0 +1,101 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) BML
+# integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: bml_master_integration_tests_centos
+    name: '{job_prefix}_master_bml_integration_tests_centos'
+    description: "CAPM3 v1beta1 integration tests for {repo[org]}/{repo[name]} on CentOS in Bare Metal Lab."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+    - timed: "H 2 * * *"
+    
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'jenkins/jobs/bml_integration_tests.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a4_integration_tests_centos.yml b/jjb/metal3/job_capm3_v1a4_integration_tests_centos.yml
new file mode 100644
index 0000000..3482394
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a4_integration_tests_centos.yml
@@ -0,0 +1,123 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a4_integration_tests_centos
+    name: '{job_prefix}_{name}_v1a4_integration_test_centos'
+    description: "CAPM3 v1alpha4 integration tests for {repo[org]}/{repo[name]} on CentOS."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha3'
+        description: 'Cluster API version. Can be v1alpha3.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API provider Metal3 version. Can be v1alpha4 or v1alpha5.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+        
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1a4-centos-integration(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.4'
+          - 'release-0.0'
+        status-context: "test-v1a4-centos-integration"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a4_integration_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1a4_integration_tests_ubuntu.yml
new file mode 100644
index 0000000..50f291a
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a4_integration_tests_ubuntu.yml
@@ -0,0 +1,123 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a4_integration_tests_ubuntu
+    name: '{job_prefix}_{name}_v1a4_integration_test_ubuntu'
+    description: "CAPM3 v1alpha4 integration tests for {repo[org]}/{repo[name]} on Ubuntu."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha3'
+        description: 'Cluster API version. Can be v1alpha3.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API provider Metal3 version. Can be v1alpha4 or v1alpha5.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+        
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1a4-integration(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.4'
+          - 'release-0.0'
+        status-context: "test-v1a4-integration"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a4_master_integration_tests_centos.yml b/jjb/metal3/job_capm3_v1a4_master_integration_tests_centos.yml
new file mode 100644
index 0000000..99713ad
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a4_master_integration_tests_centos.yml
@@ -0,0 +1,100 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a4_master_integration_tests_centos
+    name: '{job_prefix}_master_v1a4_integration_test_centos'
+    description: "CAPM3 v1alpha4 integration tests for {repo[org]}/{repo[name]} on CentOS. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha3'
+        description: 'Cluster API version. Can be v1alpha3.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API provider Metal3 version. Can be v1alpha4 or v1alpha5.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+        
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "0 4 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a4_master_integration_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1a4_master_integration_tests_ubuntu.yml
new file mode 100644
index 0000000..8478709
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a4_master_integration_tests_ubuntu.yml
@@ -0,0 +1,100 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a4_master_integration_tests_ubuntu
+    name: '{job_prefix}_master_v1a4_integration_test_ubuntu'
+    description: "CAPM3 v1alpha4 integration tests for {repo[org]}/{repo[name]} on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha3'
+        description: 'Cluster API version. Can be v1alpha3.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API provider Metal3 version. Can be v1alpha4 or v1alpha5.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+        
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "15 4 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a5_e2e_tests_centos.yml b/jjb/metal3/job_capm3_v1a5_e2e_tests_centos.yml
new file mode 100644
index 0000000..1e22392
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a5_e2e_tests_centos.yml
@@ -0,0 +1,126 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) e2e tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a5_e2e_tests_centos
+    name: '{job_prefix}_{name}_v1a5_e2e_test_centos'
+    description: "CAPM3 v1alpha5 e2e tests for {repo[org]}/{repo[name]} on CentOS. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version. Can be v1alpha4.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version. Can be v1alpha5 or v1alpha4.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: TESTS_FOR
+        default: "e2e_tests"
+        description: 'Tests using the e2e framework.'
+        
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1a5-centos-e2e(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.5'
+        status-context: "test-v1a5-centos-e2e"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a5_e2e_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1a5_e2e_tests_ubuntu.yml
new file mode 100644
index 0000000..5330d9a
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a5_e2e_tests_ubuntu.yml
@@ -0,0 +1,126 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) e2e tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a5_e2e_tests_ubuntu
+    name: '{job_prefix}_{name}_v1a5_e2e_test_ubuntu'
+    description: "CAPM3 v1alpha5 e2e tests for {repo[org]}/{repo[name]} on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version. Can be v1alpha4.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version. Can be v1alpha5 or v1alpha4.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: TESTS_FOR
+        default: "e2e_tests"
+        description: 'Tests using the e2e framework.'
+        
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1a5-e2e(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.5'
+        status-context: "test-v1a5-e2e"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a5_integration_tests_centos.yml b/jjb/metal3/job_capm3_v1a5_integration_tests_centos.yml
new file mode 100644
index 0000000..600154b
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a5_integration_tests_centos.yml
@@ -0,0 +1,123 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a5_integration_tests_centos
+    name: '{job_prefix}_{name}_v1a5_integration_test_centos'
+    description: "CAPM3 v1alpha5 integration tests for {repo[org]}/{repo[name]} on CentOS. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1a5-centos-integration(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.5'
+          - 'release-0.1'
+        status-context: "test-v1a5-centos-integration"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a5_integration_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1a5_integration_tests_ubuntu.yml
new file mode 100644
index 0000000..96ef243
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a5_integration_tests_ubuntu.yml
@@ -0,0 +1,123 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a5_integration_tests_ubuntu
+    name: '{job_prefix}_{name}_v1a5_integration_test_ubuntu'
+    description: "CAPM3 v1alpha5 integration tests for {repo[org]}/{repo[name]} on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1a5-integration(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.5'
+          - 'release-0.1'
+        status-context: "test-v1a5-integration"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a5_master_e2e_tests_centos.yml b/jjb/metal3/job_capm3_v1a5_master_e2e_tests_centos.yml
new file mode 100644
index 0000000..605079a
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a5_master_e2e_tests_centos.yml
@@ -0,0 +1,108 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) e2e tests.
+# This job can be triggered manually or periodically by the CI system. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a5_master_e2e_tests_centos
+    name: '{job_prefix}_master_v1a5_e2e_test_centos'
+    description: "CAPM3 v1alpha5 e2e tests for {repo[org]}/{repo[name]} on CentOS."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'release-0.5'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'release-0.5'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: NUM_NODES
+        default: 4
+        description: 'Number of libvirt VMs.'
+    - string:
+        name: TESTS_FOR
+        default: "e2e_tests"
+        description: 'Tests using the e2e framework.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "H 20 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a5_master_e2e_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1a5_master_e2e_tests_ubuntu.yml
new file mode 100644
index 0000000..2f6c2bb
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a5_master_e2e_tests_ubuntu.yml
@@ -0,0 +1,108 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) e2e tests.
+# This job can be triggered manually or periodically by the CI system. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a5_master_e2e_tests_ubuntu
+    name: '{job_prefix}_master_v1a5_e2e_test_ubuntu'
+    description: "CAPM3 v1alpha5 e2e tests for {repo[org]}/{repo[name]} on Ubuntu."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'release-0.5'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'release-0.5'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: NUM_NODES
+        default: 4
+        description: 'Number of libvirt VMs.'
+    - string:
+        name: TESTS_FOR
+        default: "e2e_tests"
+        description: 'Tests using the e2e framework.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "H 20 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a5_master_integration_tests_centos.yml b/jjb/metal3/job_capm3_v1a5_master_integration_tests_centos.yml
new file mode 100644
index 0000000..b7fac18
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a5_master_integration_tests_centos.yml
@@ -0,0 +1,100 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a5_master_integration_tests_centos
+    name: '{job_prefix}_master_v1a5_integration_test_centos'
+    description: "CAPM3 v1alpha5 integration tests for {repo[org]}/{repo[name]} on CentOS. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "30 4 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1a5_master_integration_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1a5_master_integration_tests_ubuntu.yml
new file mode 100644
index 0000000..2f910cc
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1a5_master_integration_tests_ubuntu.yml
@@ -0,0 +1,100 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1a5_master_integration_tests_ubuntu
+    name: '{job_prefix}_master_v1a5_integration_test_ubuntu'
+    description: "CAPM3 v1alpha5 integration tests for {repo[org]}/{repo[name]} on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "45 4 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1b1_e2e_tests_centos.yml b/jjb/metal3/job_capm3_v1b1_e2e_tests_centos.yml
new file mode 100644
index 0000000..603813f
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1b1_e2e_tests_centos.yml
@@ -0,0 +1,125 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) e2e tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1b1_e2e_tests_centos
+    name: '{job_prefix}_{name}_v1b1_e2e_test_centos'
+    description: "CAPM3 v1beta1 e2e tests for {repo[org]}/{repo[name]} on CentOS. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version. Can be v1beta1.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version. Can be v1beta1.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: TESTS_FOR
+        default: "e2e_tests"
+        description: 'Tests using the e2e framework.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1b1-centos-e2e(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+        status-context: "test-v1b1-centos-e2e"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1b1_e2e_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1b1_e2e_tests_ubuntu.yml
new file mode 100644
index 0000000..364d0da
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1b1_e2e_tests_ubuntu.yml
@@ -0,0 +1,125 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) e2e tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1b1_e2e_tests_ubuntu
+    name: '{job_prefix}_{name}_v1b1_e2e_test_ubuntu'
+    description: "CAPM3 v1beta1 e2e tests for {repo[org]}/{repo[name]} on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version. Can be v1beta1.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version. Can be v1beta1.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: TESTS_FOR
+        default: "e2e_tests"
+        description: 'Tests using the e2e framework.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1b1-e2e(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+        status-context: "test-v1b1-e2e"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1b1_e2e_upgrade_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1b1_e2e_upgrade_tests_ubuntu.yml
new file mode 100644
index 0000000..f124d51
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1b1_e2e_upgrade_tests_ubuntu.yml
@@ -0,0 +1,129 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) e2e tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1b1_e2e_upgrade_tests_ubuntu
+    name: '{job_prefix}_{name}_v1b1_e2e_upgrade_test_ubuntu'
+    description: "CAPM3 v1beta1 e2e upgrade tests for {repo[org]}/{repo[name]} on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version. Can be v1beta1.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version. Can be v1beta1.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: TESTS_FOR
+        default: "e2e_tests"
+        description: 'Tests using the e2e framework.'
+    - bool:
+        name: UPGRADE_TEST
+        default: True
+        description: 'Select the e2e upgrade test'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1b1-upgrade-e2e(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+        status-context: "test-v1b1-upgrade-e2e"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1b1_integration_tests_centos.yml b/jjb/metal3/job_capm3_v1b1_integration_tests_centos.yml
new file mode 100644
index 0000000..76b672c
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1b1_integration_tests_centos.yml
@@ -0,0 +1,121 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) v1beta1 integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1b1_integration_tests_centos
+    name: '{job_prefix}_{name}_v1b1_integration_test_centos'
+    description: "CAPM3 v1beta1 integration tests for {repo[org]}/{repo[name]} on CentOS."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'main'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'main'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1b1-centos-integration(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+        status-context: "test-v1b1-centos-integration"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
\ No newline at end of file
diff --git a/jjb/metal3/job_capm3_v1b1_integration_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1b1_integration_tests_ubuntu.yml
new file mode 100644
index 0000000..296ed89
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1b1_integration_tests_ubuntu.yml
@@ -0,0 +1,121 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) v1beta1 integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1b1_integration_tests_ubuntu
+    name: '{job_prefix}_{name}_v1b1_integration_test_ubuntu'
+    description: "CAPM3 v1beta1 integration tests for {repo[org]}/{repo[name]} on Ubuntu."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'main'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'main'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-v1b1-integration(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+        status-context: "test-v1b1-integration"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
\ No newline at end of file
diff --git a/jjb/metal3/job_capm3_v1b1_master_e2e_tests_centos.yml b/jjb/metal3/job_capm3_v1b1_master_e2e_tests_centos.yml
new file mode 100644
index 0000000..7591c02
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1b1_master_e2e_tests_centos.yml
@@ -0,0 +1,108 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) e2e tests.
+# This job can be triggered manually or periodically by the CI system. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1b1_master_e2e_tests_centos
+    name: '{job_prefix}_master_v1b1_e2e_test_centos'
+    description: "CAPM3 v1beta1 e2e tests for {repo[org]}/{repo[name]} on CentOS."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'main'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'main'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: NUM_NODES
+        default: 4
+        description: 'Number of libvirt VMs.'
+    - string:
+        name: TESTS_FOR
+        default: "e2e_tests"
+        description: 'Tests using the e2e framework.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "H 20 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1b1_master_e2e_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1b1_master_e2e_tests_ubuntu.yml
new file mode 100644
index 0000000..ea3b93b
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1b1_master_e2e_tests_ubuntu.yml
@@ -0,0 +1,108 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) e2e tests.
+# This job can be triggered manually or periodically by the CI system. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1b1_master_e2e_tests_ubuntu
+    name: '{job_prefix}_master_e2e_v1b1_test_ubuntu'
+    description: "CAPM3 v1beta1 e2e tests for {repo[org]}/{repo[name]} on Ubuntu."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'main'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'main'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: NUM_NODES
+        default: 4
+        description: 'Number of libvirt VMs.'
+    - string:
+        name: TESTS_FOR
+        default: "e2e_tests"
+        description: 'Tests using the e2e framework.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "H 20 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1b1_master_integration_tests_centos.yml b/jjb/metal3/job_capm3_v1b1_master_integration_tests_centos.yml
new file mode 100644
index 0000000..d3c0864
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1b1_master_integration_tests_centos.yml
@@ -0,0 +1,100 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) v1beta1 master integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1b1_master_integration_tests_centos
+    name: '{job_prefix}_master_v1b1_integration_test_centos'
+    description: "CAPM3 v1beta1 integration tests for {repo[org]}/{repo[name]} on CentOS."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "H 4 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_capm3_v1b1_master_integration_tests_ubuntu.yml b/jjb/metal3/job_capm3_v1b1_master_integration_tests_ubuntu.yml
new file mode 100644
index 0000000..7b8c2f7
--- /dev/null
+++ b/jjb/metal3/job_capm3_v1b1_master_integration_tests_ubuntu.yml
@@ -0,0 +1,100 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) v1beta1 master integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: capm3_v1b1_master_integration_tests_ubuntu
+    name: '{job_prefix}_master_v1b1_integration_test_ubuntu'
+    description: "CAPM3 v1beta1 integration tests for {repo[org]}/{repo[name]} on Ubuntu."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "H 4 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_docker_image_building.yml b/jjb/metal3/job_docker_image_building.yml
new file mode 100644
index 0000000..12f85e6
--- /dev/null
+++ b/jjb/metal3/job_docker_image_building.yml
@@ -0,0 +1,64 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Docker image building.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: docker_image_building
+    name: '{job_prefix}_docker_image_building'
+    description: "Docker image builder job. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+    - timed: "@midnight"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|master}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'ci/jobs/{id}.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_feature_tests_centos.yml b/jjb/metal3/job_feature_tests_centos.yml
new file mode 100644
index 0000000..f18616a
--- /dev/null
+++ b/jjb/metal3/job_feature_tests_centos.yml
@@ -0,0 +1,131 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for K8s CAPI Baremetal feature tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: feature_tests_centos
+    name: '{job_prefix}_{name}_feature_tests_centos'
+    description: "Pivoting and Remediation tests on Centos. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: NUM_NODES
+        default: 4
+        description: 'Number of libvirt VMs.'
+    - string:
+        name: TESTS_FOR
+        default: "feature_tests_centos"
+        description: 'Tests for pivoting and remediation.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-features-centos(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.5'
+          - 'release-0.1'
+        status-context: "test-features-centos"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_feature_tests_ubuntu.yml b/jjb/metal3/job_feature_tests_ubuntu.yml
new file mode 100644
index 0000000..13dd599
--- /dev/null
+++ b/jjb/metal3/job_feature_tests_ubuntu.yml
@@ -0,0 +1,131 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) feature tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: feature_tests_ubuntu
+    name: '{job_prefix}_{name}_feature_tests_ubuntu'
+    description: "Pivoting and Remediation tests on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: NUM_NODES
+        default: 4
+        description: 'Number of libvirt VMs.'
+    - string:
+        name: TESTS_FOR
+        default: "feature_tests"
+        description: 'Tests for pivoting and remediation.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-features(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.5'
+          - 'release-0.1'
+        status-context: "test-features"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_feature_tests_upgrade_ubuntu.yml b/jjb/metal3/job_feature_tests_upgrade_ubuntu.yml
new file mode 100644
index 0000000..79f01a3
--- /dev/null
+++ b/jjb/metal3/job_feature_tests_upgrade_ubuntu.yml
@@ -0,0 +1,138 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3) feature
+# upgrade tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: feature_tests_upgrade_ubuntu
+    name: '{job_prefix}_{name}_feature_tests_upgrade_ubuntu'
+    description: "Upgrade tests on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPIRELEASE
+        description: 'Cluster API release tag to upgrade from, e.g. v1.0.0'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: CAPM3RELEASE
+        description: 'CAPM3 release tag to upgrade from, e.g. v1.0.0'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: NUM_NODES
+        default: 4
+        description: 'Number of libvirt VMs.'
+    - string:
+        name: TESTS_FOR
+        default: "feature_tests_upgrade"
+        description: 'Tests for upgrade.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-upgrade-features(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.5'
+          - 'release-0.1'
+        status-context: "test-upgrade-features"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_ipa_image_building.yml b/jjb/metal3/job_ipa_image_building.yml
new file mode 100644
index 0000000..808227f
--- /dev/null
+++ b/jjb/metal3/job_ipa_image_building.yml
@@ -0,0 +1,115 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for nordix IPA image building.
+# This job can be triggered manually. It creates a pipeline job.
+# The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: openstack_ipa_and_ironic_image_building
+    name: '{job_prefix}_master_openstack_ipa_and_ironic_image_building'
+    description: "IPA and Ironic image building"
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: IRONIC_REFSPEC
+        default: ''
+        description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22'
+    - string:
+        name: IRONIC_IMAGE_REPO_COMMIT
+        default: 'HEAD'
+        description: 'Ironic Image repository commit hash to build'
+    - string:
+        name: IRONIC_IMAGE_BRANCH
+        default: 'main'
+        description: 'Ironic image repository branch to build'
+    - string:
+        name: IRONIC_INSPECTOR_REFSPEC
+        default: ''
+        description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22'
+    - string:
+        name: IPA_COMMIT
+        default: 'HEAD'
+        description: 'Ironic Python Agent repository commit hash to build'
+    - string:
+        name: IPA_BRANCH
+        default: 'master'
+        description: 'Ironic Python Agent repository branch to build'
+    - string:
+        name: BMO_COMMIT
+        default: 'HEAD'
+        description: 'Bare Metal Operator repository commit hash to build'
+    - string:
+        name: BMO_BRANCH
+        default: 'main'
+        description: 'Bare Metal Operator repository branch to build'
+    - string:
+        name: IPA_BUILDER_BRANCH
+        default: 'master'
+        description: 'Ironic Python Agent builder repository tool branch'
+    - string:
+        name: IPA_BUILDER_COMMIT
+        default: 'HEAD'
+        description: 'Ironic Python Agent builder repository tool commit'
+    - string:
+        name: METAL3_DEV_ENV_BRANCH
+        default: 'master'
+        description: 'Metal3 dev env repository branch'
+    - string:
+        name: METAL3_DEV_ENV_COMMIT
+        default: 'HEAD'
+        description: 'Metal3 dev env repository commit'
+    - string:
+        name: STAGING
+        default: 'true'
+        description: 'Configures IPA builder upload mode (staging/review)'
+
+    properties:
+    - github:
+        url: https://github.com/Nordix/ironic-python-agent.git
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "0 4  * * 1,3,5,7"
+      - github
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - 'master'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'ci/jobs/{id}.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_ipa_image_building_test.yml b/jjb/metal3/job_ipa_image_building_test.yml
new file mode 100644
index 0000000..cf22253
--- /dev/null
+++ b/jjb/metal3/job_ipa_image_building_test.yml
@@ -0,0 +1,153 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for for nordix IPA image building test.
+# This job can be triggered on PRs manually. It creates a pipeline job.
+# The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: metal3_ipa_and_ironic_image_building_test
+    name: '{job_prefix}_openstack_ipa_and_ironic_image_building'
+    description: "IPA and Ironic image building test."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: IRONIC_REFSPEC
+        default: ''
+        description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22'
+    - string:
+        name: IRONIC_IMAGE_REPO_COMMIT
+        default: 'HEAD'
+        description: 'Ironic Image repository commit hash to build'
+    - string:
+        name: IRONIC_IMAGE_BRANCH
+        default: 'main'
+        description: 'Ironic image repository branch to build'
+    - string:
+        name: IRONIC_INSPECTOR_REFSPEC
+        default: ''
+        description: 'Gerrit refspec of the patch we want to test. Example: refs/changes/84/800084/22'
+    - string:
+        name: IPA_COMMIT
+        default: 'HEAD'
+        description: 'Ironic Python Agent repository commit hash to build'
+    - string:
+        name: IPA_BRANCH
+        default: 'master'
+        description: 'Ironic Python Agent repository branch to build'
+    - string:
+        name: BMO_COMMIT
+        default: 'HEAD'
+        description: 'Bare Metal Operator repository commit hash to build'
+    - string:
+        name: BMO_BRANCH
+        default: 'main'
+        description: 'Bare Metal Operator repository branch to build'
+    - string:
+        name: IPA_BUILDER_BRANCH
+        default: 'master'
+        description: 'Ironic Python Agent builder repository tool branch'
+    - string:
+        name: IPA_BUILDER_COMMIT
+        default: 'HEAD'
+        description: 'Ironic Python Agent builder repository tool commit'
+    - string:
+        name: METAL3_DEV_ENV_BRANCH
+        default: 'master'
+        description: 'Metal3 dev env repository branch'
+    - string:
+        name: METAL3_DEV_ENV_COMMIT
+        default: 'HEAD'
+        description: 'Metal3 dev env repository commit'
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: STAGING
+        default: 'false'
+        description: 'Configures IPA builder upload mode (staging/review)'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-ipa(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+        status-context: "test-ipa"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|master}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "ci/jobs/openstack_ipa_and_ironic_image_building.pipeline"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_keep_integration_vm_v1a5_centos.yml b/jjb/metal3/job_keep_integration_vm_v1a5_centos.yml
new file mode 100644
index 0000000..8e48a45
--- /dev/null
+++ b/jjb/metal3/job_keep_integration_vm_v1a5_centos.yml
@@ -0,0 +1,128 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3)
+# keeping integration test vm.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: keep_v1a5_test_centos_alive
+    name: '{job_prefix}_{name}_keep_v1a5_test_centos_alive'
+    description: "CAPM3 v1alpha5 integration tests for keeping the vm for {repo[org]}/{repo[name]} on CentOS. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: SKIP_DELETION
+        default: 'true'
+        description: 'Whether tester VM should be deleted or not by the end of the test'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/keep-test-v1a5-centos-integration(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.5'
+          - 'release-0.1'
+        status-context: "keep-test-v1a5-centos-integration"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_keep_integration_vm_v1a5_ubuntu.yml b/jjb/metal3/job_keep_integration_vm_v1a5_ubuntu.yml
new file mode 100644
index 0000000..fa02bd3
--- /dev/null
+++ b/jjb/metal3/job_keep_integration_vm_v1a5_ubuntu.yml
@@ -0,0 +1,128 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3)
+# keeping integration test vm.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: keep_v1a5_test_ubuntu_alive
+    name: '{job_prefix}_{name}_keep_v1a5_test_ubuntu_alive'
+    description: "CAPM3 v1alpha5 integration tests for keeping the vm for {repo[org]}/{repo[name]} on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: SKIP_DELETION
+        default: 'true'
+        description: 'Whether tester VM should be deleted or not by the end of the test'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/keep-test-v1a5-integration(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+          - 'release-0.5'
+          - 'release-0.1'
+        status-context: "keep-test-v1a5-integration"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_keep_integration_vm_v1b1_centos.yml b/jjb/metal3/job_keep_integration_vm_v1b1_centos.yml
new file mode 100644
index 0000000..4e77549
--- /dev/null
+++ b/jjb/metal3/job_keep_integration_vm_v1b1_centos.yml
@@ -0,0 +1,126 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3)
+# keeping integration test vm.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: keep_v1b1_test_centos_alive
+    name: '{job_prefix}_{name}_keep_v1b1_test_centos_alive'
+    description: "CAPM3 v1beta1 integration tests for keeping the vm for {repo[org]}/{repo[name]} on CentOS."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'main'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'main'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: SKIP_DELETION
+        default: 'true'
+        description: 'Whether tester VM should be deleted or not by the end of the test'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/keep-test-v1b1-centos-integration(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+        status-context: "keep-test-v1b1-centos-integration"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
\ No newline at end of file
diff --git a/jjb/metal3/job_keep_integration_vm_v1b1_ubuntu.yml b/jjb/metal3/job_keep_integration_vm_v1b1_ubuntu.yml
new file mode 100644
index 0000000..9bf928c
--- /dev/null
+++ b/jjb/metal3/job_keep_integration_vm_v1b1_ubuntu.yml
@@ -0,0 +1,126 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3)
+# keeping integration test vm.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: keep_v1b1_test_ubuntu_alive
+    name: '{job_prefix}_{name}_keep_v1b1_test_ubuntu_alive'
+    description: "CAPM3 v1beta1 integration tests for keeping the vm for {repo[org]}/{repo[name]} on Ubuntu."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'main'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'main'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: SKIP_DELETION
+        default: 'true'
+        description: 'Whether tester VM should be deleted or not by the end of the test'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/keep-test-v1b1-integration(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+        status-context: "keep-test-v1b1-integration"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
\ No newline at end of file
diff --git a/jjb/metal3/job_linter_tests.yml b/jjb/metal3/job_linter_tests.yml
new file mode 100644
index 0000000..3d48d58
--- /dev/null
+++ b/jjb/metal3/job_linter_tests.yml
@@ -0,0 +1,93 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for linter tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: linter_tests
+    name: '{job_prefix}_{name}_linter_test'
+    description: "Code linting tests for {repo[org]}/{repo[name]}. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '/lint'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - master
+          - main
+        status-context: "linter-tests"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|master}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'ci/jobs/{id}.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_master_clean.yml b/jjb/metal3/job_master_clean.yml
new file mode 100644
index 0000000..a8cac1c
--- /dev/null
+++ b/jjb/metal3/job_master_clean.yml
@@ -0,0 +1,77 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for K8s Cluster API Provider Metal3 (CAPM3) integration tests
+# cleanup.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: master_clean
+    name: '{job_prefix}_master_integration_tests_cleanup'
+    description: "K8s CAPM3 integration tests cleanup"
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'main'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "0 */6 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
\ No newline at end of file
diff --git a/jjb/metal3/job_master_feature_tests_centos.yml b/jjb/metal3/job_master_feature_tests_centos.yml
new file mode 100644
index 0000000..598a86d
--- /dev/null
+++ b/jjb/metal3/job_master_feature_tests_centos.yml
@@ -0,0 +1,109 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3)
+# feature tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: master_feature_tests_centos
+    name: '{job_prefix}_master_feature_tests_centos'
+    description: "Pivoting and Remediation tests on Centos. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: NUM_NODES
+        default: 4
+        description: 'Number of libvirt VMs.'
+    - string:
+        name: TESTS_FOR
+        default: "feature_tests_centos"
+        description: 'Tests for pivoting and remediation.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "H 17 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_master_feature_tests_ubuntu.yml b/jjb/metal3/job_master_feature_tests_ubuntu.yml
new file mode 100644
index 0000000..9a8fcbf
--- /dev/null
+++ b/jjb/metal3/job_master_feature_tests_ubuntu.yml
@@ -0,0 +1,109 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3)
+# feature tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: master_feature_tests_ubuntu
+    name: '{job_prefix}_master_feature_tests_ubuntu'
+    description: "Pivoting and Remediation tests on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: NUM_NODES
+        default: 4
+        description: 'Number of libvirt VMs.'
+    - string:
+        name: TESTS_FOR
+        default: "feature_tests"
+        description: 'Tests for pivoting and remediation.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "H 17 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_master_feature_tests_upgrade_ubuntu.yml b/jjb/metal3/job_master_feature_tests_upgrade_ubuntu.yml
new file mode 100644
index 0000000..d4cc7a8
--- /dev/null
+++ b/jjb/metal3/job_master_feature_tests_upgrade_ubuntu.yml
@@ -0,0 +1,115 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3)
+# feature upgrade tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Metal3 CI project infra repository.
+
+- job-template:
+    id: master_feature_tests_upgrade_ubuntu
+    name: '{job_prefix}_master_feature_tests_upgrade_ubuntu'
+    description: "Upgrade tests on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests.'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1alpha4'
+        description: 'Cluster API version.'
+    - string:
+        name: CAPIRELEASE
+        description: 'Cluster API release tag to upgrade from, e.g. v1.0.0'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1alpha5'
+        description: 'Cluster API provider Metal3 version.'
+    - string:
+        name: CAPM3RELEASE
+        description: 'CAPM3 release tag to upgrade from, e.g. v1.0.0'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: NUM_NODES
+        default: 4
+        description: 'Number of libvirt VMs.'
+    - string:
+        name: TESTS_FOR
+        default: "feature_tests_upgrade"
+        description: 'Tests for upgrade.'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "H 17 * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|main}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: "{ci_github_pipeline}"
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_metal3_dev_tools_integration_test_centos.yml b/jjb/metal3/job_metal3_dev_tools_integration_test_centos.yml
new file mode 100644
index 0000000..746ad6e
--- /dev/null
+++ b/jjb/metal3/job_metal3_dev_tools_integration_test_centos.yml
@@ -0,0 +1,126 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3)
+# dev tools integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: metal3_dev_tools_integration_test_centos
+    name: 'metal3_dev_tools_integration_test_centos'
+    description: "CAPM3 v1beta1 integration tests for {repo[org]}/{repo[name]} on CentOS. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'centos'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version. Can be v1alpha4.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version. Can be v1alpha5 or v1alpha4.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Centos'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: KUBERNETES_VERSION
+        default: "v1.23.3"
+        description: 'Kubernetes version'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-integration-metal3-centos(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+          - 'main'
+        status-context: "test-integration-metal3-centos"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|master}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'ci/jobs/metal3_dev_tools_integration_tests.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_metal3_dev_tools_integration_test_ubuntu.yml b/jjb/metal3/job_metal3_dev_tools_integration_test_ubuntu.yml
new file mode 100644
index 0000000..ed244ed
--- /dev/null
+++ b/jjb/metal3/job_metal3_dev_tools_integration_test_ubuntu.yml
@@ -0,0 +1,125 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Cluster API Provider Metal3 (CAPM3)
+# dev tools integration tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: metal3_dev_tools_integration_test_ubuntu
+    name: 'metal3_dev_tools_integration_test_ubuntu'
+    description: "CAPM3 v1beta1 integration tests for {repo[org]}/{repo[name]} on Ubuntu. "
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: PROJECT_REPO_ORG
+        default: '{repo[org]}'
+        description: 'Project github repo org name'
+    - string:
+        name: PROJECT_REPO_NAME
+        default: '{repo[name]}'
+        description: 'Project github repo name'
+    - string:
+        name: ghprbActualCommit
+        default: 'master'
+        description: 'CI Repo branch for triggering manual build'
+    - string:
+        name: ghprbAuthorRepoGitUrl
+        default: 'https://github.com/{repo[org]}/{repo[name]}.git'
+        description: 'CI Repo URL for triggering manual build'
+    - string:
+        name: ghprbTargetBranch
+        default: 'master'
+        description: 'Target branch of the PR'
+    - string:
+        name: DISTRIBUTION
+        default: 'ubuntu'
+        description: 'Distribution to use for the tests. Can be ubuntu or centos'
+    - string:
+        name: CAPI_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API version. Can be v1alpha4.'
+    - string:
+        name: CAPM3_VERSION
+        default: 'v1beta1'
+        description: 'Cluster API provider Metal3 version. Can be v1alpha5 or v1alpha4.'
+    - string:
+        name: TARGET_NODE_OS
+        default: 'Ubuntu'
+        description: 'Distribution to use for the target host.'
+    - string:
+        name: TARGET_NODE_MEMORY
+        default: 4096
+        description: 'RAM size of the target host.'
+    - string:
+        name: KUBERNETES_VERSION
+        default: "v1.23.3"
+        description: 'Kubernetes version'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+    - github:
+        url: https://github.com/{repo[org]}/{repo[name]}
+
+    triggers:
+    - github-pull-request:
+        admin-list:
+          - '{ci_github_admin_user}'
+        org-list: "{ci_github_whitelist_org}"
+        cron: 'H/5 * * * *'
+        auth-id: "{ci_ghprb_auth_id}"
+        trigger-phrase: '((.|\n)*\s)?/test-integration-metal3-ubuntu(\s(.|\n)*)?'
+        skip-build-phrase: '/skip-test'
+        only-trigger-phrase: True
+        github-hooks: True
+        permit-all: False
+        auto-close-on-fail: False
+        allow-whitelist-orgs-as-admins: True
+        white-list-target-branches:
+          - 'master'
+        status-context: "test-integration-metal3-ubuntu"
+        success-status: "Passed"
+        failure-status: "Failed"
+        error-status: "Error"
+        cancel-builds-on-update: True
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - '{branch|master}'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'ci/jobs/metal3_dev_tools_integration_tests.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_openstack_image_building.yml b/jjb/metal3/job_openstack_image_building.yml
new file mode 100644
index 0000000..add69a9
--- /dev/null
+++ b/jjb/metal3/job_openstack_image_building.yml
@@ -0,0 +1,68 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for Openstack image building tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: openstack_image_building
+    name: '{job_prefix}_openstack_image_building'
+    description: "Builder job for Openstack images for Metal3 CI"
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: KUBERNETES_VERSION
+        default: "v1.23.3"
+        description: 'Kubernetes version'
+    - string:
+        name: KIND_NODE_IMAGE_VERSION
+        default: "v1.23.3"
+        description: 'Kind node container image version'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+    - timed: "@midnight"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - 'master'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'ci/jobs/{id}.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_openstack_node_image_building.yml b/jjb/metal3/job_openstack_node_image_building.yml
new file mode 100644
index 0000000..6c3cc5c
--- /dev/null
+++ b/jjb/metal3/job_openstack_node_image_building.yml
@@ -0,0 +1,68 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for node image building tests tests.
+# This job can be triggered manually or through a Github pull request. It creates a
+# pipeline job. The pipeline scripts are maintained in Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: openstack_node_image_building
+    name: '{job_prefix}_openstack_node_image_building'
+    description: "Builder job for Openstack node images for Metal3 CI"
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    parameters:
+    - string:
+        name: KUBERNETES_VERSION
+        default: "v1.23.3"
+        description: 'Kubernetes version'
+
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      - timed: "0 5 */15 * *"
+      - github
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - 'master'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+          included-regions:
+                - "ci/images/.*"
+                - "ci/scripts/image_scripts/.*"
+      script-path: 'ci/jobs/{id}.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_update_nordix_artifacts.yml b/jjb/metal3/job_update_nordix_artifacts.yml
new file mode 100644
index 0000000..c24359e
--- /dev/null
+++ b/jjb/metal3/job_update_nordix_artifacts.yml
@@ -0,0 +1,60 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for updating Nordix Artifactory
+# from upstream artifacts. This job can be triggered manually but is intended
+# to run on a schedule request. It creates a pipeline job. The pipeline scripts
+# are maintained in Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: update_nordix_artifacts
+    name: '{job_prefix}_{name}_artifacts'
+    description: "Update Nordix artifacts in Artifactory"
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+      # Run once a week on Monday mornings.
+    - timed: "H 6 * * 1"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - 'master'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'ci/jobs/update_nordix_artifacts.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/job_update_nordix_repos.yml b/jjb/metal3/job_update_nordix_repos.yml
new file mode 100644
index 0000000..e3ad1f8
--- /dev/null
+++ b/jjb/metal3/job_update_nordix_repos.yml
@@ -0,0 +1,59 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Description:
+# ============
+# This file contains job template definition for updating Nordix repositories
+# from upstream. This job can be triggered manually or through a Github pull
+# request. It creates a pipeline job. The pipeline scripts are maintained in
+# Nordix/metal3-dev-tools repository.
+
+- job-template:
+    id: update_nordix_repos
+    name: '{job_prefix}_{name}_repos'
+    description: "Update Nordix repositories, synchronize with upstream."
+    project-type: pipeline
+    defaults: global
+    disabled: False
+    concurrent: True
+    properties:
+    - build-discarder:
+        days-to-keep: 30
+        num-to-keep: 300
+        artifact-days-to-keep: -1
+        artifact-num-to-keep: -1
+
+    triggers:
+    - timed: "H/30 * * * *"
+
+    pipeline-scm:
+      scm:
+      - git:
+          url: "{ci_github_repo}"
+          credentials-id: "{ci_github_jenkins_credentials_id}"
+          branches:
+            - 'master'
+          name: 'origin'
+          refspec: '+refs/heads/*:refs/remotes/origin/*'
+          wipe-workspace: True
+          honor-refspec: True
+          shallow-clone: False
+      script-path: 'ci/jobs/update_nordix_repos.pipeline'
+      lightweight-checkout: False
diff --git a/jjb/metal3/projects.yml b/jjb/metal3/projects.yml
new file mode 100644
index 0000000..b024934
--- /dev/null
+++ b/jjb/metal3/projects.yml
@@ -0,0 +1,205 @@
+---
+#
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+
+# Description:
+# ============
+# This file contains the list of JJB projects in metal3 category. Each project
+# corresponds to a github repository. Under each project's 'jobs' list defines the
+# jobs associated with that github repository. The job definitions can be found
+# in job_{job_id}.yml files in any of JJB include folders.
+
+- project:
+    name: 'nordix_dev_tools'
+    branch: '${{ghprbActualCommit}}'
+    ci_github_whitelist_org:
+    - nordix-metal3
+    jobs:
+    - linter_tests
+    - openstack_image_building
+    - docker_image_building
+    - update_nordix_artifacts
+    - update_nordix_repos
+    - openstack_node_image_building
+    - openstack_ipa_and_ironic_image_building
+    - metal3_ipa_and_ironic_image_building_test
+    - metal3_dev_tools_integration_test_centos
+    - metal3_dev_tools_integration_test_ubuntu
+    - artifactory_cleanup
+    repo:
+      org: "Nordix"
+      name: "metal3-dev-tools"
+    ci_github_jenkins_credentials_id: 'nordix-airship-ci-github-prod-token'
+    ci_ghprb_auth_id: 'e8a43847-46ff-42db-a5db-7366df0e4ee2'
+    ci_github_repo: 'https://github.com/Nordix/metal3-dev-tools.git'
+
+- project:
+    name: 'metal3io_project_infra'
+    branch: '${{ghprbActualCommit}}'
+    repo:
+      org: "metal3-io"
+      name: "project-infra"
+    ci_github_repo: '${{ghprbAuthorRepoGitUrl}}'
+    jobs:
+    - capm3_v1a4_integration_tests_centos
+    - capm3_v1a4_integration_tests_ubuntu
+    - capm3_v1a5_integration_tests_centos
+    - capm3_v1a5_integration_tests_ubuntu
+    - capm3_v1b1_integration_tests_centos
+    - capm3_v1b1_integration_tests_ubuntu
+    - feature_tests_ubuntu
+    - feature_tests_centos
+    - feature_tests_upgrade_ubuntu
+    - bml_integration_tests_centos
+    - keep_v1b1_test_ubuntu_alive
+    - keep_v1b1_test_centos_alive
+    - keep_v1a5_test_ubuntu_alive
+    - keep_v1a5_test_centos_alive
+
+- project:
+    name: 'metal3io_project_infra_cleanup'
+    repo:
+      org: "metal3-io"
+      name: "project-infra"
+    ci_github_pipeline: 'jenkins/jobs/integration_tests_clean.pipeline'
+    jobs:
+    - master_clean
+
+- project:
+    name: "metal3io_bmo"
+    repo:
+      org: "metal3-io"
+      name: "baremetal-operator"
+    jobs:
+    - capm3_v1a4_integration_tests_centos
+    - capm3_v1a4_integration_tests_ubuntu
+    - capm3_v1a5_integration_tests_centos
+    - capm3_v1a5_integration_tests_ubuntu
+    - capm3_v1b1_integration_tests_centos
+    - capm3_v1b1_integration_tests_ubuntu
+    - keep_v1b1_test_ubuntu_alive
+    - keep_v1b1_test_centos_alive
+    - keep_v1a5_test_ubuntu_alive
+    - keep_v1a5_test_centos_alive
+    - feature_tests_ubuntu
+
+- project:
+    name: "metal3io_ipam"
+    repo:
+      org: "metal3-io"
+      name: "ip-address-manager"
+    jobs:
+    - capm3_v1a4_integration_tests_centos
+    - capm3_v1a4_integration_tests_ubuntu
+    - capm3_v1a5_integration_tests_centos
+    - capm3_v1a5_integration_tests_ubuntu
+    - capm3_v1b1_integration_tests_centos
+    - capm3_v1b1_integration_tests_ubuntu
+    - keep_v1b1_test_ubuntu_alive
+    - keep_v1b1_test_centos_alive
+    - keep_v1a5_test_ubuntu_alive
+    - keep_v1a5_test_centos_alive
+
+- project:
+    name: "metal3io_metal3_dev_env"
+    jobs:
+    - capm3_v1a4_integration_tests_centos
+    - capm3_v1a4_integration_tests_ubuntu
+    - capm3_v1a4_master_integration_tests_centos
+    - capm3_v1a4_master_integration_tests_ubuntu
+    - capm3_v1a5_integration_tests_centos
+    - capm3_v1a5_integration_tests_ubuntu
+    - capm3_v1a5_master_integration_tests_centos
+    - capm3_v1a5_master_integration_tests_ubuntu
+    - capm3_v1b1_integration_tests_centos
+    - capm3_v1b1_integration_tests_ubuntu
+    - capm3_v1b1_master_integration_tests_centos
+    - capm3_v1b1_master_integration_tests_ubuntu
+    - feature_tests_ubuntu
+    - feature_tests_centos
+    - feature_tests_upgrade_ubuntu
+    - master_feature_tests_ubuntu
+    - master_feature_tests_centos
+    - master_feature_tests_upgrade_ubuntu
+    - bml_integration_tests_centos
+    - bml_master_integration_tests_centos
+    - keep_v1b1_test_ubuntu_alive
+    - keep_v1b1_test_centos_alive
+    - keep_v1a5_test_ubuntu_alive
+    - keep_v1a5_test_centos_alive
+
+    repo:
+      org: "metal3-io"
+      name: "metal3-dev-env"
+
+- project:
+    name: "metal3io_capi_m3"
+    repo:
+      org: "metal3-io"
+      name: "cluster-api-provider-metal3"
+    jobs:
+    - capm3_v1a4_integration_tests_centos
+    - capm3_v1a4_integration_tests_ubuntu
+    - capm3_v1a5_integration_tests_centos
+    - capm3_v1a5_integration_tests_ubuntu
+    - capm3_v1a5_e2e_tests_ubuntu
+    - capm3_v1a5_e2e_tests_centos
+    - capm3_v1a5_master_e2e_tests_ubuntu
+    - capm3_v1a5_master_e2e_tests_centos
+    - capm3_v1b1_integration_tests_centos
+    - capm3_v1b1_integration_tests_ubuntu
+    - capm3_v1b1_e2e_tests_centos
+    - capm3_v1b1_e2e_tests_ubuntu
+    - capm3_v1b1_e2e_upgrade_tests_ubuntu
+    - capm3_v1b1_master_e2e_tests_centos
+    - capm3_v1b1_master_e2e_tests_ubuntu
+    - keep_v1b1_test_ubuntu_alive
+    - keep_v1b1_test_centos_alive
+    - keep_v1a5_test_ubuntu_alive
+    - keep_v1a5_test_centos_alive
+
+
+- project:
+    name: "metal3io_ironic_image"
+    repo:
+      org: "metal3-io"
+      name: "ironic-image"
+    jobs:
+    - capm3_v1a4_integration_tests_centos
+    - capm3_v1a4_integration_tests_ubuntu
+    - capm3_v1a5_integration_tests_centos
+    - capm3_v1a5_integration_tests_ubuntu
+    - capm3_v1b1_integration_tests_centos
+    - capm3_v1b1_integration_tests_ubuntu
+    - keep_v1b1_test_ubuntu_alive
+    - keep_v1b1_test_centos_alive
+    - keep_v1a5_test_ubuntu_alive
+    - keep_v1a5_test_centos_alive
+
+- project:
+    name: "metal3io_ironic_ipa_downloader"
+    repo:
+      org: "metal3-io"
+      name: "ironic-ipa-downloader"
+    jobs:
+    - capm3_v1a4_integration_tests_ubuntu
+    - capm3_v1a5_integration_tests_ubuntu
+    - capm3_v1b1_integration_tests_centos
+    - capm3_v1b1_integration_tests_ubuntu