Bug 2082496 - [osp][octavia lb] Cannot create LB type svcs or routes with the ovn octavia provider and eCCM (test only)
Summary: [osp][octavia lb] Cannot create LB type svcs or routes with the ovn octavia p...
Keywords:
Status: CLOSED DEFERRED
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Cloud Compute
Version: 4.11
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: ShiftStack Bugwatcher
QA Contact: Jon Uriarte
URL:
Whiteboard:
Depends On: 2042976 2055629 2100135 2100902
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-05-06 09:20 UTC by Jon Uriarte
Modified: 2023-03-09 01:18 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-03-09 01:18:41 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Jon Uriarte 2022-05-06 09:20:22 UTC
Description of problem:

This BZ has been filed to track the LB type svcs and routes functionality when using the OVN Octavia provider,
it's a test only BZ that needs to be verified once the depending BZs are fixed.

It depends on the bug 2042976 and on the bug 2055629 in OSP python-networking-ovn component, so the functionality
will be broken in 4.11 when using external CCM until those BZs are fixed in OSP.

Version-Release number of selected component (if applicable):
4.11.0-0.nightly-2022-05-05-015322 with eCCM as TP

How reproducible: always


Steps to Reproduce:
1. Install 4.11 with ExternalCloudProvider (no need to do it when it becomes by default)

      $ openshift-install create manifests --log-level=debug --dir=/home/stack/ostest/
      $ cd ostest/
      $ cat <<EOF >manifests/manifest_feature_gate.yaml
      apiVersion: config.openshift.io/v1
      kind: FeatureGate
      metadata:
        annotations:
          include.release.openshift.io/self-managed-high-availability: "true"
          include.release.openshift.io/single-node-developer: "true"
          release.openshift.io/create-only: "true"
        name: cluster
      spec:
        customNoUpgrade:
          enabled:
          - ExternalCloudProvider
        featureSet: CustomNoUpgrade
      EOF

      $ openshift-install create cluster --log-level=debug --dir=/home/stack/ostest/

2. Change the cloud provider Octavia config in order to use the OVN Octavia driver

$ oc get cm cloud-provider-config -n openshift-config -o yaml                                                                                                                                             
[...]
  config: |
    [Global]
    secret-name = openstack-credentials
    secret-namespace = kube-system
    ca-file = /etc/kubernetes/static-pod-resources/configmaps/cloud-config/ca-bundle.pem
    [LoadBalancer]
    use-octavia = True
    lb-provider = ovn <-------
    lb-method = SOURCE_IP_PORT <----------
kind: ConfigMap
[...]

The nodes are going to unschedulable and then back to ready, so the change is supposedly applied.

$ oc get nodes
NAME                          STATUS   ROLES    AGE     VERSION
ostest-ffjcv-master-0         Ready    master   4h46m   v1.23.3+54654d2
ostest-ffjcv-master-1         Ready    master   4h45m   v1.23.3+54654d2
ostest-ffjcv-master-2         Ready    master   4h37m   v1.23.3+54654d2
ostest-ffjcv-worker-0-7bwf8   Ready    worker   4h26m   v1.23.3+54654d2
ostest-ffjcv-worker-0-dbj9s   Ready    worker   4h26m   v1.23.3+54654d2
ostest-ffjcv-worker-0-gzjf2   Ready    worker   4h26m   v1.23.3+54654d2


3. Create the loadbalancer type svc with below manifest:

cat <<EOF | oc apply -f -
---
apiVersion: project.openshift.io/v1
kind: Project
metadata:
  name: lb-test-ns
  labels:
    kubernetes.io/metadata.name: lb-test-ns
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: lb-test-dep
  namespace: lb-test-ns
  labels:
    app: lb-test-dep
spec:
  replicas: 2
  selector:
    matchLabels:
      app: lb-test-dep
  template:
    metadata:
      labels:
        app: lb-test-dep
    spec:
      containers:
      - image: quay.io/kuryr/demo
        name: demo
---
apiVersion: v1
kind: Service
metadata:
  name: lb-test-svc
  namespace: lb-test-ns
  labels:
    app: lb-test-dep
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: lb-test-dep
  type: LoadBalancer
EOF

4. Check LB, pod and svc creation

LB
--
| 8d001d70-e891-4379-a850-2335819aa7cd | kube_service_kubernetes_lb-test-ns_lb-test-svc | a64676dfa4b24cc9adfb620fef7b6506 | 10.196.3.144 | ACTIVE              | ovn      |                                                                 


Pods
----
lb-test-ns                                         lb-test-dep-68d6754b4d-mjkkh                                1/1     Running     0               153m
lb-test-ns                                         lb-test-dep-68d6754b4d-x47fh                                1/1     Running     0               153m

svc
---
lb-test-ns    lb-test-svc            LoadBalancer   172.30.131.186   10.46.22.227      80:32383/TCP          154m                        


5. Check connectivity to the svc
$ curl 10.46.22.227


Actual results:
$ curl 10.46.22.227
(no reply)

Expected results: reply from the svc pods


Additional info:

LB pools are in PENDING_CREATE status

$ openstack loadbalancer pool list
+--------------------------------------+-------------+----------------------------------+---------------------+----------+----------------+----------------+                                                                                 
| id                                   | name        | project_id                       | provisioning_status | protocol | lb_algorithm   | admin_state_up |                                                                                 
+--------------------------------------+-------------+----------------------------------+---------------------+----------+----------------+----------------+                                                                                 
| 01c61f45-582d-42d3-b40e-ebb7537eb054 | TCP_80_pool | 42a001f17da442e9a0e894a1a7052603 | PENDING_CREATE      | TCP      | SOURCE_IP_PORT | True           |                                                                                 
| 8e62fce6-c544-4f5d-b6eb-519be6a9ace4 | TCP_80_pool | 42a001f17da442e9a0e894a1a7052603 | PENDING_CREATE      | TCP      | SOURCE_IP_PORT | True           |                                                                                 
+--------------------------------------+-------------+----------------------------------+---------------------+----------+----------------+----------------+

$ openstack loadbalancer list
+--------------------------------------+------------------------------------------------+----------------------------------+-------------+---------------------+----------+
| id                                   | name                                           | project_id                       | vip_address | provisioning_status | provider |
+--------------------------------------+------------------------------------------------+----------------------------------+-------------+---------------------+----------+
| bda68836-fea7-4827-9a18-f3a140e3c24f | kube_service_kubernetes_lb-test-ns_lb-test-svc | 42a001f17da442e9a0e894a1a7052603 | 10.196.1.19 | ACTIVE              | ovn      |
+--------------------------------------+------------------------------------------------+----------------------------------+-------------+---------------------+----------+


Issue in cloud-provider-openstack: https://github.com/kubernetes/cloud-provider-openstack/issues/1751

Comment 1 ShiftStack Bugwatcher 2022-05-07 07:04:15 UTC
Removing the Triaged keyword because:
* the priority assessment is missing
* the QE automation assessment (flag qe_test_coverage) is missing

Comment 3 Pierre Prinetti 2022-06-02 07:51:20 UTC
Punted to 4.12

Comment 5 Shiftzilla 2023-03-09 01:18:41 UTC
OpenShift has moved to Jira for its defect tracking! This bug can now be found in the OCPBUGS project in Jira.

https://issues.redhat.com/browse/OCPBUGS-9254


Note You need to log in before you can comment on or make changes to this bug.