SlideShare a Scribd company logo
OpenStack Heat
One Year Journey in Production
Kaz Shinohara(kazsh)
Jiye Yu(jiye)
1
Wed 8, 9:50am-10:30am
Level3 Convention Center - C3.4/3.5
Agenda
• Our Background
• About Heat
• How to make your Heat more Capable ?
• How to make your Heat more Available ?
• How to make your Heat more Reliable ?
• How to make Heat template more Easily ?
Our Background
Who we are ?
Kaz Shinohara
• Title: Technical Lead
• IRC/Launchpad: kazsh
• GitHub/Twitter: kazshinohara
• Email: ksnhr.tech@gmail.com
Photo
From NTT Communications in Japan,
Engaged in “Enterprise Cloud” Development.
Jiye Yu
• Title: Software Engineer
• IRC/Launchpad: jiye
• GitHub: JyieYu
• Email: troyspur@gmail.com
OpenStack based Public Cloud Services since Mar 2016
Provided in 8 regions, 1 more region in US is coming soon
Original components Networks & Bare-metal behalf of Neutron & Ironic
5Coming soon..
OpenStack Components Original Components
Horizon Nova KeystoneGlanceCinder
Heat Trove Swift
Network Baremetal Server
About Heat
Before our story,
Let’s review Heat :)
For detail, see..
https://wiki.openstack.org/wiki/Heat
Orchestration Services in OpenStack
The answer to “Infrastructure as code” for OpenStack users.
Cloud resources described in YAML/JSON format template.
your template Heat Nova
Cinder
Neutron
Volume
Instance
Internal Network
heat_template_version: 2017-09-01
parameters:
flavor:
type: string
default: m1.small
resources:
volume:
type: OS::Cinder::Volume
properties:
size: 1
instance:
type: ECL::Compute::Server
properties:
image: ba802f87-4deb-43d3-ae28-91b1aa821e89
flavor: m1.tiny
Stack(Group of connected resources)
Powerful functions like as…
• Resource Group
• Multiply any number of resources what you want to create.
• Nested Templates
• Split out your very large template into smaller sub-templates.
• Software Config
• Configure your server along with Shell Script/Ansible/Cheff/Puppet…etc.
• https://github.com/openstack/heat-templates/tree/master/hot/software-config/elements
Brother Projects in OpenStack
AFIK, Multiple Projects are taking Heat internally.
Maybe more…
For more detail about Heat…
• Heat - Project Onboarding (Enjoy on YouTube)
• Mon, November 6, 11:35am - 12:15pm
• Heat - Project Update (Enjoy on YouTube)
• Tue, November 7, 5:00pm - 5:20pm
• Heat ops and users feedback
• Wed, November 8, 4:30pm - 5:10pm
Recommend you to check out the following great sessions
by Heat PTL, Rico Lin.
Better Heat, Better OpenStack Life
Let’s see our One Year Journey in Production
How to make your Heat
more capable ?
Problem we faced
• By default, Heat supports only OpenStack resources
• Users need to manually create a bare-metal server
even they are using Heat during the following system
provision.
Internal Network
Bare-metal Server
Volume
How to solve this
problem?
Step 1
Step 2
How could we resolve it?
Heat Base Logic
Heat
Action
Request
CRUD
Response
…
Can I join
you?
Resource Plugins
New Plugin
• Use resource plugin feature provided by Heat as a solution
For More Information: https://wiki.openstack.org/wiki/Heat/Plugins
Add A Resource Plugin
• Let’s make your own python module file[*].
1. Create a class for your own resource
2. Define an formal name for this new
resource, like (‘ECL::Baremeatal::Server’)
3. Make the resource mapping in the plugin
R
B
‘heat.engine.resource.Resource’
New Resource Class:
class ECLBaremetalServer(
resource.Resource)
inherit
def resource_mapping():
return {
‘ECL::Baremetal::Server’: ECLBaremetalServer
}
[*] Location of your plugin file should be defined in heat.conf by key_word: plugin_dirs
Create Your Resource Plugin
Add Properties, Attributes and Actions
for your original Resources:
Heat
Heat Base Logic
Newly Added
Resource Plugins
Properties
Attributes
Actions
Resource
• handle_create()
• handle_delete()
• handle_update()
• handle_check()
• Name
• Description
• Image_id
• Admin_pass
• Links
• Created_at
Request
Parameters
Response
Parameters
Create Corresponding Client Plugin
Heat Base Logic
Newly Added
Resource Plugins
Heat
Client Plugins
C
B
‘heat.engine.clients.
client_plugin.ClientPlugin’
New ClientPlugin Class:
class ECLBaremetalClient(
client_plugin.ClientPlugin)
inherit
API-CALLs:
・get_server()
・get_flavor()
・get_keypair()
How to make your
Heat more reliable ?
• Annoying “Stack Creation Failed”
Waste of your time
Billing error may happen !! (Because we are
public cloud services provider)
Hard to find out the failure reason, possible reasons include:
Improper parameter setting in template
Resource out of quota
Typo of resource type name in template
Suffering from “Stack Creation Failed”?
A Couple of Heat Self-Check Mechanisms
Before Stack Creating
Constraint
Validation
+
Resources
CreationTemplate Resources
Creation
Resources
Creation
Resources
Creation
Step 1 Step 2
Raise Exception !!
Simple Input Parameter Check — Constraint
• What is a Constraint?
Constrain a property on its:
• Type => Integer? String? List?
• Length => Constraint string length
• Range => Constraint on integer size
• Allowed Values/Patterns…
• Fixed values/patterns => [True or False] /
[UUID]
• Match values dynamic => flavor_id/
image_id
How to add constraint?
1. Define a constraint
2. Use a constraint
properties_schema = {
NAME: properties.Schema(
properties.Schema.STRING,
_('The name of the key pair.'),
required=True,
constraints=[
constraints.Length(min=1, max=255)
]
),
class Length(Range):
valid_types = (Schema.STRING_TYPE,
Schema.LIST_TYPE, Schema.MAP_TYPE,)
def __init__(self, min=None, max=None, description=None):
if min is max is None:
raise exception.InvalidSchemaError(
message=_('A length constraint must'
'have a min value and/or '
'a max value specified.'))
super(Length, self).__init__(min, max, description)
Deeper Resources Check — Validation
• What could Validation do?
• Property validation: Similar to
constraint without fixed format.
• Quota validation [*]: Check if
requested resources exceed the quota
or not.
• Template validation: Check if the given
resource type & etc are correct or not
How to implement validations?
• Default validation method in class
‘heat.engine.resource.Resource’
def validate(self):
"""Validate the resource.
This may be overridden by resource plugins to add extra
validation logic specific to the resource implementation.
"""
LOG.info(_LI('Validating %s'), six.text_type(self))
return self.validate_template()
• Each resource can override this method to
add its own validation logic.
Original
[*] For more information: https://blueprints.launchpad.net/heat/+spec/quota-validation-whole-template
How to make Heat
template more easily ?
Challenges what we faced…
heat_template_version: 2014-10-16
description: >
A template which demonstrates doing boot-time
deployment of docker
container with docker-compose agent.
This template expects to be created with an
environment which defines
the resource type Heat::InstallConfigAgent
such as
../boot-config/heat_container_agent_env.yaml
parameters:
key_name:
type: string
default: heat_key
flavor:
type: string
default: m1.small
image:
type: string
default: fedora-atomic
private_net:
type: string
default: private
public_net:
type: string
default: public
resources:
the_sg:
type: OS::Neutron::SecurityGroup
properties:
name: the_sg
• Support to Customer who don’t have
engineering infrastructure background.
• Complexity
• Lots of parameters , resources & properties..
• Complicated dependency among multiple
resources
heat_template_version: 2014-10-16
description: >
A template which demonstrates doing boot-time
deployment of docker
container with docker-compose agent.
This template expects to be created with an
environment which defines
the resource type Heat::InstallConfigAgent
such as
../boot-config/heat_container_agent_env.yaml
parameters:
key_name:
type: string
default: heat_key
flavor:
type: string
default: m1.small
image:
type: string
default: fedora-atomic
private_net:
type: string
default: private
public_net:
type: string
default: public
resources:
the_sg:
type: OS::Neutron::SecurityGroup
properties:
name: the_sg
heat_template_version: 2014-10-16
description: >
A template which demonstrates doing boot-time
deployment of docker
container with docker-compose agent.
This template expects to be created with an
environment which defines
the resource type Heat::InstallConfigAgent
such as
../boot-config/heat_container_agent_env.yaml
parameters:
key_name:
type: string
default: heat_key
flavor:
type: string
default: m1.small
image:
type: string
default: fedora-atomic
private_net:
type: string
default: private
public_net:
type: string
default: public
resources:
the_sg:
type: OS::Neutron::SecurityGroup
properties:
name: the_sg
How we could make it ??
• Drag & Drop template
generator as a Horizon Plugin
• Running in our Production
since May, 2017, getting
really positive response from
Customers.
Super
Easy!!!
Wait….
Only available on NTTCom’s Cloud??
A new Heat family repo coming !!
+ =
Heat Dashboard
Official Horizon Plugin to deliver better Heat life on your
Dashboard.
# he just powered up, not burned
Target: Queens-2
Important Features
• Pull down menu for selectable parameters
• Possible parameters are suggested to you
• You can avoid mis-configuration like as typo
• Connector between resources
• Resolve dependency by drag&drop manner
• You can specify “depends_on” explicitly
• Draft Management
• You can save&load your canvas as a draft whenever you want
Available Resource Type
• OS::Nova::Server
• OS::Nova::KeyPair
• OS::Cinder::Volume
• OS::Cinder::VolumeAttachment
• OS::Neutron::FloatingIP
• OS::Neutron::FloatingIPAssociation
• OS::Neutron::Net
As day1, support basic resource type.
Stay tune, further supports.
• OS::Neutron::Port
• OS::Neutron::Router
• OS::Neutron::RouterInterface
• OS::Neutron::SecurityGroup
• OS::Neutron::Subnet
• OS::Heat::ResourceGroup
See our Demo ;)
How to Make OpenStack Heat Better based on Our One Year Production Journey
Get started on your DevStack !!
stack@ubuntu-xenial:~/devstack$ cat local.conf
[[local|localrc]]
HOST_IP=10.0.2.15
DEST=/opt/stack
LOGFILE=/opt/stack/logs/stack.sh.log
SCREEN_LOGDIR=/opt/stack/logs/screen
LOGDAYS=1
~
~
~
API_WORKERS=1
USE_SCREEN=True
enable_plugin heat https://git.openstack.org/openstack/heat
enable_plugin heat-dashboard https://git.openstack.org/openstack/heat-dashboard
stack@ubuntu-xenial:~/devstack$
Just add one line to your local.conf Heat Dashboard.
About DevStack, see https://docs.openstack.org/devstack/latest/
Your feedback will be really appreciated
• Repo
• https://git.openstack.org/openstack/heat-dashboard
• Bug/BP
• https://launchpad.net/heat-dashboard
• Get contact with us
• IRC, #heat,
• ping me(kazsh), I’m always here (Note: my timezone is UTC+9)
• ML, [openstack-dev][heat-dashboard]
As day1, support basic resource type.
Special Thanks
• ricolin / Heat
• therve / Heat
• ying_zuo / Horizon
• robcresswell / Horizon
• amotoki / Horizon
• Ajaeger / OpenStack Infra
We do appreciate your kind support for Heat Dashboard :)
Thank you.
Q&A
https://www.youtube.com/watch?
v=2O_Ou7K1bRk

More Related Content

PPT
Open source and You. DrupalForum ZP.
PDF
DevOps - Interview Question.pdf
PDF
Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...
PDF
Effectively using Open Source with conda
PPTX
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
PDF
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
PDF
[Open infra] how to calculate the cloud system operating rate
PDF
Understanding Kubernetes
Open source and You. DrupalForum ZP.
DevOps - Interview Question.pdf
Development myshoes and Provide Cycloud-hosted runner -- GitHub Actions with ...
Effectively using Open Source with conda
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
Quickly build and deploy a scalable OpenStack Swift application using IBM Blu...
[Open infra] how to calculate the cloud system operating rate
Understanding Kubernetes

What's hot (20)

PDF
Develop and Deploy Cloud-Native Apps as Resilient Microservice Architectures
PDF
Finding and Organizing a Great Cloud Foundry User Group
PDF
The Five Stages of Enterprise Jupyter Deployment
KEY
MongoDB as Search Engine Repository @ MongoTokyo2011
PDF
How to contribute to cloud native computing foundation (CNCF)
PPTX
Relay: The Next Leg, Eric Sorenson, Puppet
PDF
Kube-AWS
PDF
Pachyderm: Building a Big Data Beast On Kubernetes
ODP
The site architecture you can edit
PDF
Orchestration with Ansible at Fedora Project
PDF
Kubernetes Architecture - beyond a black box - Part 2
PPTX
2016 Docker Palo Alto - CD with ECS and Jenkins
PDF
How to operate containerized OpenStack
PPTX
Opening words at DockerCon Europe by Ben Golub
PDF
Enterprise Kubernetes from Canonical
PDF
Networking in Kubernetes
PPTX
Cluster Lifecycle Landscape
PDF
DockerCon EU 2015: Finding a Theory of the Universe with Docker and Volunteer...
PDF
Using Elyra for COVID-19 Analytics
Develop and Deploy Cloud-Native Apps as Resilient Microservice Architectures
Finding and Organizing a Great Cloud Foundry User Group
The Five Stages of Enterprise Jupyter Deployment
MongoDB as Search Engine Repository @ MongoTokyo2011
How to contribute to cloud native computing foundation (CNCF)
Relay: The Next Leg, Eric Sorenson, Puppet
Kube-AWS
Pachyderm: Building a Big Data Beast On Kubernetes
The site architecture you can edit
Orchestration with Ansible at Fedora Project
Kubernetes Architecture - beyond a black box - Part 2
2016 Docker Palo Alto - CD with ECS and Jenkins
How to operate containerized OpenStack
Opening words at DockerCon Europe by Ben Golub
Enterprise Kubernetes from Canonical
Networking in Kubernetes
Cluster Lifecycle Landscape
DockerCon EU 2015: Finding a Theory of the Universe with Docker and Volunteer...
Using Elyra for COVID-19 Analytics
Ad

Similar to How to Make OpenStack Heat Better based on Our One Year Production Journey (20)

PDF
Best Practice for Deploying Application with Heat
PPTX
Hot tutorials
PPTX
Openstack Heat
PDF
Heat optimization
PDF
Heat up your stack
PPTX
OpenInfra Summit - 2018 Vancouver - Heat Onboarding
PPT
OpenStack with-docker-team-17
PDF
Heat project onboarding
PPTX
Openstack heat & How Autoscaling works
PPTX
Openstack Heat & How Autoscaling works
PPTX
OpenStack Orchestration with Heat
PDF
An Introduction to OpenStack Heat
PPTX
OpenStack Orchestration (Heat)
PDF
Heat onboarding - Berlin OpenStack summit
PDF
Automation with HOT & Murano in Openstack
PPTX
Heat and its resources
PPTX
Eric Williams (Rackspace) - Using Heat on OpenStack
PDF
Project update - heat (up to pike-1)
ODP
VPC Implementation In OpenStack Heat
PDF
OpenStack on OpenStack
Best Practice for Deploying Application with Heat
Hot tutorials
Openstack Heat
Heat optimization
Heat up your stack
OpenInfra Summit - 2018 Vancouver - Heat Onboarding
OpenStack with-docker-team-17
Heat project onboarding
Openstack heat & How Autoscaling works
Openstack Heat & How Autoscaling works
OpenStack Orchestration with Heat
An Introduction to OpenStack Heat
OpenStack Orchestration (Heat)
Heat onboarding - Berlin OpenStack summit
Automation with HOT & Murano in Openstack
Heat and its resources
Eric Williams (Rackspace) - Using Heat on OpenStack
Project update - heat (up to pike-1)
VPC Implementation In OpenStack Heat
OpenStack on OpenStack
Ad

Recently uploaded (20)

PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
Hybrid model detection and classification of lung cancer
PPTX
Modernising the Digital Integration Hub
PDF
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PDF
DP Operators-handbook-extract for the Mautical Institute
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
project resource management chapter-09.pdf
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
1. Introduction to Computer Programming.pptx
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
observCloud-Native Containerability and monitoring.pptx
Hybrid model detection and classification of lung cancer
Modernising the Digital Integration Hub
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
A contest of sentiment analysis: k-nearest neighbor versus neural network
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Group 1 Presentation -Planning and Decision Making .pptx
NewMind AI Weekly Chronicles - August'25-Week II
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
DP Operators-handbook-extract for the Mautical Institute
Module 1.ppt Iot fundamentals and Architecture
Programs and apps: productivity, graphics, security and other tools
project resource management chapter-09.pdf
OMC Textile Division Presentation 2021.pptx
1. Introduction to Computer Programming.pptx
Chapter 5: Probability Theory and Statistics
Web App vs Mobile App What Should You Build First.pdf
NewMind AI Weekly Chronicles – August ’25 Week III

How to Make OpenStack Heat Better based on Our One Year Production Journey

  • 1. OpenStack Heat One Year Journey in Production Kaz Shinohara(kazsh) Jiye Yu(jiye) 1 Wed 8, 9:50am-10:30am Level3 Convention Center - C3.4/3.5
  • 2. Agenda • Our Background • About Heat • How to make your Heat more Capable ? • How to make your Heat more Available ? • How to make your Heat more Reliable ? • How to make Heat template more Easily ?
  • 4. Who we are ? Kaz Shinohara • Title: Technical Lead • IRC/Launchpad: kazsh • GitHub/Twitter: kazshinohara • Email: ksnhr.tech@gmail.com Photo From NTT Communications in Japan, Engaged in “Enterprise Cloud” Development. Jiye Yu • Title: Software Engineer • IRC/Launchpad: jiye • GitHub: JyieYu • Email: troyspur@gmail.com
  • 5. OpenStack based Public Cloud Services since Mar 2016 Provided in 8 regions, 1 more region in US is coming soon Original components Networks & Bare-metal behalf of Neutron & Ironic 5Coming soon.. OpenStack Components Original Components Horizon Nova KeystoneGlanceCinder Heat Trove Swift Network Baremetal Server
  • 6. About Heat Before our story, Let’s review Heat :) For detail, see.. https://wiki.openstack.org/wiki/Heat
  • 7. Orchestration Services in OpenStack The answer to “Infrastructure as code” for OpenStack users. Cloud resources described in YAML/JSON format template. your template Heat Nova Cinder Neutron Volume Instance Internal Network heat_template_version: 2017-09-01 parameters: flavor: type: string default: m1.small resources: volume: type: OS::Cinder::Volume properties: size: 1 instance: type: ECL::Compute::Server properties: image: ba802f87-4deb-43d3-ae28-91b1aa821e89 flavor: m1.tiny Stack(Group of connected resources)
  • 8. Powerful functions like as… • Resource Group • Multiply any number of resources what you want to create. • Nested Templates • Split out your very large template into smaller sub-templates. • Software Config • Configure your server along with Shell Script/Ansible/Cheff/Puppet…etc. • https://github.com/openstack/heat-templates/tree/master/hot/software-config/elements
  • 9. Brother Projects in OpenStack AFIK, Multiple Projects are taking Heat internally. Maybe more…
  • 10. For more detail about Heat… • Heat - Project Onboarding (Enjoy on YouTube) • Mon, November 6, 11:35am - 12:15pm • Heat - Project Update (Enjoy on YouTube) • Tue, November 7, 5:00pm - 5:20pm • Heat ops and users feedback • Wed, November 8, 4:30pm - 5:10pm Recommend you to check out the following great sessions by Heat PTL, Rico Lin.
  • 11. Better Heat, Better OpenStack Life Let’s see our One Year Journey in Production
  • 12. How to make your Heat more capable ?
  • 13. Problem we faced • By default, Heat supports only OpenStack resources • Users need to manually create a bare-metal server even they are using Heat during the following system provision. Internal Network Bare-metal Server Volume How to solve this problem? Step 1 Step 2
  • 14. How could we resolve it? Heat Base Logic Heat Action Request CRUD Response … Can I join you? Resource Plugins New Plugin • Use resource plugin feature provided by Heat as a solution For More Information: https://wiki.openstack.org/wiki/Heat/Plugins
  • 15. Add A Resource Plugin • Let’s make your own python module file[*]. 1. Create a class for your own resource 2. Define an formal name for this new resource, like (‘ECL::Baremeatal::Server’) 3. Make the resource mapping in the plugin R B ‘heat.engine.resource.Resource’ New Resource Class: class ECLBaremetalServer( resource.Resource) inherit def resource_mapping(): return { ‘ECL::Baremetal::Server’: ECLBaremetalServer } [*] Location of your plugin file should be defined in heat.conf by key_word: plugin_dirs
  • 16. Create Your Resource Plugin Add Properties, Attributes and Actions for your original Resources: Heat Heat Base Logic Newly Added Resource Plugins Properties Attributes Actions Resource • handle_create() • handle_delete() • handle_update() • handle_check() • Name • Description • Image_id • Admin_pass • Links • Created_at Request Parameters Response Parameters
  • 17. Create Corresponding Client Plugin Heat Base Logic Newly Added Resource Plugins Heat Client Plugins C B ‘heat.engine.clients. client_plugin.ClientPlugin’ New ClientPlugin Class: class ECLBaremetalClient( client_plugin.ClientPlugin) inherit API-CALLs: ・get_server() ・get_flavor() ・get_keypair()
  • 18. How to make your Heat more reliable ?
  • 19. • Annoying “Stack Creation Failed” Waste of your time Billing error may happen !! (Because we are public cloud services provider) Hard to find out the failure reason, possible reasons include: Improper parameter setting in template Resource out of quota Typo of resource type name in template Suffering from “Stack Creation Failed”?
  • 20. A Couple of Heat Self-Check Mechanisms Before Stack Creating Constraint Validation + Resources CreationTemplate Resources Creation Resources Creation Resources Creation Step 1 Step 2 Raise Exception !!
  • 21. Simple Input Parameter Check — Constraint • What is a Constraint? Constrain a property on its: • Type => Integer? String? List? • Length => Constraint string length • Range => Constraint on integer size • Allowed Values/Patterns… • Fixed values/patterns => [True or False] / [UUID] • Match values dynamic => flavor_id/ image_id How to add constraint? 1. Define a constraint 2. Use a constraint properties_schema = { NAME: properties.Schema( properties.Schema.STRING, _('The name of the key pair.'), required=True, constraints=[ constraints.Length(min=1, max=255) ] ), class Length(Range): valid_types = (Schema.STRING_TYPE, Schema.LIST_TYPE, Schema.MAP_TYPE,) def __init__(self, min=None, max=None, description=None): if min is max is None: raise exception.InvalidSchemaError( message=_('A length constraint must' 'have a min value and/or ' 'a max value specified.')) super(Length, self).__init__(min, max, description)
  • 22. Deeper Resources Check — Validation • What could Validation do? • Property validation: Similar to constraint without fixed format. • Quota validation [*]: Check if requested resources exceed the quota or not. • Template validation: Check if the given resource type & etc are correct or not How to implement validations? • Default validation method in class ‘heat.engine.resource.Resource’ def validate(self): """Validate the resource. This may be overridden by resource plugins to add extra validation logic specific to the resource implementation. """ LOG.info(_LI('Validating %s'), six.text_type(self)) return self.validate_template() • Each resource can override this method to add its own validation logic. Original [*] For more information: https://blueprints.launchpad.net/heat/+spec/quota-validation-whole-template
  • 23. How to make Heat template more easily ?
  • 24. Challenges what we faced… heat_template_version: 2014-10-16 description: > A template which demonstrates doing boot-time deployment of docker container with docker-compose agent. This template expects to be created with an environment which defines the resource type Heat::InstallConfigAgent such as ../boot-config/heat_container_agent_env.yaml parameters: key_name: type: string default: heat_key flavor: type: string default: m1.small image: type: string default: fedora-atomic private_net: type: string default: private public_net: type: string default: public resources: the_sg: type: OS::Neutron::SecurityGroup properties: name: the_sg • Support to Customer who don’t have engineering infrastructure background. • Complexity • Lots of parameters , resources & properties.. • Complicated dependency among multiple resources heat_template_version: 2014-10-16 description: > A template which demonstrates doing boot-time deployment of docker container with docker-compose agent. This template expects to be created with an environment which defines the resource type Heat::InstallConfigAgent such as ../boot-config/heat_container_agent_env.yaml parameters: key_name: type: string default: heat_key flavor: type: string default: m1.small image: type: string default: fedora-atomic private_net: type: string default: private public_net: type: string default: public resources: the_sg: type: OS::Neutron::SecurityGroup properties: name: the_sg heat_template_version: 2014-10-16 description: > A template which demonstrates doing boot-time deployment of docker container with docker-compose agent. This template expects to be created with an environment which defines the resource type Heat::InstallConfigAgent such as ../boot-config/heat_container_agent_env.yaml parameters: key_name: type: string default: heat_key flavor: type: string default: m1.small image: type: string default: fedora-atomic private_net: type: string default: private public_net: type: string default: public resources: the_sg: type: OS::Neutron::SecurityGroup properties: name: the_sg
  • 25. How we could make it ?? • Drag & Drop template generator as a Horizon Plugin • Running in our Production since May, 2017, getting really positive response from Customers. Super Easy!!!
  • 26. Wait…. Only available on NTTCom’s Cloud??
  • 27. A new Heat family repo coming !! + = Heat Dashboard Official Horizon Plugin to deliver better Heat life on your Dashboard. # he just powered up, not burned Target: Queens-2
  • 28. Important Features • Pull down menu for selectable parameters • Possible parameters are suggested to you • You can avoid mis-configuration like as typo • Connector between resources • Resolve dependency by drag&drop manner • You can specify “depends_on” explicitly • Draft Management • You can save&load your canvas as a draft whenever you want
  • 29. Available Resource Type • OS::Nova::Server • OS::Nova::KeyPair • OS::Cinder::Volume • OS::Cinder::VolumeAttachment • OS::Neutron::FloatingIP • OS::Neutron::FloatingIPAssociation • OS::Neutron::Net As day1, support basic resource type. Stay tune, further supports. • OS::Neutron::Port • OS::Neutron::Router • OS::Neutron::RouterInterface • OS::Neutron::SecurityGroup • OS::Neutron::Subnet • OS::Heat::ResourceGroup
  • 32. Get started on your DevStack !! stack@ubuntu-xenial:~/devstack$ cat local.conf [[local|localrc]] HOST_IP=10.0.2.15 DEST=/opt/stack LOGFILE=/opt/stack/logs/stack.sh.log SCREEN_LOGDIR=/opt/stack/logs/screen LOGDAYS=1 ~ ~ ~ API_WORKERS=1 USE_SCREEN=True enable_plugin heat https://git.openstack.org/openstack/heat enable_plugin heat-dashboard https://git.openstack.org/openstack/heat-dashboard stack@ubuntu-xenial:~/devstack$ Just add one line to your local.conf Heat Dashboard. About DevStack, see https://docs.openstack.org/devstack/latest/
  • 33. Your feedback will be really appreciated • Repo • https://git.openstack.org/openstack/heat-dashboard • Bug/BP • https://launchpad.net/heat-dashboard • Get contact with us • IRC, #heat, • ping me(kazsh), I’m always here (Note: my timezone is UTC+9) • ML, [openstack-dev][heat-dashboard] As day1, support basic resource type.
  • 34. Special Thanks • ricolin / Heat • therve / Heat • ying_zuo / Horizon • robcresswell / Horizon • amotoki / Horizon • Ajaeger / OpenStack Infra We do appreciate your kind support for Heat Dashboard :)