pluggable providers - greg blomquist - manageiq design summit 2016
TRANSCRIPT
![Page 1: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/1.jpg)
Greg Blomquist
June, 2016
Pluggable ProvidersOverview and Plan
![Page 2: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/2.jpg)
Special thanks
John Hardy@jonnyfiveiq
Marianne Feifer
@mfeifer
![Page 3: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/3.jpg)
Greg Blomquist@blomquisg
![Page 4: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/4.jpg)
![Page 5: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/5.jpg)
![Page 6: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/6.jpg)
![Page 7: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/7.jpg)
![Page 8: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/8.jpg)
Goal
![Page 9: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/9.jpg)
ManageIQ Providers should be owned, maintained and
released by the provider author
![Page 10: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/10.jpg)
NamespaceAsk, don’t assumeGemifyGenerator
![Page 11: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/11.jpg)
Namespace - DoneAsk, don’t assume - In ProgressGemify - In ProgressGenerator - Not Started
![Page 12: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/12.jpg)
Namespacing
![Page 13: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/13.jpg)
Past
![Page 14: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/14.jpg)
!Pasta
![Page 15: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/15.jpg)
![Page 16: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/16.jpg)
vmdb/app/models(anand release)
![Page 17: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/17.jpg)
![Page 18: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/18.jpg)
![Page 19: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/19.jpg)
Present
![Page 20: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/20.jpg)
![Page 21: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/21.jpg)
![Page 22: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/22.jpg)
ManageIQ::Providers::Openstack::CloudManager
![Page 23: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/23.jpg)
ManageIQ::Providers::Openstack::CloudManager
![Page 24: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/24.jpg)
ManageIQ::Providers::Openstack::CloudManager
![Page 25: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/25.jpg)
Namespacing
![Page 26: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/26.jpg)
Ask, don’t assume
![Page 27: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/27.jpg)
if @ems.kind_of?(ManageIQ::Providers::Openstack::CloudManager) || @ems.kind_of?(ManageIQ::Providers::Openstack::InfraManager) # Special behavior for Openstack @edit[:protocols] = retrieve_openstack_security_protocolselse @edit[:protocols] = [[‘Basic (SSL)’, ‘ssl’], [‘Kerberos’, ‘kerberos’]]end
![Page 28: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/28.jpg)
@edit[:protocols] = @ems.class.security_protocols
![Page 29: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/29.jpg)
![Page 30: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/30.jpg)
Ask, don’t assume
![Page 31: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/31.jpg)
Gemify
![Page 32: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/32.jpg)
![Page 33: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/33.jpg)
![Page 34: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/34.jpg)
![Page 35: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/35.jpg)
Why Gemify?
![Page 36: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/36.jpg)
ManageIQ Providers should be owned, maintained and
released by the provider author
![Page 37: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/37.jpg)
Gemify
![Page 38: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/38.jpg)
Generator
![Page 39: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/39.jpg)
Life without a generator
![Page 40: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/40.jpg)
module MiqServer::WorkerManagement::Monitor::ClassNames extend ActiveSupport::Concern
MONITOR_CLASS_NAMES = %w( ManageIQ::Providers::Azure::CloudManager::MetricsCollectorWorker ManageIQ::Providers::Amazon::CloudManager::MetricsCollectorWorker ManageIQ::Providers::Redhat::InfraManager::MetricsCollectorWorker ManageIQ::Providers::Kubernetes::ContainerManager::MetricsCollectorWorker ManageIQ::Providers::Openshift::ContainerManager::MetricsCollectorWorker ManageIQ::Providers::Atomic::ContainerManager::MetricsCollectorWorker ManageIQ::Providers::OpenshiftEnterprise::ContainerManager::MetricsCollectorWorker ManageIQ::Providers::AtomicEnterprise::ContainerManager::MetricsCollectorWorker ManageIQ::Providers::Vmware::InfraManager::MetricsCollectorWorker … ).freeze
MONITOR_CLASS_NAMES_IN_KILL_ORDER = %w( ManageIQ::Providers::Azure::CloudManager::MetricsCollectorWorker ManageIQ::Providers::Amazon::CloudManager::MetricsCollectorWorker ManageIQ::Providers::Redhat::InfraManager::MetricsCollectorWorker ManageIQ::Providers::Kubernetes::ContainerManager::MetricsCollectorWorker ManageIQ::Providers::Openshift::ContainerManager::MetricsCollectorWorker ManageIQ::Providers::Atomic::ContainerManager::MetricsCollectorWorker ManageIQ::Providers::OpenshiftEnterprise::ContainerManager::MetricsCollectorWorker ManageIQ::Providers::AtomicEnterprise::ContainerManager::MetricsCollectorWorker ManageIQ::Providers::Vmware::InfraManager::MetricsCollectorWorker … ).freeze
end
![Page 41: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/41.jpg)
config/settings.yml?
![Page 42: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/42.jpg)
Workers and runners?
![Page 43: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/43.jpg)
require_nested everything?
![Page 44: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/44.jpg)
Click here to start your provider
rails generate provider ProviderName ManagerType ...
Generate boilerplate code for the specified ManagerTypes.
![Page 45: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/45.jpg)
rails generate provider MyProvider CloudManager NetworkManager
![Page 46: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/46.jpg)
Generator
![Page 47: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/47.jpg)
Changing the conversation
![Page 48: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/48.jpg)
Provider Types
![Page 49: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/49.jpg)
ManagerTypes
![Page 50: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/50.jpg)
Provider
Manager Manager
![Page 51: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/51.jpg)
OpenStackProvider
Cloud ComputeManager
Cloud NetworkManager
Cloud InfraManager
![Page 52: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/52.jpg)
Virtual Infrastructure
Cloud Compute
Cloud Networking
Configuration Containers
VMware vSphere
Microsoft Azure Microsoft Azure Puppet Kubernetes
Red Hat Virtualization
Amazon EC2 Amazon EC2 Ansible Red Hat Atomic
MicrosoftSCVMM
Google Compute
Google Compute
Red Hat Satellite
Red Hat OpenShift
OpenStack Director
OpenStack OpenStack
Manager Types
![Page 53: Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016](https://reader034.vdocuments.us/reader034/viewer/2022051503/587097bb1a28ab412b8b6cc7/html5/thumbnails/53.jpg)
Questions?