Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016

423 views

Published on

Pluggable Providers by Greg Blomquist at ManageIQ Design Summit 2016

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016

  1. 1. Greg Blomquist June, 2016 Pluggable Providers Overview and Plan
  2. 2. Special thanks John Hardy @jonnyfiveiq Marianne Feifer @mfeifer
  3. 3. Greg Blomquist @blomquisg
  4. 4. Goal
  5. 5. ManageIQ Providers should be owned, maintained and released by the provider author
  6. 6. Namespace Ask, don’t assume Gemify Generator
  7. 7. Namespace - Done Ask, don’t assume - In Progress Gemify - In Progress Generator - Not Started
  8. 8. Namespacing
  9. 9. Past
  10. 10. !Pasta
  11. 11. vmdb/app/models (anand release)
  12. 12. Present
  13. 13. ManageIQ::Providers::Openstack::CloudManager
  14. 14. ManageIQ::Providers::Openstack::CloudManager
  15. 15. ManageIQ::Providers::Openstack::CloudManager
  16. 16. Namespacing
  17. 17. Ask, don’t assume
  18. 18. if @ems.kind_of?(ManageIQ::Providers::Openstack::CloudManager) || @ems.kind_of?(ManageIQ::Providers::Openstack::InfraManager) # Special behavior for Openstack @edit[:protocols] = retrieve_openstack_security_protocols else @edit[:protocols] = [[‘Basic (SSL)’, ‘ssl’], [‘Kerberos’, ‘kerberos’]] end
  19. 19. @edit[:protocols] = @ems.class.security_protocols
  20. 20. Ask, don’t assume
  21. 21. Gemify
  22. 22. Why Gemify?
  23. 23. ManageIQ Providers should be owned, maintained and released by the provider author
  24. 24. Gemify
  25. 25. Generator
  26. 26. Life without a generator
  27. 27. 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
  28. 28. config/settings.yml?
  29. 29. Workers and runners?
  30. 30. require_nested everything?
  31. 31. Click here to start your provider rails generate provider ProviderName ManagerType ... Generate boilerplate code for the specified ManagerTypes.
  32. 32. rails generate provider MyProvider CloudManager NetworkManager
  33. 33. Generator
  34. 34. Changing the conversation
  35. 35. Provider Types
  36. 36. Manager Types
  37. 37. Provider Manager Manager
  38. 38. OpenStack Provider Cloud Compute Manager Cloud Network Manager Cloud Infra Manager
  39. 39. 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 Microsoft SCVMM Google Compute Google Compute Red Hat Satellite Red Hat OpenShift OpenStack Director OpenStack OpenStack Manager Types
  40. 40. Questions?

×