OpenStack Client Provider Installation#
This guide provides detailed instructions for installing the OpenStack Client Provider.
Prerequisites#
Before you deploy the OpenStack Client Provider, ensure that:
- The Services application is installed
- The Cloud Connect Core and OpenStack plugin are installed when you want the provider to correlate Connect-managed networks
- You have OpenStack credentials with the Nova and Neutron visibility that you need
Installation Steps#
To deploy the OpenStack Client Provider, complete the following tasks:
- Deploy the OpenStack Client Provider app
- Create a Secret for OpenStack credentials
- Create an
OpenStackClientProviderInstance
Step 1: OpenStack Client Provider App Deployment#
The OpenStack Client Provider is an application in the EDA app ecosystem. You can install it from the EDA Store UI.
Installation Using EDA Store UI#
- Navigate to the EDA Store in the EDA UI
- Locate the OpenStack Client Provider app
- Click Install
- Complete the installation
Installation Using Kubernetes API#
If you prefer installing the app using the Kubernetes API, you can do so by creating the following Workflow resource:
Step 2: Create a Secret for OpenStack Credentials#
Create a Kubernetes Secret in the eda-system namespace.
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: my-os-creds
namespace: eda-system
labels:
"eda.nokia.com/backup": "true"
data:
username: YWRtaW4K # base64 encoded
password: YWRtaW4K # base64 encoded
user_domain_name: YWRtaW4K # Optional, can also be set in spec; base64 encoded here
project_name: YWRtaW4K # Optional, can also be set in spec; base64 encoded here
project_domain_name: YWRtaW4K # Optional, can also be set in spec; base64 encoded here
echo -n myUsernameOrPassword | base64
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: my-os-creds
namespace: eda-system
labels:
"eda.nokia.com/backup": "true"
data:
username: YWRtaW4K # base64 encoded
password: YWRtaW4K # base64 encoded
user_domain_name: YWRtaW4K # Optional, can also be set in spec; base64 encoded here
project_name: YWRtaW4K # Optional, can also be set in spec; base64 encoded here
project_domain_name: YWRtaW4K # Optional, can also be set in spec; base64 encoded here
EOF
Base64 encoding
Use the following command to base64 encode your username and password:
mandatory label
The secrets used by EDA must have the eda.nokia.com/backup: "true" label.
The Secret can use username / password keys, or the OpenStack OS_USERNAME / OS_PASSWORD keys. Alternatively, application credentials use OS_APPLICATION_CREDENTIAL_* keys, or the equivalent lowercase names. Additionally, domain and project scope can come from the Secret or from fields on the instance. For more information about OpenStack authentication see the upstream documentation.
Step 3: Create the OpenStack Client Provider Instance#
Create the OpenStackClientProviderInstance in the EDA UI under System Administration > Client Providers > OpenStack Client Providers.
You can also create the same resource using the Kubernetes API. Replace the example values with values for your deployment.
apiVersion: openstack-client-provider.eda.nokia.com/v1alpha1
kind: OpenStackClientProviderInstance
metadata:
name: my-openstack-client-provider # A unique name for the instance
namespace: eda-system # The EDA core namespace
spec:
namespace: eda # The namespace that holds the fabric, BridgeDomains, and client table
authURL: https://keystone.example.com:5000/v3 # The Keystone authentication URL
authSecretRef: my-os-creds # Credentials are hosted in a Secret in spec.namespace
regionName: RegionOne # The OpenStack region
identityInterface: public # Keystone endpoint from the service catalog: public, internal, or admin
sync:
mode: Polling
polling:
fullSyncIntervalSeconds: 30 # How often the instance polls OpenStack
kubectl apply -f - <<EOF
apiVersion: openstack-client-provider.eda.nokia.com/v1alpha1
kind: OpenStackClientProviderInstance
metadata:
name: my-openstack-client-provider # A unique name for the instance
namespace: eda-system # The EDA core namespace
spec:
namespace: eda # The namespace that holds the fabric, BridgeDomains, and client table
authURL: https://keystone.example.com:5000/v3 # The Keystone authentication URL
authSecretRef: my-os-creds # Credentials are hosted in a Secret in spec.namespace
regionName: RegionOne # The OpenStack region
identityInterface: public # Keystone endpoint from the service catalog: public, internal, or admin
sync:
mode: Polling
polling:
fullSyncIntervalSeconds: 30 # How often the instance polls OpenStack
EOF
Namespaces
Create the OpenStackClientProviderInstance in eda-system. Set spec.namespace to the namespace that holds the fabric where the OpenStack resources are created on.
Configuration Parameters#
The OpenStackClientProviderInstance resource supports the following fields:
| Field | Description | Required |
|---|---|---|
name | Name of the instance in EDA. | Yes |
namespace | Namespace that holds the fabric where OpenStack resources are scheduled on. | Yes |
authURL | Keystone authentication URL. | Yes |
authSecretRef | Name of the Kubernetes Secret in spec.namespace that contains OpenStack credentials. | Yes |
regionName | OpenStack region name. | Yes |
sync.mode | Sync mode. The current release supports Polling only. | Yes |
sync.polling.fullSyncIntervalSeconds | Interval in seconds for a full inventory poll. | Yes |
identityInterface | Keystone catalog interface: public (default), internal, or admin. | No |
domainName | Domain name that contains the user. | No |
domainID | Domain ID that contains the user. | No |
projectName | Project-level authentication scope (name). | No |
projectID | Project-level authentication scope (ID). | No |
Post-Installation Verification#
After you create the instance, verify that the operator pod is running:
Check the instance status:
The status phase and message show whether the last poll reached Keystone, Nova, and Neutron.
Next Steps#
After installation, proceed to:
- Check the
.namespace.clienttables.networksclient table for OpenStack entries.