diff --git a/helm/microservice/registry-deployment/Chart.yaml b/helm/microservice/registry-deployment/Chart.yaml new file mode 100644 index 000000000..387b1bcfb --- /dev/null +++ b/helm/microservice/registry-deployment/Chart.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +version: 0.7.0-1 +description: private docker registry +name: registry-deployment +keywords: + - docker + - registry +home: http://www.openstack.org +sources: + - http://github.com/openstack +engine: gotpl diff --git a/helm/microservice/registry-deployment/templates/registry.yaml b/helm/microservice/registry-deployment/templates/registry.yaml new file mode 100644 index 000000000..48846c34f --- /dev/null +++ b/helm/microservice/registry-deployment/templates/registry.yaml @@ -0,0 +1,79 @@ +{{- $replicas := .Values.replicas }} +{{- $svcName := .Values.svc_name }} +{{- $initLoad := .Values.initial_load }} +{{- $distro := .Values.distro }} +{{- $type := .Values.type }} +{{- $branch := .Values.branch }} +{{- $nodePort := .Values.node_port }} +{{- $initImage := .Values.init_image }} +{{- $initImageV := .Values.init_image_version }} +{{- $registryImage := .Values.registry_image }} +{{- $registryImageV := .Values.registry_image_version }} +{{- $tarballURL := .Values.tarball_url }} +--- +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: {{ $svcName }} +spec: + replicas: {{ $replicas }} + template: + metadata: + labels: + service: {{ $svcName }} + spec: + initContainers: + - name: init-myservice + image: "{{ $initImage }}:{{ $initImageV }}" + imagePullPolicy: IfNotPresent + command: + - /bin/bash + - -ec + - | +{{- if $initLoad }} + fn='{{ $distro }}-{{ $type }}-registry-{{ $branch }}.tar.gz'; + echo $fn; + curl {{ $tarballURL }}$fn | tar -C /var/lib/registry/ -xzvf -; +{{- end }} + echo Registry is all ready serving images...; + volumeMounts: + - name: image-store + mountPath: /var/lib/registry + containers: + - name: registry + image: "{{ $registryImage }}:{{ $registryImageV }}" + imagePullPolicy: IfNotPresent + resources: + limits: + cpu: 100m + memory: 256Mi + env: + - name: REGISTRY_HTTP_ADDR + value: ":4000" + - name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY + value: "/var/lib/registry" + volumeMounts: + - name: image-store + mountPath: /var/lib/registry + ports: + - containerPort: 4000 + name: registry + protocol: TCP + volumes: + - name: image-store + emptyDir: {} +--- +apiVersion: v1 +kind: Service +metadata: + name: {{ $svcName }} +spec: + selector: + service: {{ $svcName }} + ports: + - name: registry + port: 4000 + protocol: TCP + nodePort: {{ $nodePort }} + type: NodePort +--- diff --git a/helm/microservice/registry-deployment/values.yaml b/helm/microservice/registry-deployment/values.yaml new file mode 100644 index 000000000..e2e9a6080 --- /dev/null +++ b/helm/microservice/registry-deployment/values.yaml @@ -0,0 +1,12 @@ +svc_name: kube-registry +node_port: 30400 +initial_load: false +replicas: 1 +distro: centos +type: source +branch: master +init_image: centos +init_image_version: latest +registry_image: registry +registry_image_version: 2 +tarball_url: http://tarballs.openstack.org/kolla/images/ diff --git a/tests/bin/common_iscsi_config_v5.sh b/tests/bin/common_iscsi_config_v5.sh new file mode 100755 index 000000000..21cb1c330 --- /dev/null +++ b/tests/bin/common_iscsi_config_v5.sh @@ -0,0 +1,48 @@ +function common_iscsi_config { + echo "global:" + echo " kolla:" + echo " all:" + echo " docker_registry: 127.0.0.1:30401" + echo " docker_namespace: lokolla" + echo " image_tag: 5.0.0" + echo " storage_provider: host" + echo " install_type: source" + echo " storage_provider_fstype: xfs" + echo " ceph_backend: false" + echo " kolla_toolbox_image_tag: 5.0.0" + echo " haproxy_image_tag: 5.0.0" + echo " fluentd_image_tag: 5.0.0" + echo " kubernetes_entrypoint_image_tag: 5.0.0" + echo " lvm_backends:" + echo " - '172.18.0.1': 'cinder-volumes'" + echo " cinder:" + echo " all:" + echo " image_tag: 5.0.0" + echo " volume_lvm:" + echo " all:" + echo " element_name: cinder-volume" + echo " nova:" + echo " all:" + echo " image_tag: 5.0.0" + echo " placement_api_enabled: true" + echo " cell_enabled: true" + echo " api:" + echo " create_cell:" + echo " job:" + echo " cell_wait_compute: false" + echo " ironic:" + echo " all:" + echo " image_tag: 5.0.0" + echo " conductor:" + echo " all:" + echo " ironic_api_ip: 172.21.0.10" + echo " ironic_provision_cidr: 172.21.0.0/24" + echo " inspector:" + echo " all:" + echo " initramfs_url: http://tarballs.openstack.org/ironic-python-agent/tinyipa/files/tinyipa-stable-newton.gz" + echo " kernel_url: http://tarballs.openstack.org/ironic-python-agent/tinyipa/files/tinyipa-stable-newton.vmlinuz" + echo " ironic_dhcp_range: net2,172.22.0.10,172.22.0.20,255.255.255.0" + echo " horizon:" + echo " all:" + echo " image_tag: 5.0.0" +} diff --git a/tests/bin/deploy_iscsi_common.sh b/tests/bin/deploy_iscsi_common.sh index 73144c26b..5a8f8f10a 100755 --- a/tests/bin/deploy_iscsi_common.sh +++ b/tests/bin/deploy_iscsi_common.sh @@ -13,6 +13,7 @@ function iscsi_config { function check_for_nova { for service in nova-scheduler nova-conductor nova-compute; do + nova service-list str=$(nova service-list | grep $service | awk '{print $12}') status=${str%%[[:space:]]*} if [ "x$status" != "xup" ]; then @@ -27,7 +28,7 @@ function wait_for_openstack { count=0 while true; do [ $count -gt 60 ] && echo Wait for openstack services failed... \ - && return -1 + && return 1 echo "Check for nova" check_for_nova retcode=$? @@ -40,6 +41,7 @@ function wait_for_openstack { fi done set -e + return 0 } function deploy_iscsi_common { @@ -61,11 +63,15 @@ IRONIC_CONDUCTOR_IP=${6:-172.21.0.10} DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )" . "$DIR/tests/bin/common_workflow_config.sh" -if [ "x$branch" == "x4" ]; then -. "$DIR/tests/bin/common_iscsi_config_v4.sh" -else -. "$DIR/tests/bin/common_iscsi_config.sh" -fi + +case "$branch" in +4) . "$DIR/tests/bin/common_iscsi_config_v4.sh" + ;; +t) . "$DIR/tests/bin/common_iscsi_config_v5.sh" + ;; +*) . "$DIR/tests/bin/common_iscsi_config.sh" + ;; +esac general_config $IP $base_distro $tunnel_interface $branch > /tmp/general_config.yaml iscsi_config > /tmp/iscsi_config.yaml @@ -528,7 +534,14 @@ $DIR/tools/wait_for_pods.sh kolla $DIR/tools/build_local_admin_keystonerc.sh . ~/keystonerc_admin -wait_for_openstack +# +# NOTE(sbezverk) In current master nova service-list commands +# comes back empty if cell has not been already deployed. +# As a result we cannot wait for nova services to be up and +# need to deploy cell0 right away. +if [ "x$branch" != "xt" ]; then + wait_for_openstack +fi if [ "x$branch" != "x2" -a "x$branch" != "x3" ]; then helm install kolla/nova-cell0-create-db-job --version $VERSION \ diff --git a/tools/helm_prebuild_microservices.py b/tools/helm_prebuild_microservices.py index 171151a41..2bf21b5f8 100755 --- a/tools/helm_prebuild_microservices.py +++ b/tools/helm_prebuild_microservices.py @@ -194,6 +194,10 @@ def main(): merge_dict(pkg_values, values['common-mariadb']) if package in values: merge_dict(pkg_values, values[package]) + if package == "registry-deployment": + sys.stdout.write("\rSkip registry chart") + sys.stdout.flush() + continue with open(os.path.join(microdir, package, "values.yaml"), "w") as f: f.write("# This file is generated. Please edit all_values.yaml\n") f.write("# and rerun tools/helm_prebuild.py\n") diff --git a/tools/setup_gate.sh b/tools/setup_gate.sh index ded92e217..8a3abb325 100755 --- a/tools/setup_gate.sh +++ b/tools/setup_gate.sh @@ -28,8 +28,12 @@ case "$BRANCH" in sed -i 's/2\.0\.2/4.0.0/g' tests/conf/ceph-all-in-one/kolla_config ;; "t" ) - echo Version: $BRANCH is not implemented yet. - exit 1 + sed -i 's/2\.0\.2/5.0.0/g' helm/all_values.yaml + sed -i 's/2\.0\.2/5.0.0/g' tests/conf/ceph-all-in-one/kolla_config + if [ "x$4" != "xiscsi" ]; then + echo CEPH workflow for branch "$BRANCH" is not implemented yet. Exiting... + exit 1 + fi ;; "2" ) sed -i 's/cell_enabled.*/cell_enabled: false/g' helm/service/nova-control/values.yaml diff --git a/tools/setup_gate_iscsi.sh b/tools/setup_gate_iscsi.sh index 820407d1d..fd337f96d 100755 --- a/tools/setup_gate_iscsi.sh +++ b/tools/setup_gate_iscsi.sh @@ -77,6 +77,9 @@ elif [ "x$4" == "xironic" ]; then elif [ "x$4" == "xhelm-operator" ]; then echo "Not yet implemented..." "$4" "$2" "$BRANCH" else + if [ "x$BRANCH" == "xt" ]; then + tools/setup_registry.sh $DISTRO $TYPE $BRANCH + fi tests/bin/iscsi_generic_workflow.sh "$4" "$2" "$BRANCH" fi diff --git a/tools/setup_registry.sh b/tools/setup_registry.sh new file mode 100755 index 000000000..2ca91926c --- /dev/null +++ b/tools/setup_registry.sh @@ -0,0 +1,22 @@ +#!/bin/bash -e +# +# Passed parameters: $1 - Distro, $2 - Type, +# $3 - Branch +# +Distro="$1" +Type="$2" +Branch="$3" +VERSION=0.7.0-1 + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/" && pwd )" + +echo "Deploying registry for: $Distro - $Type - $Branch" + +helm install kolla/registry-deployment --version $VERSION --debug \ + --namespace kolla --name registry \ + --set initial_load=true --set node_port=30401 \ + --set distro=$Distro --set type=$Type + +$DIR/wait_for_pods.sh kolla 600 + +echo "Registry with images for: $Distro - $Type - $Branch is running..."