pcf
Project description
Particle Cloud Framework
Particle Cloud Framework is a cloud resource provisioning framework that is fully customizable and extensible, callable by code, and does not require manually maintaining states of resources. Particle Cloud Framework enables the standardization of modeling hierarchical cloud infrastructure, automating deployments, and managing lifecycles of cloud resources.
Docs
Docs including quickstart and developer guide
Installation
To install particle cloud framework, open an interactive shell and run:
pip install pcf
Import and use a PCF Particle
First import the particles you will use. These can be core particles or custom particles that you created. See examples if you need help creating your config.
from pcf.core.ec2.ec2_instance import EC2Instance
from pcf.core import State
Next we need to pass the desired state definition to the particle.
ec2_example_definition = {
"pcf_name": "ec2_example",
"flavor":"ec2",
"aws_resource": {
"ImageId": "ami-xxxxx",
"InstanceType": "t2.micro",
"KeyName": "secret-key-xxx",
"SecurityGroupIds": [
"sg-xxxxxx",
],
"SubnetId": "subnet-xxx",
"userdata_template_file": "userdata-script-xxxxx.sh",
"userdata_params": {},
"IamInstanceProfile": {
"Arn": "arn:aws:iam::xxxxxxxxx"
},
"InstanceInitiatedShutdownBehavior": "stop",
"tags": {
"NAME":"Value"
},
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sda1",
"Ebs": {
"DeleteOnTermination": true,
"VolumeSize": 20,
"VolumeType": "gp2"
}
}
]
}
}
Now to start the ec2 instance using pcf simply initialize the particle and set the desired state to running and apply.
particle = EC2Instance(ec2_example_definition)
particle.set_desired_state(State.running)
particle.apply()
To terminate simply change the desired state to terminated and apply.
particle.set_desired_state(State.terminated)
particle.apply()
Supported Cloud Services
RoadMap
Contributors
We welcome Your interest in Capital One’s Open Source Projects (the “Project”). Any Contributor to the Project must accept and sign an Agreement indicating agreement to the license terms below. Except for the license granted in this Agreement to Capital One and to recipients of software distributed by Capital One, You reserve all right, title, and interest in and to Your Contributions; this Agreement does not impact Your rights to use Your own Contributions for any other purpose.
Code of Conduct
This project adheres to the Open Code of Conduct By participating, you are expected to honor this code.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.