Comments (2)
It turns out if you restrict yourself to the following resources, cloudformation templates are reasonably compatible with Open Stack:
CloudFormation Compatible Resource Types
AWS::AutoScaling::AutoScalingGroup
AWS::AutoScaling::LaunchConfiguration
AWS::AutoScaling::ScalingPolicy
AWS::CloudFormation::Stack
AWS::CloudFormation::WaitCondition
AWS::CloudFormation::WaitConditionHandle
AWS::EC2::EIP
AWS::EC2::EIPAssociation
AWS::EC2::Instance
AWS::EC2::InternetGateway
AWS::EC2::NetworkInterface
AWS::EC2::RouteTable
AWS::EC2::SecurityGroup
AWS::EC2::Subnet
AWS::EC2::SubnetRouteTableAssociation
AWS::EC2::VPC
AWS::EC2::VPCGatewayAttachment
AWS::EC2::Volume
AWS::EC2::VolumeAttachment
AWS::ElasticLoadBalancing::LoadBalancer
AWS::IAM::AccessKey
AWS::IAM::User
AWS::RDS::DBInstance
AWS::S3::Buckett
Adding full OS support looks like a combination of things:
-
fix output to allow yaml instead of json. This is probably trickier than it seems, and may not be necessary. However, yaml with references can make for a much condensed template over just json, so I think it is worth pursuing
-
add support for the extra FNs that openstack provides. Fn::Replace is kind of nice, for instance.
-
add support for all of the extra OS:: resources.
-
To ensure the best possible validation, it might be nice to be able to specify somewhere whether you want your template to work in OS or CFN (or both!) and have type checking rules adjust appropriately.
More details can be found here: http://docs.openstack.org/developer/heat/template_guide/index.html
from cfndsl.
A recent pull request added some support for Heat.
You can create a JSON heat template using the top level function Heat, in much the same way you would do so with the function CloudFormation to create a cloudformation template. The language accepted within the Heat function is generated by a yaml file based on the contents of http://docs.openstack.org/developer/heat/template_guide/openstack.html and http://docs.openstack.org/developer/heat/template_guide/cfn.html .
Note some features implemented outside of the .yaml system will still 'work' for openstack, although they will then incorrectly generate templates that are not valid Heat templates. Conditionals, for example. Also note the Heat's FnReplace function has not been implemented. FnFormat should satisfy the same kinds of needs, and I can only think of some strange corner cases where you would care which one you ended up with.
from cfndsl.
Related Issues (20)
- gitter.im link is broken (gives 404 not found) HOT 2
- Where should we define custom helper methods? HOT 1
- Possible regressions 0.17.5 -> 1.0.0 HOT 8
- Resources ["Foo"] refer to unknown Reference AWS::Partition HOT 4
- Typo in README examples
- CloudFrontOriginAccessIdentity is an undefined method HOT 4
- Issue with DSL generation from cli arguments HOT 1
- unknown type AWSResourceGroupsGroupJson HOT 1
- Shorthand method of accessing resource attributes via FnSub fails reference checks HOT 1
- Outdated assertion in Readme HOT 1
- SecurityGroupIngress is always an array - 1.1.1 HOT 2
- Task: Generate types from CloudFormation resource registry schemas
- Freeze specifications version HOT 2
- Allow ruby versions until eol
- Missing Support for the TimeZone property of AWS::AutoScaling::ScheduledAction HOT 1
- List ItemType in the specification file breaking template generation with spec version 69.0.0 HOT 1
- AWS::CloudFormation::Interface HOT 4
- Missing AWS::ElasticLoadBalancingV2::LoadBalancer SubnetMapping HOT 2
- Undefined method `Name' for `CfnDsl::AWS::Types::AWS_SSM_Association` HOT 8
- Jsonable calls System.exit instead of raising exception
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cfndsl.