Test that we get defaults from our configuration. Here we get the controller
level setting at the model level for no-proxy since this is our default model.
We get xenial as our default series as set in the controller config and
development is set to false which comes from the provider default config.
$ juju model-config
# output elided except some bits to show expected values
Attribute From Value
...
default-series controller xenial
development default false
enable-os-upgrade controller false
...
no-proxy model https://local
...
Let's add a model in us-east-1 to make sure it correctly inherits.
$ juju add-model east1 us-east-1
$ juju model-config
Attribute From Value
...
default-series controller xenial
development default false
enable-os-upgrade controller false
...
no-proxy region https://foo-east
...
Then we set some values and verify they are set and that the source of the
settings are correctly updated.
$ juju model-config no-proxy=not-east development=true default-series=trusty
$ juju model-config
Attribute From Value
...
default-series model trusty
development model true
enable-os-upgrade controller false
firewall-mode default instance
...
no-proxy model not-east
...
Now if we create a model in us-west-1 and ensure it has it's own settings.
$ juju add-model west1 us-west-1
$ juju model-config
Attribute From Value
...
default-series controller xenial
development default false
...
no-proxy region https://foo-west
...
Switching back to the east we can reset settings, and then verify we get our
original defaults back. Fo good measure we also set another setting here to
ensure that we can set and reset at the same time...
$ juju switch east1
$ juju model-config --reset development,default-series,no-proxy \ apt-ftp-proxy=some-proxy
$ juju model-config
Attribute From Value
...
apt-ftp-proxy model some-proxy
...
default-series controller xenial
development default false
no-proxy region https://foo-east
...
## Model Defaults Testing ##
Let's kill the models and start over for model-defaults
We should get an error if we ask for a non existent setting.
$ juju model-defaults us-east-1 ftp-proxy
ERROR there are no default model values for "ftp-proxy" in region "us-east-1"
Let add-models and make sure they inherit.
West 1:
$ juju add-model west1 us-west-1
$ juju model-config
Attribute From Value
...
default-series controller trusty
...
enable-os-upgrade default true
...
no-proxy region https://foo-west
...
East 1
$ juju add-model east1 us-east-1
$ juju model-config
Attribute From Value
...
default-series region xenial
...
enable-os-upgrade model false
...
no-proxy region https://foo-east
# Shared Model Config QA #
## Common steps ##
$ juju add-cloud awstest ~/Sync/ juju/2. 0/dev-clouds. yaml
$ juju bootstrap awstest reed/aws/us-west-1
## Testing modelconfig ##
Test that we get defaults from our configuration. Here we get the controller
level setting at the model level for no-proxy since this is our default model.
We get xenial as our default series as set in the controller config and
development is set to false which comes from the provider default config.
$ juju model-config os-upgrade controller false /local
# output elided except some bits to show expected values
Attribute From Value
...
default-series controller xenial
development default false
enable-
...
no-proxy model https:/
...
Let's add a model in us-east-1 to make sure it correctly inherits.
$ juju add-model east1 us-east-1 os-upgrade controller false /foo-east
$ juju model-config
Attribute From Value
...
default-series controller xenial
development default false
enable-
...
no-proxy region https:/
...
Then we set some values and verify they are set and that the source of the
settings are correctly updated.
$ juju model-config no-proxy=not-east development=true default- series= trusty os-upgrade controller false
$ juju model-config
Attribute From Value
...
default-series model trusty
development model true
enable-
firewall-mode default instance
...
no-proxy model not-east
...
Now if we create a model in us-west-1 and ensure it has it's own settings.
$ juju add-model west1 us-west-1 /foo-west
$ juju model-config
Attribute From Value
...
default-series controller xenial
development default false
...
no-proxy region https:/
...
Switching back to the east we can reset settings, and then verify we get our
original defaults back. Fo good measure we also set another setting here to
ensure that we can set and reset at the same time...
$ juju switch east1 default- series, no-proxy \
apt-ftp- proxy=some- proxy /foo-east
$ juju model-config --reset development,
$ juju model-config
Attribute From Value
...
apt-ftp-proxy model some-proxy
...
default-series controller xenial
development default false
no-proxy region https:/
...
## Model Defaults Testing ##
Let's kill the models and start over for model-defaults
$ juju destroy-model east1 -y
$ juju destroy-model west1 -y
Let's make sure the defaults have loaded correctly when we created our
controller.
$ juju model-defaults os-upgrade true false /local /foo-east - /foo-west -
Attribute Default Controller
...
default-series xenial xenial
...
enable-
...
ftp-proxy "" -
image-stream released -
...
no-proxy "" https:/
us-east-1 https:/
us-west-1 https:/
...
Set another value in east and ask for it.
$ juju model-defaults us-east-1 ftp-proxy=ftp://east
$ juju model-defaults ftp-proxy
Attribute Default Controller
ftp-proxy "" -
us-east-1 ftp://east -
Just ask for no-proxy which has settings in multiple regions.
$ juju model-defaults no-proxy /local /foo-east - /foo-west -
Attribute Default Controller
no-proxy "" https:/
us-east-1 https:/
us-west-1 https:/
Ask for only settings specific to us-east-1.
$ juju juju model-defaults us-east-1 /local /foo-east -
Attribute Default Controller
ftp-proxy "" -
us-east-1 ftp://east -
no-proxy "" https:/
us-east-1 https:/
Ask only for no-proxy in us-east-1.
$ juju model-defaults us-east-1 no-proxy /local /foo-east -
Attribute Default Controller
no-proxy "" https:/
us-east-1 https:/
Let's change some defaults and make sure they work.
$ juju model-defaults enable- os-upgrade= true default- series= trusty network- management false - os-upgrade true true
$ juju model-defaults
Attribute Default Controller
...
default-series xenial trusty
...
disable-
...
enable-
...
Let's change some region settings and reset ftp-proxy.
$ juju model-defaults --reset ftp-proxy us-east-1 default- series= xenial enable- os-upgrade= false
$ juju model-defaults default-series
Attribute Default Controller
default-series xenial trusty
us-east-1 xenial -
$ juju model-defaults enable-os-upgrade os-upgrade true true
Attribute Default Controller
enable-
us-east-1 false -
We should get an error if we ask for a non existent setting.
$ juju model-defaults us-east-1 ftp-proxy
ERROR there are no default model values for "ftp-proxy" in region "us-east-1"
Let add-models and make sure they inherit.
West 1:
$ juju add-model west1 us-west-1 os-upgrade default true /foo-west
$ juju model-config
Attribute From Value
...
default-series controller trusty
...
enable-
...
no-proxy region https:/
...
East 1
$ juju add-model east1 us-east-1 os-upgrade model false /foo-east
$ juju model-config
Attribute From Value
...
default-series region xenial
...
enable-
...
no-proxy region https:/
West 2:
$ juju add-model west2 us-west-2 os-upgrade default true /local
$ juju model-config
Attribute From Value
...
default-series controller trusty
...
enable-
...
no-proxy controller https:/
Let's kill those models:
$ juju switch default
for c in east1 west1 west2;do juju destroy-model -y $c;done
Reset some settings we set earlier.
$ juju model-defaults --reset default- series, enable- os-upgrade, no-proxy os-upgrade true - /foo-east - /foo-west -
Attribute Default Controller
...
default-series xenial -
us-east-1 xenial -
...
enable-
us-east-1 false -
...
no-proxy "" -
us-east-1 https:/
us-west-1 https:/
...
Now reset no-proxy in us-west-1 and test asking for all region settings.
$ juju model-defaults --reset no-proxy us-west-1 os-upgrade true - /foo-east -
$ juju model-defaults awstest/us-west-1
ERROR there are no default model values in region "us-west-1"
$ juju model-defaults awstest/us-east-1
Attribute Default Controller
default-series xenial -
us-east-1 xenial -
enable-
us-east-1 false -
no-proxy "" -
us-east-1 https:/
And remove the remote machines...
$ juju kill-controller reed/aws/us-west-1 -y