This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
copper:use_cases [2015/04/09 23:24] Bryan Sullivan |
copper:use_cases [2015/05/05 21:22] Bryan Sullivan |
||
---|---|---|---|
Line 2: | Line 2: | ||
^ Policy ^ Description ^ Notes/Examples ^ | ^ Policy ^ Description ^ Notes/Examples ^ | ||
- | | Access Control | As a tenant, I need to be sure that the only private networks connected to my VMs are owned by me or someone from my group. | <code>error :- nova:vm(vm), neutron:network(network), | + | | Network Access Control | As a tenant, I need to be sure that the only private networks connected to my VMs are owned by me or someone from my group. | OpenStack Congress: <code>error :- nova:vm(vm), |
- | nova:network(vm, network), neutron:private(network), | + | neutron:network(network), |
- | nova:owner(vm, vm-own), neutron:owner(network, net-own), | + | nova:network(vm, network), |
+ | neutron:private(network), | ||
+ | nova:owner(vm, vm-own), | ||
+ | neutron:owner(network, net-own), | ||
-same-group(vm-own, net-own) | -same-group(vm-own, net-own) | ||
same-group(user1, user2) :- ldap:group(user1, g), ldap:group(user2, g) </code> | | same-group(user1, user2) :- ldap:group(user1, g), ldap:group(user2, g) </code> | | ||
+ | | Storage Access Control | As a tenant, I need to be sure that the only VMs that can attach to my private storage resources are owned by me or someone from my group. | OpenStack Congress: <code>error :- nova:vm(vm), cinder:volumes(volume), | ||
+ | nova:volume(vm, volume), | ||
+ | nova:owner(vm, vm-own), | ||
+ | neutron:owner(volume, vol-own), | ||
+ | -same-group(vm-own, vol-own) | ||
+ | |||
+ | same-group(user1, user2) :- ldap:group(user1, g), ldap:group(user2, g) </code> | | ||
+ | | Resource Reclamation | As a service provider, I need to be informed of VMs that are under-utilized so that I can reclaim the VI resources. (example from [[http://ruleyourcloud.com/2015/03/12/scaling-up-congress.html|RuleYourCloud blog]]) | OpenStack Congress: <code> reclaim_server(vm) :- | ||
+ | ceilometer:stats("cpu_util",vm, avg_cpu), | ||
+ | lessthan(avg_cpu, 1) | ||
+ | |||
+ | error(user_id, email, vm_name) :- | ||
+ | reclaim_server(vm), | ||
+ | nova:servers(vm, vm_name, user_id), | ||
+ | keystone:users(user_id, email) </code>| | ||
| Affinity | Ensures that the VM instance is launched "with affinity to" specific resources, e.g. within a compute or storage cluster. | This is analogous to the affinity rules in [[https://pubs.vmware.com/vsphere-50/topic/com.vmware.vsphere.resmgmt.doc_50/GUID-FF28F29C-8B67-4EFF-A2EF-63B3537E6934.html|VMWare vSphere DRS]]. Examples include: "Same Host Filter", i.e. place on the same compute node as a given set of instances, e.g. as defined in a scheduler hint list. | | | Affinity | Ensures that the VM instance is launched "with affinity to" specific resources, e.g. within a compute or storage cluster. | This is analogous to the affinity rules in [[https://pubs.vmware.com/vsphere-50/topic/com.vmware.vsphere.resmgmt.doc_50/GUID-FF28F29C-8B67-4EFF-A2EF-63B3537E6934.html|VMWare vSphere DRS]]. Examples include: "Same Host Filter", i.e. place on the same compute node as a given set of instances, e.g. as defined in a scheduler hint list. | | ||
| Anti-Affinity | Ensures that the VM instance is launched "with anti-affinity to" specific resources, e.g. outside a compute or storage cluster. | This filter is analogous to the anti-affinity rules in vSphere DRS. Examples include: " Different Host Filter", i.e. ensures that the VM instance is launched on a different compute node from a given set of instances, as defined in a scheduler hint list. | | | Anti-Affinity | Ensures that the VM instance is launched "with anti-affinity to" specific resources, e.g. outside a compute or storage cluster. | This filter is analogous to the anti-affinity rules in vSphere DRS. Examples include: " Different Host Filter", i.e. ensures that the VM instance is launched on a different compute node from a given set of instances, as defined in a scheduler hint list. | |