Switch to Atomic 23

Change the devstack image to the default Atomic 23 image.
Update templates not to rely on interface naming because the names
changed between Atomic 21 and Atomic 23 images.
Add a functional test to validate minion node registration.
Update docs to refer to a generic Atomic image.

Co-Authored-By: Hongbin Lu <hongbin.lu@huawei.com>

Implements: blueprint atomic23
Change-Id: Id67244e3f452b3c7c3c46fdabcca3a5c141a76c0
This commit is contained in:
Corey O'Brien 2016-02-03 19:27:02 -05:00 committed by Hongbin Lu
parent e2def6f8d3
commit 32f917c8d7
15 changed files with 39 additions and 42 deletions

View File

@ -9,9 +9,8 @@ http://docs.openstack.org/developer/magnum/dev/dev-quickstart.html
for more information on using devstack and magnum. for more information on using devstack and magnum.
Running devstack with magnum for the first time may take a long time as it Running devstack with magnum for the first time may take a long time as it
needs to download the Fedora Atomic micro-OS qcow2 image (e.g., needs to download the Fedora Atomic qcow2 image (see
``fedora-21-atomic-5.qcow2``). If you already have this image you can copy it http://www.projectatomic.io/download/).
to /opt/stack/devstack/files first to save time.
To install magnum into devstack, add the following settings to enable the To install magnum into devstack, add the following settings to enable the
magnum plugin:: magnum plugin::

View File

@ -257,12 +257,12 @@ function init_magnum {
function magnum_register_image { function magnum_register_image {
local magnum_image_property="--property os_distro=" local magnum_image_property="--property os_distro="
local atomic="$(echo $MAGNUM_GUEST_IMAGE_URL | grep -o 'atomic' || true;)" local atomic="$(echo $MAGNUM_GUEST_IMAGE_URL | grep -io 'atomic' || true;)"
if [ ! -z $atomic ]; then if [ ! -z "$atomic" ]; then
magnum_image_property=$magnum_image_property"fedora-atomic" magnum_image_property=$magnum_image_property"fedora-atomic"
fi fi
local ubuntu="$(echo $MAGNUM_GUEST_IMAGE_URL | grep -o "ubuntu" || ture;)" local ubuntu="$(echo $MAGNUM_GUEST_IMAGE_URL | grep -io "ubuntu" || true;)"
if [ ! -z $ubuntu ]; then if [ ! -z "$ubuntu" ]; then
magnum_image_property=$magnum_image_property"ubuntu" magnum_image_property=$magnum_image_property"ubuntu"
fi fi

View File

@ -15,7 +15,16 @@ if is_service_enabled m-api m-cond; then
# add image to glance # add image to glance
if [[ "$ENABLED_SERVICES" =~ 'm-api' ]]; then if [[ "$ENABLED_SERVICES" =~ 'm-api' ]]; then
MAGNUM_GUEST_IMAGE_URL=${MAGNUM_GUEST_IMAGE_URL:-"https://fedorapeople.org/groups/magnum/fedora-21-atomic-5.qcow2"} # TODO Add a "latest" link to fedora release process
ATOMIC_IMAGE_NAME=$( \
wget --spider --level 1 \
--recursive --accept-regex=".*qcow2" \
"https://alt.fedoraproject.org/pub/alt/atomic/stable/Cloud-Images/x86_64/Images/" 2>&1 | \
grep qcow2 | \
sed 's/.*Cloud-Images\/x86_64\/Images\///' | \
head -n 1)
echo "Atomic Image: $ATOMIC_IMAGE_NAME"
MAGNUM_GUEST_IMAGE_URL=${MAGNUM_GUEST_IMAGE_URL:-"https://download.fedoraproject.org/pub/alt/atomic/stable/Cloud-Images/x86_64/Images/$ATOMIC_IMAGE_NAME"}
IMAGE_URLS+=",${MAGNUM_GUEST_IMAGE_URL}" IMAGE_URLS+=",${MAGNUM_GUEST_IMAGE_URL}"
fi fi

View File

@ -113,17 +113,15 @@ Magnum has been tested with the Fedora Atomic micro-OS and CoreOS. Magnum will
likely work with other micro-OS platforms, but each requires individual likely work with other micro-OS platforms, but each requires individual
support in the heat template. support in the heat template.
Store the Fedora Atomic micro-OS in glance. (The steps for updating Fedora Store the Fedora Atomic micro-OS in glance. Download the qcow2 Atomic image
Atomic images are a bit detailed. Fortunately one of the core developers has from https://getfedora.org/cloud/download/atomic.html and then upload it to
made Atomic images available at https://fedorapeople.org/groups/magnum):: glance::
cd ~
wget https://fedorapeople.org/groups/magnum/fedora-21-atomic-5.qcow2
glance image-create --name fedora-21-atomic-5 \ glance image-create --name fedora-21-atomic-5 \
--visibility public \ --visibility public \
--disk-format qcow2 \ --disk-format qcow2 \
--os-distro fedora-atomic \ --os-distro fedora-atomic \
--container-format bare < fedora-21-atomic-5.qcow2 --container-format bare < fedora-atomic.qcow2
Create a domain and domain admin for trust:: Create a domain and domain admin for trust::

View File

@ -185,7 +185,7 @@ when installing devstack use::
| 7f5b6a15-f2fd-4552-aec5-952c6f6d4bc7 | cirros-0.3.4-x86_64-uec | ami | ami | 25165824 | active | | 7f5b6a15-f2fd-4552-aec5-952c6f6d4bc7 | cirros-0.3.4-x86_64-uec | ami | ami | 25165824 | active |
| bd3c0f92-669a-4390-a97d-b3e0a2043362 | cirros-0.3.4-x86_64-uec-kernel | aki | aki | 4979632 | active | | bd3c0f92-669a-4390-a97d-b3e0a2043362 | cirros-0.3.4-x86_64-uec-kernel | aki | aki | 4979632 | active |
| 843ce0f7-ae51-4db3-8e74-bcb860d06c55 | cirros-0.3.4-x86_64-uec-ramdisk | ari | ari | 3740163 | active | | 843ce0f7-ae51-4db3-8e74-bcb860d06c55 | cirros-0.3.4-x86_64-uec-ramdisk | ari | ari | 3740163 | active |
| 02c312e3-2d30-43fd-ab2d-1d25622c0eaa | fedora-21-atomic-5 | qcow2 | bare | 770179072 | active | | 02c312e3-2d30-43fd-ab2d-1d25622c0eaa | fedora-atomic | qcow2 | bare | 770179072 | active |
+--------------------------------------+---------------------------------+-------------+------------------+-----------+--------+ +--------------------------------------+---------------------------------+-------------+------------------+-----------+--------+
To list the available commands and resources for magnum, use:: To list the available commands and resources for magnum, use::
@ -217,7 +217,7 @@ The coe (Container Orchestration Engine) and keypair need to be specified
as well:: as well::
magnum baymodel-create --name k8sbaymodel \ magnum baymodel-create --name k8sbaymodel \
--image-id fedora-21-atomic-5 \ --image-id fedora-atomic \
--keypair-id testkey \ --keypair-id testkey \
--external-network-id public \ --external-network-id public \
--dns-nameserver 8.8.8.8 \ --dns-nameserver 8.8.8.8 \
@ -437,7 +437,7 @@ the absence of some Kubernetes-specific arguments and the use of 'swarm'
as the coe:: as the coe::
magnum baymodel-create --name swarmbaymodel \ magnum baymodel-create --name swarmbaymodel \
--image-id fedora-21-atomic-5 \ --image-id fedora-atomic \
--keypair-id testkey \ --keypair-id testkey \
--external-network-id public \ --external-network-id public \
--dns-nameserver 8.8.8.8 \ --dns-nameserver 8.8.8.8 \

View File

@ -45,7 +45,7 @@ Create a baymodel, by default TLS is enabled in Magnum::
magnum baymodel-create --name secure-kubernetes \ magnum baymodel-create --name secure-kubernetes \
--keypair-id default \ --keypair-id default \
--external-network-id public \ --external-network-id public \
--image-id fedora-21-atomic-5 \ --image-id fedora-atomic \
--flavor-id m1.small \ --flavor-id m1.small \
--docker-volume-size 1 \ --docker-volume-size 1 \
--coe kubernetes \ --coe kubernetes \
@ -68,7 +68,7 @@ Create a baymodel, by default TLS is enabled in Magnum::
| docker_volume_size | 1 | | docker_volume_size | 1 |
| external_network_id | public | | external_network_id | public |
| cluster_distro | fedora-atomic | | cluster_distro | fedora-atomic |
| image_id | fedora-21-atomic-5 | | image_id | fedora-atomic |
| registry_enabled | False | | registry_enabled | False |
| apiserver_port | None | | apiserver_port | None |
| name | secure-kubernetes | | name | secure-kubernetes |

View File

@ -41,7 +41,7 @@ You can specify all three proxy parameters while creating baymodel of any
coe type. All of proxy parameters are optional. coe type. All of proxy parameters are optional.
magnum baymodel-create --name k8sbaymodel \ magnum baymodel-create --name k8sbaymodel \
--image-id fedora-21-atomic-5 \ --image-id fedora-atomic \
--keypair-id testkey \ --keypair-id testkey \
--external-network-id public \ --external-network-id public \
--dns-nameserver 8.8.8.8 \ --dns-nameserver 8.8.8.8 \
@ -51,7 +51,7 @@ coe type. All of proxy parameters are optional.
--https-proxy <https://abc-proxy.com:8080> \ --https-proxy <https://abc-proxy.com:8080> \
--no-proxy <172.24.4.4,172.24.4.9,172.24.4.8> --no-proxy <172.24.4.4,172.24.4.9,172.24.4.8>
magnum baymodel-create --name swarmbaymodel \ magnum baymodel-create --name swarmbaymodel \
--image-id fedora-21-atomic-5 \ --image-id fedora-atomic \
--keypair-id testkey \ --keypair-id testkey \
--external-network-id public \ --external-network-id public \
--dns-nameserver 8.8.8.8 \ --dns-nameserver 8.8.8.8 \

View File

@ -140,12 +140,6 @@ works in your case)::
ping 8.8.8.8 ping 8.8.8.8
**Note:** On the fedora-21-atomic-5 image, ping does not work because
of a known atomic bug. You can work around this problem by::
cp /usr/bin/ping .
sudo ./ping 8.8.8.8
If the ping fails, there is no route to the external internet. If the ping fails, there is no route to the external internet.
Check the following: Check the following:

View File

@ -11,7 +11,7 @@ user = admin
tenant = admin tenant = admin
pass = password pass = password
[magnum] [magnum]
image_id = fedora-21-atomic-5 image_id = fedora-atomic
nic_id = public nic_id = public
keypair_id = default keypair_id = default
flavor_id = s1.magnum flavor_id = s1.magnum

View File

@ -39,7 +39,7 @@ if [ "$NETWORK_DRIVER" == "flannel" ]; then
# Make sure etcd has a flannel configuration # Make sure etcd has a flannel configuration
. /etc/sysconfig/flanneld . /etc/sysconfig/flanneld
until curl -sf "$FLANNEL_ETCD/v2/keys/coreos.com/network/config?quorum=false&recursive=false&sorted=false" until curl -sf "$FLANNEL_ETCD/v2/keys${FLANNEL_ETCD_KEY}/config?quorum=false&recursive=false&sorted=false"
do do
echo "Waiting for flannel configuration in etcd..." echo "Waiting for flannel configuration in etcd..."
sleep 5 sleep 5

View File

@ -37,7 +37,7 @@ CLIENT_CSR=$cert_dir/client.csr
CLIENT_KEY=$cert_dir/client.key CLIENT_KEY=$cert_dir/client.key
#Get a token by user credentials and trust #Get a token by user credentials and trust
cat > auth.json << EOF auth_json=$(cat << EOF
{ {
"auth": { "auth": {
"identity": { "identity": {
@ -59,14 +59,13 @@ cat > auth.json << EOF
} }
} }
EOF EOF
)
#trust is introduced in Keystone v3 version #trust is introduced in Keystone v3 version
AUTH_URL=${AUTH_URL/v2.0/v3} AUTH_URL=${AUTH_URL/v2.0/v3}
USER_TOKEN=`curl -s -i -X POST -H "Content-Type: application/json" -d @auth.json \ USER_TOKEN=`curl -s -i -X POST -H "Content-Type: application/json" -d "$auth_json" \
$AUTH_URL/auth/tokens | grep X-Subject-Token | awk '{print $2}'` $AUTH_URL/auth/tokens | grep X-Subject-Token | awk '{print $2}'`
rm -rf auth.json
# Get CA certificate for this bay # Get CA certificate for this bay
curl -X GET \ curl -X GET \
-H "X-Auth-Token: $USER_TOKEN" \ -H "X-Auth-Token: $USER_TOKEN" \

View File

@ -44,7 +44,7 @@ SERVER_CSR=$cert_dir/server.csr
SERVER_KEY=$cert_dir/server.key SERVER_KEY=$cert_dir/server.key
#Get a token by user credentials and trust #Get a token by user credentials and trust
cat > auth.json << EOF auth_json=$(cat << EOF
{ {
"auth": { "auth": {
"identity": { "identity": {
@ -66,14 +66,13 @@ cat > auth.json << EOF
} }
} }
EOF EOF
)
#trust is introduced in Keystone v3 version #trust is introduced in Keystone v3 version
AUTH_URL=${AUTH_URL/v2.0/v3} AUTH_URL=${AUTH_URL/v2.0/v3}
USER_TOKEN=`curl -s -i -X POST -H "Content-Type: application/json" -d @auth.json \ USER_TOKEN=`curl -s -i -X POST -H "Content-Type: application/json" -d "$auth_json" \
$AUTH_URL/auth/tokens | grep X-Subject-Token | awk '{print $2}'` $AUTH_URL/auth/tokens | grep X-Subject-Token | awk '{print $2}'`
rm -rf auth.json
# Get CA certificate for this bay # Get CA certificate for this bay
curl -X GET \ curl -X GET \
-H "X-Auth-Token: $USER_TOKEN" \ -H "X-Auth-Token: $USER_TOKEN" \

View File

@ -39,7 +39,7 @@ your environment:
ssh_key_name: testkey ssh_key_name: testkey
external_network: 028d70dd-67b8-4901-8bdd-0c62b06cce2d external_network: 028d70dd-67b8-4901-8bdd-0c62b06cce2d
dns_nameserver: 192.168.200.1 dns_nameserver: 192.168.200.1
server_image: fedora-21-atomic-5 server_image: fedora-atomic
discovery_url: token://d8cdfe5128af6e1075b34aa06ff1cc2c discovery_url: token://d8cdfe5128af6e1075b34aa06ff1cc2c
And then create the stack, referencing that environment file: And then create the stack, referencing that environment file:

View File

@ -28,11 +28,10 @@ function create_test_data {
# a baymodel, bay and a pod # a baymodel, bay and a pod
coe=$1 coe=$1
if [ $coe == 'mesos' ]; then if [ $coe == 'mesos' ]; then
local image_name="ubuntu-14.04" local image_name="ubuntu-14.04"
else else
local image_name="fedora-21-atomic" local image_name="atomic"
fi fi
# if we have the MAGNUM_IMAGE_NAME setting, use it instead # if we have the MAGNUM_IMAGE_NAME setting, use it instead
@ -41,7 +40,7 @@ function create_test_data {
image_name=${MAGNUM_IMAGE_NAME:-$image_name} image_name=${MAGNUM_IMAGE_NAME:-$image_name}
export NIC_ID=$(neutron net-show public | awk '/ id /{print $4}') export NIC_ID=$(neutron net-show public | awk '/ id /{print $4}')
export IMAGE_ID=$(glance --os-image-api-version 1 image-list | grep $image_name | awk '{print $2}') export IMAGE_ID=$(glance --os-image-api-version 1 image-list | grep -i $image_name | awk '{print $2}')
# pass the appropriate variables via a config file # pass the appropriate variables via a config file
CREDS_FILE=$MAGNUM_DIR/functional_creds.conf CREDS_FILE=$MAGNUM_DIR/functional_creds.conf

View File

@ -29,7 +29,7 @@ magnum_group = cfg.OptGroup(name="magnum", title="Magnum Options")
MagnumGroup = [ MagnumGroup = [
cfg.StrOpt("image_id", cfg.StrOpt("image_id",
default="fedora-21-atomic-5", default="fedora-atomic",
help="Image id to be used for baymodel."), help="Image id to be used for baymodel."),
cfg.StrOpt("nic_id", cfg.StrOpt("nic_id",