Heat project onboarding

20
Project Update - Heat Mon 8 , 5:30pm-6:10pm Hynes Convention Center - Level 2 - MR 203 Heat- Project Onboarding Tue 9 , 2:00pm-3:30pm Hynes Convention Center - Plaza Level - MR 105 Large Orchestration stacks Wed 10 , 5:20pm-6:00pm Hynes Convention Center - Plaza Level - MR 104

Transcript of Heat project onboarding

Page 1: Heat  project onboarding

Project Update - Heat Mon 8 , 5:30pm-6:10pm Hynes Convention Center - Level 2 - MR 203

Heat- Project OnboardingTue 9 , 2:00pm-3:30pm Hynes Convention Center - Plaza Level - MR 105

Large Orchestration stacksWed 10 , 5:20pm-6:00pm Hynes Convention Center - Plaza Level - MR 104

Page 2: Heat  project onboarding

Heat - Project OnboardingRico Lin @ EasyStackZane Bitter @ Red Hat

Rabi Mishra (Ocata PTL), Thomas Herve (Newton PTL), Huang Tianhua, Peter Razumovsky, Sahdev Zala, Crag Wolfe, Steve Baker, shizhihui, Kanagaraj Manickam, Dan Prince, Ethan Lynn, Cao Xuan Hoang, Steven Hardy, Flavio Percoco Premoli, Jason Dunsmore, Dmitriy, Ian Main, Sergey Kraynev, gengchc, Andreas Jaeger, Juan Antonio Osorio Robles, Tuan, Mohankumar, zhufl, Yong Sheng Gong, Alex Schultz, Oleksii Chuprykov, Ha Van Tu, pawnesh kumar, Sam Yaple, shangxdy, Sofer Athlan-Guyot, Chris, Tanvir Talukder, Rakesh, Bharath Thiruveedula, James Slagle, Csaba Fülöp, Miguel Caballer, Anant Patil, Mathieu Velten, Yosef Hoffman, Michael Still, Georgy Dyuldin, Dan Radez, Zhenyu Zheng, Abhishek Chanda, Tony Breeds, gecong, zhangyanxian, anusreea, Alexander Ignatyev, ChangBo Guo(gcb), Nam, Chuck Short, Béla Vancsics, Davanum Srinivas, lvdongbing, Pierre Riteau, Daniel Gonzalez Nothnagel, Bhagyashri Shewale, Chason, Lars Kellogg-Stedman, Ying Zuo, Bin Zhou, Julian Sy, Spencer Yu, WeiJi, prince_katiyar, Martin André, Tovin Seven, yunfeng zhou, Jeremy Pugh, zengchen, Stephen Gordon, Jan Provaznik, surbhi sarda, Ana Krivokapić, Lu lei, Vijendra Soni, liangshang, Liusheng, Tetiana Lashchova, LiuNanke, Rob Cresswell, Lucky samadhiya, Bertrand Lallau, avnish, PanFengyun, Amit Ugol, Sylvain Baubeau, Russell Bryant, Drago Rosson, Anh Tran, Boden Russell, Leon Shaw, Sharat Sharma, Qiming Teng, Di XiaoLi, Ashutosh Mishra

Page 3: Heat  project onboarding

Ideas + blueprints/bugs + specs/patches + reviews

= Super !!!

AndYour Help Is Desired!

Page 4: Heat  project onboarding

● Heat● Python-heatclient● Heat-agents● Heat-templates● Heat-specs● Heat-cfnclient● Heat-cfntools● Heat-translator● Tosca-parser

● Also alot of projects that relative

Heat repos

Page 5: Heat  project onboarding

Heat Architecture

worker worker

YAML Template

Page 6: Heat  project onboarding

Convergence

worker1 workerN

amqp

engine1 engineN

$ openstack stack create -t kubernetes.yaml Stack

Stack

Stack

worker2

depends on

Stack

CREATE_COMPLETE!!

SyncPoint 1

Stack

engine1Stack

Lagency

Page 7: Heat  project onboarding

From Template to Resources

heat_template_version: pike...resources: dog1: type: OS::Sled::Dog properties: name: snow_white….. dog2: type: OS::Sled::Dog properties: leader: { get_resource: dog1 }….. dog3:…..

Page 8: Heat  project onboarding

Create a stack and validate it

heat_template_version: pike...resources: dog1: type: OS::Sled::Dog properties: name: snow_white….. dog2: type: OS::Sled::Dog properties: leader: { get_resource: dog1 }….. dog3:…..

Stack

dog1

2 3 4 5

registered resource mapping:OS::Sled::Dog: a class or another fileOS::Heat::Fire: OS::Heat::None...

3. check and parse withproperty schema.

class

4. if func. in side, call function of the version (pike)

5. got resource object

2. get a class or files for that resource

1. search mapping implements base on type

6. build dependenices for resource

Page 9: Heat  project onboarding

From a resource object to actually create

Stack

dog1

2 3 4 5

1. ask worker to `check_resource`

2. call with `create_convergence`

3. create with `handle_create`

4. use service client with context from heat to triger createlike: self.sled_dogs().create(*kwargs)

5. mark as CREATE COMPLETE.All resource go to `CREATE COMPLETE`

Page 10: Heat  project onboarding

Update the resource

Stack

dog1

2 3 4 51. Only will update resources that been changed

heat_template_version: pike...resources:….. dog2: type: OS::Sled::Dog properties: leader: { get_resource: dog3 }…..

2. worker check resource

3. get original data from database or reality

4. update or replace

5. Mark as Update/Create COMPLETE

Stack'

dog1

2.1 3 4 5

Page 11: Heat  project onboarding

● support_status = support.SupportStatus(version='9.0.0')

● entity = 'sled_dogs'● default_client_name = 'sled'● properties_schema● attributes_schema● _resolve_attribute● parse_live_resource_data● translation_rules● handle_XXX

○ create○ update○ delete○ suspend○ resume○ adopt○ restore○ snapshot○ create_cancel○ update_cancel○ signal○ metadata_reset

● check_XXX_complete

I need a new resource type

def resource_mapping(): return { 'OS::Sled::Dog': SledDog }

Or in environment file:

source_registry: "OS::Sled::Dog": "OS::Sled::Cat" "OS::Sled::Puppy": "An URL or file"

Page 12: Heat  project onboarding

Software Config

Software Deploy

Nova Server

What you can install withheat-config-ansibleheat-config-apply-configheat-config-cfn-initheat-config-chefheat-config-docker-cmdheat-config-docker-composeheat-config-hieraheat-config-json-fileheat-config-kubeletheat-config-puppetheat-config-saltheat-config-scriptAnd you can customize your own hook

os-collect-config

os-refresh-config

os-apply-config

kubelet-hook $ kubelet

Webserverdone

config-notify

Signal

'CCFN_SIGNALTEMP_URL_SIGNALNO_SIGNALHEAT_SIGNALZAQAR_SIGNAL

Page 13: Heat  project onboarding

auto_scaling(auto_healing(server))

OS::Nova::Server

OS::Zaqar::Queue

OS::Aodh::EventAlarm

OS::Mistral::Workflow

OS::Zaqar::MistralTrigger

Signal

Fix

Meter

Trigger

OS::Heat::AutoScalingGroup

Page 14: Heat  project onboarding

Auto_{what matters}

XXX::Server

XXX::Signal XXX::Alarm

XXX::Workflow

Signal

Meter

Trigger

XXX::AutoScaling

How you metering?How you

handle signal?

How you trigger a fix job

What's meter to

you?

Fix

Page 15: Heat  project onboarding

● openstack stack event show <stack> <resource> <event>● openstack stack resource show <stack> <resource>● report a bug! https://bugs.launchpad.net/heat● chat on irc #heat or join our meeting● A reset botton?

And if anything went wrong

Page 16: Heat  project onboarding

● openstack stack abandon <stack>● openstack stack export <stack>● openstack stack adopt --adopt-file <adopt-file> <stack-name>● openstack stack snapshot create <stack>● openstack stack snapshot restore <stack> <snapshot>

A Reset Button

Page 17: Heat  project onboarding

● Consider backwards● With Unittest● synchronize● review! review! review!

Hacking rules

Page 18: Heat  project onboarding

● Python 3.5 support● Neutron Segment resource for routed networks● Neutron VLAN trunk ports (802.1Q)● External custom resources managed by Mistral workflows● New intrinsic functions: make_url, list_concat_unique● Internal architecture improvements● Stable attribute values (no live lookup) in convergence● Memory & performance improvement for convergence● Reliability improvements for large stacks● [Preview] Optionally compare to actual state of resources during updates

Pike Roadmap

Page 19: Heat  project onboarding

Questions?https://github.com/openstack/heat

https://launchpad.net/heathttps://wiki.openstack.org/wiki/Heat

IRC: #heatOur Meeting time:

Every Wednesdays at 1500 UTCin #openstack-meeting-5

Large Orchestration stacksWed 10 , 5:20pm-6:00pm

Hynes Convention Center - Plaza Level - MR 104

Page 20: Heat  project onboarding

Thank You!https://github.com/openstack/heat

https://launchpad.net/heathttps://wiki.openstack.org/wiki/Heat

IRC: #heatOur Meeting time:

Every Wednesdays at 1500 UTCin #openstack-meeting-5

Large Orchestration stacksWed 10 , 5:20pm-6:00pm

Hynes Convention Center - Plaza Level - MR 104