cloud-mu 2.0.0.pre.beta2 → 2.0.0.pre.beta3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|