Manage Elasticache
Create, destroy and update Elasticache clusters. Be aware that this interacts
with Amazon's services, and so may incur charges.
Note: This module currently only supports creation and deletion of
elasticache resources and will not modify clusters when their configuration
changes in your state files.
This module uses boto
, which can be installed via package, or pip.
This module accepts explicit elasticache credentials but can also utilize
IAM roles assigned to the instance through Instance Profiles. Dynamic
credentials are then automatically obtained from AWS API and no further
configuration is necessary. More information available here.
If IAM roles are not used you need to specify them either in a pillar file or
in the minion's config file:
elasticache.keyid: GKTADJGHEIQSXMKKRBJ08H
elasticache.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
It's also possible to specify key
, keyid
and region
via a profile, either
passed in as a dict, or as a string to pull from pillars or minion config:
myprofile:
keyid: GKTADJGHEIQSXMKKRBJ08H
key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
region: us-east-1
Ensure myelasticache exists:
boto_elasticache.present:
- name: myelasticache
- engine: redis
- cache_node_type: cache.t1.micro
- num_cache_nodes: 1
- notification_topic_arn: arn:aws:sns:us-east-1:879879:my-sns-topic
- region: us-east-1
- keyid: GKTADJGHEIQSXMKKRBJ08H
- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
# Using a profile from pillars
Ensure myelasticache exists:
boto_elasticache.present:
- name: myelasticache
- engine: redis
- cache_node_type: cache.t1.micro
- num_cache_nodes: 1
- notification_topic_arn: arn:aws:sns:us-east-1:879879:my-sns-topic
- region: us-east-1
- profile: myprofile
# Passing in a profile
Ensure myelasticache exists:
boto_elasticache.present:
- name: myelasticache
- engine: redis
- cache_node_type: cache.t1.micro
- num_cache_nodes: 1
- notification_topic_arn: arn:aws:sns:us-east-1:879879:my-sns-topic
- region: us-east-1
- profile:
keyid: GKTADJGHEIQSXMKKRBJ08H
key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
-
salt.states.boto_elasticache.
absent
(name, wait=True, region=None, key=None, keyid=None, profile=None)
Ensure the named elasticache cluster is deleted.
- name
- Name of the cache cluster.
- wait
- Boolean. Wait for confirmation from boto that the cluster is in the
deleting state.
- region
- Region to connect to.
- key
- Secret key to be used.
- keyid
- Access key to be used.
- profile
- A dict with region, key and keyid, or a pillar key (string)
that contains a dict with region, key and keyid.
-
salt.states.boto_elasticache.
creategroup
(name, primary_cluster_id, replication_group_description, wait=None, region=None, key=None, keyid=None, profile=None)
Ensure the a replication group is create.
- name
- Name of replication group
- wait
- Waits for the group to be available
- primary_cluster_id
- Name of the master cache node
- replication_group_description
- Description for the group
- region
- Region to connect to.
- key
- Secret key to be used.
- keyid
- Access key to be used.
- profile
- A dict with region, key and keyid, or a pillar key (string)
that contains a dict with region, key and keyid.
-
salt.states.boto_elasticache.
present
(name, engine=None, cache_node_type=None, num_cache_nodes=None, preferred_availability_zone=None, port=None, cache_parameter_group_name=None, cache_security_group_names=None, replication_group_id=None, auto_minor_version_upgrade=True, security_group_ids=None, cache_subnet_group_name=None, engine_version=None, notification_topic_arn=None, preferred_maintenance_window=None, wait=None, region=None, key=None, keyid=None, profile=None)
Ensure the cache cluster exists.
- name
- Name of the cache cluster (cache cluster id).
- engine
- The name of the cache engine to be used for this cache cluster. Valid
values are memcached or redis.
- cache_node_type
- The compute and memory capacity of the nodes in the cache cluster.
cache.t1.micro, cache.m1.small, etc. See: http://boto.readthedocs.org/en/latest/ref/elasticache.html#boto.elasticache.layer1.ElastiCacheConnection.create_cache_cluster
- num_cache_nodes
- The number of cache nodes that the cache cluster will have.
- preferred_availability_zone
- The EC2 Availability Zone in which the cache cluster will be created.
All cache nodes belonging to a cache cluster are placed in the
preferred availability zone.
- port
- The port number on which each of the cache nodes will accept
connections.
- cache_parameter_group_name
- The name of the cache parameter group to associate with this cache
cluster. If this argument is omitted, the default cache parameter group
for the specified engine will be used.
- cache_security_group_names
- A list of cache security group names to associate with this cache
cluster. Use this parameter only when you are creating a cluster
outside of a VPC.
- replication_group_id
- The replication group to which this cache cluster should belong. If
this parameter is specified, the cache cluster will be added to the
specified replication group as a read replica; otherwise, the cache
cluster will be a standalone primary that is not part of any
replication group.
- auto_minor_version_upgrade
- Determines whether minor engine upgrades will be applied automatically
to the cache cluster during the maintenance window. A value of True
allows these upgrades to occur; False disables automatic upgrades.
- security_group_ids
- One or more VPC security groups associated with the cache cluster. Use
this parameter only when you are creating a cluster in a VPC.
- cache_subnet_group_name
- The name of the cache subnet group to be used for the cache cluster.
Use this parameter only when you are creating a cluster in a VPC.
- engine_version
- The version number of the cache engine to be used for this cluster.
- notification_topic_arn
- The Amazon Resource Name (ARN) of the Amazon Simple Notification
Service (SNS) topic to which notifications will be sent. The Amazon SNS
topic owner must be the same as the cache cluster owner.
- preferred_maintenance_window
- The weekly time range (in UTC) during which system maintenance can
occur. Example: sun:05:00-sun:09:00
- wait
- Boolean. Wait for confirmation from boto that the cluster is in the
available state.
- region
- Region to connect to.
- key
- Secret key to be used.
- keyid
- Access key to be used.
- profile
- A dict with region, key and keyid, or a pillar key (string)
that contains a dict with region, key and keyid.
-
salt.states.boto_elasticache.
subnet_group_absent
(name, tags=None, region=None, key=None, keyid=None, profile=None)
-
salt.states.boto_elasticache.
subnet_group_present
(name, subnet_ids, description, tags=None, region=None, key=None, keyid=None, profile=None)
Ensure ElastiCache subnet group exists.
- name
- The name for the ElastiCache subnet group. This value is stored as a lowercase string.
- subnet_ids
- A list of VPC subnet IDs for the cache subnet group.
- description
- Subnet group description.
- tags
- A list of tags.
- region
- Region to connect to.
- key
- Secret key to be used.
- keyid
- Access key to be used.
- profile
- A dict with region, key and keyid, or a pillar key (string) that
contains a dict with region, key and keyid.