cloud-mu 2.0.0.pre.beta2 → 2.0.0.pre.beta3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Berksfile.lock +1 -1
- data/cloud-mu.gemspec +4 -3
- data/cookbooks/mu-master/templates/default/mu.rc.erb +2 -2
- data/cookbooks/mu-tools/files/default/Mu_CA.pem +18 -19
- data/cookbooks/mu-tools/recipes/rsyslog.rb +1 -1
- data/modules/mu/cleanup.rb +14 -1
- data/modules/mu/cloud.rb +40 -22
- data/modules/mu/clouds/aws/alarm.rb +6 -0
- data/modules/mu/clouds/aws/bucket.rb +29 -0
- data/modules/mu/clouds/aws/cache_cluster.rb +6 -0
- data/modules/mu/clouds/aws/container_cluster.rb +6 -0
- data/modules/mu/clouds/aws/database.rb +6 -0
- data/modules/mu/clouds/aws/dnszone.rb +6 -0
- data/modules/mu/clouds/aws/endpoint.rb +6 -0
- data/modules/mu/clouds/aws/firewall_rule.rb +6 -0
- data/modules/mu/clouds/aws/folder.rb +6 -0
- data/modules/mu/clouds/aws/function.rb +6 -0
- data/modules/mu/clouds/aws/group.rb +6 -0
- data/modules/mu/clouds/aws/loadbalancer.rb +6 -0
- data/modules/mu/clouds/aws/log.rb +6 -0
- data/modules/mu/clouds/aws/msg_queue.rb +6 -0
- data/modules/mu/clouds/aws/nosqldb.rb +6 -0
- data/modules/mu/clouds/aws/notifier.rb +6 -0
- data/modules/mu/clouds/aws/role.rb +97 -11
- data/modules/mu/clouds/aws/search_domain.rb +6 -0
- data/modules/mu/clouds/aws/server.rb +6 -0
- data/modules/mu/clouds/aws/server_pool.rb +6 -0
- data/modules/mu/clouds/aws/storage_pool.rb +6 -0
- data/modules/mu/clouds/aws/user.rb +6 -0
- data/modules/mu/clouds/aws/vpc.rb +25 -1
- data/modules/mu/clouds/google.rb +86 -16
- data/modules/mu/clouds/google/bucket.rb +78 -3
- data/modules/mu/clouds/google/container_cluster.rb +12 -0
- data/modules/mu/clouds/google/database.rb +15 -1
- data/modules/mu/clouds/google/firewall_rule.rb +18 -2
- data/modules/mu/clouds/google/folder.rb +183 -16
- data/modules/mu/clouds/google/group.rb +7 -1
- data/modules/mu/clouds/google/habitat.rb +139 -24
- data/modules/mu/clouds/google/loadbalancer.rb +26 -12
- data/modules/mu/clouds/google/server.rb +25 -10
- data/modules/mu/clouds/google/server_pool.rb +16 -3
- data/modules/mu/clouds/google/user.rb +7 -1
- data/modules/mu/clouds/google/vpc.rb +87 -76
- data/modules/mu/config.rb +12 -0
- data/modules/mu/config/bucket.rb +4 -0
- data/modules/mu/config/folder.rb +1 -0
- data/modules/mu/config/habitat.rb +1 -1
- data/modules/mu/config/role.rb +78 -34
- data/modules/mu/config/vpc.rb +1 -0
- data/modules/mu/groomers/chef.rb +1 -1
- data/modules/mu/kittens.rb +689 -283
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cec0ccf09208e41e9134e3c91298505d6e0166f5f08ff6bc36be3b470bbb99e9
|
4
|
+
data.tar.gz: 67af0a4e21700506873ae591641acd7c4272c524cfe61b62f87e5bae98ec2423
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef03c420882a307a26ef726dde97c40f571e21d7ec03727f3b28c10480da770c898a2edee1c30301f1178596a19c6bc0cc724d6a8ad43c44d75835321387f28e
|
7
|
+
data.tar.gz: 0db7d823010c03a83da7040e50286321aed63967c8519e9e5b4791086fb0cf6c0ef63d56d45edb4e57c67fa49288c16feda14281611e42b5c3013fbbc905829e
|
data/Berksfile.lock
CHANGED
data/cloud-mu.gemspec
CHANGED
@@ -17,7 +17,7 @@ end
|
|
17
17
|
|
18
18
|
Gem::Specification.new do |s|
|
19
19
|
s.name = 'cloud-mu'
|
20
|
-
s.version = '2.0.0-
|
20
|
+
s.version = '2.0.0-beta3'
|
21
21
|
s.date = '2019-03-01'
|
22
22
|
s.require_paths = ['modules']
|
23
23
|
s.required_ruby_version = '>= 2.4'
|
@@ -27,7 +27,8 @@ The eGTLabs Mu toolkit for unified cloud deployments. This gem contains a minima
|
|
27
27
|
|
28
28
|
It will attempt to autodetect when it's being run in a virtual machine on a known cloud provider and activate the appropriate API with machine-based credentials. Installing this gem on an Amazon Web Service instance, for example, should automatically enable the MU::Cloud::AWS layer and attempt to use the machine's IAM Profile to communicate with the AWS API.
|
29
29
|
|
30
|
-
|
30
|
+
|
31
|
+
require 'cloud-mu'
|
31
32
|
|
32
33
|
|
33
34
|
EOF
|
@@ -57,7 +58,7 @@ EOF
|
|
57
58
|
s.add_runtime_dependency 'net-ssh', "~> 4.2"
|
58
59
|
s.add_runtime_dependency 'net-ssh-multi', '~> 1.2', '>= 1.2.1'
|
59
60
|
s.add_runtime_dependency 'googleauth', "~> 0.6"
|
60
|
-
s.add_runtime_dependency 'google-api-client', "~> 0.
|
61
|
+
s.add_runtime_dependency 'google-api-client', "~> 0.28.4"
|
61
62
|
s.add_runtime_dependency 'rubocop', '~> 0.58'
|
62
63
|
s.add_runtime_dependency 'addressable', '~> 2.5'
|
63
64
|
s.add_runtime_dependency 'slack-notifier', "~> 2.3"
|
@@ -2,8 +2,8 @@
|
|
2
2
|
# user. Regular users get a .murc installed by mu-user-manage, from the template
|
3
3
|
# in <%= @installdir %>/lib/install/user-dot-murc.erb
|
4
4
|
export PATH="<%= @installdir %>/bin:/usr/local/ruby-current/bin:${PATH}:/opt/opscode/embedded/bin"
|
5
|
-
|
6
|
-
|
5
|
+
export MU_INSTALLDIR="<%= @installdir %>"
|
6
|
+
export MU_DATADIR="<%= @installdir %>/var"
|
7
7
|
|
8
8
|
alias vi=vim
|
9
9
|
export EDITOR=vim
|
@@ -1,8 +1,8 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
2
|
+
MIIFvzCCA6egAwIBAgIJAKAgqiKox1coMA0GCSqGSIb3DQEBDQUAMF0xFjAUBgNV
|
3
3
|
BAMMDTU0LjE3NS44Ni4xOTQxIDAeBgNVBAsMF011IFNlcnZlciA1NC4xNzUuODYu
|
4
|
-
|
5
|
-
|
4
|
+
MTk0MRQwEgYDVQQKDAtlR2xvYmFsVGVjaDELMAkGA1UEBhMCVVMwHhcNMTkwMzEx
|
5
|
+
MTk1MzA4WhcNMjExMjI5MTk1MzA4WjBdMRYwFAYDVQQDDA01NC4xNzUuODYuMTk0
|
6
6
|
MSAwHgYDVQQLDBdNdSBTZXJ2ZXIgNTQuMTc1Ljg2LjE5NDEUMBIGA1UECgwLZUds
|
7
7
|
b2JhbFRlY2gxCzAJBgNVBAYTAlVTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
|
8
8
|
CgKCAgEAo7rntOFj/WPNvh00SN55aJBusppsY9arq7QF5gt/9+cBPsjcXn7jJMu0
|
@@ -15,20 +15,19 @@ PO/6Svt8zTH3pEJMbxwtiwJ8cCLiqSoxj8hOKvvsSmvboN9DwN73JQjOY/pXHaU1
|
|
15
15
|
HLF0qlnfZhU4uiE8+wU1h6oeGZG9fLV63wlGdUXA+HermzovuJ0d2ocy0O93QQDt
|
16
16
|
Y92dr6UcPfAmzFyX3Rj9FFMYb2/n1G8l5pEd/Qkx3sH04aoxEmyQU0zugo3zQsL9
|
17
17
|
KNyIbp2BTlSh2R/4hWJpWiXFliRvotiJu1s2wdNQ1D3SZgxDbfxf/3j04xgdi5eW
|
18
|
-
e4Q3VnxhRfmkS1NqEzIvPabVLg9qvN419cubpE6HAtBJw/
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
uaxTeq345Wu1zn+Pj9AI
|
18
|
+
e4Q3VnxhRfmkS1NqEzIvPabVLg9qvN419cubpE6HAtBJw/f3ocUCAwEAAaOBgTB/
|
19
|
+
MC8GA1UdEQQoMCaHBDavVsKCCWxvY2FsaG9zdIcEfwAAAYINc3RhbmdlLW11LWRl
|
20
|
+
djAdBgNVHQ4EFgQUr8Sa0Z5sLB3lCkzzL/cQp1g1VtwwHwYDVR0jBBgwFoAUr8Sa
|
21
|
+
0Z5sLB3lCkzzL/cQp1g1VtwwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQ0FAAOC
|
22
|
+
AgEAYtAARdgURxiZ+GaX9R9vpxEjF0NS8cF4k6Z02FKLQV0uO8r1xuv/KA3K2uWd
|
23
|
+
huy5IYsN/0q9EtcMWyrKhAOLV92V2y6pojZDLN3R8CYkgoi7HVBALkp3LIwCVyK6
|
24
|
+
vY3V0n3op67vWtPNV/lpvSYDb0thUS/SNWk1o7VQxgBYEhV8lTgWKwUN3ViZIS7a
|
25
|
+
X4hY47q8pd4f8YztNE7ov56sQBcOFK9ZY0x/96eXWrsLlNdQ85g/6Lzc3jIKrKpd
|
26
|
+
dpWMybnEpWSAS6gi6OcUX4JT6K32nQdKvFRZmYl4227BvMODr+iZCBordzUaMp/G
|
27
|
+
9nHM8xgUVWwb8asDExtpOELTznZmBMnn5yosv6cklASGWcX0DwJPo2f/BlPKg46E
|
28
|
+
DHIncJf9WBR1dMYyOT+W0L/IsuArmijXnwWNx5p6KhK81nV/ziTOy/6aD2uRlCPv
|
29
|
+
FjcjWlhWIgCsUdYA1K4uTb2oM/i52tqT3h9/Qh3EYQYu+X5UB1lx1FQyUZJ6LsUi
|
30
|
+
jRHjvITtRAsmZ7l2uP6Ms1lYMfOcaHziKFrbsmppm6eVP1FWG3LEkLxK7/ydZEwa
|
31
|
+
SSRenqB4VZJ3ISG/0znidOhntq1AC1UnAazR53CTvDE357aSa49bj9MQADJWNOaB
|
32
|
+
mKsEWh4Sg0OOOpQpaS5W7e0beogUz0QybmPitzwlyhzTM/4=
|
34
33
|
-----END CERTIFICATE-----
|
@@ -32,7 +32,7 @@ if !node['application_attributes']['skip_recipes'].include?('rsyslog')
|
|
32
32
|
if platform_family?("rhel")
|
33
33
|
$rsyslog_ssl_ca_path = "/etc/pki/Mu_CA.pem"
|
34
34
|
if !platform?("amazon")
|
35
|
-
package "policycoreutils-python"
|
35
|
+
package node['platform_version'].to_i < 6 ? "policycoreutils" : "policycoreutils-python"
|
36
36
|
execute "allow rsyslog to meddle with port 10514" do
|
37
37
|
command "/usr/sbin/semanage port -a -t syslogd_port_t -p tcp 10514"
|
38
38
|
not_if "/usr/sbin/semanage port -l | grep '^syslog.*10514'"
|
data/modules/mu/cleanup.rb
CHANGED
@@ -61,7 +61,7 @@ module MU
|
|
61
61
|
end
|
62
62
|
|
63
63
|
|
64
|
-
types_in_order = ["Collection", "Endpoint", "Function", "ServerPool", "ContainerCluster", "SearchDomain", "Server", "MsgQueue", "Database", "CacheCluster", "StoragePool", "LoadBalancer", "NoSQLDB", "FirewallRule", "Alarm", "Notifier", "Log", "VPC", "Role", "Group", "User", "Bucket", "DNSZone", "Collection", "Habitat"]
|
64
|
+
types_in_order = ["Collection", "Endpoint", "Function", "ServerPool", "ContainerCluster", "SearchDomain", "Server", "MsgQueue", "Database", "CacheCluster", "StoragePool", "LoadBalancer", "NoSQLDB", "FirewallRule", "Alarm", "Notifier", "Log", "VPC", "Role", "Group", "User", "Bucket", "DNSZone", "Collection", "Habitat", "Folder"]
|
65
65
|
|
66
66
|
# Load up our deployment metadata
|
67
67
|
if !mommacat.nil?
|
@@ -160,6 +160,19 @@ module MU
|
|
160
160
|
end
|
161
161
|
|
162
162
|
if @mommacat.nil? or @mommacat.numKittens(types: [t]) > 0
|
163
|
+
if @mommacat
|
164
|
+
found = @mommacat.findLitterMate(type: t, return_all: true, credentials: credset)
|
165
|
+
flags['known'] ||= []
|
166
|
+
if found.is_a?(Array)
|
167
|
+
found.each { |k|
|
168
|
+
flags['known'] << k.cloud_id
|
169
|
+
}
|
170
|
+
elsif found and found.is_a?(Hash)
|
171
|
+
flags['known'] << found['cloud_id']
|
172
|
+
elsif found
|
173
|
+
flags['known'] << found.cloud_id
|
174
|
+
end
|
175
|
+
end
|
163
176
|
begin
|
164
177
|
resclass = Object.const_get("MU").const_get("Cloud").const_get(t)
|
165
178
|
resclass.cleanup(
|
data/modules/mu/cloud.rb
CHANGED
@@ -126,10 +126,44 @@ module MU
|
|
126
126
|
class NoSQLDB;
|
127
127
|
end
|
128
128
|
|
129
|
+
# Denotes a resource implementation which is missing significant
|
130
|
+
# functionality or is largely untested.
|
131
|
+
ALPHA = "This implementation is **ALPHA** quality. It is experimental, may be missing significant functionality, and has not been widely tested."
|
132
|
+
|
133
|
+
# Denotes a resource implementation which supports most or all key API
|
134
|
+
# functionality and has seen at least some non-trivial testing.
|
135
|
+
BETA = "This implementation is **BETA** quality. It is substantially complete, but may be missing some functionality or have some features which are untested."
|
136
|
+
|
137
|
+
# Denotes a resource implementation which supports all key API functionality
|
138
|
+
# and has been substantially tested on real-world applications.
|
139
|
+
RELEASE = "This implementation is considered **RELEASE** quality. It covers all major API features and has been tested with real-world applications."
|
140
|
+
|
129
141
|
# The types of cloud resources we can create, as class objects. Include
|
130
142
|
# methods a class implementing this resource type must support to be
|
131
143
|
# considered valid.
|
132
144
|
@@resource_types = {
|
145
|
+
:Folder => {
|
146
|
+
:has_multiples => false,
|
147
|
+
:can_live_in_vpc => false,
|
148
|
+
:cfg_name => "folder",
|
149
|
+
:cfg_plural => "folders",
|
150
|
+
:interface => self.const_get("Folder"),
|
151
|
+
:deps_wait_on_my_creation => true,
|
152
|
+
:waits_on_parent_completion => true,
|
153
|
+
:class => generic_class_methods,
|
154
|
+
:instance => generic_instance_methods
|
155
|
+
},
|
156
|
+
:Habitat => {
|
157
|
+
:has_multiples => false,
|
158
|
+
:can_live_in_vpc => false,
|
159
|
+
:cfg_name => "habitat",
|
160
|
+
:cfg_plural => "habitats",
|
161
|
+
:interface => self.const_get("Habitat"),
|
162
|
+
:deps_wait_on_my_creation => true,
|
163
|
+
:waits_on_parent_completion => true,
|
164
|
+
:class => generic_class_methods,
|
165
|
+
:instance => generic_instance_methods + [:groom]
|
166
|
+
},
|
133
167
|
:Collection => {
|
134
168
|
:has_multiples => false,
|
135
169
|
:can_live_in_vpc => false,
|
@@ -328,28 +362,6 @@ module MU
|
|
328
362
|
:class => generic_class_methods,
|
329
363
|
:instance => generic_instance_methods + [:groom]
|
330
364
|
},
|
331
|
-
:Habitat => {
|
332
|
-
:has_multiples => false,
|
333
|
-
:can_live_in_vpc => false,
|
334
|
-
:cfg_name => "habitat",
|
335
|
-
:cfg_plural => "habitats",
|
336
|
-
:interface => self.const_get("Habitat"),
|
337
|
-
:deps_wait_on_my_creation => true,
|
338
|
-
:waits_on_parent_completion => true,
|
339
|
-
:class => generic_class_methods,
|
340
|
-
:instance => generic_instance_methods
|
341
|
-
},
|
342
|
-
:Folder => {
|
343
|
-
:has_multiples => false,
|
344
|
-
:can_live_in_vpc => false,
|
345
|
-
:cfg_name => "folder",
|
346
|
-
:cfg_plural => "folders",
|
347
|
-
:interface => self.const_get("Folder"),
|
348
|
-
:deps_wait_on_my_creation => true,
|
349
|
-
:waits_on_parent_completion => true,
|
350
|
-
:class => generic_class_methods,
|
351
|
-
:instance => generic_instance_methods
|
352
|
-
},
|
353
365
|
:User => {
|
354
366
|
:has_multiples => false,
|
355
367
|
:can_live_in_vpc => false,
|
@@ -1028,6 +1040,12 @@ module MU
|
|
1028
1040
|
return [@dependencies, @vpc, @loadbalancers]
|
1029
1041
|
end
|
1030
1042
|
|
1043
|
+
# Defaults any resources that don't declare their release-readiness to
|
1044
|
+
# ALPHA. That'll learn 'em.
|
1045
|
+
def self.quality
|
1046
|
+
MU::Cloud::ALPHA
|
1047
|
+
end
|
1048
|
+
|
1031
1049
|
def self.find(*flags)
|
1032
1050
|
allfound = {}
|
1033
1051
|
|
@@ -150,6 +150,12 @@ module MU
|
|
150
150
|
end
|
151
151
|
end
|
152
152
|
|
153
|
+
# Denote whether this resource implementation is experiment, ready for
|
154
|
+
# testing, or ready for production use.
|
155
|
+
def self.quality
|
156
|
+
MU::Cloud::RELEASE
|
157
|
+
end
|
158
|
+
|
153
159
|
# Locate an existing alarm.
|
154
160
|
# @param cloud_id [String]: The cloud provider's identifier for this resource.
|
155
161
|
# @param region [String]: The cloud provider region.
|
@@ -39,6 +39,8 @@ module MU
|
|
39
39
|
# Called automatically by {MU::Deploy#createResources}
|
40
40
|
def create
|
41
41
|
bucket_name = @deploy.getResourceName(@config["name"], max_length: 63).downcase
|
42
|
+
|
43
|
+
MU.log "Creating S3 bucket #{bucket_name}"
|
42
44
|
MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).create_bucket(
|
43
45
|
acl: @config['acl'],
|
44
46
|
bucket: bucket_name
|
@@ -83,6 +85,7 @@ module MU
|
|
83
85
|
|
84
86
|
# Called automatically by {MU::Deploy#createResources}
|
85
87
|
def groom
|
88
|
+
|
86
89
|
@@region_cache_semaphore.synchronize {
|
87
90
|
@@region_cache[@cloud_id] ||= @config['region']
|
88
91
|
}
|
@@ -90,6 +93,17 @@ module MU
|
|
90
93
|
|
91
94
|
current = cloud_desc
|
92
95
|
|
96
|
+
if @config['policies']
|
97
|
+
policy_docs = MU::Cloud::AWS::Role.genPolicyDocument(@config['policies'], deploy_obj: @deploy)
|
98
|
+
policy_docs.each { |doc|
|
99
|
+
MU.log "Applying S3 bucket policy #{doc.keys.first} to bucket #{@cloud_id}", MU::NOTICE, details: doc.values.first
|
100
|
+
MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).put_bucket_policy(
|
101
|
+
bucket: @cloud_id,
|
102
|
+
policy: JSON.generate(doc.values.first)
|
103
|
+
)
|
104
|
+
}
|
105
|
+
end
|
106
|
+
|
93
107
|
if @config['web'] and current["website"].nil?
|
94
108
|
MU.log "Enabling web service on S3 bucket #{@cloud_id}", MU::NOTICE
|
95
109
|
MU::Cloud::AWS.s3(credentials: @config['credentials'], region: @config['region']).put_bucket_website(
|
@@ -138,6 +152,12 @@ module MU
|
|
138
152
|
false
|
139
153
|
end
|
140
154
|
|
155
|
+
# Denote whether this resource implementation is experiment, ready for
|
156
|
+
# testing, or ready for production use.
|
157
|
+
def self.quality
|
158
|
+
MU::Cloud::BETA
|
159
|
+
end
|
160
|
+
|
141
161
|
# Remove all buckets associated with the currently loaded deployment.
|
142
162
|
# @param noop [Boolean]: If true, will only print what would be done
|
143
163
|
# @param ignoremaster [Boolean]: If true, will remove resources not flagged as originating from this Mu server
|
@@ -217,6 +237,7 @@ module MU
|
|
217
237
|
def self.schema(config)
|
218
238
|
toplevel_required = []
|
219
239
|
schema = {
|
240
|
+
"policies" => MU::Cloud::AWS::Role.condition_schema,
|
220
241
|
"acl" => {
|
221
242
|
"type" => "string",
|
222
243
|
"enum" => ["private", "public-read", "public-read-write", "authenticated-read"],
|
@@ -239,6 +260,14 @@ module MU
|
|
239
260
|
def self.validateConfig(bucket, configurator)
|
240
261
|
ok = true
|
241
262
|
|
263
|
+
if bucket['policies']
|
264
|
+
bucket['policies'].each { |pol|
|
265
|
+
if !pol['permissions'] or pol['permissions'].empty?
|
266
|
+
pol['permissions'] = ["s3:GetObject"]
|
267
|
+
end
|
268
|
+
}
|
269
|
+
end
|
270
|
+
|
242
271
|
ok
|
243
272
|
end
|
244
273
|
|
@@ -579,6 +579,12 @@ module MU
|
|
579
579
|
false
|
580
580
|
end
|
581
581
|
|
582
|
+
# Denote whether this resource implementation is experiment, ready for
|
583
|
+
# testing, or ready for production use.
|
584
|
+
def self.quality
|
585
|
+
MU::Cloud::RELEASE
|
586
|
+
end
|
587
|
+
|
582
588
|
# Called by {MU::Cleanup}. Locates resources that were created by the currently-loaded deployment and purges them.
|
583
589
|
# @param noop [Boolean]: If true, will only print what would be done.
|
584
590
|
# @param ignoremaster [Boolean]: If true, will remove resources not flagged as originating from this Mu server.
|
@@ -363,6 +363,12 @@ module MU
|
|
363
363
|
false
|
364
364
|
end
|
365
365
|
|
366
|
+
# Denote whether this resource implementation is experiment, ready for
|
367
|
+
# testing, or ready for production use.
|
368
|
+
def self.quality
|
369
|
+
MU::Cloud::RELEASE
|
370
|
+
end
|
371
|
+
|
366
372
|
# Remove all container_clusters associated with the currently loaded deployment.
|
367
373
|
# @param noop [Boolean]: If true, will only print what would be done
|
368
374
|
# @param ignoremaster [Boolean]: If true, will remove resources not flagged as originating from this Mu server
|
@@ -1197,6 +1197,12 @@ module MU
|
|
1197
1197
|
false
|
1198
1198
|
end
|
1199
1199
|
|
1200
|
+
# Denote whether this resource implementation is experiment, ready for
|
1201
|
+
# testing, or ready for production use.
|
1202
|
+
def self.quality
|
1203
|
+
MU::Cloud::RELEASE
|
1204
|
+
end
|
1205
|
+
|
1200
1206
|
# Called by {MU::Cleanup}. Locates resources that were created by the
|
1201
1207
|
# currently-loaded deployment, and purges them.
|
1202
1208
|
# @param noop [Boolean]: If true, will only print what would be done
|
@@ -664,6 +664,12 @@ module MU
|
|
664
664
|
true
|
665
665
|
end
|
666
666
|
|
667
|
+
# Denote whether this resource implementation is experiment, ready for
|
668
|
+
# testing, or ready for production use.
|
669
|
+
def self.quality
|
670
|
+
MU::Cloud::RELEASE
|
671
|
+
end
|
672
|
+
|
667
673
|
# Called by {MU::Cleanup}. Locates resources that were created by the
|
668
674
|
# currently-loaded deployment, and purges them.
|
669
675
|
def self.cleanup(noop: false, ignoremaster: false, region: MU.curRegion, credentials: nil, flags: {})
|
@@ -448,6 +448,12 @@ MU::Cloud::AWS.apig(region: @config['region'], credentials: @config['credentials
|
|
448
448
|
false
|
449
449
|
end
|
450
450
|
|
451
|
+
# Denote whether this resource implementation is experiment, ready for
|
452
|
+
# testing, or ready for production use.
|
453
|
+
def self.quality
|
454
|
+
MU::Cloud::BETA
|
455
|
+
end
|
456
|
+
|
451
457
|
# Canonical Amazon Resource Number for this resource
|
452
458
|
# @return [String]
|
453
459
|
def arn
|
@@ -235,6 +235,12 @@ module MU
|
|
235
235
|
false
|
236
236
|
end
|
237
237
|
|
238
|
+
# Denote whether this resource implementation is experiment, ready for
|
239
|
+
# testing, or ready for production use.
|
240
|
+
def self.quality
|
241
|
+
MU::Cloud::RELEASE
|
242
|
+
end
|
243
|
+
|
238
244
|
# Remove all security groups (firewall rulesets) associated with the currently loaded deployment.
|
239
245
|
# @param noop [Boolean]: If true, will only print what would be done
|
240
246
|
# @param ignoremaster [Boolean]: If true, will remove resources not flagged as originating from this Mu server
|
@@ -55,6 +55,12 @@ module MU
|
|
55
55
|
true
|
56
56
|
end
|
57
57
|
|
58
|
+
# Denote whether this resource implementation is experiment, ready for
|
59
|
+
# testing, or ready for production use.
|
60
|
+
def self.quality
|
61
|
+
MU::Cloud::ALPHA
|
62
|
+
end
|
63
|
+
|
58
64
|
# Remove all logs associated with the currently loaded deployment.
|
59
65
|
# @param noop [Boolean]: If true, will only print what would be done
|
60
66
|
# @param ignoremaster [Boolean]: If true, will remove resources not flagged as originating from this Mu server
|
@@ -267,6 +267,12 @@ module MU
|
|
267
267
|
false
|
268
268
|
end
|
269
269
|
|
270
|
+
# Denote whether this resource implementation is experiment, ready for
|
271
|
+
# testing, or ready for production use.
|
272
|
+
def self.quality
|
273
|
+
MU::Cloud::BETA
|
274
|
+
end
|
275
|
+
|
270
276
|
# Remove all functions associated with the currently loaded deployment.
|
271
277
|
# @param noop [Boolean]: If true, will only print what would be done
|
272
278
|
# @param ignoremaster [Boolean]: If true, will remove resources not flagged as originating from this Mu server
|
@@ -130,6 +130,12 @@ module MU
|
|
130
130
|
true
|
131
131
|
end
|
132
132
|
|
133
|
+
# Denote whether this resource implementation is experiment, ready for
|
134
|
+
# testing, or ready for production use.
|
135
|
+
def self.quality
|
136
|
+
MU::Cloud::BETA
|
137
|
+
end
|
138
|
+
|
133
139
|
# Remove all groups associated with the currently loaded deployment.
|
134
140
|
# @param noop [Boolean]: If true, will only print what would be done
|
135
141
|
# @param ignoremaster [Boolean]: If true, will remove resources not flagged as originating from this Mu server
|
@@ -632,6 +632,12 @@ module MU
|
|
632
632
|
false
|
633
633
|
end
|
634
634
|
|
635
|
+
# Denote whether this resource implementation is experiment, ready for
|
636
|
+
# testing, or ready for production use.
|
637
|
+
def self.quality
|
638
|
+
MU::Cloud::RELEASE
|
639
|
+
end
|
640
|
+
|
635
641
|
# Remove all load balancers associated with the currently loaded deployment.
|
636
642
|
# @param noop [Boolean]: If true, will only print what would be done
|
637
643
|
# @param ignoremaster [Boolean]: If true, will remove resources not flagged as originating from this Mu server
|