-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
325 changed files
with
17,045 additions
and
518 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
name: Build and push VMware Event Router to Docker Hub | ||
|
||
on: | ||
release: | ||
types: | ||
- published | ||
|
||
jobs: | ||
build-push: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: checkout source (master branch) | ||
uses: actions/checkout@master | ||
with: | ||
ref: 'master' | ||
- name: log in to Docker | ||
env: | ||
DOCKER_USER: ${{ secrets.DOCKER_USER }} | ||
DOCKER_SECRET: ${{ secrets.DOCKER_SECRET }} | ||
run: echo "${DOCKER_SECRET}" | docker login -u "${DOCKER_USER}" --password-stdin | ||
- name: test, build, tag and push image | ||
run: cd vmware-event-router && make release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,3 +5,9 @@ dist/ | |
username | ||
password | ||
secret*.json | ||
.jekyll-metadata | ||
.sass-cache | ||
.jekyll-cache | ||
_site | ||
Gemfile.lock | ||
.tweet-cache |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,50 @@ | ||
# vCenter Event Broker Appliance | ||
# VMware Event Broker Appliance | ||
|
||
[](https://vmware.github.io/photon/) | ||
[](https://flings.vmware.com/vcenter-event-broker-appliance) | ||
 | ||
[](https://twitter.com/lamw) | ||
[](https://twitter.com/embano1) | ||
|
||
|
||
<img src="logo/veba_otto_the_orca_320x320.png" align="right" height="320px"/> | ||
|
||
## Table of Contents | ||
|
||
- [vCenter Event Broker Appliance](#vcenter-event-broker-appliance) | ||
- [Table of Contents](#table-of-contents) | ||
- [Description](#description) | ||
- [Users and Use Cases](#users-and-use-cases) | ||
- [VMware Event Broker Appliance](#vcenter-event-broker-appliance) | ||
- [Getting Started](#getting-started) | ||
- [Overview](#overview) | ||
- [Architecture](#architecture) | ||
- [Join Conversation](#join-conversation) | ||
- [Getting in touch](#getting-in-touch) | ||
- [Contributing](#contributing) | ||
- [License](#license) | ||
|
||
|
||
## Description | ||
## Getting Started | ||
|
||
The [vCenter Event Broker Appliance Fling](https://flings.vmware.com/vcenter-event-broker-appliance#summary) enables customers to easily create [event-driven automation based on vCenter Server Events](https://octo.vmware.com/vsphere-power-event-driven-automation/). For example, vCenter Event Broker Appliance can drive basic workflows like automatically attaching a vSphere tag when a virtual machine (VM) is created. Even more powerful integrations between datacenter-internal enterprise services and cloud services, for example Slack and Pager Duty, can be created with vCenter Event Broker Appliance out of the box. | ||
Visit our website [vmweventbroker.io](https://vmweventbroker.io/) and explore our [documentation](https://vmweventbroker.io/kb) to get started quickly. | ||
|
||
vCenter Event Broker Appliance is provided as a Virtual Appliance that can be deployed to any vSphere-based infrastructure, including an on-premises and/or any public cloud environment, running on vSphere such as VMware Cloud on AWS or VMware Cloud on Dell-EMC. | ||
## Overview | ||
|
||
With this appliance, end-users, partners and independent software vendors only have to write minimal business logic without going through a steep learning curve understanding vSphere APIs. As such, we believe this solution not only offers a better user experience in solving existing problems for vSphere operators. More importantly, it will enable new integration use cases and workflows to grow the vSphere ecosystem and community, similar to what AWS has achieved with AWS Lambda. | ||
The [VMware Event Broker Appliance](https://flings.vmware.com/vcenter-event-broker-appliance#summary) Fling enables customers to unlock the hidden potential of events in their SDDC to easily create [event-driven automation](https://octo.vmware.com/vsphere-power-event-driven-automation/) and take vCenter Server Events to the next level! Extending vSphere by easily triggering custom or prebuilt actions to deliver powerful integrations within your datacenter across public cloud has never been more easier before. A detailed list of use cases and possibilities with VMware Event Broker Appliance is available [here](https://vmweventbroker.io) | ||
|
||
To learn more about the vCenter Event Broker Appliance, [Michael Gasch](https://github.com/embano1) and [William Lam](https://github.com/lamw/) of VMware recently presented a session at VMworld called ["If This Then That" for vSphere- The Power of Event-Driven Automation](https://videos.vmworld.com/global/2019/videoplayer/29523) (free VMworld account login is required to view). | ||
With this appliance, end-users, partners and independent software vendors only have to write minimal business logic without going through a steep learning curve understanding vSphere APIs. As such, we believe this solution not only offers a better user experience in solving existing problems for vSphere operators. More importantly, it will enable new integration use cases and workflows to grow the vSphere ecosystem and community, similar to what AWS has achieved with AWS Lambda. | ||
|
||
## Users and Use Cases | ||
Learn more about the VMware Event Broker Appliance [here](https://vmweventbroker.io). | ||
|
||
Hear from the community on how they are taking advantage of the vCenter Server Appliance [here](users-and-use-cases.md) | ||
Additional resources can be found [here](https://vmweventbroker.io) and some quick references are highlighted below | ||
- Watch [Michael Gasch](https://github.com/embano1) and [William Lam](https://github.com/lamw/) of VMware present a session at VMworld 2019 called ["If This Then That" for vSphere- The Power of Event-Driven Automation](https://videos.vmworld.com/global/2019/videoplayer/29523) (free VMworld account login is required to view). | ||
- Watch [Partheeban Kandasamy (PK)](https://github.com/embano1), [Michael Gasch](https://github.com/embano1) and [William Lam](https://github.com/lamw/) present about [Unlocking the potential of Events for SDDC automation](https://youtu.be/tOjp5_qn-Fg) | ||
|
||
## Getting Started | ||
<!-- ## Users and Use Cases | ||
Please refer to the getting started guide [here](getting-started.md) | ||
Hear from the community on how they are taking advantage of the vCenter Server Appliance [here](https://vmweventbroker.io/casestudy-wip.md) --> | ||
|
||
## Architecture | ||
|
||
The vCenter Event Broker Appliance follows a highly modular approach, using Kubernetes and containers as an abstraction layer between the base operating system ([Photon OS](https://github.com/vmware/photon)) and the required application services. Currently the following components are used in the appliance: | ||
VMware Event Broker Appliance is provided as a Virtual Appliance that can be deployed to any vSphere-based infrastructure, including an on-premises and/or any public cloud environment, running on vSphere such as VMware Cloud on AWS or VMware Cloud on Dell-EMC. | ||
|
||
The VMware Event Broker Appliance follows a highly modular approach, using Kubernetes and containers as an abstraction layer between the base operating system ([Photon OS](https://github.com/vmware/photon)) and the required application services. Currently the following components are used in the appliance: | ||
|
||
- VMware Event Router ([Github](https://github.com/vmware-samples/vcenter-event-broker-appliance/vmware-event-router)) | ||
- Supported Event Stream Sources: | ||
|
@@ -45,24 +56,25 @@ The vCenter Event Broker Appliance follows a highly modular approach, using Kube | |
- Kubernetes ([Github](https://github.com/kubernetes/kubernetes)) | ||
- Photon OS ([Github](https://github.com/vmware/photon)) | ||
|
||
<center><div style="height:250px;width:250px"><img src="veba-appliance-diagram.png" /></div></center> | ||
<center><div style="height:250px;"><img src="docs/kb/img/veba-architecture.png"/></div></center> | ||
|
||
For more details about the individual components and how they are used in the vCenter Event Broker Appliance, please see the [design page](DESIGN.md). | ||
For more details about the individual components and how they are used in the VMware Event Broker Appliance, please see the [Architecture page](https://vmweventbroker.io/kb/architecture). | ||
|
||
## Join Conversation | ||
## Getting in touch | ||
|
||
We are also on Slack if you would to engage with us and the community. You can find us on [#vcenter-event-broker-appliance](https://vmwarecode.slack.com/archives/CQLT9B5AA) which is part of the [VMware {Code}](https://code.vmware.com/web/code/join) Slack instance. | ||
Feel free to reach out to [Team #VEBA](https://vmweventbroker.io/#team-veba) and the community | ||
- Email us at [[email protected]](mailto:[email protected]) | ||
- Join our users on slack [#vcenter-event-broker-appliance](https://vmwarecode.slack.com/archives/CQLT9B5AA) which is part of the [VMware {Code}](https://code.vmware.com/web/code/join) Slack instance | ||
- Follow for updates [@VMWEventBroker](https://twitter.com/VMWEventBroker) | ||
|
||
## Contributing | ||
|
||
The vCenter Event Broker Appliance team welcomes contributions from the community. | ||
|
||
Before you start working with the vCenter Event Broker Appliance, please read our [Developer Certificate of Origin](https://cla.vmware.com/dco). All contributions to this repository must be signed as described on that page. Your signature certifies that you wrote the patch or have the right to pass it on as an open-source patch. | ||
The VMware Event Broker Appliance team welcomes contributions from the community. | ||
|
||
To help you get started making contributions to vCenter Event Broker Appliance, we have collected some helpful best practices in the [Contributing guidelines](CONTRIBUTING.md). | ||
To help you get started making contributions to VMware Event Broker Appliance, we have collected some helpful best practices in the [Contributing guidelines](https://vmweventbroker.io/community#guidelines). | ||
|
||
For folks interested in contributing or enhancing vCenter Event Broker Appliance, you can build the vCenter Event Broker Appliance from source. Please refer to the getting started build guide [here](getting-started-build.md). | ||
Before submitting a pull request, please make sure that your change satisfies the requirements specified [here](https://vmweventbroker.io/community#pull-requests) | ||
|
||
## License | ||
|
||
vCenter Event Broker Appliance is available under the BSD-2 license. Please see [LICENSE.txt](LICENSE.txt). | ||
VMware Event Broker Appliance is available under the BSD-2 license. Please see [LICENSE.txt](LICENSE.txt). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
v0.3.0 | ||
v0.4.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,28 @@ | ||
#!/bin/bash -x | ||
#!/bin/bash | ||
# Copyright 2019 VMware, Inc. All rights reserved. | ||
# SPDX-License-Identifier: BSD-2 | ||
|
||
echo "Building OVA ..." | ||
set -euo pipefail | ||
|
||
|
||
if [ $# -ne 1 ]; then | ||
echo -e "\n\tUsage: $0 [master|release]\n" | ||
exit 1 | ||
fi | ||
|
||
if [[ ! -z $(git status -s) ]]; then | ||
echo "Dirty Git repository, please clean up any untracked files or commit them before building" | ||
exit | ||
fi | ||
|
||
rm -f output-vmware-iso/*.ova | ||
|
||
if [[ "$1" -gt "-1" ]] && [[ $1 == "dev" ]]; then | ||
echo "Applying packer build to photon-dev.json ..." | ||
packer build -var-file=photon-builder.json -var-file=photon-version.json photon-dev.json | ||
if [ "$1" == "release" ]; then | ||
echo "Building VEBA OVA release ..." | ||
packer build -var "VEBA_VERSION=$(cat VERSION)-release" -var "VEBA_COMMIT=$(git rev-parse --short HEAD)" -var-file=photon-builder.json -var-file=photon-version.json photon.json | ||
elif [ "$1" == "master" ]; then | ||
echo "Building VEBA OVA master ..." | ||
packer build -var "VEBA_VERSION=$(cat VERSION)" -var "VEBA_COMMIT=$(git rev-parse --short HEAD)" -var-file=photon-builder.json -var-file=photon-version.json photon.json | ||
else | ||
echo "Applying packer build to photon.json ..." | ||
packer build -var-file=photon-builder.json -var-file=photon-version.json photon.json | ||
fi | ||
echo -e "\nPlease specify release or master to build ...\n" | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
vmweventbroker.io |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# frozen_string_literal: true | ||
|
||
source "https://rubygems.org" | ||
|
||
gem 'jekyll', '~> 3.8.6' | ||
gem 'jekyll-feed', '~> 0.13.0' | ||
gem 'jekyll-optional-front-matter', '~> 0.3.2' | ||
gem 'jekyll-paginate', '~> 1.1' | ||
gem 'jekyll-readme-index', '~> 0.3.0' | ||
gem 'jekyll-redirect-from', '~> 0.15.0' | ||
gem 'jekyll-relative-links', '~> 0.6.1' | ||
gem 'jekyll-sitemap', '~> 1.4' | ||
gem 'jekyll-titles-from-headings', '~> 0.5.3' | ||
gem 'jekyll-seo-tag', '~> 2.6', '>= 2.6.1' | ||
gem 'redcarpet', '~> 3.5' | ||
gem "jekyll-github-metadata", '~> 2.13.0' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
 | ||
|
||
# Readme for the Website | ||
|
||
## Structure | ||
|
||
The website is hosted using [Github Pages](https://help.github.com/en/github/working-with-github-pages/about-github-pages) and built using [Jekyll](https://jekyllrb.com/). The files that make up the website are contained within the `docs` folder (as Github Pages requires) within the master branch. You'll find more details about how they are organized and their purpose below. | ||
|
||
``` | ||
. | ||
├── site > Contains MD files that need to go under the base website | ||
│ └── **.md | ||
├── kb > Contains MD files for the documentation section of the website | ||
│ ├── img | ||
│ │ └── **.png > images required for documentation | ||
│ └── **.md > All the MDs that make up the documentation | ||
├── assets > Contains JS, CSS, IMGs for the site | ||
│ ├── js | ||
│ ├── img | ||
│ └── css | ||
├── index.html > Website Landing page | ||
├── README.md *** You are here | ||
├── _config.yml > Site wide configuration and variables | ||
└── Gemfile > Plugins required for the website to be built by Jekyll | ||
``` | ||
|
||
In order for Jekyll to process the MD files and render them as html, you'll need to add the below to the beginning of the each MD file. | ||
|
||
```yaml | ||
--- | ||
layout: resources # choose between default, docs, page or resources | ||
title: Additional Resources # provide the title for the web page | ||
description: Update this # this shows up in the Website description | ||
permalink: /resources # this is the short link for the page, if empty the relative path of the md file is used | ||
#other yaml data that can be referenced within the page | ||
--- | ||
``` | ||
|
||
### Other Key Files and Folders | ||
- **_data/default.yml:** YAML content that drives the side-nav bar for the documentation | ||
- **_data/resources.yml:** YAML content for the videos, links and external references contained in the resources page | ||
- **_data/team.yml:** YAML data of the core team for the landing page | ||
- **_functions:** folder that contains all the featured functions showcased on the landing page | ||
- **_usecases:** folder that contains all the use cases showcased on the landing page | ||
- **_includes** all the reusable html components referenced with the layouts | ||
- **_layouts:** all the various layouts available to be used within the site | ||
- **docs** - use this for layout for the docs | ||
- **page** - use this for the pages that needs to go on the base site | ||
- **resources** - specifically designed for the resources page | ||
|
||
|
||
## Build and Run the website locally | ||
To ensure the changes to any file or folder that power the website is valid, please setup this step below that allows you to build the website, verify changes locally before you push to the repo. | ||
|
||
### Dependencies for MacOS | ||
|
||
Install the following for an easy to use dev environment: | ||
|
||
```bash | ||
brew install rbenv | ||
rbenv install 2.6.3 | ||
gem install bundler | ||
``` | ||
|
||
### Dependencies for Linux | ||
If you are running a build on Ubuntu you will need the following packages: | ||
* ruby | ||
* ruby-dev | ||
* ruby-bundler | ||
* build-essential | ||
* zlib1g-dev | ||
* nginx (or apache2) | ||
|
||
### Dependencies for Windows | ||
If you are on Windows, all hope is not lost. Follow the steps here to install the dependencies - https://jekyllrb.com/docs/installation/windows/ | ||
|
||
### Local Development | ||
* Install Jekyll and plug-ins in one fell swoop. `gem install github-pages` | ||
This mirrors the plug-ins used by GitHub Pages on your local machine including Jekyll, Sass, etc. | ||
* Clone down your own fork, or clone the main repo and add your own remote. | ||
|
||
```bash | ||
git clone [email protected]:vmware-samples/vcenter-event-broker-appliance.git | ||
cd vcenter-event-broker-appliance/docs | ||
bundle install | ||
``` | ||
|
||
* Serve the site and watch for markup/sass changes `jekyll serve --livereload --incremental`. You may need to run `bundle exec jekyll serve --livereload --incremental`. | ||
* View your website at http://127.0.0.1:4000/ | ||
* Commit any changes and push everything to your fork. | ||
* Once you're ready, submit a PR of your changes. | ||
|
||
## Troubleshooting | ||
* If you don't see your updates reflected on the website when running locally, try the following steps | ||
|
||
```zsh | ||
bundle exec jekyll clean | ||
bundle exec jekyll serve --incremental --livereload | ||
``` |
Oops, something went wrong.