All Projects → openfaas-incubator → vcenter-connector

openfaas-incubator / vcenter-connector

Licence: MIT license
Extend vCenter with OpenFaaS

Programming Languages

go
31211 projects - #10 most used programming language
Dockerfile
14818 projects
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to vcenter-connector

sources-for-knative
VMware-related event sources for Knative.
Stars: ✭ 24 (-17.24%)
Mutual labels:  events, vmware
wishbone
A Python framework to build composable event pipeline servers with minimal effort.
Stars: ✭ 42 (+44.83%)
Mutual labels:  events, event-driven
burns
Manage your application's events without writing spaghetti code
Stars: ✭ 86 (+196.55%)
Mutual labels:  events, event-driven
EventEmitter
Simple EventEmitter with multiple listeners
Stars: ✭ 19 (-34.48%)
Mutual labels:  events, event-driven
Goes
Go Event Sourcing made easy
Stars: ✭ 144 (+396.55%)
Mutual labels:  events, event-driven
kstreams-des-demo
Kafka Streams demo project containing Derivative Events, the Processor Api and Wall-clock examples
Stars: ✭ 24 (-17.24%)
Mutual labels:  events, event-driven
vcenter-event-broker-appliance
The VMware Event Broker Appliance Fling enables customers to unlock the hidden potential of events in their SDDC to easily create event-driven automation.
Stars: ✭ 120 (+313.79%)
Mutual labels:  events, vmware
AsBuiltReport.VMware.vSphere
Repository for AsBuiltReport VMware vSphere module
Stars: ✭ 75 (+158.62%)
Mutual labels:  vmware, vcenter
Eventing
Open source specification and implementation of Knative event binding and delivery
Stars: ✭ 980 (+3279.31%)
Mutual labels:  events, event-driven
Remit
RabbitMQ-backed microservices supporting RPC, pubsub, automatic service discovery and scaling with no code changes.
Stars: ✭ 24 (-17.24%)
Mutual labels:  events, event-driven
tardis
Event sourcing toolkit
Stars: ✭ 35 (+20.69%)
Mutual labels:  events, event-driven
Event Driven Spring Boot
Example Application to demo various flavours of handling domain events in Spring Boot
Stars: ✭ 194 (+568.97%)
Mutual labels:  events, event-driven
evon
Fast and versatile event dispatcher code generator for Golang
Stars: ✭ 15 (-48.28%)
Mutual labels:  events, event-driven
eventcatalog
Discover, Explore and Document your Event Driven Architectures powered by Markdown.
Stars: ✭ 392 (+1251.72%)
Mutual labels:  events, event-driven
ansible-role-test-vms
DEPRECATED - A Vagrant configuration to test Ansible roles against a variety of Linux distributions.
Stars: ✭ 42 (+44.83%)
Mutual labels:  vmware, vms
cute
An event-centric publisher/subscribe model for objects inspired by the Qt framework
Stars: ✭ 37 (+27.59%)
Mutual labels:  events, event-driven
netbox-sync
Sync objects from VMware or redfish sources to NetBox
Stars: ✭ 172 (+493.1%)
Mutual labels:  vmware, vcenter
vSphere-6.5-API-Playbook-Examples
Examples of how to create Ansible playbooks to leverage vSphere 6.5 RESTful APIs. Playbooks will be isolate to specific APIs and roles added for example use cases.
Stars: ✭ 16 (-44.83%)
Mutual labels:  vmware, vcenter
Message Io
Event-driven message library for building network applications easy and fast.
Stars: ✭ 321 (+1006.9%)
Mutual labels:  events, event-driven
Noel
A universal, human-centric, replayable javascript event emitter.
Stars: ✭ 158 (+444.83%)
Mutual labels:  events, event-driven

OpenFaaS vcenter-connector

vcenter-connector is an OpenFaaS event-connector built to consume events from vCenter and to trigger functions.

Build Status

Overview

With this project your functions can subscribe to events generated by the changes (i.e. events) in your vCenter installation - for instance a VM being created, turned on or deleted. This allows you to extend vCenter's functionality by writing functions to execute each time an event is fired. An example may be tagging a VM with the date it was last turned on or applying a tag showing which user made a change to an object.

Status

This project uses the OpenFaaS Connector SDK. vCenter credentials are stored using Kubernetes secrets.

Supported Events

The following event types (incl. their subtypes) are supported and can be used to trigger functions:

  • Alarm Event, e.g. AlarmCreatedEvent
  • Datastore Event, e.g. DatastoreDestroyedEvent
  • Host Event, e.g. HostDisconnectedEvent
  • Resource Pool Event, e.g. ResourcePoolCreatedEvent
  • VM Event, e.g. VmPoweredOnEvent

For further details and naming see the vSphere Web Services API documentation.

A function can be subscribed to multiple events using a comma-delimited syntax in its stack configuration:

[...]
annotations:
    topic: "drs.vm.powered.on,vm.powered.off"

Note: Wildcards for event subscriptions, e.g. "vm.powered.*", are not supported.

Credentials

Credentials within Kubernetes

When using the connector in Kubernetes, you will need to create a secret for the connector in the openfaas namespace.

kubectl create secret generic vcenter-secrets \
  -n openfaas \
  --from-literal vcenter-username=user \
  --from-literal vcenter-password=pass

At runtime these secrets will be mounted at /var/openfaas/secrets/. See /yaml/kubernetes/connector-dep.yml for more.

Using credentials outside of Kubernetes

You can pass credentials via arguments (not recommended).

./vcenter-connector \
  -vc-user="admin" \
  -vc-pass="test1234" \

Or use a file and pass the name:

export secret_mount_path="/tmp/secrets/`

./vcenter-connector \
  -vc-user="" \
  -vc-pass="" \
  -vc-user-secret-name=vcenter-username \
  -vc-password-secret-name=vcenter-password

The default path is /var/openfaas/secrets/ which can be overridden by setting the secret_mount_path environment variable.

Examples / community

  • You can find a detailed example using vSphere tags for VmPoweredOnEvent here.

  • Robert Guske of VMware write up a detailed blog post on how he automated the integration between several VMware products with OpenFaaS and this vcenter-connector.

VEBA

VMware have released an appliance which packages OpenFaaS and the OpenFaaS vcenter-connector (this repository) and called it the "vCenter Event Broker Appliance". The appliance uses Photon OS.

Contributing

Please propose changes in an Issue before submitting a PR and sign-off commits.

See the contribution guide for OpenFaaS for more.

License

MIT

Acknowledgements

This project is hosted and maintained by OpenFaaS Ltd

It makes use of the following components:

  • govmomi project providing Golang bindings for vCenter by Doug MacEachern, VMware
  • vcsim simulator tool by Doug MacEachern, VMware

The contact for OpenFaaS Ltd is Alex Ellis

The contact for VMware is Michael Gasch (VMware)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].