Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Templating Stacks #248

Closed
jamesliulondon opened this issue May 10, 2015 · 2 comments
Closed

Feature request: Templating Stacks #248

jamesliulondon opened this issue May 10, 2015 · 2 comments
Milestone

Comments

@jamesliulondon
Copy link

Feature request:
Database-state-db::

  • periodically checking running list of xen hosts to track running xenpool masters
  • marshalling:
    • VLANs
    • known IPs (via xapi, dhcp, cobbler api, and ping checks),
    • vm_name_labels
    • vm_tags
      caculate:
    • server count
    • average CPU busy per stack (future use)
    • average server_load per stack (future use)
  • collating a list of vm_tags
  • organising vm_hosts vby vm_tags (referred to as stack_tags)
  • Repsitory (YAML for userinput, but processing in JSON internally, as db-text field or temp/log folder)
    Cobbler(or generic provisioner)::

Database-strategy-db::

  • ingest YAML from userinput, store in JSON organised by:
    -- STACK
    • stackname
    • cooldown_timer(seconds)
    • desired_server_count(int)
    • desired_server_load_metric(future use)
    • desired_CPU_busy_metric(future use)
    • VLAN (xen_network)
    • array (using vm_name_label derived from composite of stackname_[jira/prod/stage]_servernum)
      -- LOADBALANCER?
      -- LB_name
      -- LB_name members [using STACK::array::vm_name_label::(ip)

Provision technology (cobbler or other)::

  • spawn servers

Orchestration::

  • poll Database-strategy-db:: and Database-state-db::
  • depending on server_count, create or delete random server in stack on the correct xen_network
    • add vm_tag to server, update database (avoid duplication)
    • check vm's IP/MAC is not already in use by XenHost or VM (or other check with ping), notify/retry on clash
  • notify by email that a box was autoscaled.
  • once a box is provisioned/destroyed, prevent scaling according to cooldown_timer
@jamesliulondon
Copy link
Author

I'd like an API which I could use to import a YAML file which defines an a Platform/Environment of Linux Servers.
This Platform consists of multiple servers which describes an entire product, eg (webtier,apptier,dbtier).

According to changes in the YAML, I'd like to increase or decrease the number of servers in each tier.
According to CPU load, I'd like to spawn/destroy boxes (within the constraints defined in the YAML).

@olivierlambert olivierlambert added this to the 5.0 milestone Oct 13, 2015
@olivierlambert olivierlambert modified the milestones: 5.0, Long term Apr 29, 2016
@olivierlambert
Copy link
Member

Idea added into the wiki.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants