|
|
@@ -1496,6 +1496,48 @@ class ProjectTest(DockerClientTestCase):
|
|
|
output = container.logs()
|
|
|
assert output == b"This is the secret\n"
|
|
|
|
|
|
+ @v3_only()
|
|
|
+ def test_project_up_with_added_secrets(self):
|
|
|
+ node = create_host_file(self.client, os.path.abspath('tests/fixtures/secrets/default'))
|
|
|
+
|
|
|
+ config_data = build_config(
|
|
|
+ version=V3_1,
|
|
|
+ services=[{
|
|
|
+ 'name': 'web',
|
|
|
+ 'image': 'busybox:latest',
|
|
|
+ 'command': 'cat /run/secrets/special',
|
|
|
+ # 'secrets': [
|
|
|
+ # types.ServiceSecret.parse({'source': 'super', 'target': 'special'}),
|
|
|
+ # ],
|
|
|
+ 'environment': ['constraint:node=={}'.format(node if node is not None else '*')]
|
|
|
+ }],
|
|
|
+ secrets={
|
|
|
+ 'super': {
|
|
|
+ 'file': os.path.abspath('tests/fixtures/secrets/default'),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ )
|
|
|
+
|
|
|
+ project = Project.from_config(
|
|
|
+ client=self.client,
|
|
|
+ name='composetest',
|
|
|
+ config_data=config_data,
|
|
|
+ )
|
|
|
+ project.up()
|
|
|
+ project.stop()
|
|
|
+ project.services[0].secrets = [
|
|
|
+ types.ServiceSecret.parse({'source': 'super', 'target': 'special'})
|
|
|
+ ]
|
|
|
+ project.up()
|
|
|
+ project.stop()
|
|
|
+
|
|
|
+ containers = project.containers(stopped=True)
|
|
|
+ assert len(containers) == 1
|
|
|
+ container, = containers
|
|
|
+
|
|
|
+ output = container.logs()
|
|
|
+ assert output == b"This is the secret\n"
|
|
|
+
|
|
|
@v2_only()
|
|
|
def test_initialize_volumes_invalid_volume_driver(self):
|
|
|
vol_name = '{0:x}'.format(random.getrandbits(32))
|