Date post: | 16-Apr-2017 |
Category: |
Technology |
Upload: | manageiq |
View: | 272 times |
Download: | 1 times |
Greg Blomquist
June, 2016
Pluggable ProvidersOverview and Plan
Special thanks
John Hardy@jonnyfiveiq
Marianne Feifer
@mfeifer
Greg Blomquist@blomquisg
Goal
ManageIQ Providers should be owned, maintained and
released by the provider author
NamespaceAsk, don’t assumeGemifyGenerator
Namespace - DoneAsk, don’t assume - In ProgressGemify - In ProgressGenerator - Not Started
Namespacing
Past
!Pasta
vmdb/app/models(anand release)
Present
ManageIQ::Providers::Openstack::CloudManager
ManageIQ::Providers::Openstack::CloudManager
ManageIQ::Providers::Openstack::CloudManager
Namespacing
Ask, don’t assume
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
@edit[:protocols] = @ems.class.security_protocols
Ask, don’t assume
Gemify
Why Gemify?
ManageIQ Providers should be owned, maintained and
released by the provider author
Gemify
Generator
Life without a generator
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
config/settings.yml?
Workers and runners?
require_nested everything?
Click here to start your provider
rails generate provider ProviderName ManagerType ...
Generate boilerplate code for the specified ManagerTypes.
rails generate provider MyProvider CloudManager NetworkManager
Generator
Changing the conversation
Provider Types
ManagerTypes
Provider
Manager Manager
OpenStackProvider
Cloud ComputeManager
Cloud NetworkManager
Cloud InfraManager
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
Questions?