Bug 1400717

Summary: Despite accurate cloud-provider config for OpenStack, OpenShift does not recognize the cloud-provider
Product: OpenShift Container Platform Reporter: Eric Jones <erjones>
Component: NodeAssignee: Seth Jennings <sjenning>
Status: CLOSED NOTABUG QA Contact: DeShuai Ma <dma>
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.3.0CC: aos-bugs, decarr, jokerman, mmccomas, thomas.laporte
Target Milestone: ---Keywords: Unconfirmed
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-01-04 19:06:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Eric Jones 2016-12-01 22:48:09 UTC
The master-config.yaml for the masters are identical and all properly reference the relevant OpenStack information, but after restarting the master services, the logs display "No cloud provider specified".

master-config.yaml:
...
kubernetesMasterConfig:
...
  apiServerArguments:
    cloud-config:
    - /etc/origin/cloudprovider/openstack.conf
    cloud-provider:
    - openstack
  controllerArguments:
    cloud-config:
    - /etc/origin/cloudprovider/openstack.conf
    cloud-provider:
    - openstack
...


openstack.conf:
[Global]
auth-url = https://rs-ord-1-api.nova-mgs.com:5000/v3
username = openshift-nova-alpha
password = <REDACTED>
tenant-id = <REDACTED>
region = <REDACTED>
domain-id = default


Versions:
$ rpm -qa | grep -ie openshift -ie ose -ie ocp -ie ansible
atomic-openshift-node-3.3.0.34-1.git.0.83f306f.el7.x86_64
atomic-openshift-clients-3.3.0.34-1.git.0.83f306f.el7.x86_64
procps-ng-3.3.10-3.el7.x86_64
atomic-openshift-sdn-ovs-3.3.0.34-1.git.0.83f306f.el7.x86_64
atomic-openshift-3.3.0.34-1.git.0.83f306f.el7.x86_64
atomic-openshift-master-3.3.0.34-1.git.0.83f306f.el7.x86_64
tuned-profiles-atomic-openshift-node-3.3.0.34-1.git.0.83f306f.el7.x86_64

OpenShift Master:    v3.3.0.34
Kubernetes Master:    v1.3.0+52492b4

Comment 4 Seth Jennings 2016-12-05 19:46:21 UTC
It works for me

# oc version
oc v1.3.1
kubernetes v1.3.0+52492b4
features: Basic-Auth GSSAPI Kerberos SPNEGO

Server https://192.168.12.4:8443
openshift v3.3.0.34
kubernetes v1.3.0+52492b4

# oc login
Authentication required for https://192.168.12.4:8443 (openshift)
Username: demo
Password: 
Login successful.

You don't have any projects. You can try to create a new project, by running

    oc new-project <projectname>

# oc new-project demo
Now using project "demo" on server "https://192.168.12.4:8443".

You can add applications to this project with the 'new-app' command. For example, try:

    oc new-app centos/ruby-22-centos7~https://github.com/openshift/ruby-ex.git

to build a new example application in Ruby.

# cat dynamic-pvc.yaml 
kind: "PersistentVolumeClaim"
apiVersion: "v1"
metadata:
  name: "cassandra-pvc-001"
  annotations:
    volume.alpha.kubernetes.io/storage-class: "foo" 
spec:
  accessModes:
    - "ReadWriteOnce"
  resources:
    requests:
      storage: "3Gi"

# oc create -f dynamic-pvc.yaml
persistentvolumeclaim "cassandra-pvc-001" created

# oc get pvc
NAME                STATUS    VOLUME                                     CAPACITY   ACCESSMODES   AGE
cassandra-pvc-001   Bound     pvc-68a107b4-bb22-11e6-80a7-fa163e255f75   3Gi        RWO           1m

From logs:
I1205 19:38:34.285576   11005 openstack.go:686] Created volume 0dfb2c74-84d4-4a5c-a785-d6c073fb6c77
I1205 19:38:34.285595   11005 cinder_util.go:147] Successfully created cinder volume 0dfb2c74-84d4-4a5c-a785-d6c073fb6c77
I1205 19:38:34.289448   11005 controller.go:1259] volume "pvc-68a107b4-bb22-11e6-80a7-fa163e255f75" provisioned for claim "demo/cassandra-pvc-001"
I1205 19:38:34.296977   11005 controller.go:618] volume "pvc-68a107b4-bb22-11e6-80a7-fa163e255f75" entered phase "Bound"
I1205 19:38:34.297015   11005 controller.go:754] volume "pvc-68a107b4-bb22-11e6-80a7-fa163e255f75" bound to claim "demo/cassandra-pvc-001"
I1205 19:38:34.305991   11005 controller.go:554] claim "demo/cassandra-pvc-001" entered phase "Bound"

# cat openstack.conf 
[Global]
auth-url = http://10.42.10.33:5000/v3
username = admin
password = ***
tenant-id = ec3b48e1bb3448e6a1348ccf82854277
region = RegionOne
domain-id = default

NOW, I was able to recreate the:

controller.go:1160] no provisioner plugin found for claim default/cassandra-data-cassandra-0!

by not having the master controller cloud configuration set properly, so that error indicates the the PV controller can't contact the cloud provider.

Comment 5 Eric Jones 2016-12-06 15:51:38 UTC
@Seth,

We have confirmed that the cloud config file is accurate. The url has been tested to reply as expected and the customer indicated he double checked all of the rest of the values.

Is there something that can indicate a particular issue with the config?

Comment 6 Seth Jennings 2017-01-04 19:06:33 UTC
customer case is closed