heat project onboarding
TRANSCRIPT
![Page 1: Heat project onboarding](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/3.jpg)
Ideas + blueprints/bugs + specs/patches + reviews
= Super !!!
AndYour Help Is Desired!
![Page 4: Heat project onboarding](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/4.jpg)
● 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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/5.jpg)
Heat Architecture
worker worker
YAML Template
![Page 6: Heat project onboarding](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/11.jpg)
● 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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/15.jpg)
● 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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/16.jpg)
● 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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/17.jpg)
● Consider backwards● With Unittest● synchronize● review! review! review!
Hacking rules
![Page 18: Heat project onboarding](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/18.jpg)
● 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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022022001/5aacf9df7f8b9a003b8b46c1/html5/thumbnails/20.jpg)
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