Merge "Add janitor monkey system metadata"
diff --git a/devops_portal/service/janitor_monkey.yml b/devops_portal/service/janitor_monkey.yml
new file mode 100644
index 0000000..73f2e7c
--- /dev/null
+++ b/devops_portal/service/janitor_monkey.yml
@@ -0,0 +1,10 @@
+parameters:
+  devops_portal:
+    config:
+      service:
+        janitormonkey:
+          configure_proxy: true
+          endpoint:
+            address: ${_param:haproxy_janitor_monkey_bind_host}
+            port: ${_param:haproxy_janitor_monkey_bind_port}
+            https: ${_param:haproxy_janitor_monkey_ssl:enabled}
diff --git a/docker/swarm/stack/janitor_monkey.yml b/docker/swarm/stack/janitor_monkey.yml
index 2d5f4a7..426a75c 100644
--- a/docker/swarm/stack/janitor_monkey.yml
+++ b/docker/swarm/stack/janitor_monkey.yml
@@ -4,6 +4,21 @@
     docker_image_mongodb: library/mongo:3.4
     docker_mongodb_admin_username: admin
     docker_mongodb_admin_password: password
+    docker_image_janitor_monkey: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/janitor_monkey:6040
+    janitor_monkey_enabled: true
+    janitor_monkey_dryrun_mode: false
+    janitor_monkey_base_url: http://${_param:haproxy_janitor_monkey_bind_host}:${_param:haproxy_janitor_monkey_bind_port}
+    janitor_monkey_mongodb_host: ${_param:haproxy_mongodb_bind_host}
+    janitor_monkey_mongodb_port: ${_param:haproxy_mongodb_bind_port}
+    janitor_monkey_mongodb_db: mcp_cloud
+    janitor_monkey_mongodb_username: janitor
+    janitor_monkey_mongodb_password: password
+    janitor_monkey_elasticsearch: ${_param:haproxy_elasticsearch_bind_host}:${_param:haproxy_elasticsearch_binary_bind_port}
+    janitor_monkey_cloudfire_region: RegionOne
+    janitor_monkey_cis_clustername: ${_param:elasticsearch_cluster_name}
+    janitor_monkey_openstack:
+      project_domain_name: default
+      project_name: admin
   docker:
     client:
       stack:
@@ -11,6 +26,24 @@
           environment:
             MONGO_INITDB_ROOT_USERNAME: ${_param:docker_mongodb_admin_username}
             MONGO_INITDB_ROOT_PASSWORD: ${_param:docker_mongodb_admin_password}
+            simianarmy.recorder.mongodb.host: ${_param:janitor_monkey_mongodb_host}
+            simianarmy.recorder.mongodb.port: ${_param:janitor_monkey_mongodb_port}
+            simianarmy.recorder.mongodb.database: ${_param:janitor_monkey_mongodb_db}
+            simianarmy.recorder.mongodb.user: ${_param:janitor_monkey_mongodb_username}
+            simianarmy.recorder.mongodb.password: ${_param:janitor_monkey_mongodb_password}
+            simianarmy.base.url: ${_param:janitor_monkey_base_url}
+            simianarmy.janitor.enabled: ${_param:janitor_monkey_enabled}
+            simianarmy.janitor.leashed: ${_param:janitor_monkey_dryrun_mode}
+            simianarmy.calendar.isMonkeyTime: true
+            simianarmy.janitor.resources.sdb.domain: ${_param:janitor_monkey_mongodb_db}
+            simianarmy.client.cloudfire.cis.hosts: ${_param:janitor_monkey_elasticsearch}
+            simianarmy.client.cloudfire.region: ${_param:janitor_monkey_cloudfire_region}
+            simianarmy.client.cloudfire.cis.clustername: ${_param:janitor_monkey_cis_clustername}
+            simianarmy.client.cloudfire.identityEndpoint: ${_param:janitor_monkey_openstack:auth_url}
+            simianarmy.client.cloudfire.accountKey: ${_param:janitor_monkey_openstack:username}
+            simianarmy.client.cloudfire.secretKey: ${_param:janitor_monkey_openstack:password}
+            simianarmy.client.cloudfire.domain: ${_param:janitor_monkey_openstack:project_domain_name}
+            simianarmy.client.cloudfire.project: ${_param:janitor_monkey_openstack:project_name}
           service:
             mongodb:
               image: ${_param:docker_image_mongodb}
@@ -21,4 +54,12 @@
               ports:
                 - ${_param:haproxy_mongodb_exposed_port}:${_param:haproxy_mongodb_bind_port}
               volumes:
-                - /srv/volumes/mongodb:/data
+                - /srv/volumes/mongodb:/data/db
+            api:
+              image: ${_param:docker_image_janitor_monkey}
+              deploy:
+                replicas: ${_param:docker_janitor_monkey_replicas}
+                restart_policy:
+                  condition: any
+              ports:
+                - ${_param:haproxy_janitor_monkey_exposed_port}:8080
diff --git a/elasticsearch/client/index/janitor_monkey.yml b/elasticsearch/client/index/janitor_monkey.yml
new file mode 100644
index 0000000..bef92ae
--- /dev/null
+++ b/elasticsearch/client/index/janitor_monkey.yml
@@ -0,0 +1,15 @@
+parameters:
+  _param:
+    janitor_monkey_cis_openstack_shards: 5
+    janitor_monkey_cis_openstack_replicas: 1
+  elasticsearch:
+    client:
+      index:
+        cis-openstack:
+          enabled: true
+          force_operation: true
+          definition:
+            template: cis-openstack
+            settings:
+              number_of_shards: ${_param:janitor_monkey_cis_openstack_shards}
+              number_of_replicas: ${_param:janitor_monkey_cis_openstack_replicas}
\ No newline at end of file
diff --git a/elasticsearch/client/pushkin/notifications.yml b/elasticsearch/client/index/pushkin.yml
similarity index 100%
rename from elasticsearch/client/pushkin/notifications.yml
rename to elasticsearch/client/index/pushkin.yml
diff --git a/elasticsearch/client/init.yml b/elasticsearch/client/init.yml
new file mode 100644
index 0000000..d0710ca
--- /dev/null
+++ b/elasticsearch/client/init.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    elasticsearch_client_host: ${_param:haproxy_elasticsearch_bind_host}
+    elasticsearch_client_port: ${_param:haproxy_elasticsearch_http_bind_port}
+  elasticsearch:
+    client:
+      enabled: true
+      server:
+        host: ${_param:elasticsearch_client_host}
+        port: ${_param:elasticsearch_client_port}
\ No newline at end of file
diff --git a/elasticsearch/client/pushkin/init.yml b/elasticsearch/client/pushkin/init.yml
deleted file mode 100644
index 9f37847..0000000
--- a/elasticsearch/client/pushkin/init.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-parameters:
-  _param:
-    pushkin_elasticsearch_host: ${_param:haproxy_elasticsearch_bind_host}
-    pushkin_elasticsearch_port: ${_param:haproxy_elasticsearch_http_bind_port}
-  elasticsearch:
-    client:
-      enabled: true
-      server:
-        host: ${_param:pushkin_elasticsearch_host}
-        port: ${_param:pushkin_elasticsearch_port}
\ No newline at end of file
diff --git a/haproxy/proxy/listen/oss/janitor_monkey.yml b/haproxy/proxy/listen/oss/janitor_monkey.yml
new file mode 100644
index 0000000..c2ff760
--- /dev/null
+++ b/haproxy/proxy/listen/oss/janitor_monkey.yml
@@ -0,0 +1,40 @@
+parameters:
+  _param:
+    haproxy_janitor_monkey_bind_host: ${_param:haproxy_bind_address}
+    haproxy_janitor_monkey_bind_port: 8088
+    haproxy_janitor_monkey_exposed_port: 18088
+    haproxy_janitor_monkey_ssl:
+      enabled: false
+  haproxy:
+    proxy:
+      listen:
+        janitor_monkey:
+          mode: http
+          options:
+          - httpchk get /simianarmy/api/v1/janitor
+          balance: source
+          http_request:
+            - action: "add-header X-Forwarded-Proto https"
+              condition: "if { ssl_fc }"
+          health-check:
+            http:
+              enabled: true
+              options:
+                - expect status 200
+          binds:
+            - address: ${_param:haproxy_janitor_monkey_bind_host}
+              port: ${_param:haproxy_janitor_monkey_bind_port}
+              ssl: ${_param:haproxy_janitor_monkey_ssl}
+          servers:
+            - name: ${_param:cluster_node01_name}
+              host: ${_param:cluster_node01_address}
+              port: ${_param:haproxy_janitor_monkey_exposed_port}
+              params: check
+            - name: ${_param:cluster_node02_name}
+              host: ${_param:cluster_node02_address}
+              port: ${_param:haproxy_janitor_monkey_exposed_port}
+              params: backup check
+            - name: ${_param:cluster_node03_name}
+              host: ${_param:cluster_node03_address}
+              port: ${_param:haproxy_janitor_monkey_exposed_port}
+              params: backup check