Skip to content

VMware vSphere Plugin Installation#

This guide provides detailed instructions for installing the EDA Connect VMware vSphere plugin.

Prerequisites#

Before installing or deploying the VMware vSphere plugin components, ensure that:

  • The Cloud Connect Core application is properly installed in the cluster (see Cloud Connect Installation)
  • You have read-only access credentials to the VMware vCenter environment

Installation Steps#

To deploy the VMware vSphere plugin, complete the following tasks:

  1. Deploy the plugin EDA app
  2. Deploy the plugin instance

Step 1: Connect VMware vSphere Plugin App Deployment#

The VMware vSphere plugin app is an application in the EDA app ecosystem. It can be easily installed using the EDA Store UI.

Installation Using EDA Store UI#

  1. Navigate to the EDA Store in the EDA UI
  2. Locate the VMware vSphere Plugin App
  3. Click Install
  4. Complete the installation

Installation Using Kubernetes API#

If you prefer installing the plugin using the Kubernetes API, you can do so by creating the following Workflow resource:

apiVersion: appstore.eda.nokia.com/v1
kind: AppInstaller
metadata:
  name: vmware-plugin
  namespace: eda-system
spec:
  operation: install
  apps:
    - appId: vmware.eda.nokia.com
      catalog: eda-catalog-builtin-apps
      version:
        type: semver
        value: v5.0.0
kubectl apply -f - <<EOF
apiVersion: appstore.eda.nokia.com/v1
kind: AppInstaller
metadata:
  name: vmware-plugin
  namespace: eda-system
spec:
  operation: install
  apps:
    - appId: vmware.eda.nokia.com
      catalog: eda-catalog-builtin-apps
      version:
        type: semver
        value: v5.0.0

EOF

Step 2: Connect VMware vSphere Plugin Deployment#

Create a Secret for VMware Credentials#

A prerequisite for creating a vmwarePluginInstance resource is a Secret resource with username and password fields that contain the account information for an account that can connect to the VMware vCenter environment and has read-only access to the cluster so that it can monitor the necessary resources.

apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: my-vmware-creds
  namespace: eda-system
  labels:
    "eda.nokia.com/backup": "true"
data: 
  username: YWRtaW4K # base64 encoded
  password: YWRtaW4K # base64 encoded
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: my-vmware-creds
  namespace: eda-system
  labels:
    "eda.nokia.com/backup": "true"
data: 
  username: YWRtaW4K # base64 encoded
  password: YWRtaW4K # base64 encoded

EOF
Base64 encoding

Use the following command to base64 encode your username and password:

echo -n myUsernameOrPassword | base64

mandatory label

The secrets used by the EDA plugins must have the eda.nokia.com/backup: "true" label.

Create the VMware Plugin Instance#

As the VMware vSphere plugins are managed through the operator, you can use the EDA UI to create a new VmwarePluginInstance resource under the * System Administration > Connect > VMware Plugins* menu item.

As an alternative, you can also create the same VmwarePluginInstance using the following custom resource example. Make sure to replace the specified values with their relevant content.

apiVersion: vmware.eda.nokia.com/v1
kind: VmwarePluginInstance
metadata:
  name: my-vmware-plugin-instance # A unique name for the plugin resource (can be the same as the spec.name, or different)
  namespace: eda-system # The system namespace.
spec:
  pluginNamespace: eda # The namespace in the EDA deployment holding the fabric associated with this plugin
  externalId: example-external-id # A unique Identifier for the plugin (can be same as the name)
  heartbeatInterval: 30
  name: example-vSphere # A unique name for the plugin
  vcsaHost: example-host # The IP address of the vCenter Server
  vcsaTlsVerify: true # To verify TLS of the VCSA
  vcsaCertificate: "" # If the VCSA certificate is self signed, add it here to be able to verify from the plugin
  authSecretRef: my-vmware-creds # Credentials are hosted in a separate Secret
kubectl apply -f - <<EOF
apiVersion: vmware.eda.nokia.com/v1
kind: VmwarePluginInstance
metadata:
  name: my-vmware-plugin-instance # A unique name for the plugin resource (can be the same as the spec.name, or different)
  namespace: eda-system # The system namespace.
spec:
  pluginNamespace: eda # The namespace in the EDA deployment holding the fabric associated with this plugin
  externalId: example-external-id # A unique Identifier for the plugin (can be same as the name)
  heartbeatInterval: 30
  name: example-vSphere # A unique name for the plugin
  vcsaHost: example-host # The IP address of the vCenter Server
  vcsaTlsVerify: true # To verify TLS of the VCSA
  vcsaCertificate: "" # If the VCSA certificate is self signed, add it here to be able to verify from the plugin
  authSecretRef: my-vmware-creds # Credentials are hosted in a separate Secret

EOF

Name and External ID constraints

The plugin name and external ID must comply with the regex check of '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]' and can only contain alphanumerical characters and ., _ and -. It must start with an alphanumerical character, and have a length of 63 characters or fewer.

Configuration Parameters#

The VmwarePluginInstance resource supports the following key parameters:

Field Description Required
name Name of the plugin instance in EDA. Yes
externalID Unique identifier of the Plugin. Yes
pluginNamespace The namespace in the EDA deployment holding the fabric associated with this plugin. Yes
vcsaHost URL of the VCSA (e.g vcenter.mydomain.com). Note that no URI scheme should be provided. Yes
authSecretRef Name of the Kubernetes Secret containing VCSA credentials Yes
heartbeatInterval Interval in seconds for plugin heartbeat to EDA (default: 30s). No
vcsaTlsVerify Whether to verify the TLS certificate of VCSA (default: true). No
VCSACertificate PEM encoded certificate for VCSA if self-signed (default: empty). No

Post-Installation Verification#

After deploying the plugin, verify that it is running:

kubectl get pods -n eda-system | grep vmware

Check that the plugin has registered with Connect:

kubectl get connectplugins -n <plugin-namespace>

You should see your VMware plugin listed with status information.

Next Steps#

After installation, proceed to:

  • Configure distributed Port Groups in vCenter
  • Set up Custom Attributes for EDA-managed mode (if required)
  • Make sure LLDP is enabled on the distributed vSwitch (at least advertise in Discovery protocol settings)
  • Review the VMware vSphere Plugin documentation for usage and operational modes