GERRIT_REFSPEC: ${{ inputs.GERRIT_REFSPEC }}
secrets:
JOBBUILDER_PROD_PSW: ${{ secrets.JOBBUILDER_PROD_PSW }}
+ GERRIT_SSH_PRIVKEY: ${{ secrets.GERRIT_SSH_PRIVKEY }}
- name: "Matt Watkins"
email: "mwatkins@linuxfoundation.org"
company: "LF"
- id: "modeSevenindustrialsolutions"
+ id: "modesevenindustrialsolutions"
timezone: "Europe/London"
- name: "Thomas Kulik"
email: "thomas.kulik@telekom.de"
--- /dev/null
+---
+name: "packer-cloud-env-hcl"
+comment: "Packer cloud environmnet HCL2 config"
--- /dev/null
+cloud_auth_url = "https://auth.vexxhost.net/v3/"
+cloud_tenant = "ef6e8825-fc3a-4ebf-886a-ba51ada06a9c"
+cloud_user = "$CLOUD_USR"
+cloud_pass = "$CLOUD_PSW"
+cloud_network = "bd089be9-e846-4afe-905b-8bb6c7c90faf"
+ssh_proxy_host = ""
--- /dev/null
+---
+customizedCredentialMappings:
+ - credentialsId: "packer-cloud-user"
+ tokenKey: "CLOUD"
--- /dev/null
+---
+customizedCredentialMappings:
+ - credentialsId: "packer-cloud-user"
+ tokenKey: "CLOUD"
--- /dev/null
+---
+name: "portal-ng-e2e"
+comment: "portal-ng-e2e"
--- /dev/null
+---
+serverCredentialMappings:
+ - serverId: "ecomp-snapshots"
+ credentialsId: "portal-ng-e2e"
+ - serverId: "ecomp-site"
+ credentialsId: "portal-ng-e2e"
+ - serverId: "ecomp-staging"
+ credentialsId: "portal-ng-e2e"
+ - serverId: "nexus3.onap.org:10001"
+ credentialsId: "portal-ng-e2e"
+ - serverId: "nexus3.onap.org:10002"
+ credentialsId: "portal-ng-e2e"
+ - serverId: "nexus3.onap.org:10003"
+ credentialsId: "portal-ng-e2e"
+ - serverId: "nexus3.onap.org:10004"
+ credentialsId: "portal-ng-e2e"
+ - serverId: "docker.io"
+ credentialsId: "onap_dockerhub_creds"
--- /dev/null
+../../../managed-config-templates/mavenSettings-content
\ No newline at end of file
--- /dev/null
+../../../managed-config-templates/mavenSettings-serverCredentialMappings.sandbox.yaml
\ No newline at end of file
- project:
name: "aai-aai-common-docker"
jobs:
- - "{project-name}-{stream}-verify-docker"
- - "{project-name}-{stream}-merge-docker"
+ - gerrit-docker-verify
+ - gerrit-docker-merge
- gerrit-maven-docker-stage:
sbom-generator: true
mvn-params: "-P docker -Dmaven.test.skip=true"
branch: "kohn"
distro: "alpine"
mvn-params: "-P spring-boot-2-1,docker"
- docker_name: "onap/aai-common-{distro}"
- docker_build_args: "-f ./Dockerfile.{distro}"
- docker_root: "$WORKSPACE/Dockerfiles/aai-common/"
+ docker-name: "onap/aai-common-{distro}"
+ docker-build-args: "-f ./Dockerfile.{distro}"
+ docker-root: "$WORKSPACE/Dockerfiles/aai-common/"
mvn-settings: "aai-aai-common-settings"
mvn-version: "mvn35"
files: "Dockerfiles/aai-common/**"
branch: "master"
build-timeout: "60"
build-node: "centos8-builder-2c-1g"
- jjb-version: 4.1.0
+ jjb-version: 5.0.2
# configure the gerrit-jjb-verify job
build-node-label-check: true
build-node-label-list: ""
stream:
- "master":
branch: "master"
- - "kohn":
- branch: "kohn"
+ - "london":
+ branch: "london"
mvn-settings: "dmaap-buscontroller-settings"
files: "**"
archive-artifacts: ""
---
- project:
- name: dmaap-datarouter-java
+ name: dmaap-datarouter-java-11
+ project-name: "dmaap-datarouter"
+ jobs:
+ - "{project-name}-{stream}-verify-java"
+ - "{project-name}-{stream}-merge-java"
+ - gerrit-maven-docker-stage:
+ build-node: ubuntu1804-docker-8c-8g
+ maven-versions-plugin: true
+ mvn-goals: "clean package -P docker docker:build docker:push"
+ container-public-registry: "nexus3.onap.org:10001"
+ container-staging-registry: "nexus3.onap.org:10003"
+ cron: ""
+ - "{project-name}-gerrit-release-jobs":
+ build-node: centos7-docker-2c-1g
+ project: "dmaap/datarouter"
+ stream:
+ - "london":
+ branch: "london"
+ mvn-settings: "dmaap-datarouter-settings"
+ files: "**"
+ archive-artifacts: ""
+ java-version: openjdk11
+
+- project:
+ name: dmaap-datarouter-java-17
project-name: "dmaap-datarouter"
jobs:
- "{project-name}-{stream}-verify-java"
stream:
- "master":
branch: "master"
- - "kohn":
- branch: "kohn"
mvn-settings: "dmaap-datarouter-settings"
files: "**"
archive-artifacts: ""
- java-version: openjdk11
+ java-version: openjdk17
- project:
name: dmaap-datarouter-csit-ssl
mvn-settings: "dmaap-datarouter-settings"
mvn-goals: "clean install"
mvn-opts: "-Xmx1024m -XX:MaxPermSize=256m"
- java-version: openjdk11
+ java-version: openjdk17
- project:
name: dmaap-datarouter-clm
project-name: "dmaap-datarouter"
branch: "master"
mvn-settings: "dmaap-datarouter-settings"
- java-version: openjdk11
+ java-version: openjdk17
- project:
name: dmaap-datarouter-info
stream:
- "master":
branch: "master"
- - "kohn":
- branch: "kohn"
+ - "london":
+ branch: "london"
mvn-settings: "dmaap-messagerouter-dmaapclient-settings"
files: "**"
archive-artifacts: ""
stream:
- "master":
branch: "master"
- - "kohn":
- branch: "kohn"
+ - "london":
+ branch: "london"
mvn-settings: "dmaap-messagerouter-messageservice-settings"
java-version: openjdk11
files: "**"
exitstatus="0"
warning="0"
# message, begin
+ log_success_msg "INFO doc-rules Version 23-07-07-A"
log_success_msg "INFO Starting additional checks related to documentation."
log_success_msg "INFO See https://git.onap.org/doc/doc-best-practice for example config files (master branch)."
log_success_msg "INFO Modify example config files if you like to use them in a release branch."
log_warning_msg "WARN sphinx-build option '-W' missing for spellcheck in $filename, line $linenumber."
warning="1"
else
- log_failure_msg "FAIL sphinx-build option '-W' missing in $filename, line $linenumber. Please add it."
- exitstatus="1"
+ log_warning_msg "WARN sphinx-build option '-W' missing in $filename, line $linenumber. Please add it."
+ warning="1"
+ #log_failure_msg "FAIL sphinx-build option '-W' missing in $filename, line $linenumber. Please add it."
+ #exitstatus="1"
fi
fi
done < $filename
if [ "$sphinxbuild_detected" = "0" ]; then
- log_failure_msg "FAIL Sphinx-build command(s) missing in $filename. Please add it."
- exitstatus="1"
+ log_warning_msg "WARN Sphinx-build command(s) missing in $filename. Please add it."
+ warning="1"
+ #log_failure_msg "FAIL Sphinx-build command(s) missing in $filename. Please add it."
+ #exitstatus="1"
fi
# second tox.ini @ root directory
if [ -f ./tox.ini ] ; then
+++ /dev/null
----
-###########
-# ANCHORS #
-###########
-- _docker_job_boiler_plate: &docker_job_boiler_plate
- name: docker_job_boiler_plate
-
- project-type: freestyle
- node: "{build-node}"
-
- ######################
- # Default parameters #
- ######################
-
- branch: master
- submodule-recursive: true
-
- # default params for docker jobs
- pre_build_script: ""
- post_build_script: ""
- docker_root: "$WORKSPACE"
- docker_build_args: ""
- docker_name: "unnamed"
- # Default to LF standard 'snapshots' docker registry
- docker_registry: "$DOCKER_REGISTRY:10003"
- docker_tag: "latest"
- submodule-disable: false
- submodule-timeout: 10
-
- #####################
- # Job Configuration #
- #####################
-
- properties:
- - lf-infra-properties:
- build-days-to-keep: "{build-days-to-keep}"
-
- parameters:
- - lf-infra-parameters:
- branch: "{branch}"
- project: "{project}"
- stream: "{stream}"
- lftools-version: "{lftools-version}"
-
- wrappers:
- - lf-infra-wrappers:
- build-timeout: "{build-timeout}"
- jenkins-ssh-credential: "{jenkins-ssh-credential}"
-
- publishers:
- - lf-infra-publish
-
-- _docker_verify_boiler_plate: &docker_verify_boiler_plate
- name: docker_verify_boiler_plate
-
- concurrent: true
-
- scm:
- - gerrit-trigger-scm:
- refspec: "$GERRIT_REFSPEC"
- choosing-strategy: "default"
- submodule-recursive: "{submodule-recursive}"
-
- triggers:
- - gerrit-trigger-patch-submitted:
- status-context: "{project}-Docker-Verify"
- server: "{server-name}"
- project: "{project}"
- branch: "{branch}"
- files: "{files}"
-
-- _docker_merge_boiler_plate: &docker_merge_boiler_plate
- name: docker_merge_boiler_plate
-
- scm:
- - gerrit-trigger-scm:
- refspec: "$GERRIT_REFSPEC"
- choosing-strategy: "default"
- submodule-recursive: "{submodule-recursive}"
-
- triggers:
- - gerrit-trigger-patch-merged:
- server: "{server-name}"
- project: "{project}"
- branch: "{branch}"
- files: "{files}"
- - pollscm:
- cron: ""
-
-#################
-# JOB TEMPLATES #
-#################
-- job-template:
- name: "{project-name}-{stream}-merge-docker"
- # Job template for Docker merge jobs
- #
- # The purpose of this job template is to run a docker build, and potentially
- # test validation of the docker image
-
- <<: *docker_job_boiler_plate
- # yamllint disable-line rule:key-duplicates
- <<: *docker_merge_boiler_plate
-
- builders:
- - lf-infra-pre-build
- - lf-infra-docker-login:
- global-settings-file: "global-settings"
- settings-file: "{mvn-settings}"
- - shell: "{pre_build_script}"
- - inject:
- # Docker registry is purposely not using an '_' so as to not conflict
- # with the Jenkins global env var
- properties-content: |
- DOCKER_ARGS={docker_build_args}
- DOCKER_NAME={docker_name}
- DOCKER_ROOT={docker_root}
- DOCKER_TAG={docker_tag}
- BUILD_MODE=SNAPSHOT
- DOCKERREGISTRY={docker_registry}
- # Do the docker build
- - shell: !include-raw: ../shell/docker-build.sh
- - inject:
- # Import the docker image information from the build step
- properties-file: "env_inject.txt"
- # Execute any post build clean-up or testing
- - shell: "{post_build_script}"
- # Provided all steps have already passed, push the docker image
- - shell: !include-raw: ../shell/docker-push.sh
-
-- job-template:
- name: "{project-name}-{stream}-verify-docker"
- # Job template for Docker verify jobs
- #
- # The purpose of this job template is to run a docker build, and potentially
- # test validation of the docker image
-
- ######################
- # Default parameters #
- ######################
-
- <<: *docker_job_boiler_plate
- # yamllint disable-line rule:key-duplicates
- <<: *docker_verify_boiler_plate
-
- builders:
- - lf-infra-pre-build
- - lf-infra-docker-login:
- global-settings-file: "global-settings"
- settings-file: "{mvn-settings}"
- - shell: "{pre_build_script}"
- - inject:
- # Docker registry is purposely not using an '_' so as to not conflict
- # with the Jenkins global env var
- properties-content: |
- DOCKER_ARGS={docker_build_args}
- DOCKER_NAME={docker_name}
- DOCKER_ROOT={docker_root}
- DOCKER_TAG={docker_tag}
- BUILD_MODE=SNAPSHOT
- DOCKERREGISTRY={docker_registry}
- # Do the docker build
- - shell: !include-raw: ../shell/docker-build.sh
- - inject:
- # Import the docker image information from the build step
- properties-file: "env_inject.txt"
- # Execute any post build clean-up or testing
- - shell: "{post_build_script}"
-
-- job-template:
- # Job template for creating a docker manifest list
- #
- # The purpose of this job template is to run:
- # 1. docker_push_manifest.sh script (which needs to exist in the
- # project implementation repo)
-
- name: "{project-name}-docker-manifest-{stream}"
- <<: *docker_job_boiler_plate
- node: "{build-node}"
- build-timeout: 15
-
- parameters:
- - lf-infra-parameters:
- project: "{project}"
- stream: "{stream}"
- branch: "{branch}"
- - string:
- name: PARENT_JOB_NAME
- default: "none"
-
- disabled: "{obj:disabled}"
-
- scm:
- - lf-infra-gerrit-scm:
- jenkins-ssh-credential: "{jenkins-ssh-credential}"
- git-url: "$GIT_URL/$PROJECT"
- refspec: "$GERRIT_REFSPEC"
- branch: "$GERRIT_BRANCH"
- submodule-recursive: true
- submodule-disable: "{submodule-disable}"
- submodule-timeout: "{submodule-timeout}"
- choosing-strategy: default
-
- builders:
- - lf-infra-docker-login:
- global-settings-file: "global-settings"
- settings-file: "{mvn-settings}"
- - shell: |
- #!/bin/bash -ex
- export PARENT_JOB_NAME
- ./docker_push_manifest.sh
-
-- job-template:
- # Job template for staging jobs on multiple architectures
- #
- # The purpose of this job template is to:
- # 1. Run parallel maven-docker-stage jobs for each supported architecure
- # 2. Build and push a docker manifest list for the images created by
- # the previous jobs
-
- name: "{project-name}-multiarch-docker-stage-{stream}"
- node: "{build-node}"
- project-type: multijob
- disabled: "{obj:disabled}"
- build-timeout: 15
- pattern: "**"
-
- parameters:
- - lf-infra-parameters:
- project: "{project}"
- stream: "{stream}"
- branch: "{branch}"
- - string:
- name: DOCKER_REGISTRY
- default: "none"
- - string:
- name: DOCKERHUB_REGISTRY
- default: "registry-1.docker.io"
-
- properties:
- - throttle:
- max-per-node: 1
- option: "project"
- - build-blocker:
- use-build-blocker: true
- blocking-jobs:
- - "{project-name}-.*-docker-.*"
- blocking-level: "NODE"
-
- scm:
- - lf-infra-gerrit-scm:
- jenkins-ssh-credential: "{jenkins-ssh-credential}"
- git-url: "$GIT_URL/$PROJECT"
- refspec: "$GERRIT_REFSPEC"
- branch: "$GERRIT_BRANCH"
- submodule-recursive: true
- submodule-timeout: 10
- submodule-disable: false
- choosing-strategy: default
-
- triggers:
- - timed: "@daily"
- - gerrit:
- server-name: "{gerrit-server-name}"
- trigger-on:
- - comment-added-contains-event:
- comment-contains-value: '^Patch Set\s+\d+:\s+stage-(docker-)?release\s*$'
-
- projects:
- - project-compare-type: ANT
- project-pattern: "{project}"
- branches:
- - branch-compare-type: ANT
- branch-pattern: "**/{branch}"
- file-paths:
- - compare-type: ANT
- pattern: "**"
-
- builders:
- - multijob:
- name: "build docker images"
- condition: ALWAYS
- execution-type: PARALLEL
- projects:
- - name: "{project-name}-amd64-maven-docker-stage-{stream}"
- kill-phase-on: FAILURE
- current-parameters: true
- - name: "{project-name}-arm64-maven-docker-stage-{stream}"
- kill-phase-on: NEVER
- current-parameters: true
- - multijob:
- name: "publish docker manifest"
- condition: SUCCESSFUL
- execution-type: PARALLEL
- projects:
- - name: "{project-name}-docker-manifest-{stream}"
- current-parameters: true
- predefined-parameters: |
- PARENT_JOB_NAME=$JOB_NAME
- DOCKERHUB_REGISTRY=docker.io
-
- publishers:
- - lf-infra-publish
stream:
- "master":
branch: "master"
- - "kohn":
- branch: "kohn"
+ - "london":
+ branch: "london"
functionality:
- "certservice":
trigger_jobs:
- "master":
branch: "master"
java-version: openjdk11
- - "kohn":
- branch: "kohn"
+ - "london":
+ branch: "london"
java-version: openjdk11
project: "oom/platform/cert-service"
mvn-settings: "oom-platform-cert-service-settings"
stream:
- "master":
branch: "master"
- - "kohn":
- branch: "kohn"
+ - "london":
+ branch: "london"
jobs:
- "{project-name}-{stream}-review":
stream:
- "master":
branch: "master"
- - "kohn":
- branch: "kohn"
+ - "london":
+ branch: "london"
- project:
name: offline-installer-pytest
branch: "master"
- "kohn":
branch: "kohn"
- - "jakarta":
- branch: "jakarta"
+ - "london":
+ branch: "london"
jobs:
- "{project-name}-{stream}-image-verify":
stream:
- "master":
branch: "master"
- - "kohn":
- branch: "kohn"
+ - "london":
+ branch: "london"
jobs:
- "{project-name}-{stream}-verify-make-{helm_bin}":
branch: "master"
- "kohn":
branch: "kohn"
- - "jakarta":
- branch: "jakarta"
+ - "london":
+ branch: "london"
--- /dev/null
+---
+- project:
+ name: portal-ng-e2e-project-view
+ project-name: portal-ng-e2e
+ views:
+ - project-view
+
+- project:
+ name: portal-ng-e2e-info
+ project: portal-ng/e2e
+ project-name: portal-ng-e2e
+ build-node: centos8-builder-2c-1g
+ branch: master
+ jobs:
+ - gerrit-info-yaml-verify
project-name: "portal-ng-bff"
project: "portal-ng/bff"
branch: "master"
+ build-node: ubuntu1804-docker-8c-8g
jobs:
- gerrit-gradle-build
stream:
project-name: "portal-ng-bff"
project: "portal-ng/bff"
branch: "master"
+ build-node: ubuntu1804-docker-8c-8g
docker-name: "onap/portal-ng/bff"
container-tag-method: latest
jobs:
-Subproject commit 17bfe57174ebf0e699cfcc235e83d6d568695651
+Subproject commit 09cb3bcf48185afdc5af0a548be904491ae215de
-../common-packer/provision/devstack-centos.yaml
\ No newline at end of file
+../common-packer/provision/devstack.yaml
\ No newline at end of file
--- /dev/null
+../common-packer/provision/devstack.yaml
\ No newline at end of file
--- /dev/null
+../common-packer/templates/builder-aws.pkr.hcl
\ No newline at end of file
--- /dev/null
+../common-packer/templates/builder.pkr.hcl
\ No newline at end of file
--- /dev/null
+../common-packer/templates/devstack-pre-pip-yoga.pkr.hcl
\ No newline at end of file
--- /dev/null
+../common-packer/templates/devstack.pkr.hcl
\ No newline at end of file
--- /dev/null
+../common-packer/templates/docker.pkr.hcl
\ No newline at end of file
--- /dev/null
+packer {
+ required_plugins {
+ openstack = {
+ version = ">= 1.0.0"
+ source = "github.com/hashicorp/openstack"
+ }
+ }
+}
+
+variable "cloud_auth_url" {
+ type = string
+ default = null
+}
+
+variable "cloud_tenant" {
+ type = string
+ default = null
+}
+
+variable "cloud_user" {
+ type = string
+ default = null
+}
+
+variable "cloud_pass" {
+ type = string
+ default = null
+}
+
+variable "source_ami_filter_name" {
+ type = string
+ default = null
+}
+
+variable "source_ami_filter_product_code" {
+ type = string
+ default = null
+}
+
+variable "source_ami_filter_owner" {
+ type = string
+ default = null
+}
+
+variable "ansible_roles_path" {
+ type = string
+ default = ".galaxy"
+}
+
+variable "arch" {
+ type = string
+ default = "x86_64"
+}
+
+variable "base_image" {
+ type = string
+ default = null
+}
+
+variable "cloud_network" {
+ type = string
+ default = null
+}
+
+variable "cloud_region" {
+ type = string
+ default = "ca-ymq-1"
+}
+
+variable "cloud_user_data" {
+ type = string
+ default = null
+}
+
+variable "distro" {
+ type = string
+ default = null
+}
+
+variable "docker_source_image" {
+ type = string
+ default = null
+}
+
+variable "flavor" {
+ type = string
+ default = "v2-highcpu-1"
+}
+
+variable "ssh_proxy_host" {
+ type = string
+ default = ""
+}
+
+variable "ssh_user" {
+ type = string
+ default = null
+}
+
+variable "vm_image_disk_format" {
+ type = string
+ default = ""
+}
+
+variable "vm_use_block_storage" {
+ type = string
+ default = "true"
+}
+
+variable "vm_volume_size" {
+ type = string
+ default = "20"
+}
+
+source "docker" "helm" {
+ changes = ["ENTRYPOINT [\"\"]", "CMD [\"\"]"]
+ commit = true
+ image = "${var.docker_source_image}"
+}
+
+source "openstack" "helm" {
+ domain_name = "Default"
+ flavor = "${var.flavor}"
+ identity_endpoint = "${var.cloud_auth_url}"
+ image_name = "ZZCI - ${var.distro} - helm - ${var.arch} - ${legacy_isotime("20060102-150405.000")}"
+ instance_name = "${var.distro}-builder-${uuidv4()}"
+ metadata = {
+ ci_managed = "yes"
+ }
+ networks = ["${var.cloud_network}"]
+ password = "${var.cloud_pass}"
+ region = "ca-ymq-1"
+ source_image_name = "${var.base_image}"
+ ssh_proxy_host = "${var.ssh_proxy_host}"
+ ssh_username = "${var.ssh_user}"
+ tenant_name = "${var.cloud_tenant}"
+ user_data_file = "${var.cloud_user_data}"
+ username = "${var.cloud_user}"
+}
+
+build {
+ sources = ["source.docker.helm", "source.openstack.helm"]
+
+ provisioner "shell" {
+ execute_command = "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
+ scripts = ["common-packer/provision/install-python.sh"]
+ }
+
+ provisioner "shell-local" {
+ command = "./common-packer/ansible-galaxy.sh ${var.ansible_roles_path}"
+ }
+
+ provisioner "ansible" {
+ ansible_env_vars = [
+ "ANSIBLE_NOCOWS=1",
+ "ANSIBLE_PIPELINING=True",
+ "ANSIBLE_ROLES_PATH=${var.ansible_roles_path}",
+ "ANSIBLE_CALLBACK_WHITELIST=profile_tasks",
+ "ANSIBLE_STDOUT_CALLBACK=debug"
+ ]
+ command = "./common-packer/ansible-playbook.sh"
+ extra_arguments = [
+ "--scp-extra-args", "'-O'",
+ "--ssh-extra-args", "-o IdentitiesOnly=yes -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa"
+ ]
+ playbook_file = "provision/helm.yaml"
+ skip_version_check = true
+ }
+}
--- /dev/null
+packer {
+ required_plugins {
+ openstack = {
+ version = ">= 1.0.0"
+ source = "github.com/hashicorp/openstack"
+ }
+ }
+}
+
+variable "cloud_auth_url" {
+ type = string
+ default = null
+}
+
+variable "cloud_tenant" {
+ type = string
+ default = null
+}
+
+variable "cloud_user" {
+ type = string
+ default = null
+}
+
+variable "cloud_pass" {
+ type = string
+ default = null
+}
+
+variable "source_ami_filter_name" {
+ type = string
+ default = null
+}
+
+variable "source_ami_filter_product_code" {
+ type = string
+ default = null
+}
+
+variable "source_ami_filter_owner" {
+ type = string
+ default = null
+}
+
+variable "ansible_roles_path" {
+ type = string
+ default = ".galaxy"
+}
+
+variable "arch" {
+ type = string
+ default = "x86_64"
+}
+
+variable "base_image" {
+ type = string
+ default = null
+}
+
+variable "cloud_network" {
+ type = string
+ default = null
+}
+
+variable "cloud_region" {
+ type = string
+ default = "ca-ymq-1"
+}
+
+variable "cloud_user_data" {
+ type = string
+ default = null
+}
+
+variable "distro" {
+ type = string
+ default = null
+}
+
+variable "docker_source_image" {
+ type = string
+ default = null
+}
+
+variable "flavor" {
+ type = string
+ default = "v2-highcpu-1"
+}
+
+variable "ssh_proxy_host" {
+ type = string
+ default = ""
+}
+
+variable "ssh_user" {
+ type = string
+ default = null
+}
+
+variable "vm_image_disk_format" {
+ type = string
+ default = ""
+}
+
+variable "vm_use_block_storage" {
+ type = string
+ default = "true"
+}
+
+variable "vm_volume_size" {
+ type = string
+ default = "20"
+}
+
+source "docker" "memcached" {
+ changes = ["ENTRYPOINT [\"\"]", "CMD [\"\"]"]
+ commit = true
+ image = "${var.docker_source_image}"
+}
+
+source "openstack" "memcached" {
+ domain_name = "Default"
+ flavor = "${var.flavor}"
+ identity_endpoint = "${var.cloud_auth_url}"
+ image_name = "${var.distro} - memcached - ${var.arch} - ${legacy_isotime("20180101-1003")}"
+ metadata = {
+ ci_managed = "yes"
+ }
+ networks = ["${var.cloud_network}"]
+ password = "${var.cloud_pass}"
+ region = "ca-ymq-1"
+ source_image_name = "${var.base_image}"
+ ssh_proxy_host = "${var.ssh_proxy_host}"
+ ssh_username = "${var.ssh_user}"
+ tenant_name = "${var.cloud_tenant}"
+ user_data_file = "${var.cloud_user_data}"
+ username = "${var.cloud_user}"
+}
+
+build {
+ sources = ["source.docker.memcached", "source.openstack.memcached"]
+
+ provisioner "shell" {
+ execute_command = "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
+ scripts = ["common-packer/provision/install-python.sh"]
+ }
+
+ provisioner "shell-local" {
+ command = "./common-packer/ansible-galaxy.sh ${var.ansible_roles_path}"
+ }
+
+ provisioner "ansible" {
+ ansible_env_vars = [
+ "ANSIBLE_NOCOWS=1",
+ "ANSIBLE_PIPELINING=True",
+ "ANSIBLE_ROLES_PATH=${var.ansible_roles_path}",
+ "ANSIBLE_CALLBACK_WHITELIST=profile_tasks",
+ "ANSIBLE_STDOUT_CALLBACK=debug"
+ ]
+ command = "./common-packer/ansible-playbook.sh"
+ extra_arguments = [
+ "--scp-extra-args", "'-O'",
+ "--ssh-extra-args", "-o IdentitiesOnly=yes -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa"
+ ]
+ playbook_file = "provision/memcached.yaml"
+ skip_version_check = true
+ }
+}
--- /dev/null
+packer {
+ required_plugins {
+ openstack = {
+ version = ">= 1.0.0"
+ source = "github.com/hashicorp/openstack"
+ }
+ }
+}
+
+variable "cloud_auth_url" {
+ type = string
+ default = null
+}
+
+variable "cloud_tenant" {
+ type = string
+ default = null
+}
+
+variable "cloud_user" {
+ type = string
+ default = null
+}
+
+variable "cloud_pass" {
+ type = string
+ default = null
+}
+
+variable "source_ami_filter_name" {
+ type = string
+ default = null
+}
+
+variable "source_ami_filter_product_code" {
+ type = string
+ default = null
+}
+
+variable "source_ami_filter_owner" {
+ type = string
+ default = null
+}
+
+variable "ansible_roles_path" {
+ type = string
+ default = ".galaxy"
+}
+
+variable "arch" {
+ type = string
+ default = "x86_64"
+}
+
+variable "base_image" {
+ type = string
+ default = null
+}
+
+variable "cloud_network" {
+ type = string
+ default = null
+}
+
+variable "cloud_region" {
+ type = string
+ default = "ca-ymq-1"
+}
+
+variable "cloud_user_data" {
+ type = string
+ default = null
+}
+
+variable "distro" {
+ type = string
+ default = null
+}
+
+variable "docker_source_image" {
+ type = string
+ default = null
+}
+
+variable "flavor" {
+ type = string
+ default = "v2-highcpu-1"
+}
+
+variable "ssh_proxy_host" {
+ type = string
+ default = ""
+}
+
+variable "ssh_user" {
+ type = string
+ default = null
+}
+
+variable "vm_image_disk_format" {
+ type = string
+ default = ""
+}
+
+variable "vm_use_block_storage" {
+ type = string
+ default = "true"
+}
+
+variable "vm_volume_size" {
+ type = string
+ default = "20"
+}
+
+source "docker" "redis" {
+ changes = ["ENTRYPOINT [\"\"]", "CMD [\"\"]"]
+ commit = true
+ image = "${var.docker_source_image}"
+}
+
+source "openstack" "redis" {
+ domain_name = "Default"
+ flavor = "v1-standard-1"
+ identity_endpoint = "${var.cloud_auth_url}"
+ image_name = "${var.distro} - redis - ${var.arch} - ${legacy_isotime("20180101-1003")}"
+ metadata = {
+ ci_managed = "yes"
+ }
+ networks = ["${var.cloud_network}"]
+ password = "${var.cloud_pass}"
+ region = "ca-ymq-1"
+ source_image_name = "${var.base_image}"
+ ssh_proxy_host = "${var.ssh_proxy_host}"
+ ssh_username = "${var.ssh_user}"
+ tenant_name = "${var.cloud_tenant}"
+ user_data_file = "${var.cloud_user_data}"
+ username = "${var.cloud_user}"
+}
+
+build {
+ sources = ["source.docker.redis", "source.openstack.redis"]
+
+ provisioner "shell" {
+ execute_command = "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi"
+ scripts = ["common-packer/provision/install-python.sh"]
+ }
+
+ provisioner "shell-local" {
+ command = "./common-packer/ansible-galaxy.sh ${var.ansible_roles_path}"
+ }
+
+ provisioner "ansible" {
+ ansible_env_vars = [
+ "ANSIBLE_NOCOWS=1",
+ "ANSIBLE_PIPELINING=True",
+ "ANSIBLE_ROLES_PATH=${var.ansible_roles_path}",
+ "ANSIBLE_CALLBACK_WHITELIST=profile_tasks",
+ "ANSIBLE_STDOUT_CALLBACK=debug"
+ ]
+ command = "./common-packer/ansible-playbook.sh"
+ extra_arguments = [
+ "--scp-extra-args", "'-O'",
+ "--ssh-extra-args", "-o IdentitiesOnly=yes -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa"
+ ]
+ playbook_file = "provision/redis.yaml"
+ skip_version_check = true
+ }
+}
+++ /dev/null
-#!/bin/bash
-# Ensure we fail the job if any steps fail
-# Do not set -u as DOCKER_ARGS may be unbound
-set -e -o pipefail
-
-FULL_DATE=`date +'%Y%m%dT%H%M%S'`
-IMAGE_VERSION=`xmlstarlet sel -N "x=http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" pom.xml | cut -c1-5`
-
-case "$BUILD_MODE" in
- "STAGING")
- DOCKER_TAG="$IMAGE_VERSION"-STAGING-"$FULL_DATE"Z
- DOCKER_LATEST_TAG="$IMAGE_VERSION"-STAGING-latest
- echo "Using tags $DOCKER_TAG and $DOCKER_LATEST_TAG"
- ;;
- "SNAPSHOT")
- DOCKER_TAG="$IMAGE_VERSION"-SNAPSHOT-"$FULL_DATE"Z
- DOCKER_LATEST_TAG="$IMAGE_VERSION"-SNAPSHOT-latest
- echo "Using tags $DOCKER_TAG and $DOCKER_LATEST_TAG"
- ;;
-esac
-
-# Switch to the directory where the Dockerfile is
-cd "$DOCKER_ROOT"
-
-# DOCKERREGISTRY is purposely not using an '_' so as to not conflict with the
-# Jenkins global env var of the DOCKER_REGISTRY which the docker-login step uses
-IMAGE_NAME="$DOCKERREGISTRY/$DOCKER_NAME:$DOCKER_TAG"
-IMAGE_NAME_LATEST="$DOCKERREGISTRY/$DOCKER_NAME:$DOCKER_LATEST_TAG"
-
-# Build the docker image
-
-# Allow word splitting
-# shellcheck disable=SC2086
-docker build $DOCKER_ARGS . -t $IMAGE_NAME -t $IMAGE_NAME_LATEST | tee "$WORKSPACE/docker_build_log.txt"
-
-# Write DOCKER_IMAGE information to a file so it can be injected into the
-# environment for following steps
-echo "DOCKER_IMAGE=$IMAGE_NAME" >> "$WORKSPACE/env_inject.txt"
-echo "DOCKER_IMAGE_LATEST=$IMAGE_NAME_LATEST" >> "$WORKSPACE/env_inject.txt"
-
-
+++ /dev/null
-#!/bin/bash
-# Ensure we fail the job if any steps fail
-set -e -o pipefail
-
-# Push our image to wherever it's defined to go by the name
-docker push "$DOCKER_IMAGE"
-docker push "$DOCKER_IMAGE_LATEST"