Install via Openstack-helm

Overview

This document specifies procedure for installing tacker service with OpenStack-helm. The goal of OpenStack-helm is to provide a collection of Helm charts that simply, resiliently, and flexibly deploy OpenStack and related services on Kubernetes.

Pre-Requisites for Tacker installation with openstack-helm

Pre-requisite for tacker installation are below:

  1. Clone OpenStack-helm and openstack-helm-infra code in home directory.

    $ git clone https://opendev.org/openstack/openstack-helm.git
    $ git clone https://opendev.org/openstack/openstack-helm-infra.git
    $ cd openstack-helm
    
  2. Setup Kubernetes.

    Please refer to install dependencies of Kubernetes Installation [1].

  3. Create namespace with name openstack and provide label to node.

    $ kubectl create ns openstack
    $ kubectl label node <node-name> openstack-control-plane=enabled
    
  4. Setup OpenStack.

    Please refer to install following dependencies of OpenStack Installation:

    • Deploy ingress controller [2].

    • Deploy OpenStack backend [3].

    • Deploy OpenStack [4].

    Here you can see how to install OpenStack and it’s dependencies using openstack-helm.

Note

Barbican must be installed. Although not documented in Deploy OpenStack [4], you must install Barbican using similar procedure. Execute the following script to install Barbican.

$ cd ~/openstack-helm
$ ./tools/deployment/component/barbican/barbican.sh

Install Tacker

  1. Tacker installation with OpenStack-helm will use script tacker.sh.

    Use script tacker.sh to install tacker.

    $ cd ~/openstack-helm
    $ ./tools/deployment/component/tacker/tacker.sh
    
  2. Validate tacker-conductor and tacker-server pods are running and deployment status of helm release is deployed.

    $ kubectl get pods -A | grep tacker
    openstack          tacker-conductor-654fc7478-wt242                                1/1     Running     0             58m
    openstack          tacker-db-init-nxd7c                                            0/1     Completed   0             58m
    openstack          tacker-db-sync-kmf27                                            0/1     Completed   0             58m
    openstack          tacker-ks-endpoints-hbwnh                                       0/3     Completed   0             58m
    openstack          tacker-ks-service-7t8pm                                         0/1     Completed   0             58m
    openstack          tacker-ks-user-8blcj                                            0/1     Completed   0             58m
    openstack          tacker-rabbit-init-tlbj8                                        0/1     Completed   0             58m
    openstack          tacker-server-55fcdfdc5d-gj844                                  1/1     Running     0             58m
    
    $ helm ls -A | grep tacker
    tacker                  openstack       1               2024-01-05 13:02:43.337535539 +0000 UTC deployed        tacker-0.1.2            v1.0.0s
    
  3. Validate Tacker api is working properly.

    $ TACKER_SERVER_POD=tacker-server-55fcdfdc5d-gj844
    $ kubectl exec -n openstack -it $TACKER_SERVER_POD \
       -- curl -i -X POST -H "Content-Type: application/json" \
       -d '{"auth":{"identity":{"methods":["password"],"password":{"user":{"domain":{"name":"default"},"name":"admin","password":"password"}}},"scope":{"project":{"domain":{"name":"default"},"name":"admin"}}}}' \
       http://keystone-api.openstack.svc.cluster.local:5000/v3/auth/tokens
    Defaulted container "tacker-server" out of: tacker-server, init (init)
    HTTP/1.1 201 CREATED
    Date: Mon, 08 Jan 2024 11:22:50 GMT
    Server: Apache
    Content-Length: 7264
    X-Subject-Token: gAAAAABlm9sKwC-dJi_yWI8ea7HmEM-Xv3RisrODnAc6Qebqhg9OOuCPBcddk5P8qdSyIAJnMOZwVYgXyYPXLIwr7Zrn5eCCnYJ-YxnVS6nj_8DQLExTFfiFRrwz93LeULzLTKLmjWoo8QslBpk1cuz-uXf7rtny784duFjhUAOjoDYfv16aebI
    Vary: X-Auth-Token
    x-openstack-request-id: req-425da814-d3c7-4e7f-ad2f-ec19159fcbb0
    Content-Type: application/json
    
    $ TOKEN=gAAAAABlm9sKwC-dJi_yWI8ea7HmEM-Xv3RisrODnAc6Qebqhg9OOuCPBcddk5P8qdSyIAJnMOZwVYgXyYPXLIwr7Zrn5eCCnYJ-YxnVS6nj_8DQLExTFfiFRrwz93LeULzLTKLmjWoo8QslBpk1cuz-uXf7rtny784duFjhUAOjoDYfv16aebI
    

    API request to the Tacker API endpoint for retrieving list vnf instances.

    $ kubectl get pods -A -o wide | grep tacker-server
    openstack          tacker-server-55fcdfdc5d-gj844                                  1/1     Running     0             15d    192.168.219.119   master   <none>           <none>
    
    $ curl -X GET http://192.168.219.119:9890/vnflcm/v2/vnf_instances -H "X-Auth-Token:$TOKEN" -H "Version: 2.0.0"
    []
    

References