Merge "Add london to xtesting jobs"
authorCedric Ollivier <cedric.ollivier@orange.com>
Thu, 22 Jun 2023 12:19:43 +0000 (12:19 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 22 Jun 2023 12:19:43 +0000 (12:19 +0000)
27 files changed:
.github/workflows/gerrit-ci-management-merge.yaml [new file with mode: 0644]
.github/workflows/gerrit-ci-management-verify.yaml [new file with mode: 0644]
.github/workflows/gerrit-verify.yaml [deleted file]
global-jjb
jjb/ccsdk/apps.yaml
jjb/ccsdk/ccsdk-csit.yaml
jjb/ccsdk/ccsdk-oran.yaml
jjb/ccsdk/cds.yaml
jjb/ccsdk/distribution.yaml
jjb/ccsdk/features.yaml
jjb/ccsdk/odl-legacy.yaml
jjb/ccsdk/parent.yaml
jjb/ccsdk/sli.yaml
jjb/ci-management/ci-management-packer-jobs.yaml
jjb/doc/rules.yaml
jjb/global-defaults.yaml
jjb/sdc/python3-verify.sh [new file with mode: 0644]
jjb/sdc/sdc.yaml
jjb/sdnc/sdnc-apps.yaml
jjb/sdnc/sdnc-csit.yaml
jjb/sdnc/sdnc-northbound.yaml
jjb/sdnc/sdnc-oam.yaml
packer/common-packer
packer/provision/devstack-centos.yaml [new symlink]
packer/provision/devstack-pre-pip-centos.yaml [new symlink]
packer/templates/devstack-pre-pip-yoga.json [new symlink]
packer/templates/devstack.json [new symlink]

diff --git a/.github/workflows/gerrit-ci-management-merge.yaml b/.github/workflows/gerrit-ci-management-merge.yaml
new file mode 100644 (file)
index 0000000..f759d1a
--- /dev/null
@@ -0,0 +1,60 @@
+---
+name: Call Gerrit ci-management Merge
+
+# yamllint disable-line rule:truthy
+on:
+  workflow_dispatch:
+    inputs:
+      GERRIT_BRANCH:
+        description: "Branch that change is against"
+        required: true
+        type: string
+      GERRIT_CHANGE_ID:
+        description: "The ID for the change"
+        required: true
+        type: string
+      GERRIT_CHANGE_NUMBER:
+        description: "The Gerrit number"
+        required: true
+        type: string
+      GERRIT_CHANGE_URL:
+        description: "URL to the change"
+        required: true
+        type: string
+      GERRIT_EVENT_TYPE:
+        description: "Type of Gerrit event"
+        required: true
+        type: string
+      GERRIT_PATCHSET_NUMBER:
+        description: "The patch number for the change"
+        required: true
+        type: string
+      GERRIT_PATCHSET_REVISION:
+        description: "The revision sha"
+        required: true
+        type: string
+      GERRIT_PROJECT:
+        description: "Project in Gerrit"
+        required: true
+        type: string
+      GERRIT_REFSPEC:
+        description: "Gerrit refspec of change"
+        required: true
+        type: string
+
+jobs:
+  call-gerrit-ci-management-merge:
+    # yamllint disable-line rule:line-length
+    uses: lfit/releng-reusable-workflows/.github/workflows/gerrit-ci-management-merge.yaml@3c77f3b31647e3494e7ca37602e4f31de0c52e28
+    with:
+      GERRIT_BRANCH: ${{ inputs.GERRIT_BRANCH }}
+      GERRIT_CHANGE_ID: ${{ inputs.GERRIT_CHANGE_ID }}
+      GERRIT_CHANGE_NUMBER: ${{ inputs.GERRIT_CHANGE_NUMBER }}
+      GERRIT_CHANGE_URL: ${{ inputs.GERRIT_CHANGE_URL }}
+      GERRIT_EVENT_TYPE: ${{ inputs.GERRIT_EVENT_TYPE }}
+      GERRIT_PATCHSET_NUMBER: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
+      GERRIT_PATCHSET_REVISION: ${{ inputs.GERRIT_PATCHSET_REVISION }}
+      GERRIT_PROJECT: ${{ inputs.GERRIT_PROJECT }}
+      GERRIT_REFSPEC: ${{ inputs.GERRIT_REFSPEC }}
+    secrets:
+      JOBBUILDER_PROD_PSW: ${{ secrets.JOBBUILDER_PROD_PSW }}
diff --git a/.github/workflows/gerrit-ci-management-verify.yaml b/.github/workflows/gerrit-ci-management-verify.yaml
new file mode 100644 (file)
index 0000000..7213c1f
--- /dev/null
@@ -0,0 +1,60 @@
+---
+name: Call Gerrit ci-management Verify
+
+# yamllint disable-line rule:truthy
+on:
+  workflow_dispatch:
+    inputs:
+      GERRIT_BRANCH:
+        description: "Branch that change is against"
+        required: true
+        type: string
+      GERRIT_CHANGE_ID:
+        description: "The ID for the change"
+        required: true
+        type: string
+      GERRIT_CHANGE_NUMBER:
+        description: "The Gerrit number"
+        required: true
+        type: string
+      GERRIT_CHANGE_URL:
+        description: "URL to the change"
+        required: true
+        type: string
+      GERRIT_EVENT_TYPE:
+        description: "Type of Gerrit event"
+        required: true
+        type: string
+      GERRIT_PATCHSET_NUMBER:
+        description: "The patch number for the change"
+        required: true
+        type: string
+      GERRIT_PATCHSET_REVISION:
+        description: "The revision sha"
+        required: true
+        type: string
+      GERRIT_PROJECT:
+        description: "Project in Gerrit"
+        required: true
+        type: string
+      GERRIT_REFSPEC:
+        description: "Gerrit refspec of change"
+        required: true
+        type: string
+
+jobs:
+  call-gerrit-ci-management-verify:
+    # yamllint disable-line rule:line-length
+    uses: lfit/releng-reusable-workflows/.github/workflows/gerrit-ci-management-verify.yaml@4763193f992b39532dd373a268ed6d6fe11f8b72
+    with:
+      GERRIT_BRANCH: ${{ inputs.GERRIT_BRANCH }}
+      GERRIT_CHANGE_ID: ${{ inputs.GERRIT_CHANGE_ID }}
+      GERRIT_CHANGE_NUMBER: ${{ inputs.GERRIT_CHANGE_NUMBER }}
+      GERRIT_CHANGE_URL: ${{ inputs.GERRIT_CHANGE_URL }}
+      GERRIT_EVENT_TYPE: ${{ inputs.GERRIT_EVENT_TYPE }}
+      GERRIT_PATCHSET_NUMBER: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
+      GERRIT_PATCHSET_REVISION: ${{ inputs.GERRIT_PATCHSET_REVISION }}
+      GERRIT_PROJECT: ${{ inputs.GERRIT_PROJECT }}
+      GERRIT_REFSPEC: ${{ inputs.GERRIT_REFSPEC }}
+    secrets:
+      GERRIT_SSH_PRIVKEY: ${{ secrets.GERRIT_SSH_PRIVKEY }}
diff --git a/.github/workflows/gerrit-verify.yaml b/.github/workflows/gerrit-verify.yaml
deleted file mode 100644 (file)
index ea754d8..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
----
-name: Gerrit Verify
-
-# yamllint disable-line rule:truthy
-on:
-  workflow_dispatch:
-    inputs:
-      GERRIT_BRANCH:
-        description: "Branch that change is against"
-        required: true
-        type: string
-      GERRIT_CHANGE_ID:
-        description: "The ID for the change"
-        required: true
-        type: string
-      GERRIT_CHANGE_NUMBER:
-        description: "The Gerrit number"
-        required: true
-        type: string
-      GERRIT_CHANGE_URL:
-        description: "URL to the change"
-        required: true
-        type: string
-      GERRIT_EVENT_TYPE:
-        description: "Type of Gerrit event"
-        required: true
-        type: string
-      GERRIT_PATCHSET_NUMBER:
-        description: "The patch number for the change"
-        required: true
-        type: string
-      GERRIT_PATCHSET_REVISION:
-        description: "The revision sha"
-        required: true
-        type: string
-      GERRIT_PROJECT:
-        description: "Project in Gerrit"
-        required: true
-        type: string
-      GERRIT_REFSPEC:
-        description: "Gerrit refspec of change"
-        required: true
-        type: string
-
-concurrency:
-  group: ${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }}
-  cancel-in-progress: true
-
-jobs:
-  prepare:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Clear votes
-        uses: lfit/gerrit-review-action@v0.3
-        with:
-          host: ${{ vars.GERRIT_SERVER }}
-          username: ${{ vars.GERRIT_SSH_USER }}
-          key: ${{ secrets.GERRIT_SSH_PRIVKEY }}
-          known_hosts: ${{ vars.GERRIT_KNOWN_HOSTS }}
-          gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }}
-          gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
-          vote-type: clear
-      - name: Allow replication
-        run: sleep 10s
-
-  actionlint:
-    needs: prepare
-    runs-on: ubuntu-latest
-    steps:
-      - uses: lfit/checkout-gerrit-change-action@v0.3
-        with:
-          gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
-          delay: "0s"
-      - name: Download actionlint
-        id: get_actionlint
-        run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
-        shell: bash
-      - name: Check workflow files
-        run: ${{ steps.get_actionlint.outputs.executable }} -color
-        shell: bash
-
-  # run pre-commit tox env separately to get use of more parallel processing
-  pre-commit:
-    needs: prepare
-    runs-on: ubuntu-latest
-    steps:
-      - uses: lfit/checkout-gerrit-change-action@v0.3
-        with:
-          gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
-          delay: "0s"
-      - uses: actions/setup-python@v4
-        with:
-          python-version: "3.11"
-      - name: Run static analysis and format checkers
-        run: pipx run pre-commit run --all-files --show-diff-on-failure
-
-  jjb-validation:
-    needs: prepare
-    runs-on: ubuntu-latest
-    steps:
-      - uses: lfit/checkout-gerrit-change-action@v0.3
-        with:
-          gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
-          delay: "0s"
-      - uses: actions/setup-python@v4
-        id: setup-python
-        with:
-          python-version: "3.11"
-      - name: Clone git submodules
-        run: git submodule update --init
-      - name: Run JJB Verify
-        run: |
-          python -m pip install --upgrade pip
-          pip install jenkins-job-builder
-          mkdir -p "${HOME}/.config/jenkins_jobs"
-          cat << EOF > "${HOME}/.config/jenkins_jobs/jenkins_jobs.ini"
-          [job_builder]
-          ignore_cache=True
-          keep_descriptions=False
-          include_path=.
-          recursive=True
-          query_plugins_info=False
-          config-xml=True
-          EOF
-          jenkins-jobs test -o archives/job-configs jjb/
-
-  vote:
-    if: ${{ always() }}
-    needs: [prepare, actionlint, pre-commit, jjb-validation]
-    runs-on: ubuntu-latest
-    steps:
-      - uses: technote-space/workflow-conclusion-action@v3
-      - name: Set vote
-        uses: lfit/gerrit-review-action@v0.3
-        with:
-          host: ${{ vars.GERRIT_SERVER }}
-          username: ${{ vars.GERRIT_SSH_USER }}
-          key: ${{ secrets.GERRIT_SSH_PRIVKEY }}
-          known_hosts: ${{ vars.GERRIT_KNOWN_HOSTS }}
-          gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }}
-          gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
-          vote-type: ${{ env.WORKFLOW_CONCLUSION }}
index 9fab4a0..1afbd8e 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 9fab4a0c544f801dd07ac78f67375ddee67e76fc
+Subproject commit 1afbd8edc78c9d6f5f1337791d31881fee49a376
index 2fa6b72..3b1bde3 100644 (file)
@@ -35,6 +35,9 @@
       - "master":
           branch: "master"
           java-version: openjdk17
+      - "london":
+          branch: "london"
+          java-version: openjdk17
       - "kohn":
           branch: "kohn"
           java-version: openjdk11
index fb49d92..67d1b9d 100644 (file)
@@ -15,6 +15,8 @@
     stream:
       - "master":
           branch: "master"
+      - "london":
+          branch: "london"
       - "kohn":
           branch: "kohn"
     mvn-settings: "ccsdk-distribution-settings"
@@ -37,6 +39,9 @@
       - "master":
           java-version: openjdk17
           branch: "master"
+      - "london":
+          java-version: openjdk17
+          branch: "london"
       - "kohn":
           java-version: openjdk11
           branch: "kohn"
index b30eea6..94523ed 100644 (file)
@@ -29,6 +29,9 @@
       - "master":
           branch: "master"
           java-version: openjdk17
+      - "london":
+          branch: "london"
+          java-version: openjdk17
       - "kohn":
           branch: "kohn"
           java-version: openjdk11
index 22c5606..9ab11c5 100644 (file)
@@ -28,6 +28,9 @@
       - "master":
           branch: "master"
           java-version: openjdk17
+      - "london":
+          branch: "london"
+          java-version: openjdk17
       - "kohn":
           branch: "kohn"
           java-version: openjdk11
index 95988b1..e682461 100644 (file)
     stream:
       - "master":
           branch: "master"
-          java-version: openjdk11
+          java-version: openjdk17
+      - "london":
+          branch: "london"
+          java-version: openjdk17
       - "kohn":
           branch: "kohn"
-          java-version: openjdk17
+          java-version: openjdk11
     mvn-version: "mvn38"
     mvn-settings: "ccsdk-distribution-settings"
     files: "**"
index fb89034..efa5cd0 100644 (file)
           branch: "master"
           java-version: openjdk17
           mvn-opts: "-Xmx3072m"
+      - "london":
+          branch: "london"
+          java-version: openjdk17
+          mvn-opts: "-Xmx3072m"
       - "kohn":
           branch: "kohn"
           java-version: openjdk11
index 538c5ba..1d1962f 100644 (file)
           cron: ""
           sbom-generator: true
       - "{project-name}-gerrit-release-jobs":
-          build-node: centos8-docker-8c-8g
+          build-node: centos7-docker-2c-1g
 
     project: "ccsdk/odl-legacy"
     stream:
       - "master":
           branch: "master"
+      - "london":
+          branch: "london"
     java-version: openjdk17
     mvn-version: "mvn38"
     mvn-settings: "ccsdk-odl-legacy-settings"
index 1790aef..991b87c 100644 (file)
@@ -33,6 +33,9 @@
                 mvn-params: "-Dmaven.test.skip=true -Drevision=3.0.0"
             - "{project-name}-gerrit-release-jobs":
                 mvn-params: "-Drevision=3.0.0"
+      - "london":
+          branch: "london"
+          java-version: openjdk17
       - "kohn":
           branch: "kohn"
           java-version: openjdk11
index a0b2bcf..a957940 100644 (file)
@@ -22,6 +22,9 @@
       - "master":
           branch: "master"
           java-version: openjdk17
+      - "london":
+          branch: "london"
+          java-version: openjdk17
       - "kohn":
           branch: "kohn"
           java-version: openjdk11
index 4184950..8840c5f 100644 (file)
     templates: docker
     update-cloud-image: true
 
+- project:
+    name: packer-devstack-jobs
+    jobs:
+      - gerrit-packer-merge
+      - gerrit-packer-verify-build
+
+    project: ci-management
+    project-name: ci-management
+    branch: master
+    archive-artifacts: "**/*.log"
+
+    build-node: centos8-builder-2c-1g
+    build-timeout: 90
+
+    platforms:
+      - centos-cs-8
+    templates: devstack
+    update-cloud-image: true
+
+- project:
+    name: packer-devstack-pre-pip-yoga-jobs
+    jobs:
+      - gerrit-packer-merge
+      - gerrit-packer-verify-build
+
+    project: ci-management
+    project-name: ci-management
+    branch: master
+    archive-artifacts: "**/*.log"
+
+    build-node: centos8-builder-2c-1g
+    build-timeout: 90
+
+    platforms:
+      - centos-cs-8
+    templates: devstack-pre-pip-yoga
+    update-cloud-image: true
+
 - project:
     name: packer-memcached-jobs
     jobs:
index aa17f68..462bdf0 100644 (file)
@@ -49,7 +49,7 @@
             exit 0
           fi
           # config files, required
-          for i in docs/index.rst docs/conf.py docs/requirements-docs.txt docs/_static/css/ribbon.css; do
+          for i in docs/index.rst docs/conf.py docs/requirements-docs.txt docs/_static/css/ribbon.css .readthedocs.yaml; do
             if [ ! -f $i ] ; then
               log_failure_msg "FAIL $i missing. Please add it or remove the full docs directory."
               exitstatus="1"
             unset cssmaxwidth
           fi
           unset filename
+          # readthedocs.yaml
+          filename=".readthedocs.yaml"
+          if [ ! -f $filename ]; then
+            log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
+            exitstatus="1"
+          else
+            log_success_msg "INFO $filename found."
+            # obsolete parameter: (build:) image: latest
+            buildimage=$(grep '^[ \t]*image:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+            if [[ $buildimage == *"latest"* ]]; then
+              log_failure_msg "FAIL Setting '(build: image:) latest' found in $filename. Please remove it."
+              exitstatus="1"
+            else
+              log_success_msg "INFO Setting '(build: image:) latest' not found in $filename."
+            fi
+            unset buildimage
+            # obsolete parameter: (python:) version: 3.7
+            pythonversion=$(grep '^[ \t]*version:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+            if [[ $pythonversion == *"3.7"* ]]; then
+              log_failure_msg "FAIL Setting '(python:) version: 3.7' found in $filename. Please remove it."
+              exitstatus="1"
+            else
+              log_success_msg "INFO Setting '(python:) version: 3.7' not found in $filename."
+            fi
+            unset pythonversion
+            # obsolete parameter: submodules:
+            submodules=$(grep '^[ \t]*submodules:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+            if [[ $submodules == *"submodules:"* ]]; then
+              log_failure_msg "FAIL Setting 'submodules:' found in $filename. Please remove it."
+              exitstatus="1"
+            else
+              log_success_msg "INFO Setting 'submodules:' not found in $filename."
+            fi
+            unset submodules
+            # required parameter: (build:) os:
+            buildos=$(grep '^[ \t]*os:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+            if [[ ! $buildos == *"ubuntu-20.04"* ]]; then
+              log_failure_msg "FAIL Setting '(build:) os: ubuntu-20.04' missing in $filename. Please add it."
+              exitstatus="1"
+            else
+              log_success_msg "INFO Setting '(build:) os: ubuntu-20.04' found in $filename."
+            fi
+            unset buildos
+            # required parameter: (build: tools:) python
+            buildtoolspython=$(grep '^[ \t]*python:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+            if [[ ! $buildtoolspython == *\"3.8\"* ]]; then
+              log_failure_msg "FAIL Setting '(build: tools:) python: \"3.8\"' missing in $filename. Please add it."
+              exitstatus="1"
+            else
+              log_success_msg "INFO Setting '(build: tools:) python: \"3.8\"' found in $filename."
+            fi
+            unset buildtoolspython
+          fi
+          unset filename
           # message, end
           if [ "$exitstatus" = "0" ]; then
             if [ "$warning" = "0" ]; then
index b35c0f3..65306bd 100644 (file)
@@ -4,6 +4,7 @@
 - defaults:
     name: global
 
+    # General job settings
     build-days-to-keep: 30
     # the below discarder values are hard coded into the macro and are only here
     # for documentation purposes
@@ -11,6 +12,7 @@
     build-artifact-days-to-keep: -1
     build-artifact-num-to-keep: 5
 
+    # Email preferences
     failure-notification: "releng+onap@linuxfoundation.org"
     failure-notification-prefix: "[releng]"
 
@@ -40,6 +42,8 @@
     staging-profile-id: 176c31dfe190a
     # Timeout in minutes
     build-timeout: 90
+
+    # Default node, if not defined in the job
     build-node: ubuntu1804-builder-4c-4g
 
     archive-artifacts: ""
diff --git a/jjb/sdc/python3-verify.sh b/jjb/sdc/python3-verify.sh
new file mode 100644 (file)
index 0000000..f71c12c
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+py_files=$(find . -name '*.py' -not -path "*/node_modules/*" -not -path "*/target/*")
+
+if python3 -m py_compile ${py_files}
+then
+    echo "All python files compiled successfully"
+    exit 0
+else
+    echo "Failed to compile all files in Python 3"
+    exit 1
+fi
index e865ae8..20a30f4 100644 (file)
     name: sdc
     project-name: "sdc"
     jobs:
+      - "{project-name}-{stream}-{area}-verify-shell":
+          # This is to ensure all script are Python 3 compatible
+          area: verify
+          build-timeout: 45
+          script: !include-raw-escape: "python3-verify.sh"
       - "{project-name}-{stream}-verify-java":
           # this build is unit test only (Verify 1/2)
           mvn-params: "-P skip-integration-tests -Dnpm.registry=https://nexus3.onap.org/repository/npm.public/npm/-/"
index e491ac7..59343fb 100644 (file)
     stream:
       - "master":
           branch: "master"
-          java-version: openjdk17
+          java-version: openjdk11
+      - "london":
+          branch: "london"
+          java-version: openjdk11
       - "kohn":
           branch: "kohn"
           java-version: openjdk11
@@ -69,7 +72,7 @@
     project: "sdnc/apps"
     project-name: "sdnc-apps"
     branch: "master"
-    java-version: openjdk17
+    java-version: openjdk11
     mvn-version: "mvn38"
     mvn-settings: "sdnc-apps-settings"
     mvn-goals: "clean install"
@@ -87,7 +90,7 @@
     stream:
       - "master":
           branch: "master"
-    java-version: openjdk17
+    java-version: openjdk11
     mvn-version: "mvn38"
     mvn-settings: "sdnc-apps-settings"
     mvn-opts: "--add-opens=java.base/java.util=ALL-UNNAMED"
index 5575d8d..acb2cee 100644 (file)
@@ -15,6 +15,8 @@
     stream:
       - "master":
           branch: "master"
+      - "london":
+          branch: "london"
       - "kohn":
           branch: "kohn"
     mvn-settings: "sdnc-oam-settings"
index 64009dd..4682eb2 100644 (file)
@@ -19,6 +19,9 @@
       - "master":
           branch: "master"
           java-version: openjdk17
+      - "london":
+          branch: "london"
+          java-version: openjdk17
       - "kohn":
           branch: "kohn"
           java-version: openjdk11
index 561c13d..986ce2c 100644 (file)
@@ -28,6 +28,9 @@
       - "master":
           branch: "master"
           java-version: openjdk17
+      - "london":
+          branch: "london"
+          java-version: openjdk17
       - "kohn":
           branch: "kohn"
           java-version: openjdk11
index 15aba27..17bfe57 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 15aba27a45f98edb33890daa3712c6a4371b2947
+Subproject commit 17bfe57174ebf0e699cfcc235e83d6d568695651
diff --git a/packer/provision/devstack-centos.yaml b/packer/provision/devstack-centos.yaml
new file mode 120000 (symlink)
index 0000000..dc02778
--- /dev/null
@@ -0,0 +1 @@
+../common-packer/provision/devstack-centos.yaml
\ No newline at end of file
diff --git a/packer/provision/devstack-pre-pip-centos.yaml b/packer/provision/devstack-pre-pip-centos.yaml
new file mode 120000 (symlink)
index 0000000..46d6e78
--- /dev/null
@@ -0,0 +1 @@
+../common-packer/provision/devstack-pre-pip-centos.yaml
\ No newline at end of file
diff --git a/packer/templates/devstack-pre-pip-yoga.json b/packer/templates/devstack-pre-pip-yoga.json
new file mode 120000 (symlink)
index 0000000..b2f6b25
--- /dev/null
@@ -0,0 +1 @@
+../common-packer/templates/devstack-pre-pip-yoga.json
\ No newline at end of file
diff --git a/packer/templates/devstack.json b/packer/templates/devstack.json
new file mode 120000 (symlink)
index 0000000..60505d9
--- /dev/null
@@ -0,0 +1 @@
+../common-packer/templates/devstack.json
\ No newline at end of file