diff --git a/generate-files-for-simplestream.py b/generate-files-for-simplestream.py
new file mode 100755
index 0000000000000000000000000000000000000000..fa161e4a865a3260e766c15607aaaf2ca803186a
--- /dev/null
+++ b/generate-files-for-simplestream.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import shade
+import yaml
+import json
+import time
+
+OUTPUT_DIR="./output/"
+REGIONS = ['garr-pa1', 'garr-ct1']
+KEYSTONE_ENDPOINT = "https://keystone.cloud.garr.it:5000/v3"
+
+config = None
+with open('config.yml') as fh_config:
+    config = yaml.load(fh_config)
+    fh_config.close()
+
+openstack_cloud_connection = shade.openstack_cloud()
+
+simplestream_images = []
+for image_key in sorted(config['images'].keys()):
+    if not 'simplestreams' in config['images'][image_key]:
+        continue
+    element = {}
+    image_name = config['images'][image_key]['name']
+    image = openstack_cloud_connection.get_image(name_or_id=image_name)
+    element['name'] = image_name
+    element['id'] = image['id']
+    element['simplestreams_name'] = config['images'][image_key]['simplestreams']
+    element['arch'] = element['simplestreams_name'].split(':')[-1]
+    element['version'] = element['simplestreams_name'].split(':')[-2]
+    simplestream_images.append(element)
+print(yaml.dump({'simplestream_images': simplestream_images}, default_flow_style=False))
+
+now = time.strftime('%a, %d %b %Y %H:%M:%S %z')
+today = time.strftime('%Y%m%d')
+
+# update index
+index = {}
+index['index'] = {}
+index['index']['com.ubuntu.cloud:custom'] = {}
+index['index']['com.ubuntu.cloud:custom']['updated'] = now
+index['index']['com.ubuntu.cloud:custom']['format'] = "products:1.0"
+index['index']['com.ubuntu.cloud:custom']['datatype'] = "image-ids"
+index['index']['com.ubuntu.cloud:custom']['cloudname'] = "custom"
+index['index']['com.ubuntu.cloud:custom']['clouds'] = [{"region": region, "endpoint": KEYSTONE_ENDPOINT} for region in REGIONS]
+index['index']['com.ubuntu.cloud:custom']['path'] = "streams/v1/com.ubuntu.cloud-released-imagemetadata.json"
+index['index']['com.ubuntu.cloud:custom']['products'] = [si['simplestreams_name'] for si in simplestream_images]
+index['updated'] = now
+index['format'] = "index:1.0"
+
+with open(OUTPUT_DIR + "index.json", 'w') as index_json:
+    json.dump(index, index_json, indent=4)
+
+# update metadata
+metadata = {}
+metadata['products'] = {}
+for si in simplestream_images:
+    key = si['simplestreams_name']
+    metadata['products'][key] = {}
+    metadata['products'][key]['version'] = si['version']
+    metadata['products'][key]['arch'] = si['arch']
+    metadata['products'][key]['versions'] = {}
+    metadata['products'][key]['versions'][today] = {}
+    metadata['products'][key]['versions'][today]['items'] = {}
+    i = 1
+    for region in REGIONS:
+        metadata['products'][key]['versions'][today]['items'][str(i)] = {}
+        metadata['products'][key]['versions'][today]['items'][str(i)]['id'] = si['id']
+        metadata['products'][key]['versions'][today]['items'][str(i)]["region"] = region
+        metadata['products'][key]['versions'][today]['items'][str(i)]["endpoint"] = KEYSTONE_ENDPOINT
+        i+=1
+
+metadata['updated'] = now
+metadata['format'] = "products:1.0"
+metadata['content_id'] = "com.ubuntu.cloud:custom"
+
+with open(OUTPUT_DIR + "com.ubuntu.cloud-released-imagemetadata.json", 'w') as metadata_json:
+    json.dump(metadata, metadata_json, indent=4)
+
diff --git a/output/README.rst b/output/README.rst
new file mode 100644
index 0000000000000000000000000000000000000000..1af8e27adc38cf452f9d28e448afe12b96b01822
--- /dev/null
+++ b/output/README.rst
@@ -0,0 +1 @@
+output directory for simplestream files