Project

General

Profile

Actions

Task #12340

open

Evaluate openstack helm charts

Added by Nico Schottelius 4 months ago. Updated 4 months ago.

Status:
In Progress
Priority:
Normal
Target version:
-
Start date:
01/06/2024
Due date:
% Done:

0%

Estimated time:
PM Check date:

Description

Objective

  • Find out whether we can run openstack with it in our IPv6 only clusters

Summary

  • Seems to be very fragile / unfinished status
    • Charts are distributed in 2 repositories
    • No released charts so far, cannot just run helm upgrade --install against a chart repo
    • A lot of distributed files in the repos
    • ceph-adaptor seems to be IPv4 based (splitting address on dots)
  • Might be possible to build on top of it, but might need quite some involvement

Progress

  • Try to stick to "in order setup"
  • But when one item is blocked, setup other components that might crash due to missing dependencies

Base documentation

Communication

Components

OpenStack client

  • Is installed on the local machine
  • Installs some python and creates a config file
  • Installs python packages as root / using pip
    • cmd2 python-openstackclient python-heatclient

Ceph

  • ./tools/deployment/ceph/ceph-rook.sh
    • setups up rook in rook-ceph namespace
    • also saw ceph namespace somewhere
      • ceph cluster is put into ceph namespace
      • operator is in rook-ceph
    • sets min_size=1 for testing
    • uses loop devices
  • ./tools/deployment/ceph/ceph-adapter-rook.sh
    • builds a helm chart first: /home/nico/osh/openstack-helm-infra/ceph-adapter-rook-0.1.0.tgz
    • maybe can reference the chart directly from the git repo
  • There is also ./tools/deployment/ceph/ceph.sh, not sure for what, not mentioned in doc

Ingress

  • for outside reachability, as usual

rabbitmq

MariaDB

Memcached

Keystone

  • Identity management
  • ./tools/deployment/component/keystone/keystone.sh

Heat

  • Templating / infra
  • Unclear
  • ./tools/deployment/component/heat/heat.sh

Glance

  • Image service
  • ./tools/deployment/component/glance/glance.sh

Placement, Nova, Neutron

  • OpenStack Nova is the compute service
  • Neutron is the networking service
  • Using openswitch, probably in hostnetwork mode (guess)
cd ~/osh/openstack-helm
./tools/deployment/component/compute-kit/openvswitch.sh
./tools/deployment/component/compute-kit/libvirt.sh
./tools/deployment/component/compute-kit/compute-kit.sh

Cinder

  • block storage service
  • probably interacts with ceph
  • not sure yet how/where the monitor is set, might be in the rook step
cd ~/osh/openstack-helm
./tools/deployment/component/cinder/cinder.sh

Image management (ceph?)

  • Should be able to use thin provisioning

Related issues 1 (0 open1 closed)

Related to Open Infrastructure - Task #12339: Evaluate yaaok for openstack in k8sClosedNico Schottelius01/06/2024

Actions
Actions #1

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
  • Status changed from Seen to In Progress
Actions #2

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #3

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #4

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)

setup / steps

mkdir ~/osh
cd ~/osh
git clone https://opendev.org/openstack/openstack-helm.git
git clone https://opendev.org/openstack/openstack-helm-infra.git
export OPENSTACK_RELEASE=2023.2
export CONTAINER_DISTRO_NAME=ubuntu
export CONTAINER_DISTRO_VERSION=jammy

Prepare the cluster

[16:20] nb3:openstack-helm% cat ./tools/deployment/common/prepare-k8s.sh
#!/bin/bash
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -ex

# Add labels to the core namespaces & nodes
kubectl label --overwrite namespace default name=default
kubectl label --overwrite namespace kube-system name=kube-system
kubectl label --overwrite namespace kube-public name=kube-public
kubectl label --overwrite nodes --all openstack-control-plane=enabled
kubectl label --overwrite nodes --all openstack-compute-node=enabled
kubectl label --overwrite nodes --all openvswitch=enabled
kubectl label --overwrite nodes --all linuxbridge=enabled
kubectl label --overwrite nodes --all ceph-mon=enabled
kubectl label --overwrite nodes --all ceph-osd=enabled
kubectl label --overwrite nodes --all ceph-mds=enabled
kubectl label --overwrite nodes --all ceph-rgw=enabled
kubectl label --overwrite nodes --all ceph-mgr=enabled
# We deploy l3 agent only on the node where we run test scripts.
# In this case virtual router will be created only on this node
# and we don't need L2 overlay (will be implemented later).
kubectl label --overwrite nodes -l "node-role.kubernetes.io/control-plane" l3-agent=enabled

kubectl label --overwrite nodes -l "node-role.kubernetes.io/control-plane" openstack-network-node=enabled

for NAMESPACE in ceph openstack osh-infra; do
tee /tmp/${NAMESPACE}-ns.yaml << EOF
apiVersion: v1
kind: Namespace
metadata:
  labels:
    kubernetes.io/metadata.name: ${NAMESPACE}
    name: ${NAMESPACE}
  name: ${NAMESPACE}
EOF

kubectl apply -f /tmp/${NAMESPACE}-ns.yaml
done

make all
Actions #5

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #6

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #7

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #8

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #9

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #10

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #11

Updated by Nico Schottelius 4 months ago

Setup ceph (in progress)

Actions #12

Updated by Nico Schottelius 4 months ago

Setup openstack client (TBD)

Actions #13

Updated by Nico Schottelius 4 months ago

  • Project changed from 45 to Open Infrastructure

Marked ticket public for public review

Actions #14

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #15

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #16

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #17

Updated by Nico Schottelius 4 months ago

  • Related to Task #12339: Evaluate yaaok for openstack in k8s added
Actions #18

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions #19

Updated by Nico Schottelius 4 months ago

  • Description updated (diff)
Actions

Also available in: Atom PDF