Switch to using upstream fuel-ccp project

This commit is contained in:
Aleksandr Didenko 2016-07-07 19:30:36 +02:00
parent b4dfd8c973
commit 8b3112d287
11 changed files with 68 additions and 289 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
ssh
nodes

6
Vagrantfile vendored
View file

@ -89,6 +89,12 @@ Vagrant.configure("2") do |config|
:libvirt__network_name => "#{$instance_name_prefix}-private",
:libvirt__dhcp_enabled => false,
:libvirt__forward_mode => "none"
# "neutron" isolated network
test_vm.vm.network :private_network,
:model_type => "e1000",
:libvirt__network_name => "#{$instance_name_prefix}-neutron",
:libvirt__dhcp_enabled => false,
:libvirt__forward_mode => "none"
# Provisioning
config.vm.provision "file", source: "ssh", destination: "~/ssh"

View file

@ -24,5 +24,5 @@ kargo --version || (
test -f ./nodes || cp /var/tmp/nodes ./nodes
# Either pull or copy microservices repos
cp -a /var/tmp/microservices* ./ccp/
cp -a /var/tmp/microservices* ./ccp/ || touch /var/tmp/ccp-download

View file

@ -1,94 +0,0 @@
#!/bin/bash
set -e
PREBUILT="$1"
create_mcp_conf() {
echo "Create mcp config"
cat > /root/mcp.conf << EOF
[builder]
push = True
[registry]
address = "127.0.0.1:31500"
[kubernetes]
environment = "openstack"
[repositories]
skip_empty = True
EOF
}
create_mirantis_mcp_conf() {
echo "Create mcp config"
cat > /root/mcp.conf << EOF
[builder]
push = False
[registry]
address = "registry01-bud.ng.mirantis.net"
insecure = True
[images]
namespace = "nextgen"
[kubernetes]
environment = "openstack"
[repositories]
skip_empty = True
EOF
}
create_resolvconf() {
DNS_IP=`kubectl get service/kubedns --namespace=kube-system --template={{.spec.clusterIP}}`
cat > /root/resolv.conf << EOF
search openstack.svc.cluster.local svc.cluster.local cluster.local default.svc.cluster.local svc.cluster.local cluster.local
nameserver $DNS_IP
options attempts:2
options ndots:5
EOF
}
create_registry() {
if kubectl get pods | grep registry ; then
echo "Registry is already running"
else
echo "Create registry"
kubectl create -f registry_pod.yaml
kubectl create -f registry_svc.yaml
fi
}
build_images() {
echo "Waiting for registry to start..."
while true
do
STATUS=$(kubectl get pod | awk '/registry/ {print $3}')
if [ "$STATUS" == "Running" ]
then
break
fi
sleep 1
done
mcp-microservices --config-file /root/mcp.conf build &> /var/log/mcp-build.log
}
hack_images() {
# useless, but let's keep it just in case we need to hack something else
for dir in ~/microservices-repos/ms-*/docker/* ; do
cp /root/resolv.conf $dir/
sed '/MAINTAINER/a COPY resolv.conf /var/tmp/resolv.conf' -i $dir/Dockerfile.j2
done
}
create_registry
if [ -n "$PREBUILT" ]; then
create_mirantis_mcp_conf
else
create_mcp_conf
build_images
fi

View file

@ -1,49 +0,0 @@
#!/bin/bash
set -e
# FIXME: hardcoded roles
declare -A nodes
nodes=( \
["node2"]="openstack-controller=true"
["node3"]="openstack-controller=true"
["node4"]="openstack-controller=true"
["node5"]="openstack-compute=true"
["node6"]="openstack-compute=true"
["node7"]="openstack-compute=true"
)
create_network_conf() {
if [ -f /root/cluster-topology.yaml ] ; then
echo "/root/cluster-topology.yaml already exists"
else
kubectl get nodes -o go-template='{{range .items}}{{range .status.addresses}}{{if or (eq .type "ExternalIP") (eq .type "LegacyHostIP")}}{{.address}}{{print "\n"}}{{end}}{{end}}{{end}}'> /tmp/nodes
( echo "network:"; i=2; for ip in `cat /tmp/nodes `; do echo -e " node$i:\n private:\n address: $ip"; i=$(( i+=1 )) ; done ) > /root/cluster-topology.yaml
fi
}
assign_node_roles() {
all_label='openstack-compute-controller=true'
for i in "${!nodes[@]}"
do
node=$i
label=${nodes[$i]}
kubectl get nodes $node --show-labels | grep -q "$label" || kubectl label nodes $node $label
kubectl get nodes $node --show-labels | grep -q "$all_label" || kubectl label nodes $node $all_label
done
}
delete_namespace() {
if kubectl get namespace | grep -q ^openstack ; then
kubectl delete namespace openstack && while kubectl get namespace | grep -q ^openstack ; do sleep 5; done
fi
}
deploy_microservices() {
mcp-microservices --config-file=/root/mcp.conf --deploy-config=deploy-config.yaml deploy &> /var/log/mcp-deploy.log
}
create_network_conf
assign_node_roles
delete_namespace
deploy_microservices

View file

@ -1,92 +0,0 @@
#!/bin/bash
set -e
GERRIT_USER=${1:-$USER}
LOCAL_REPO="microservices-repos"
PROTO="ssh://$GERRIT_USER@"
REMOTE_REPOS="
review.fuel-infra.org:29418/nextgen/ms-aodh
review.fuel-infra.org:29418/nextgen/ms-ceilometer
review.fuel-infra.org:29418/nextgen/ms-ceph
review.fuel-infra.org:29418/nextgen/ms-cinder
review.fuel-infra.org:29418/nextgen/ms-debian-base
review.fuel-infra.org:29418/nextgen/ms-designate
review.fuel-infra.org:29418/nextgen/ms-elasticsearch
review.fuel-infra.org:29418/nextgen/ms-ext-config
review.fuel-infra.org:29418/nextgen/ms-glance
review.fuel-infra.org:29418/nextgen/ms-grafana
review.fuel-infra.org:29418/nextgen/ms-heat
review.fuel-infra.org:29418/nextgen/ms-horizon
review.fuel-infra.org:29418/nextgen/ms-influxdb
review.fuel-infra.org:29418/nextgen/ms-ironic
review.fuel-infra.org:29418/nextgen/ms-keystone
review.fuel-infra.org:29418/nextgen/ms-kibana
review.fuel-infra.org:29418/nextgen/ms-lma
review.fuel-infra.org:29418/nextgen/ms-magnum
review.fuel-infra.org:29418/nextgen/ms-manila
review.fuel-infra.org:29418/nextgen/ms-mariadb
review.fuel-infra.org:29418/nextgen/ms-memcached
review.fuel-infra.org:29418/nextgen/ms-mistral
review.fuel-infra.org:29418/nextgen/ms-mongodb
review.fuel-infra.org:29418/nextgen/ms-murano
review.fuel-infra.org:29418/nextgen/ms-neutron
review.fuel-infra.org:29418/nextgen/ms-nova
review.fuel-infra.org:29418/nextgen/ms-openstack-base
review.fuel-infra.org:29418/nextgen/ms-openvswitch
review.fuel-infra.org:29418/nextgen/ms-rabbitmq
review.fuel-infra.org:29418/nextgen/ms-sahara
review.fuel-infra.org:29418/nextgen/ms-swift
review.fuel-infra.org:29418/nextgen/ms-tempest
review.fuel-infra.org:29418/nextgen/ms-toolbox
review.fuel-infra.org:29418/nextgen/ms-trove
review.fuel-infra.org:29418/nextgen/ms-zaqar
"
cleanup() {
mkdir -p $LOCAL_REPO
rm -rf $LOCAL_REPO/ms-*
rm -rf microservices
}
fetch_mcp() {
git clone "${PROTO}review.fuel-infra.org:29418/nextgen/microservices"
# pushd microservices
# git review -d 22660
# popd
}
fetch_repos() {
pushd $LOCAL_REPO
for remote in $REMOTE_REPOS ; do
git clone "${PROTO}${remote}"
done
popd
}
fetch_app_def() {
echo "Fetch app-def repos"
neutron=21886
ovs=21951
nova=21871
cd $LOCAL_REPO
cd ms-neutron
git review -d $neutron
cd -
cd ms-openvswitch
git review -d $ovs
cd -
cd ms-nova
git review -d $nova
cd -
}
cleanup
fetch_mcp
fetch_repos
#fetch_app_def
echo "Microservices pull is complete"

16
ccp/ccp.conf Normal file
View file

@ -0,0 +1,16 @@
[DEFAULT]
deploy_config = /root/ccp/deploy-config.yaml
[builder]
push = True
[registry]
address = "127.0.0.1:31500"
[kubernetes]
namespace = "openstack"
[repositories]
skip_empty = True
protocol = https
port = 443

View file

@ -1,2 +1,4 @@
configs:
neutron_external_interface: eth1
public_interface: eth1
private_interface: eth2
neutron_external_interface: eth3

View file

@ -1,28 +0,0 @@
diff --git a/microservices/build.py b/microservices/build.py
index 1f26b5a..e419343 100644
--- a/microservices/build.py
+++ b/microservices/build.py
@@ -84,7 +84,7 @@ def find_dockerfiles(repository_name, tmp_dir, match=True):
return dockerfiles
-IMAGE_FULL_NAME_RE = "(([\\w_-]+)\\/)?([\\w_-]+)(:([\\w_.-]+))?"
+IMAGE_FULL_NAME_RE = "(.*\/)?(([\\w_-]+)\\/)?([\\w_-]+)(:([\\w_.-]+))?"
IMAGE_FULL_NAME_PATTERN = re.compile(IMAGE_FULL_NAME_RE)
DOCKER_FILE_FROM_PATTERN = re.compile(
diff --git a/microservices/common/jinja_utils.py b/microservices/common/jinja_utils.py
index c9c8cd2..37ff6f2 100644
--- a/microservices/common/jinja_utils.py
+++ b/microservices/common/jinja_utils.py
@@ -16,6 +16,9 @@ def str_to_bool(text):
def jinja_render(path):
variables = {k: v for k, v in CONF.images.items()}
+ if CONF.builder.push and CONF.registry.address:
+ variables['namespace'] = '%s/%s' % (CONF.registry.address,
+ variables['namespace'])
env = jinja2.Environment(loader=jinja2.FileSystemLoader(
os.path.dirname(path)))

View file

@ -1,31 +1,45 @@
- hosts: all
tasks:
- lineinfile:
dest: /etc/hosts
regexp: 'registry01-bud.ng.mirantis.net'
line: '172.16.180.121 registry01-bud.ng.mirantis.net'
- hosts: kube-master
pre_tasks:
- name: Rsync CCP repos
synchronize: src=../ccp/microservices-repos/ dest=/root/microservices-repos/
- name: Rsync MCP scripts and repo
- name: Download fuel-ccp
shell: git clone https://git.openstack.org/openstack/fuel-ccp
args:
chdir: /usr/local/src
creates: /usr/local/src/fuel-ccp/setup.py
- name: Upload ccp configs to master nodes
synchronize:
src: ../ccp/
dest: /root/ccp/
rsync_opts:
- "--exclude=/microservices-repos"
tasks:
- name: Install MCP cli tool
shell: "{{ item }}"
- name: Install CCP cli tool
shell: pip install -U fuel-ccp/
args:
chdir: /root/ccp/microservices/
chdir: /usr/local/src
creates: /usr/local/bin/mcp-microservices
with_items:
- pip install .
- python setup.py develop
- name: Build CCP images
shell: ./ccp-build.sh
- name: Get pods
shell: kubectl get pods
register: get_pod
run_once: true
- name: Get services
shell: kubectl get svc
register: get_svc
run_once: true
- name: Create registry pod
shell: kubectl create -f registry_pod.yaml
args:
chdir: /root/ccp
run_once: true
- name: Create registry svc
shell: kubectl create -f registry_svc.yaml
args:
chdir: /root/ccp
run_once: true
when: get_svc.stdout.find('registry') == -1
- name: Fetch CCP images
shell: mcp-microservices --config-file=/root/ccp/ccp.conf fetch
chdir: /usr/local/src
run_once: true
- name: Build CCP images
shell: mcp-microservices --config-file=/root/ccp/ccp.conf build
args:
chdir: /root/ccp
run_once: true

View file

@ -1,14 +1,17 @@
- hosts: kube-master
pre_tasks:
- name: Rsync MCP scripts and repo
- name: Rsync CCP configs
synchronize:
src: ../ccp/
dest: /root/ccp/
rsync_opts:
- "--exclude=/microservices-repos"
tasks:
- name: Get namespaces
shell: kubectl get namespace
register: get_ns
run_once: true
- name: Deploy CCP
shell: ./ccp-deploy.sh
shell: mcp-microservices --config-file=/root/ccp/ccp.conf deploy
args:
chdir: /root/ccp
run_once: true
when: get_ns.stdout.find('openstack') == -1