From db0fbd0c4b3629073e07dfed39a67fd1922bb7bf Mon Sep 17 00:00:00 2001 From: Charles Baker Date: Fri, 30 Nov 2018 12:39:35 -0500 Subject: [PATCH 01/13] Extending functionality of Grafana package. --- repo/packages/G/grafana/7/config.json | 141 ++++++++++++++++++ .../G/grafana/7/marathon.json.mustache | 96 ++++++++++++ repo/packages/G/grafana/7/package.json | 23 +++ repo/packages/G/grafana/7/resource.json | 62 ++++++++ 4 files changed, 322 insertions(+) create mode 100644 repo/packages/G/grafana/7/config.json create mode 100644 repo/packages/G/grafana/7/marathon.json.mustache create mode 100644 repo/packages/G/grafana/7/package.json create mode 100644 repo/packages/G/grafana/7/resource.json diff --git a/repo/packages/G/grafana/7/config.json b/repo/packages/G/grafana/7/config.json new file mode 100644 index 000000000..538ad0c0e --- /dev/null +++ b/repo/packages/G/grafana/7/config.json @@ -0,0 +1,141 @@ +{ + "type": "object", + "properties": { + "service": { + "type": "object", + "description": "DC/OS service configuration properties", + "properties": { + "name": { + "description": "The name of the service instance", + "type": "string", + "default": "grafana", + "title": "Service name" + }, + "user": { + "description": "The user that the service will run as.", + "type": "string", + "default": "root", + "title": "User" + }, + "service_account": { + "description": "The service account for DC/OS service authentication. This is typically left empty to use the default unless service authentication is needed. The value given here is passed as the principal of Mesos framework.", + "type": "string", + "default": "" + }, + "service_account_secret": { + "description": "Name of the Secret Store credentials to use for DC/OS service authentication. This should be left empty unless service authentication is needed.", + "type": "string", + "default": "", + "title": "Credential secret name (optional)" + }, + "mesos_api_version": { + "description": "Configures the Mesos API version to use. Possible values: V0 (non-HTTP), V1 (HTTP)", + "type": "string", + "enum": [ + "V0", + "V1" + ], + "default": "V1" + }, + "log_level": { + "description": "The log level for the DC/OS service.", + "type": "string", + "enum": [ + "OFF", + "FATAL", + "ERROR", + "WARN", + "INFO", + "DEBUG", + "TRACE", + "ALL" + ], + "default": "INFO" + } + }, + "required": [ + "name", + "user" + ] + }, + "grafana": { + "description": "grafana pod configuration properties", + "type": "object", + "properties": { + "cpus": { + "description": "Grafana pod CPU requirements", + "type": "number", + "default": 0.2 + }, + "mem": { + "description": "Grafana pod mem requirements (in MB)", + "type": "integer", + "default": 1024 + }, + "volume": { + "description": "Grafana volume requirements", + "type": "object", + "properties": { + "path": { + "description": "Location of persistent volume to store data", + "type": "string", + "default": "/tmp" + }, + "type": { + "description": "The type of persistent volume to use, one of ROOT or MOUNT", + "type": "string", + "default": "ROOT", + "enum": [ + "ROOT", + "MOUNT" + ] + }, + "size": { + "description": "The size of the persistent volume in MB", + "type": "integer", + "default": 512, + "minimum": 512 + } + } + }, + "ini": { + "description": "Base64 encoded grafana.ini", + "type": "string", + "media": { + "binaryEncoding": "base64", + "type": "application/x-yaml" + }, + "default": "IyMjIyMjIyMjIyMjIyMjIyMjIyMjIEdyYWZhbmEgQ29uZmlndXJhdGlvbiBEZWZhdWx0cyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIyAjIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlIGluIGdyYWZhbmEgaW5zdGFsbHMgIyAjIHBvc3NpYmxlIHZhbHVlcyA6IHByb2R1Y3Rpb24sIGRldmVsb3BtZW50IGFwcF9tb2RlID0gcHJvZHVjdGlvbiAjIGluc3RhbmNlIG5hbWUsIGRlZmF1bHRzIHRvIEhPU1ROQU1FIGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlIG9yIGhvc3RuYW1lIGlmIEhPU1ROQU1FIHZhciBpcyBlbXB0eSBpbnN0YW5jZV9uYW1lID0gJHtIT1NUTkFNRX0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFBhdGhzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgW3BhdGhzXSAjIFBhdGggdG8gd2hlcmUgZ3JhZmFuYSBjYW4gc3RvcmUgdGVtcCBmaWxlcywgc2Vzc2lvbnMsIGFuZCB0aGUgc3FsaXRlMyBkYiAoaWYgdGhhdCBpcyB1c2VkKSBkYXRhID0gZGF0YSAjIFRlbXBvcmFyeSBmaWxlcyBpbiBgZGF0YWAgZGlyZWN0b3J5IG9sZGVyIHRoYW4gZ2l2ZW4gZHVyYXRpb24gd2lsbCBiZSByZW1vdmVkIHRlbXBfZGF0YV9saWZldGltZSA9IDI0aCAjIERpcmVjdG9yeSB3aGVyZSBncmFmYW5hIGNhbiBzdG9yZSBsb2dzIGxvZ3MgPSBkYXRhL2xvZyAjIERpcmVjdG9yeSB3aGVyZSBncmFmYW5hIHdpbGwgYXV0b21hdGljYWxseSBzY2FuIGFuZCBsb29rIGZvciBwbHVnaW5zIHBsdWdpbnMgPSBkYXRhL3BsdWdpbnMgIyBmb2xkZXIgdGhhdCBjb250YWlucyBwcm92aXNpb25pbmcgY29uZmlnIGZpbGVzIHRoYXQgZ3JhZmFuYSB3aWxsIGFwcGx5IG9uIHN0YXJ0dXAgYW5kIHdoaWxlIHJ1bm5pbmcuIHByb3Zpc2lvbmluZyA9IGNvbmYvcHJvdmlzaW9uaW5nICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTZXJ2ZXIgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFtzZXJ2ZXJdICMgUHJvdG9jb2wgKGh0dHAsIGh0dHBzLCBzb2NrZXQpIHByb3RvY29sID0gaHR0cCAjIFRoZSBpcCBhZGRyZXNzIHRvIGJpbmQgdG8sIGVtcHR5IHdpbGwgYmluZCB0byBhbGwgaW50ZXJmYWNlcyBodHRwX2FkZHIgPSAjIFRoZSBodHRwIHBvcnQgdG8gdXNlIGh0dHBfcG9ydCA9IDMwMDAgIyBUaGUgcHVibGljIGZhY2luZyBkb21haW4gbmFtZSB1c2VkIHRvIGFjY2VzcyBncmFmYW5hIGZyb20gYSBicm93c2VyIGRvbWFpbiA9IGxvY2FsaG9zdCAjIFJlZGlyZWN0IHRvIGNvcnJlY3QgZG9tYWluIGlmIGhvc3QgaGVhZGVyIGRvZXMgbm90IG1hdGNoIGRvbWFpbiAjIFByZXZlbnRzIEROUyByZWJpbmRpbmcgYXR0YWNrcyBlbmZvcmNlX2RvbWFpbiA9IGZhbHNlICMgVGhlIGZ1bGwgcHVibGljIGZhY2luZyB1cmwgcm9vdF91cmwgPSAlKHByb3RvY29sKXM6Ly8lKGRvbWFpbilzOiUoaHR0cF9wb3J0KXMvICMgTG9nIHdlYiByZXF1ZXN0cyByb3V0ZXJfbG9nZ2luZyA9IGZhbHNlICMgdGhlIHBhdGggcmVsYXRpdmUgd29ya2luZyBwYXRoIHN0YXRpY19yb290X3BhdGggPSBwdWJsaWMgIyBlbmFibGUgZ3ppcCBlbmFibGVfZ3ppcCA9IGZhbHNlICMgaHR0cHMgY2VydHMgJiBrZXkgZmlsZSBjZXJ0X2ZpbGUgPSBjZXJ0X2tleSA9ICMgVW5peCBzb2NrZXQgcGF0aCBzb2NrZXQgPSAvdG1wL2dyYWZhbmEuc29jayAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgRGF0YWJhc2UgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbZGF0YWJhc2VdICMgWW91IGNhbiBjb25maWd1cmUgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gYnkgc3BlY2lmeWluZyB0eXBlLCBob3N0LCBuYW1lLCB1c2VyIGFuZCBwYXNzd29yZCAjIGFzIHNlcGFyYXRlIHByb3BlcnRpZXMgb3IgYXMgb24gc3RyaW5nIHVzaW5nIHRoZSB1cmwgcHJvcGVydHkuICMgRWl0aGVyICJteXNxbCIsICJwb3N0Z3JlcyIgb3IgInNxbGl0ZTMiLCBpdCdzIHlvdXIgY2hvaWNlIHR5cGUgPSBzcWxpdGUzIGhvc3QgPSAxMjcuMC4wLjE6MzMwNiBuYW1lID0gZ3JhZmFuYSB1c2VyID0gcm9vdCAjIElmIHRoZSBwYXNzd29yZCBjb250YWlucyAjIG9yIDsgeW91IGhhdmUgdG8gd3JhcCBpdCB3aXRoIHRyaXBsZSBxdW90ZXMuIEV4ICIiIiNwYXNzd29yZDsiIiIgcGFzc3dvcmQgPSAjIFVzZSBlaXRoZXIgVVJMIG9yIHRoZSBwcmV2aW91cyBmaWVsZHMgdG8gY29uZmlndXJlIHRoZSBkYXRhYmFzZSAjIEV4YW1wbGU6IG15c3FsOi8vdXNlcjpzZWNyZXRAaG9zdDpwb3J0L2RhdGFiYXNlIHVybCA9ICMgTWF4IGlkbGUgY29ubiBzZXR0aW5nIGRlZmF1bHQgaXMgMiBtYXhfaWRsZV9jb25uID0gMiAjIE1heCBjb25uIHNldHRpbmcgZGVmYXVsdCBpcyAwIChtZWFuIG5vdCBzZXQpIG1heF9vcGVuX2Nvbm4gPSAjIENvbm5lY3Rpb24gTWF4IExpZmV0aW1lIGRlZmF1bHQgaXMgMTQ0MDAgKG1lYW5zIDE0NDAwIHNlY29uZHMgb3IgNCBob3VycykgY29ubl9tYXhfbGlmZXRpbWUgPSAxNDQwMCAjIFNldCB0byB0cnVlIHRvIGxvZyB0aGUgc3FsIGNhbGxzIGFuZCBleGVjdXRpb24gdGltZXMuIGxvZ19xdWVyaWVzID0gIyBGb3IgInBvc3RncmVzIiwgdXNlIGVpdGhlciAiZGlzYWJsZSIsICJyZXF1aXJlIiBvciAidmVyaWZ5LWZ1bGwiICMgRm9yICJteXNxbCIsIHVzZSBlaXRoZXIgInRydWUiLCAiZmFsc2UiLCBvciAic2tpcC12ZXJpZnkiLiBzc2xfbW9kZSA9IGRpc2FibGUgY2FfY2VydF9wYXRoID0gY2xpZW50X2tleV9wYXRoID0gY2xpZW50X2NlcnRfcGF0aCA9IHNlcnZlcl9jZXJ0X25hbWUgPSAjIEZvciAic3FsaXRlMyIgb25seSwgcGF0aCByZWxhdGl2ZSB0byBkYXRhX3BhdGggc2V0dGluZyBwYXRoID0gZ3JhZmFuYS5kYiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgU2Vzc2lvbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbc2Vzc2lvbl0gIyBFaXRoZXIgIm1lbW9yeSIsICJmaWxlIiwgInJlZGlzIiwgIm15c3FsIiwgInBvc3RncmVzIiwgIm1lbWNhY2hlIiwgZGVmYXVsdCBpcyAiZmlsZSIgcHJvdmlkZXIgPSBmaWxlICMgUHJvdmlkZXIgY29uZmlnIG9wdGlvbnMgIyBtZW1vcnk6IG5vdCBoYXZlIGFueSBjb25maWcgeWV0ICMgZmlsZTogc2Vzc2lvbiBkaXIgcGF0aCwgaXMgcmVsYXRpdmUgdG8gZ3JhZmFuYSBkYXRhX3BhdGggIyByZWRpczogY29uZmlnIGxpa2UgcmVkaXMgc2VydmVyIGUuZy4gYGFkZHI9MTI3LjAuMC4xOjYzNzkscG9vbF9zaXplPTEwMCxkYj1ncmFmYW5hYCAjIHBvc3RncmVzOiB1c2VyPWEgcGFzc3dvcmQ9YiBob3N0PWxvY2FsaG9zdCBwb3J0PTU0MzIgZGJuYW1lPWMgc3NsbW9kZT1kaXNhYmxlICMgbXlzcWw6IGdvLXNxbC1kcml2ZXIvbXlzcWwgZHNuIGNvbmZpZyBzdHJpbmcsIGV4YW1wbGVzOiAjIGB1c2VyOnBhc3N3b3JkQHRjcCgxMjcuMC4wLjE6MzMwNikvZGF0YWJhc2VfbmFtZWAgIyBgdXNlcjpwYXNzd29yZEB1bml4KC92YXIvcnVuL215c3FsZC9teXNxbGQuc29jaykvZGF0YWJhc2VfbmFtZWAgIyBtZW1jYWNoZTogMTI3LjAuMC4xOjExMjExIHByb3ZpZGVyX2NvbmZpZyA9IHNlc3Npb25zICMgU2Vzc2lvbiBjb29raWUgbmFtZSBjb29raWVfbmFtZSA9IGdyYWZhbmFfc2VzcyAjIElmIHlvdSB1c2Ugc2Vzc2lvbiBpbiBodHRwcyBvbmx5LCBkZWZhdWx0IGlzIGZhbHNlIGNvb2tpZV9zZWN1cmUgPSBmYWxzZSAjIFNlc3Npb24gbGlmZSB0aW1lLCBkZWZhdWx0IGlzIDg2NDAwIHNlc3Npb25fbGlmZV90aW1lID0gODY0MDAgZ2NfaW50ZXJ2YWxfdGltZSA9IDg2NDAwICMgQ29ubmVjdGlvbiBNYXggTGlmZXRpbWUgZGVmYXVsdCBpcyAxNDQwMCAobWVhbnMgMTQ0MDAgc2Vjb25kcyBvciA0IGhvdXJzKSBjb25uX21heF9saWZldGltZSA9IDE0NDAwICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBEYXRhIHByb3h5ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbZGF0YXByb3h5XSAjIFRoaXMgZW5hYmxlcyBkYXRhIHByb3h5IGxvZ2dpbmcsIGRlZmF1bHQgaXMgZmFsc2UgbG9nZ2luZyA9IGZhbHNlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBBbmFseXRpY3MgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFthbmFseXRpY3NdICMgU2VydmVyIHJlcG9ydGluZywgc2VuZHMgdXNhZ2UgY291bnRlcnMgdG8gc3RhdHMuZ3JhZmFuYS5vcmcgZXZlcnkgMjQgaG91cnMuICMgTm8gaXAgYWRkcmVzc2VzIGFyZSBiZWluZyB0cmFja2VkLCBvbmx5IHNpbXBsZSBjb3VudGVycyB0byB0cmFjayAjIHJ1bm5pbmcgaW5zdGFuY2VzLCBkYXNoYm9hcmQgYW5kIGVycm9yIGNvdW50cy4gSXQgaXMgdmVyeSBoZWxwZnVsIHRvIHVzLiAjIENoYW5nZSB0aGlzIG9wdGlvbiB0byBmYWxzZSB0byBkaXNhYmxlIHJlcG9ydGluZy4gcmVwb3J0aW5nX2VuYWJsZWQgPSB0cnVlICMgU2V0IHRvIGZhbHNlIHRvIGRpc2FibGUgYWxsIGNoZWNrcyB0byBodHRwczovL2dyYWZhbmEuY29tICMgZm9yIG5ldyB2ZXJzaW9ucyAoZ3JhZmFuYSBpdHNlbGYgYW5kIHBsdWdpbnMpLCBjaGVjayBpcyB1c2VkICMgaW4gc29tZSBVSSB2aWV3cyB0byBub3RpZnkgdGhhdCBncmFmYW5hIG9yIHBsdWdpbiB1cGRhdGUgZXhpc3RzICMgVGhpcyBvcHRpb24gZG9lcyBub3QgY2F1c2UgYW55IGF1dG8gdXBkYXRlcywgbm9yIHNlbmQgYW55IGluZm9ybWF0aW9uICMgb25seSBhIEdFVCByZXF1ZXN0IHRvIGh0dHBzOi8vZ3JhZmFuYS5jb20gdG8gZ2V0IGxhdGVzdCB2ZXJzaW9ucyBjaGVja19mb3JfdXBkYXRlcyA9IHRydWUgIyBHb29nbGUgQW5hbHl0aWNzIHVuaXZlcnNhbCB0cmFja2luZyBjb2RlLCBvbmx5IGVuYWJsZWQgaWYgeW91IHNwZWNpZnkgYW4gaWQgaGVyZSBnb29nbGVfYW5hbHl0aWNzX3VhX2lkID0gIyBHb29nbGUgVGFnIE1hbmFnZXIgSUQsIG9ubHkgZW5hYmxlZCBpZiB5b3Ugc3BlY2lmeSBhbiBpZCBoZXJlIGdvb2dsZV90YWdfbWFuYWdlcl9pZCA9ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTZWN1cml0eSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFtzZWN1cml0eV0gIyBkZWZhdWx0IGFkbWluIHVzZXIsIGNyZWF0ZWQgb24gc3RhcnR1cCBhZG1pbl91c2VyID0gYWRtaW4gIyBkZWZhdWx0IGFkbWluIHBhc3N3b3JkLCBjYW4gYmUgY2hhbmdlZCBiZWZvcmUgZmlyc3Qgc3RhcnQgb2YgZ3JhZmFuYSwgb3IgaW4gcHJvZmlsZSBzZXR0aW5ncyBhZG1pbl9wYXNzd29yZCA9IGFkbWluICMgdXNlZCBmb3Igc2lnbmluZyBzZWNyZXRfa2V5ID0gU1cyWWN3VEliOXpwT09ob1BzTW0gIyBBdXRvLWxvZ2luIHJlbWVtYmVyIGRheXMgbG9naW5fcmVtZW1iZXJfZGF5cyA9IDcgY29va2llX3VzZXJuYW1lID0gZ3JhZmFuYV91c2VyIGNvb2tpZV9yZW1lbWJlcl9uYW1lID0gZ3JhZmFuYV9yZW1lbWJlciAjIGRpc2FibGUgZ3JhdmF0YXIgcHJvZmlsZSBpbWFnZXMgZGlzYWJsZV9ncmF2YXRhciA9IGZhbHNlICMgZGF0YSBzb3VyY2UgcHJveHkgd2hpdGVsaXN0IChpcF9vcl9kb21haW46cG9ydCBzZXBhcmF0ZWQgYnkgc3BhY2VzKSBkYXRhX3NvdXJjZV9wcm94eV93aGl0ZWxpc3QgPSAjIGRpc2FibGUgcHJvdGVjdGlvbiBhZ2FpbnN0IGJydXRlIGZvcmNlIGxvZ2luIGF0dGVtcHRzIGRpc2FibGVfYnJ1dGVfZm9yY2VfbG9naW5fcHJvdGVjdGlvbiA9IGZhbHNlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTbmFwc2hvdHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFtzbmFwc2hvdHNdICMgc25hcHNob3Qgc2hhcmluZyBvcHRpb25zIGV4dGVybmFsX2VuYWJsZWQgPSB0cnVlIGV4dGVybmFsX3NuYXBzaG90X3VybCA9IGh0dHBzOi8vc25hcHNob3RzLW9yaWdpbi5yYWludGFuay5pbyBleHRlcm5hbF9zbmFwc2hvdF9uYW1lID0gUHVibGlzaCB0byBzbmFwc2hvdC5yYWludGFuay5pbyAjIHJlbW92ZSBleHBpcmVkIHNuYXBzaG90IHNuYXBzaG90X3JlbW92ZV9leHBpcmVkID0gdHJ1ZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgRGFzaGJvYXJkcyAjIyMjIyMjIyMjIyMjIyMjIyMgW2Rhc2hib2FyZHNdICMgTnVtYmVyIGRhc2hib2FyZCB2ZXJzaW9ucyB0byBrZWVwIChwZXIgZGFzaGJvYXJkKS4gRGVmYXVsdDogMjAsIE1pbmltdW06IDEgdmVyc2lvbnNfdG9fa2VlcCA9IDIwICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBVc2VycyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFt1c2Vyc10gIyBkaXNhYmxlIHVzZXIgc2lnbnVwIC8gcmVnaXN0cmF0aW9uIGFsbG93X3NpZ25fdXAgPSBmYWxzZSAjIEFsbG93IG5vbiBhZG1pbiB1c2VycyB0byBjcmVhdGUgb3JnYW5pemF0aW9ucyBhbGxvd19vcmdfY3JlYXRlID0gZmFsc2UgIyBTZXQgdG8gdHJ1ZSB0byBhdXRvbWF0aWNhbGx5IGFzc2lnbiBuZXcgdXNlcnMgdG8gdGhlIGRlZmF1bHQgb3JnYW5pemF0aW9uIChpZCAxKSBhdXRvX2Fzc2lnbl9vcmcgPSB0cnVlICMgU2V0IHRoaXMgdmFsdWUgdG8gYXV0b21hdGljYWxseSBhZGQgbmV3IHVzZXJzIHRvIHRoZSBwcm92aWRlZCBvcmdhbml6YXRpb24gKGlmIGF1dG9fYXNzaWduX29yZyBhYm92ZSBpcyBzZXQgdG8gdHJ1ZSkgYXV0b19hc3NpZ25fb3JnX2lkID0gMSAjIERlZmF1bHQgcm9sZSBuZXcgdXNlcnMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIChpZiBhdXRvX2Fzc2lnbl9vcmcgYWJvdmUgaXMgc2V0IHRvIHRydWUpIGF1dG9fYXNzaWduX29yZ19yb2xlID0gVmlld2VyICMgUmVxdWlyZSBlbWFpbCB2YWxpZGF0aW9uIGJlZm9yZSBzaWduIHVwIGNvbXBsZXRlcyB2ZXJpZnlfZW1haWxfZW5hYmxlZCA9IGZhbHNlICMgQmFja2dyb3VuZCB0ZXh0IGZvciB0aGUgdXNlciBmaWVsZCBvbiB0aGUgbG9naW4gcGFnZSBsb2dpbl9oaW50ID0gZW1haWwgb3IgdXNlcm5hbWUgIyBEZWZhdWx0IFVJIHRoZW1lICgiZGFyayIgb3IgImxpZ2h0IikgZGVmYXVsdF90aGVtZSA9IGRhcmsgIyBFeHRlcm5hbCB1c2VyIG1hbmFnZW1lbnQgZXh0ZXJuYWxfbWFuYWdlX2xpbmtfdXJsID0gZXh0ZXJuYWxfbWFuYWdlX2xpbmtfbmFtZSA9IGV4dGVybmFsX21hbmFnZV9pbmZvID0gIyBWaWV3ZXJzIGNhbiBlZGl0L2luc3BlY3QgZGFzaGJvYXJkIHNldHRpbmdzIGluIHRoZSBicm93c2VyLiBCdXQgbm90IHNhdmUgdGhlIGRhc2hib2FyZC4gdmlld2Vyc19jYW5fZWRpdCA9IGZhbHNlIFthdXRoXSAjIFNldCB0byB0cnVlIHRvIGRpc2FibGUgKGhpZGUpIHRoZSBsb2dpbiBmb3JtLCB1c2VmdWwgaWYgeW91IHVzZSBPQXV0aCBkaXNhYmxlX2xvZ2luX2Zvcm0gPSBmYWxzZSAjIFNldCB0byB0cnVlIHRvIGRpc2FibGUgdGhlIHNpZ25vdXQgbGluayBpbiB0aGUgc2lkZSBtZW51LiB1c2VmdWwgaWYgeW91IHVzZSBhdXRoLnByb3h5IGRpc2FibGVfc2lnbm91dF9tZW51ID0gZmFsc2UgIyBVUkwgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gYWZ0ZXIgc2lnbiBvdXQgc2lnbm91dF9yZWRpcmVjdF91cmwgPSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQW5vbnltb3VzIEF1dGggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYXV0aC5hbm9ueW1vdXNdICMgZW5hYmxlIGFub255bW91cyBhY2Nlc3MgZW5hYmxlZCA9IGZhbHNlICMgc3BlY2lmeSBvcmdhbml6YXRpb24gbmFtZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB1bmF1dGhlbnRpY2F0ZWQgdXNlcnMgb3JnX25hbWUgPSBNYWluIE9yZy4gIyBzcGVjaWZ5IHJvbGUgZm9yIHVuYXV0aGVudGljYXRlZCB1c2VycyBvcmdfcm9sZSA9IFZpZXdlciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgR2l0aHViIEF1dGggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYXV0aC5naXRodWJdIGVuYWJsZWQgPSBmYWxzZSBhbGxvd19zaWduX3VwID0gdHJ1ZSBjbGllbnRfaWQgPSBzb21lX2lkIGNsaWVudF9zZWNyZXQgPSBzb21lX3NlY3JldCBzY29wZXMgPSB1c2VyOmVtYWlsLHJlYWQ6b3JnIGF1dGhfdXJsID0gaHR0cHM6Ly9naXRodWIuY29tL2xvZ2luL29hdXRoL2F1dGhvcml6ZSB0b2tlbl91cmwgPSBodHRwczovL2dpdGh1Yi5jb20vbG9naW4vb2F1dGgvYWNjZXNzX3Rva2VuIGFwaV91cmwgPSBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXIgdGVhbV9pZHMgPSBhbGxvd2VkX29yZ2FuaXphdGlvbnMgPSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgR2l0TGFiIEF1dGggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYXV0aC5naXRsYWJdIGVuYWJsZWQgPSBmYWxzZSBhbGxvd19zaWduX3VwID0gdHJ1ZSBjbGllbnRfaWQgPSBzb21lX2lkIGNsaWVudF9zZWNyZXQgPSBzb21lX3NlY3JldCBzY29wZXMgPSBhcGkgYXV0aF91cmwgPSBodHRwczovL2dpdGxhYi5jb20vb2F1dGgvYXV0aG9yaXplIHRva2VuX3VybCA9IGh0dHBzOi8vZ2l0bGFiLmNvbS9vYXV0aC90b2tlbiBhcGlfdXJsID0gaHR0cHM6Ly9naXRsYWIuY29tL2FwaS92NCBhbGxvd2VkX2dyb3VwcyA9ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBHb29nbGUgQXV0aCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFthdXRoLmdvb2dsZV0gZW5hYmxlZCA9IGZhbHNlIGFsbG93X3NpZ25fdXAgPSB0cnVlIGNsaWVudF9pZCA9IHNvbWVfY2xpZW50X2lkIGNsaWVudF9zZWNyZXQgPSBzb21lX2NsaWVudF9zZWNyZXQgc2NvcGVzID0gaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC91c2VyaW5mby5wcm9maWxlIGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvdXNlcmluZm8uZW1haWwgYXV0aF91cmwgPSBodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvYXV0aCB0b2tlbl91cmwgPSBodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvdG9rZW4gYXBpX3VybCA9IGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92MS91c2VyaW5mbyBhbGxvd2VkX2RvbWFpbnMgPSBob3N0ZWRfZG9tYWluID0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIEdyYWZhbmEuY29tIEF1dGggIyMjIyMjIyMjIyMjIyMjIyMjIyMgIyBsZWdhY3kga2V5IG5hbWVzIChzbyB0aGV5IHdvcmsgaW4gZW52IHZhcmlhYmxlcykgW2F1dGguZ3JhZmFuYW5ldF0gZW5hYmxlZCA9IGZhbHNlIGFsbG93X3NpZ25fdXAgPSB0cnVlIGNsaWVudF9pZCA9IHNvbWVfaWQgY2xpZW50X3NlY3JldCA9IHNvbWVfc2VjcmV0IHNjb3BlcyA9IHVzZXI6ZW1haWwgYWxsb3dlZF9vcmdhbml6YXRpb25zID0gW2F1dGguZ3JhZmFuYV9jb21dIGVuYWJsZWQgPSBmYWxzZSBhbGxvd19zaWduX3VwID0gdHJ1ZSBjbGllbnRfaWQgPSBzb21lX2lkIGNsaWVudF9zZWNyZXQgPSBzb21lX3NlY3JldCBzY29wZXMgPSB1c2VyOmVtYWlsIGFsbG93ZWRfb3JnYW5pemF0aW9ucyA9ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBHZW5lcmljIE9BdXRoICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFthdXRoLmdlbmVyaWNfb2F1dGhdIG5hbWUgPSBPQXV0aCBlbmFibGVkID0gZmFsc2UgYWxsb3dfc2lnbl91cCA9IHRydWUgY2xpZW50X2lkID0gc29tZV9pZCBjbGllbnRfc2VjcmV0ID0gc29tZV9zZWNyZXQgc2NvcGVzID0gdXNlcjplbWFpbCBlbWFpbF9hdHRyaWJ1dGVfbmFtZSA9IGVtYWlsOnByaW1hcnkgYXV0aF91cmwgPSB0b2tlbl91cmwgPSBhcGlfdXJsID0gdGVhbV9pZHMgPSBhbGxvd2VkX29yZ2FuaXphdGlvbnMgPSB0bHNfc2tpcF92ZXJpZnlfaW5zZWN1cmUgPSBmYWxzZSB0bHNfY2xpZW50X2NlcnQgPSB0bHNfY2xpZW50X2tleSA9IHRsc19jbGllbnRfY2EgPSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQmFzaWMgQXV0aCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYXV0aC5iYXNpY10gZW5hYmxlZCA9IHRydWUgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIEF1dGggUHJveHkgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgW2F1dGgucHJveHldIGVuYWJsZWQgPSBmYWxzZSBoZWFkZXJfbmFtZSA9IFgtV0VCQVVUSC1VU0VSIGhlYWRlcl9wcm9wZXJ0eSA9IHVzZXJuYW1lIGF1dG9fc2lnbl91cCA9IHRydWUgbGRhcF9zeW5jX3R0bCA9IDYwIHdoaXRlbGlzdCA9IGhlYWRlcnMgPSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQXV0aCBMREFQICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYXV0aC5sZGFwXSBlbmFibGVkID0gZmFsc2UgY29uZmlnX2ZpbGUgPSAvZXRjL2dyYWZhbmEvbGRhcC50b21sIGFsbG93X3NpZ25fdXAgPSB0cnVlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTTVRQIC8gRW1haWxpbmcgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFtzbXRwXSBlbmFibGVkID0gZmFsc2UgaG9zdCA9IGxvY2FsaG9zdDoyNSB1c2VyID0gIyBJZiB0aGUgcGFzc3dvcmQgY29udGFpbnMgIyBvciA7IHlvdSBoYXZlIHRvIHdyYXAgaXQgd2l0aCB0cmlwbGUgcXVvdGVzLiBFeCAiIiIjcGFzc3dvcmQ7IiIiIHBhc3N3b3JkID0gY2VydF9maWxlID0ga2V5X2ZpbGUgPSBza2lwX3ZlcmlmeSA9IGZhbHNlIGZyb21fYWRkcmVzcyA9IGFkbWluQGdyYWZhbmEubG9jYWxob3N0IGZyb21fbmFtZSA9IEdyYWZhbmEgZWhsb19pZGVudGl0eSA9IFtlbWFpbHNdIHdlbGNvbWVfZW1haWxfb25fc2lnbl91cCA9IGZhbHNlIHRlbXBsYXRlc19wYXR0ZXJuID0gZW1haWxzLyouaHRtbCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgTG9nZ2luZyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbbG9nXSAjIEVpdGhlciAiY29uc29sZSIsICJmaWxlIiwgInN5c2xvZyIuIERlZmF1bHQgaXMgY29uc29sZSBhbmQgZmlsZSAjIFVzZSBzcGFjZSB0byBzZXBhcmF0ZSBtdWx0aXBsZSBtb2RlcywgZS5nLiAiY29uc29sZSBmaWxlIiBtb2RlID0gY29uc29sZSBmaWxlICMgRWl0aGVyICJkZWJ1ZyIsICJpbmZvIiwgIndhcm4iLCAiZXJyb3IiLCAiY3JpdGljYWwiLCBkZWZhdWx0IGlzICJpbmZvIiBsZXZlbCA9IGluZm8gIyBvcHRpb25hbCBzZXR0aW5ncyB0byBzZXQgZGlmZmVyZW50IGxldmVscyBmb3Igc3BlY2lmaWMgbG9nZ2Vycy4gRXggZmlsdGVycyA9IHNxbHN0b3JlOmRlYnVnIGZpbHRlcnMgPSAjIEZvciAiY29uc29sZSIgbW9kZSBvbmx5IFtsb2cuY29uc29sZV0gbGV2ZWwgPSAjIGxvZyBsaW5lIGZvcm1hdCwgdmFsaWQgb3B0aW9ucyBhcmUgdGV4dCwgY29uc29sZSBhbmQganNvbiBmb3JtYXQgPSBjb25zb2xlICMgRm9yICJmaWxlIiBtb2RlIG9ubHkgW2xvZy5maWxlXSBsZXZlbCA9ICMgbG9nIGxpbmUgZm9ybWF0LCB2YWxpZCBvcHRpb25zIGFyZSB0ZXh0LCBjb25zb2xlIGFuZCBqc29uIGZvcm1hdCA9IHRleHQgIyBUaGlzIGVuYWJsZXMgYXV0b21hdGVkIGxvZyByb3RhdGUoc3dpdGNoIG9mIGZvbGxvd2luZyBvcHRpb25zKSwgZGVmYXVsdCBpcyB0cnVlIGxvZ19yb3RhdGUgPSB0cnVlICMgTWF4IGxpbmUgbnVtYmVyIG9mIHNpbmdsZSBmaWxlLCBkZWZhdWx0IGlzIDEwMDAwMDAgbWF4X2xpbmVzID0gMTAwMDAwMCAjIE1heCBzaXplIHNoaWZ0IG9mIHNpbmdsZSBmaWxlLCBkZWZhdWx0IGlzIDI4IG1lYW5zIDEgPDwgMjgsIDI1Nk1CIG1heF9zaXplX3NoaWZ0ID0gMjggIyBTZWdtZW50IGxvZyBkYWlseSwgZGVmYXVsdCBpcyB0cnVlIGRhaWx5X3JvdGF0ZSA9IHRydWUgIyBFeHBpcmVkIGRheXMgb2YgbG9nIGZpbGUoZGVsZXRlIGFmdGVyIG1heCBkYXlzKSwgZGVmYXVsdCBpcyA3IG1heF9kYXlzID0gNyBbbG9nLnN5c2xvZ10gbGV2ZWwgPSAjIGxvZyBsaW5lIGZvcm1hdCwgdmFsaWQgb3B0aW9ucyBhcmUgdGV4dCwgY29uc29sZSBhbmQganNvbiBmb3JtYXQgPSB0ZXh0ICMgU3lzbG9nIG5ldHdvcmsgdHlwZSBhbmQgYWRkcmVzcy4gVGhpcyBjYW4gYmUgdWRwLCB0Y3AsIG9yIHVuaXguIElmIGxlZnQgYmxhbmssIHRoZSBkZWZhdWx0IHVuaXggZW5kcG9pbnRzIHdpbGwgYmUgdXNlZC4gbmV0d29yayA9IGFkZHJlc3MgPSAjIFN5c2xvZyBmYWNpbGl0eS4gdXNlciwgZGFlbW9uIGFuZCBsb2NhbDAgdGhyb3VnaCBsb2NhbDcgYXJlIHZhbGlkLiBmYWNpbGl0eSA9ICMgU3lzbG9nIHRhZy4gQnkgZGVmYXVsdCwgdGhlIHByb2Nlc3MnIGFyZ3ZbMF0gaXMgdXNlZC4gdGFnID0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFVzYWdlIFF1b3RhcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgW3F1b3RhXSBlbmFibGVkID0gZmFsc2UgIyMjIyBzZXQgcXVvdGFzIHRvIC0xIHRvIG1ha2UgdW5saW1pdGVkLiAjIyMjICMgbGltaXQgbnVtYmVyIG9mIHVzZXJzIHBlciBPcmcuIG9yZ191c2VyID0gMTAgIyBsaW1pdCBudW1iZXIgb2YgZGFzaGJvYXJkcyBwZXIgT3JnLiBvcmdfZGFzaGJvYXJkID0gMTAwICMgbGltaXQgbnVtYmVyIG9mIGRhdGFfc291cmNlcyBwZXIgT3JnLiBvcmdfZGF0YV9zb3VyY2UgPSAxMCAjIGxpbWl0IG51bWJlciBvZiBhcGlfa2V5cyBwZXIgT3JnLiBvcmdfYXBpX2tleSA9IDEwICMgbGltaXQgbnVtYmVyIG9mIG9yZ3MgYSB1c2VyIGNhbiBjcmVhdGUuIHVzZXJfb3JnID0gMTAgIyBHbG9iYWwgbGltaXQgb2YgdXNlcnMuIGdsb2JhbF91c2VyID0gLTEgIyBnbG9iYWwgbGltaXQgb2Ygb3Jncy4gZ2xvYmFsX29yZyA9IC0xICMgZ2xvYmFsIGxpbWl0IG9mIGRhc2hib2FyZHMgZ2xvYmFsX2Rhc2hib2FyZCA9IC0xICMgZ2xvYmFsIGxpbWl0IG9mIGFwaV9rZXlzIGdsb2JhbF9hcGlfa2V5ID0gLTEgIyBnbG9iYWwgbGltaXQgb24gbnVtYmVyIG9mIGxvZ2dlZCBpbiB1c2Vycy4gZ2xvYmFsX3Nlc3Npb24gPSAtMSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQWxlcnRpbmcgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYWxlcnRpbmddICMgRGlzYWJsZSBhbGVydGluZyBlbmdpbmUgJiBVSSBmZWF0dXJlcyBlbmFibGVkID0gdHJ1ZSAjIE1ha2VzIGl0IHBvc3NpYmxlIHRvIHR1cm4gb2ZmIGFsZXJ0IHJ1bGUgZXhlY3V0aW9uIGJ1dCBhbGVydGluZyBVSSBpcyB2aXNpYmxlIGV4ZWN1dGVfYWxlcnRzID0gdHJ1ZSAjIERlZmF1bHQgc2V0dGluZyBmb3IgbmV3IGFsZXJ0IHJ1bGVzLiBEZWZhdWx0cyB0byBjYXRlZ29yaXplIGVycm9yIGFuZCB0aW1lb3V0cyBhcyBhbGVydGluZy4gKGFsZXJ0aW5nLCBrZWVwX3N0YXRlKSBlcnJvcl9vcl90aW1lb3V0ID0gYWxlcnRpbmcgIyBEZWZhdWx0IHNldHRpbmcgZm9yIGhvdyBHcmFmYW5hIGhhbmRsZXMgbm9kYXRhIG9yIG51bGwgdmFsdWVzIGluIGFsZXJ0aW5nLiAoYWxlcnRpbmcsIG5vX2RhdGEsIGtlZXBfc3RhdGUsIG9rKSBub2RhdGFfb3JfbnVsbHZhbHVlcyA9IG5vX2RhdGEgIyBBbGVydCBub3RpZmljYXRpb25zIGNhbiBpbmNsdWRlIGltYWdlcywgYnV0IHJlbmRlcmluZyBtYW55IGltYWdlcyBhdCB0aGUgc2FtZSB0aW1lIGNhbiBvdmVybG9hZCB0aGUgc2VydmVyICMgVGhpcyBsaW1pdCB3aWxsIHByb3RlY3QgdGhlIHNlcnZlciBmcm9tIHJlbmRlciBvdmVybG9hZGluZyBhbmQgbWFrZSBzdXJlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgb3V0IHF1aWNrbHkgY29uY3VycmVudF9yZW5kZXJfbGltaXQgPSA1ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBFeHBsb3JlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFtleHBsb3JlXSAjIEVuYWJsZSB0aGUgRXhwbG9yZSBzZWN0aW9uIGVuYWJsZWQgPSBmYWxzZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgSW50ZXJuYWwgR3JhZmFuYSBNZXRyaWNzICMjIyMjIyMjIyMjIyAjIE1ldHJpY3MgYXZhaWxhYmxlIGF0IEhUVFAgQVBJIFVybCAvbWV0cmljcyBbbWV0cmljc10gZW5hYmxlZCA9IHRydWUgaW50ZXJ2YWxfc2Vjb25kcyA9IDEwICMgU2VuZCBpbnRlcm5hbCBHcmFmYW5hIG1ldHJpY3MgdG8gZ3JhcGhpdGUgW21ldHJpY3MuZ3JhcGhpdGVdICMgRW5hYmxlIGJ5IHNldHRpbmcgdGhlIGFkZHJlc3Mgc2V0dGluZyAoZXggbG9jYWxob3N0OjIwMDMpIGFkZHJlc3MgPSBwcmVmaXggPSBwcm9kLmdyYWZhbmEuJShpbnN0YW5jZV9uYW1lKXMuIFtncmFmYW5hX25ldF0gdXJsID0gaHR0cHM6Ly9ncmFmYW5hLmNvbSBbZ3JhZmFuYV9jb21dIHVybCA9IGh0dHBzOi8vZ3JhZmFuYS5jb20gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIERpc3RyaWJ1dGVkIHRyYWNpbmcgIyMjIyMjIyMjIyMjIFt0cmFjaW5nLmphZWdlcl0gIyBqYWVnZXIgZGVzdGluYXRpb24gKGV4IGxvY2FsaG9zdDo2ODMxKSBhZGRyZXNzID0gIyB0YWcgdGhhdCB3aWxsIGFsd2F5cyBiZSBpbmNsdWRlZCBpbiB3aGVuIGNyZWF0aW5nIG5ldyBzcGFucy4gZXggKHRhZzE6dmFsdWUxLHRhZzI6dmFsdWUyKSBhbHdheXNfaW5jbHVkZWRfdGFnID0gIyBUeXBlIHNwZWNpZmllcyB0aGUgdHlwZSBvZiB0aGUgc2FtcGxlcjogY29uc3QsIHByb2JhYmlsaXN0aWMsIHJhdGVMaW1pdGluZywgb3IgcmVtb3RlIHNhbXBsZXJfdHlwZSA9IGNvbnN0ICMgamFlZ2VyIHNhbXBsZXJjb25maWcgcGFyYW0gIyBmb3IgImNvbnN0IiBzYW1wbGVyLCAwIG9yIDEgZm9yIGFsd2F5cyBmYWxzZS90cnVlIHJlc3BlY3RpdmVseSAjIGZvciAicHJvYmFiaWxpc3RpYyIgc2FtcGxlciwgYSBwcm9iYWJpbGl0eSBiZXR3ZWVuIDAgYW5kIDEgIyBmb3IgInJhdGVMaW1pdGluZyIgc2FtcGxlciwgdGhlIG51bWJlciBvZiBzcGFucyBwZXIgc2Vjb25kICMgZm9yICJyZW1vdGUiIHNhbXBsZXIsIHBhcmFtIGlzIHRoZSBzYW1lIGFzIGZvciAicHJvYmFiaWxpc3RpYyIgIyBhbmQgaW5kaWNhdGVzIHRoZSBpbml0aWFsIHNhbXBsaW5nIHJhdGUgYmVmb3JlIHRoZSBhY3R1YWwgb25lICMgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgbW90aGVyc2hpcCBzYW1wbGVyX3BhcmFtID0gMSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgRXh0ZXJuYWwgSW1hZ2UgU3RvcmFnZSAjIyMjIyMjIyMjIyMjIyBbZXh0ZXJuYWxfaW1hZ2Vfc3RvcmFnZV0gIyBZb3UgY2FuIGNob29zZSBiZXR3ZWVuIChzMywgd2ViZGF2LCBnY3MsIGF6dXJlX2Jsb2IsIGxvY2FsKSBwcm92aWRlciA9IFtleHRlcm5hbF9pbWFnZV9zdG9yYWdlLnMzXSBidWNrZXRfdXJsID0gYnVja2V0ID0gcmVnaW9uID0gcGF0aCA9IGFjY2Vzc19rZXkgPSBzZWNyZXRfa2V5ID0gW2V4dGVybmFsX2ltYWdlX3N0b3JhZ2Uud2ViZGF2XSB1cmwgPSB1c2VybmFtZSA9IHBhc3N3b3JkID0gcHVibGljX3VybCA9IFtleHRlcm5hbF9pbWFnZV9zdG9yYWdlLmdjc10ga2V5X2ZpbGUgPSBidWNrZXQgPSBwYXRoID0gW2V4dGVybmFsX2ltYWdlX3N0b3JhZ2UuYXp1cmVfYmxvYl0gYWNjb3VudF9uYW1lID0gYWNjb3VudF9rZXkgPSBjb250YWluZXJfbmFtZSA9IFtleHRlcm5hbF9pbWFnZV9zdG9yYWdlLmxvY2FsXSAjIGRvZXMgbm90IHJlcXVpcmUgYW55IGNvbmZpZ3VyYXRpb24gW3JlbmRlcmluZ10gIyBPcHRpb25zIHRvIGNvbmZpZ3VyZSBleHRlcm5hbCBpbWFnZSByZW5kZXJpbmcgc2VydmVyIGxpa2UgaHR0cHM6Ly9naXRodWIuY29tL2dyYWZhbmEvZ3JhZmFuYS1pbWFnZS1yZW5kZXJlciBzZXJ2ZXJfdXJsID0gY2FsbGJhY2tfdXJsID0K" + }, + "provisioning": { + "description": "Provisioning properties to be used", + "type": "object", + "properties": { + "datasources": { + "description": "Base64 encoded conf/provisioning/datasources/datasources.yml", + "type": "string", + "media": { + "binaryEncoding": "base64", + "type": "application/x-yaml" + }, + "default": "" + }, + "dashboards": { + "description": "Base64 encoded conf/provisioning/dashboards/dashboards.yml config", + "type": "string", + "media": { + "binaryEncoding": "base64", + "type": "application/x-yaml" + }, + "default": "" + } + } + } + }, + "required": [ + "cpus", + "mem" + ] + } + } +} diff --git a/repo/packages/G/grafana/7/marathon.json.mustache b/repo/packages/G/grafana/7/marathon.json.mustache new file mode 100644 index 000000000..ef8d86568 --- /dev/null +++ b/repo/packages/G/grafana/7/marathon.json.mustache @@ -0,0 +1,96 @@ + +{ + "id": "{{service.name}}", + "cpus": 1.0, + "mem": 1024, + "instances": 1, + "user": "{{service.user}}", + "cmd": "export LD_LIBRARY_PATH=$MESOS_SANDBOX/libmesos-bundle/lib:$LD_LIBRARY_PATH; export MESOS_NATIVE_JAVA_LIBRARY=$(ls $MESOS_SANDBOX/libmesos-bundle/lib/libmesos-*.so); export JAVA_HOME=$(ls -d $MESOS_SANDBOX/jdk*/jre/); export JAVA_HOME=${JAVA_HOME%/}; export PATH=$(ls -d $JAVA_HOME/bin):$PATH && export JAVA_OPTS=\"-Xms256M -Xmx512M -XX:-HeapDumpOnOutOfMemoryError\" && ./bootstrap -resolve=false -template=false && ./operator-scheduler/bin/operator svc.yml", + "labels": { + "DCOS_COMMONS_API_VERSION": "v1", + "DCOS_COMMONS_UNINSTALL": "true", + "DCOS_PACKAGE_FRAMEWORK_NAME": "{{service.name}}", + "MARATHON_SINGLE_INSTANCE_APP": "true", + "DCOS_SERVICE_NAME": "{{service.name}}", + "DCOS_SERVICE_PORT_INDEX": "0", + "DCOS_SERVICE_SCHEME": "http" + }, + {{#service.service_account_secret}} + "secrets": { + "serviceCredential": { + "source": "{{service.service_account_secret}}" + } + }, + {{/service.service_account_secret}} + "env": { + "PACKAGE_NAME": "{{package-name}}", + "PACKAGE_VERSION": "{{package-version}}", + "PACKAGE_BUILD_TIME_EPOCH_MS": "1531343768523", + "PACKAGE_BUILD_TIME_STR": "2018-07-11T21:16:08.523025", + "FRAMEWORK_NAME": "{{service.name}}", + "FRAMEWORK_USER": "{{service.user}}", + "FRAMEWORK_PRINCIPAL": "{{service.service_account}}", + "FRAMEWORK_LOG_LEVEL": "{{service.log_level}}", + "MESOS_API_VERSION": "{{service.mesos_api_version}}", + + "GRAFANA_DIR": "{{grafana.dir}}", + "GRAFANA_CPUS": "{{grafana.cpus}}", + "GRAFANA_MEM": "{{grafana.mem}}", + "GRAFANA_VOLUME": "{{grafana.volume.path}}", + "GRAFANA_VOLUME_TYPE": "{{grafana.volume.type}}", + "GRAFANA_VOLUME_SIZE": "{{grafana.volume.size}}", + "GRAFANA_INI": "{{grafana.ini}}", + "GRAFANA_DSP": "{{grafana.provisioning.datasources}}", + "GRAFANA_DBP": "{{grafana.provisioning.dashboards}}", + + "NODE_COUNT": "{{node.count}}", + "NODE_PLACEMENT": "{{{node.placement_constraint}}}", + + "NODE_CPUS": "{{node.cpus}}", + "NODE_MEM": "{{node.mem}}", + "NODE_DISK": "{{node.disk}}", + "NODE_DISK_TYPE": "{{node.disk_type}}", + + "JAVA_URI": "{{resource.assets.uris.jre-tar-gz}}", + "EXECUTOR_URI": "{{resource.assets.uris.executor-zip}}", + "BOOTSTRAP_URI": "{{resource.assets.uris.bootstrap-zip}}", + "GRAFANA_URI": "{{resource.assets.uris.grafana-tar-gz}}", + {{#service.service_account_secret}} + "DCOS_SERVICE_ACCOUNT_CREDENTIAL": { "secret": "serviceCredential" }, + "MESOS_MODULES": "{"libraries":[{"file":"libmesos-bundle\/lib\/mesos\/libdcos_security.so","modules":[{"name": "com_mesosphere_dcos_ClassicRPCAuthenticatee"},{"name":"com_mesosphere_dcos_http_Authenticatee","parameters":[{"key":"jwt_exp_timeout","value":"5mins"},{"key":"preemptive_refresh_duration","value":"30mins"}]}]}]}", + "MESOS_AUTHENTICATEE": "com_mesosphere_dcos_ClassicRPCAuthenticatee", + "MESOS_HTTP_AUTHENTICATEE": "com_mesosphere_dcos_http_Authenticatee", + {{/service.service_account_secret}} + "LIBMESOS_URI": "{{resource.assets.uris.libmesos-bundle-tar-gz}}" + }, + "uris": [ + "{{resource.assets.uris.bootstrap-zip}}", + "{{resource.assets.uris.jre-tar-gz}}", + "{{resource.assets.uris.scheduler-zip}}", + "{{resource.assets.uris.libmesos-bundle-tar-gz}}", + "{{resource.assets.uris.svc}}" + ], + "upgradeStrategy":{ + "minimumHealthCapacity": 0, + "maximumOverCapacity": 0 + }, + "healthChecks": [ + { + "protocol": "MESOS_HTTP", + "path": "/v1/health", + "gracePeriodSeconds": 900, + "intervalSeconds": 30, + "portIndex": 0, + "timeoutSeconds": 30, + "maxConsecutiveFailures": 0 + } + ], + "portDefinitions": [ + { + "port": 0, + "protocol": "tcp", + "name": "api", + "labels": { "VIP_0": "/api.{{service.name}}:80" } + } + ] +} diff --git a/repo/packages/G/grafana/7/package.json b/repo/packages/G/grafana/7/package.json new file mode 100644 index 000000000..87689f15f --- /dev/null +++ b/repo/packages/G/grafana/7/package.json @@ -0,0 +1,23 @@ +{ + "packagingVersion": "4.0", + "upgradesFrom": [ + "*" + ], + "downgradesTo": [ + "*" + ], + "minDcosReleaseVersion": "1.10", + "name": "grafana", + "version": "5.5.0-5.3.4", + "maintainer": "https://dcos.io/community", + "description": "Grafana on DC/OS", + "selected": false, + "framework": true, + "tags": [ + "grafana", + "monitoring", + "visualization" + ], + "postInstallNotes": "DC/OS Grafana is being installed!", + "postUninstallNotes": "DC/OS Grafana is being uninstalled." +} diff --git a/repo/packages/G/grafana/7/resource.json b/repo/packages/G/grafana/7/resource.json new file mode 100644 index 000000000..480f5adb0 --- /dev/null +++ b/repo/packages/G/grafana/7/resource.json @@ -0,0 +1,62 @@ +{ + "assets": { + "uris": { + "jre-tar-gz": "https://downloads.mesosphere.com/java/server-jre-8u162-linux-x64.tar.gz", + "libmesos-bundle-tar-gz": "https://downloads.mesosphere.com/libmesos-bundle/libmesos-bundle-1.11.0.tar.gz", + "bootstrap-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/bootstrap.zip", + "executor-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/executor.zip", + "scheduler-zip": "https://s3-us-west-1.amazonaws.com/mbgl-bucket/sdk/0.42.1/operator-scheduler.zip", + "svc": "https://s3-us-west-2.amazonaws.com/dcos-objects/grafana/svc.yml", + "grafana-tar-gz": "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.4.linux-amd64.tar.gz" + } + }, + "images": { + "icon-small": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-small.png", + "icon-medium": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-medium.png", + "icon-large": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-large.png", + "screenshots": [ + "https://prometheus.io/assets/grafana_prometheus-cbb943f0bb3.png", + "https://grafana.com/blog/img/docs/v45/query_inspector.png" + ] + }, + "cli": { + "binaries": { + "darwin": { + "x86-64": { + "contentHash": [ + { + "algo": "sha256", + "value": "c459d2109b31fc0b423f8cacd49df855ef898e63609f7050957f4a0e044d5432" + } + ], + "kind": "executable", + "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli-darwin" + } + }, + "linux": { + "x86-64": { + "contentHash": [ + { + "algo": "sha256", + "value": "e580ee8b71c0c26b1a1a605ca09cbd3528a2c031a8de11519024ccbbce862339" + } + ], + "kind": "executable", + "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli-linux" + } + }, + "windows": { + "x86-64": { + "contentHash": [ + { + "algo": "sha256", + "value": "9135f9456a40cd53e27e73e44fc94c1d4cbf27d9b59f2b47d82bad3ae0f8c714" + } + ], + "kind": "executable", + "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli.exe" + } + } + } + } +} From 22a8f5f9dbe43247688ae7edbfbe83b3af1de4bf Mon Sep 17 00:00:00 2001 From: cbaker Date: Mon, 3 Dec 2018 20:14:20 +0000 Subject: [PATCH 02/13] pare-down config.json base64 configuration files. move svc.yml. --- repo/packages/G/grafana/7/config.json | 14 +++++++------- repo/packages/G/grafana/7/resource.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/repo/packages/G/grafana/7/config.json b/repo/packages/G/grafana/7/config.json index 538ad0c0e..f3dc6eb62 100644 --- a/repo/packages/G/grafana/7/config.json +++ b/repo/packages/G/grafana/7/config.json @@ -14,7 +14,7 @@ "user": { "description": "The user that the service will run as.", "type": "string", - "default": "root", + "default": "nobody", "title": "User" }, "service_account": { @@ -70,7 +70,7 @@ "mem": { "description": "Grafana pod mem requirements (in MB)", "type": "integer", - "default": 1024 + "default": 2048 }, "volume": { "description": "Grafana volume requirements", @@ -79,7 +79,7 @@ "path": { "description": "Location of persistent volume to store data", "type": "string", - "default": "/tmp" + "default": "grafana-data" }, "type": { "description": "The type of persistent volume to use, one of ROOT or MOUNT", @@ -99,13 +99,13 @@ } }, "ini": { - "description": "Base64 encoded grafana.ini", + "description": "Base64 encoded conf/grafana.ini", "type": "string", "media": { "binaryEncoding": "base64", "type": "application/x-yaml" }, - "default": "IyMjIyMjIyMjIyMjIyMjIyMjIyMjIEdyYWZhbmEgQ29uZmlndXJhdGlvbiBEZWZhdWx0cyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMgIyAjIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlIGluIGdyYWZhbmEgaW5zdGFsbHMgIyAjIHBvc3NpYmxlIHZhbHVlcyA6IHByb2R1Y3Rpb24sIGRldmVsb3BtZW50IGFwcF9tb2RlID0gcHJvZHVjdGlvbiAjIGluc3RhbmNlIG5hbWUsIGRlZmF1bHRzIHRvIEhPU1ROQU1FIGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlIG9yIGhvc3RuYW1lIGlmIEhPU1ROQU1FIHZhciBpcyBlbXB0eSBpbnN0YW5jZV9uYW1lID0gJHtIT1NUTkFNRX0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFBhdGhzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgW3BhdGhzXSAjIFBhdGggdG8gd2hlcmUgZ3JhZmFuYSBjYW4gc3RvcmUgdGVtcCBmaWxlcywgc2Vzc2lvbnMsIGFuZCB0aGUgc3FsaXRlMyBkYiAoaWYgdGhhdCBpcyB1c2VkKSBkYXRhID0gZGF0YSAjIFRlbXBvcmFyeSBmaWxlcyBpbiBgZGF0YWAgZGlyZWN0b3J5IG9sZGVyIHRoYW4gZ2l2ZW4gZHVyYXRpb24gd2lsbCBiZSByZW1vdmVkIHRlbXBfZGF0YV9saWZldGltZSA9IDI0aCAjIERpcmVjdG9yeSB3aGVyZSBncmFmYW5hIGNhbiBzdG9yZSBsb2dzIGxvZ3MgPSBkYXRhL2xvZyAjIERpcmVjdG9yeSB3aGVyZSBncmFmYW5hIHdpbGwgYXV0b21hdGljYWxseSBzY2FuIGFuZCBsb29rIGZvciBwbHVnaW5zIHBsdWdpbnMgPSBkYXRhL3BsdWdpbnMgIyBmb2xkZXIgdGhhdCBjb250YWlucyBwcm92aXNpb25pbmcgY29uZmlnIGZpbGVzIHRoYXQgZ3JhZmFuYSB3aWxsIGFwcGx5IG9uIHN0YXJ0dXAgYW5kIHdoaWxlIHJ1bm5pbmcuIHByb3Zpc2lvbmluZyA9IGNvbmYvcHJvdmlzaW9uaW5nICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTZXJ2ZXIgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFtzZXJ2ZXJdICMgUHJvdG9jb2wgKGh0dHAsIGh0dHBzLCBzb2NrZXQpIHByb3RvY29sID0gaHR0cCAjIFRoZSBpcCBhZGRyZXNzIHRvIGJpbmQgdG8sIGVtcHR5IHdpbGwgYmluZCB0byBhbGwgaW50ZXJmYWNlcyBodHRwX2FkZHIgPSAjIFRoZSBodHRwIHBvcnQgdG8gdXNlIGh0dHBfcG9ydCA9IDMwMDAgIyBUaGUgcHVibGljIGZhY2luZyBkb21haW4gbmFtZSB1c2VkIHRvIGFjY2VzcyBncmFmYW5hIGZyb20gYSBicm93c2VyIGRvbWFpbiA9IGxvY2FsaG9zdCAjIFJlZGlyZWN0IHRvIGNvcnJlY3QgZG9tYWluIGlmIGhvc3QgaGVhZGVyIGRvZXMgbm90IG1hdGNoIGRvbWFpbiAjIFByZXZlbnRzIEROUyByZWJpbmRpbmcgYXR0YWNrcyBlbmZvcmNlX2RvbWFpbiA9IGZhbHNlICMgVGhlIGZ1bGwgcHVibGljIGZhY2luZyB1cmwgcm9vdF91cmwgPSAlKHByb3RvY29sKXM6Ly8lKGRvbWFpbilzOiUoaHR0cF9wb3J0KXMvICMgTG9nIHdlYiByZXF1ZXN0cyByb3V0ZXJfbG9nZ2luZyA9IGZhbHNlICMgdGhlIHBhdGggcmVsYXRpdmUgd29ya2luZyBwYXRoIHN0YXRpY19yb290X3BhdGggPSBwdWJsaWMgIyBlbmFibGUgZ3ppcCBlbmFibGVfZ3ppcCA9IGZhbHNlICMgaHR0cHMgY2VydHMgJiBrZXkgZmlsZSBjZXJ0X2ZpbGUgPSBjZXJ0X2tleSA9ICMgVW5peCBzb2NrZXQgcGF0aCBzb2NrZXQgPSAvdG1wL2dyYWZhbmEuc29jayAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgRGF0YWJhc2UgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbZGF0YWJhc2VdICMgWW91IGNhbiBjb25maWd1cmUgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gYnkgc3BlY2lmeWluZyB0eXBlLCBob3N0LCBuYW1lLCB1c2VyIGFuZCBwYXNzd29yZCAjIGFzIHNlcGFyYXRlIHByb3BlcnRpZXMgb3IgYXMgb24gc3RyaW5nIHVzaW5nIHRoZSB1cmwgcHJvcGVydHkuICMgRWl0aGVyICJteXNxbCIsICJwb3N0Z3JlcyIgb3IgInNxbGl0ZTMiLCBpdCdzIHlvdXIgY2hvaWNlIHR5cGUgPSBzcWxpdGUzIGhvc3QgPSAxMjcuMC4wLjE6MzMwNiBuYW1lID0gZ3JhZmFuYSB1c2VyID0gcm9vdCAjIElmIHRoZSBwYXNzd29yZCBjb250YWlucyAjIG9yIDsgeW91IGhhdmUgdG8gd3JhcCBpdCB3aXRoIHRyaXBsZSBxdW90ZXMuIEV4ICIiIiNwYXNzd29yZDsiIiIgcGFzc3dvcmQgPSAjIFVzZSBlaXRoZXIgVVJMIG9yIHRoZSBwcmV2aW91cyBmaWVsZHMgdG8gY29uZmlndXJlIHRoZSBkYXRhYmFzZSAjIEV4YW1wbGU6IG15c3FsOi8vdXNlcjpzZWNyZXRAaG9zdDpwb3J0L2RhdGFiYXNlIHVybCA9ICMgTWF4IGlkbGUgY29ubiBzZXR0aW5nIGRlZmF1bHQgaXMgMiBtYXhfaWRsZV9jb25uID0gMiAjIE1heCBjb25uIHNldHRpbmcgZGVmYXVsdCBpcyAwIChtZWFuIG5vdCBzZXQpIG1heF9vcGVuX2Nvbm4gPSAjIENvbm5lY3Rpb24gTWF4IExpZmV0aW1lIGRlZmF1bHQgaXMgMTQ0MDAgKG1lYW5zIDE0NDAwIHNlY29uZHMgb3IgNCBob3VycykgY29ubl9tYXhfbGlmZXRpbWUgPSAxNDQwMCAjIFNldCB0byB0cnVlIHRvIGxvZyB0aGUgc3FsIGNhbGxzIGFuZCBleGVjdXRpb24gdGltZXMuIGxvZ19xdWVyaWVzID0gIyBGb3IgInBvc3RncmVzIiwgdXNlIGVpdGhlciAiZGlzYWJsZSIsICJyZXF1aXJlIiBvciAidmVyaWZ5LWZ1bGwiICMgRm9yICJteXNxbCIsIHVzZSBlaXRoZXIgInRydWUiLCAiZmFsc2UiLCBvciAic2tpcC12ZXJpZnkiLiBzc2xfbW9kZSA9IGRpc2FibGUgY2FfY2VydF9wYXRoID0gY2xpZW50X2tleV9wYXRoID0gY2xpZW50X2NlcnRfcGF0aCA9IHNlcnZlcl9jZXJ0X25hbWUgPSAjIEZvciAic3FsaXRlMyIgb25seSwgcGF0aCByZWxhdGl2ZSB0byBkYXRhX3BhdGggc2V0dGluZyBwYXRoID0gZ3JhZmFuYS5kYiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgU2Vzc2lvbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbc2Vzc2lvbl0gIyBFaXRoZXIgIm1lbW9yeSIsICJmaWxlIiwgInJlZGlzIiwgIm15c3FsIiwgInBvc3RncmVzIiwgIm1lbWNhY2hlIiwgZGVmYXVsdCBpcyAiZmlsZSIgcHJvdmlkZXIgPSBmaWxlICMgUHJvdmlkZXIgY29uZmlnIG9wdGlvbnMgIyBtZW1vcnk6IG5vdCBoYXZlIGFueSBjb25maWcgeWV0ICMgZmlsZTogc2Vzc2lvbiBkaXIgcGF0aCwgaXMgcmVsYXRpdmUgdG8gZ3JhZmFuYSBkYXRhX3BhdGggIyByZWRpczogY29uZmlnIGxpa2UgcmVkaXMgc2VydmVyIGUuZy4gYGFkZHI9MTI3LjAuMC4xOjYzNzkscG9vbF9zaXplPTEwMCxkYj1ncmFmYW5hYCAjIHBvc3RncmVzOiB1c2VyPWEgcGFzc3dvcmQ9YiBob3N0PWxvY2FsaG9zdCBwb3J0PTU0MzIgZGJuYW1lPWMgc3NsbW9kZT1kaXNhYmxlICMgbXlzcWw6IGdvLXNxbC1kcml2ZXIvbXlzcWwgZHNuIGNvbmZpZyBzdHJpbmcsIGV4YW1wbGVzOiAjIGB1c2VyOnBhc3N3b3JkQHRjcCgxMjcuMC4wLjE6MzMwNikvZGF0YWJhc2VfbmFtZWAgIyBgdXNlcjpwYXNzd29yZEB1bml4KC92YXIvcnVuL215c3FsZC9teXNxbGQuc29jaykvZGF0YWJhc2VfbmFtZWAgIyBtZW1jYWNoZTogMTI3LjAuMC4xOjExMjExIHByb3ZpZGVyX2NvbmZpZyA9IHNlc3Npb25zICMgU2Vzc2lvbiBjb29raWUgbmFtZSBjb29raWVfbmFtZSA9IGdyYWZhbmFfc2VzcyAjIElmIHlvdSB1c2Ugc2Vzc2lvbiBpbiBodHRwcyBvbmx5LCBkZWZhdWx0IGlzIGZhbHNlIGNvb2tpZV9zZWN1cmUgPSBmYWxzZSAjIFNlc3Npb24gbGlmZSB0aW1lLCBkZWZhdWx0IGlzIDg2NDAwIHNlc3Npb25fbGlmZV90aW1lID0gODY0MDAgZ2NfaW50ZXJ2YWxfdGltZSA9IDg2NDAwICMgQ29ubmVjdGlvbiBNYXggTGlmZXRpbWUgZGVmYXVsdCBpcyAxNDQwMCAobWVhbnMgMTQ0MDAgc2Vjb25kcyBvciA0IGhvdXJzKSBjb25uX21heF9saWZldGltZSA9IDE0NDAwICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBEYXRhIHByb3h5ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbZGF0YXByb3h5XSAjIFRoaXMgZW5hYmxlcyBkYXRhIHByb3h5IGxvZ2dpbmcsIGRlZmF1bHQgaXMgZmFsc2UgbG9nZ2luZyA9IGZhbHNlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBBbmFseXRpY3MgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFthbmFseXRpY3NdICMgU2VydmVyIHJlcG9ydGluZywgc2VuZHMgdXNhZ2UgY291bnRlcnMgdG8gc3RhdHMuZ3JhZmFuYS5vcmcgZXZlcnkgMjQgaG91cnMuICMgTm8gaXAgYWRkcmVzc2VzIGFyZSBiZWluZyB0cmFja2VkLCBvbmx5IHNpbXBsZSBjb3VudGVycyB0byB0cmFjayAjIHJ1bm5pbmcgaW5zdGFuY2VzLCBkYXNoYm9hcmQgYW5kIGVycm9yIGNvdW50cy4gSXQgaXMgdmVyeSBoZWxwZnVsIHRvIHVzLiAjIENoYW5nZSB0aGlzIG9wdGlvbiB0byBmYWxzZSB0byBkaXNhYmxlIHJlcG9ydGluZy4gcmVwb3J0aW5nX2VuYWJsZWQgPSB0cnVlICMgU2V0IHRvIGZhbHNlIHRvIGRpc2FibGUgYWxsIGNoZWNrcyB0byBodHRwczovL2dyYWZhbmEuY29tICMgZm9yIG5ldyB2ZXJzaW9ucyAoZ3JhZmFuYSBpdHNlbGYgYW5kIHBsdWdpbnMpLCBjaGVjayBpcyB1c2VkICMgaW4gc29tZSBVSSB2aWV3cyB0byBub3RpZnkgdGhhdCBncmFmYW5hIG9yIHBsdWdpbiB1cGRhdGUgZXhpc3RzICMgVGhpcyBvcHRpb24gZG9lcyBub3QgY2F1c2UgYW55IGF1dG8gdXBkYXRlcywgbm9yIHNlbmQgYW55IGluZm9ybWF0aW9uICMgb25seSBhIEdFVCByZXF1ZXN0IHRvIGh0dHBzOi8vZ3JhZmFuYS5jb20gdG8gZ2V0IGxhdGVzdCB2ZXJzaW9ucyBjaGVja19mb3JfdXBkYXRlcyA9IHRydWUgIyBHb29nbGUgQW5hbHl0aWNzIHVuaXZlcnNhbCB0cmFja2luZyBjb2RlLCBvbmx5IGVuYWJsZWQgaWYgeW91IHNwZWNpZnkgYW4gaWQgaGVyZSBnb29nbGVfYW5hbHl0aWNzX3VhX2lkID0gIyBHb29nbGUgVGFnIE1hbmFnZXIgSUQsIG9ubHkgZW5hYmxlZCBpZiB5b3Ugc3BlY2lmeSBhbiBpZCBoZXJlIGdvb2dsZV90YWdfbWFuYWdlcl9pZCA9ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTZWN1cml0eSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFtzZWN1cml0eV0gIyBkZWZhdWx0IGFkbWluIHVzZXIsIGNyZWF0ZWQgb24gc3RhcnR1cCBhZG1pbl91c2VyID0gYWRtaW4gIyBkZWZhdWx0IGFkbWluIHBhc3N3b3JkLCBjYW4gYmUgY2hhbmdlZCBiZWZvcmUgZmlyc3Qgc3RhcnQgb2YgZ3JhZmFuYSwgb3IgaW4gcHJvZmlsZSBzZXR0aW5ncyBhZG1pbl9wYXNzd29yZCA9IGFkbWluICMgdXNlZCBmb3Igc2lnbmluZyBzZWNyZXRfa2V5ID0gU1cyWWN3VEliOXpwT09ob1BzTW0gIyBBdXRvLWxvZ2luIHJlbWVtYmVyIGRheXMgbG9naW5fcmVtZW1iZXJfZGF5cyA9IDcgY29va2llX3VzZXJuYW1lID0gZ3JhZmFuYV91c2VyIGNvb2tpZV9yZW1lbWJlcl9uYW1lID0gZ3JhZmFuYV9yZW1lbWJlciAjIGRpc2FibGUgZ3JhdmF0YXIgcHJvZmlsZSBpbWFnZXMgZGlzYWJsZV9ncmF2YXRhciA9IGZhbHNlICMgZGF0YSBzb3VyY2UgcHJveHkgd2hpdGVsaXN0IChpcF9vcl9kb21haW46cG9ydCBzZXBhcmF0ZWQgYnkgc3BhY2VzKSBkYXRhX3NvdXJjZV9wcm94eV93aGl0ZWxpc3QgPSAjIGRpc2FibGUgcHJvdGVjdGlvbiBhZ2FpbnN0IGJydXRlIGZvcmNlIGxvZ2luIGF0dGVtcHRzIGRpc2FibGVfYnJ1dGVfZm9yY2VfbG9naW5fcHJvdGVjdGlvbiA9IGZhbHNlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTbmFwc2hvdHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFtzbmFwc2hvdHNdICMgc25hcHNob3Qgc2hhcmluZyBvcHRpb25zIGV4dGVybmFsX2VuYWJsZWQgPSB0cnVlIGV4dGVybmFsX3NuYXBzaG90X3VybCA9IGh0dHBzOi8vc25hcHNob3RzLW9yaWdpbi5yYWludGFuay5pbyBleHRlcm5hbF9zbmFwc2hvdF9uYW1lID0gUHVibGlzaCB0byBzbmFwc2hvdC5yYWludGFuay5pbyAjIHJlbW92ZSBleHBpcmVkIHNuYXBzaG90IHNuYXBzaG90X3JlbW92ZV9leHBpcmVkID0gdHJ1ZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgRGFzaGJvYXJkcyAjIyMjIyMjIyMjIyMjIyMjIyMgW2Rhc2hib2FyZHNdICMgTnVtYmVyIGRhc2hib2FyZCB2ZXJzaW9ucyB0byBrZWVwIChwZXIgZGFzaGJvYXJkKS4gRGVmYXVsdDogMjAsIE1pbmltdW06IDEgdmVyc2lvbnNfdG9fa2VlcCA9IDIwICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBVc2VycyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFt1c2Vyc10gIyBkaXNhYmxlIHVzZXIgc2lnbnVwIC8gcmVnaXN0cmF0aW9uIGFsbG93X3NpZ25fdXAgPSBmYWxzZSAjIEFsbG93IG5vbiBhZG1pbiB1c2VycyB0byBjcmVhdGUgb3JnYW5pemF0aW9ucyBhbGxvd19vcmdfY3JlYXRlID0gZmFsc2UgIyBTZXQgdG8gdHJ1ZSB0byBhdXRvbWF0aWNhbGx5IGFzc2lnbiBuZXcgdXNlcnMgdG8gdGhlIGRlZmF1bHQgb3JnYW5pemF0aW9uIChpZCAxKSBhdXRvX2Fzc2lnbl9vcmcgPSB0cnVlICMgU2V0IHRoaXMgdmFsdWUgdG8gYXV0b21hdGljYWxseSBhZGQgbmV3IHVzZXJzIHRvIHRoZSBwcm92aWRlZCBvcmdhbml6YXRpb24gKGlmIGF1dG9fYXNzaWduX29yZyBhYm92ZSBpcyBzZXQgdG8gdHJ1ZSkgYXV0b19hc3NpZ25fb3JnX2lkID0gMSAjIERlZmF1bHQgcm9sZSBuZXcgdXNlcnMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIChpZiBhdXRvX2Fzc2lnbl9vcmcgYWJvdmUgaXMgc2V0IHRvIHRydWUpIGF1dG9fYXNzaWduX29yZ19yb2xlID0gVmlld2VyICMgUmVxdWlyZSBlbWFpbCB2YWxpZGF0aW9uIGJlZm9yZSBzaWduIHVwIGNvbXBsZXRlcyB2ZXJpZnlfZW1haWxfZW5hYmxlZCA9IGZhbHNlICMgQmFja2dyb3VuZCB0ZXh0IGZvciB0aGUgdXNlciBmaWVsZCBvbiB0aGUgbG9naW4gcGFnZSBsb2dpbl9oaW50ID0gZW1haWwgb3IgdXNlcm5hbWUgIyBEZWZhdWx0IFVJIHRoZW1lICgiZGFyayIgb3IgImxpZ2h0IikgZGVmYXVsdF90aGVtZSA9IGRhcmsgIyBFeHRlcm5hbCB1c2VyIG1hbmFnZW1lbnQgZXh0ZXJuYWxfbWFuYWdlX2xpbmtfdXJsID0gZXh0ZXJuYWxfbWFuYWdlX2xpbmtfbmFtZSA9IGV4dGVybmFsX21hbmFnZV9pbmZvID0gIyBWaWV3ZXJzIGNhbiBlZGl0L2luc3BlY3QgZGFzaGJvYXJkIHNldHRpbmdzIGluIHRoZSBicm93c2VyLiBCdXQgbm90IHNhdmUgdGhlIGRhc2hib2FyZC4gdmlld2Vyc19jYW5fZWRpdCA9IGZhbHNlIFthdXRoXSAjIFNldCB0byB0cnVlIHRvIGRpc2FibGUgKGhpZGUpIHRoZSBsb2dpbiBmb3JtLCB1c2VmdWwgaWYgeW91IHVzZSBPQXV0aCBkaXNhYmxlX2xvZ2luX2Zvcm0gPSBmYWxzZSAjIFNldCB0byB0cnVlIHRvIGRpc2FibGUgdGhlIHNpZ25vdXQgbGluayBpbiB0aGUgc2lkZSBtZW51LiB1c2VmdWwgaWYgeW91IHVzZSBhdXRoLnByb3h5IGRpc2FibGVfc2lnbm91dF9tZW51ID0gZmFsc2UgIyBVUkwgdG8gcmVkaXJlY3QgdGhlIHVzZXIgdG8gYWZ0ZXIgc2lnbiBvdXQgc2lnbm91dF9yZWRpcmVjdF91cmwgPSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQW5vbnltb3VzIEF1dGggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYXV0aC5hbm9ueW1vdXNdICMgZW5hYmxlIGFub255bW91cyBhY2Nlc3MgZW5hYmxlZCA9IGZhbHNlICMgc3BlY2lmeSBvcmdhbml6YXRpb24gbmFtZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB1bmF1dGhlbnRpY2F0ZWQgdXNlcnMgb3JnX25hbWUgPSBNYWluIE9yZy4gIyBzcGVjaWZ5IHJvbGUgZm9yIHVuYXV0aGVudGljYXRlZCB1c2VycyBvcmdfcm9sZSA9IFZpZXdlciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgR2l0aHViIEF1dGggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYXV0aC5naXRodWJdIGVuYWJsZWQgPSBmYWxzZSBhbGxvd19zaWduX3VwID0gdHJ1ZSBjbGllbnRfaWQgPSBzb21lX2lkIGNsaWVudF9zZWNyZXQgPSBzb21lX3NlY3JldCBzY29wZXMgPSB1c2VyOmVtYWlsLHJlYWQ6b3JnIGF1dGhfdXJsID0gaHR0cHM6Ly9naXRodWIuY29tL2xvZ2luL29hdXRoL2F1dGhvcml6ZSB0b2tlbl91cmwgPSBodHRwczovL2dpdGh1Yi5jb20vbG9naW4vb2F1dGgvYWNjZXNzX3Rva2VuIGFwaV91cmwgPSBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXIgdGVhbV9pZHMgPSBhbGxvd2VkX29yZ2FuaXphdGlvbnMgPSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgR2l0TGFiIEF1dGggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYXV0aC5naXRsYWJdIGVuYWJsZWQgPSBmYWxzZSBhbGxvd19zaWduX3VwID0gdHJ1ZSBjbGllbnRfaWQgPSBzb21lX2lkIGNsaWVudF9zZWNyZXQgPSBzb21lX3NlY3JldCBzY29wZXMgPSBhcGkgYXV0aF91cmwgPSBodHRwczovL2dpdGxhYi5jb20vb2F1dGgvYXV0aG9yaXplIHRva2VuX3VybCA9IGh0dHBzOi8vZ2l0bGFiLmNvbS9vYXV0aC90b2tlbiBhcGlfdXJsID0gaHR0cHM6Ly9naXRsYWIuY29tL2FwaS92NCBhbGxvd2VkX2dyb3VwcyA9ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBHb29nbGUgQXV0aCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFthdXRoLmdvb2dsZV0gZW5hYmxlZCA9IGZhbHNlIGFsbG93X3NpZ25fdXAgPSB0cnVlIGNsaWVudF9pZCA9IHNvbWVfY2xpZW50X2lkIGNsaWVudF9zZWNyZXQgPSBzb21lX2NsaWVudF9zZWNyZXQgc2NvcGVzID0gaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC91c2VyaW5mby5wcm9maWxlIGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvdXNlcmluZm8uZW1haWwgYXV0aF91cmwgPSBodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvYXV0aCB0b2tlbl91cmwgPSBodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvdG9rZW4gYXBpX3VybCA9IGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92MS91c2VyaW5mbyBhbGxvd2VkX2RvbWFpbnMgPSBob3N0ZWRfZG9tYWluID0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIEdyYWZhbmEuY29tIEF1dGggIyMjIyMjIyMjIyMjIyMjIyMjIyMgIyBsZWdhY3kga2V5IG5hbWVzIChzbyB0aGV5IHdvcmsgaW4gZW52IHZhcmlhYmxlcykgW2F1dGguZ3JhZmFuYW5ldF0gZW5hYmxlZCA9IGZhbHNlIGFsbG93X3NpZ25fdXAgPSB0cnVlIGNsaWVudF9pZCA9IHNvbWVfaWQgY2xpZW50X3NlY3JldCA9IHNvbWVfc2VjcmV0IHNjb3BlcyA9IHVzZXI6ZW1haWwgYWxsb3dlZF9vcmdhbml6YXRpb25zID0gW2F1dGguZ3JhZmFuYV9jb21dIGVuYWJsZWQgPSBmYWxzZSBhbGxvd19zaWduX3VwID0gdHJ1ZSBjbGllbnRfaWQgPSBzb21lX2lkIGNsaWVudF9zZWNyZXQgPSBzb21lX3NlY3JldCBzY29wZXMgPSB1c2VyOmVtYWlsIGFsbG93ZWRfb3JnYW5pemF0aW9ucyA9ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBHZW5lcmljIE9BdXRoICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFthdXRoLmdlbmVyaWNfb2F1dGhdIG5hbWUgPSBPQXV0aCBlbmFibGVkID0gZmFsc2UgYWxsb3dfc2lnbl91cCA9IHRydWUgY2xpZW50X2lkID0gc29tZV9pZCBjbGllbnRfc2VjcmV0ID0gc29tZV9zZWNyZXQgc2NvcGVzID0gdXNlcjplbWFpbCBlbWFpbF9hdHRyaWJ1dGVfbmFtZSA9IGVtYWlsOnByaW1hcnkgYXV0aF91cmwgPSB0b2tlbl91cmwgPSBhcGlfdXJsID0gdGVhbV9pZHMgPSBhbGxvd2VkX29yZ2FuaXphdGlvbnMgPSB0bHNfc2tpcF92ZXJpZnlfaW5zZWN1cmUgPSBmYWxzZSB0bHNfY2xpZW50X2NlcnQgPSB0bHNfY2xpZW50X2tleSA9IHRsc19jbGllbnRfY2EgPSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQmFzaWMgQXV0aCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYXV0aC5iYXNpY10gZW5hYmxlZCA9IHRydWUgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIEF1dGggUHJveHkgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgW2F1dGgucHJveHldIGVuYWJsZWQgPSBmYWxzZSBoZWFkZXJfbmFtZSA9IFgtV0VCQVVUSC1VU0VSIGhlYWRlcl9wcm9wZXJ0eSA9IHVzZXJuYW1lIGF1dG9fc2lnbl91cCA9IHRydWUgbGRhcF9zeW5jX3R0bCA9IDYwIHdoaXRlbGlzdCA9IGhlYWRlcnMgPSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQXV0aCBMREFQICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYXV0aC5sZGFwXSBlbmFibGVkID0gZmFsc2UgY29uZmlnX2ZpbGUgPSAvZXRjL2dyYWZhbmEvbGRhcC50b21sIGFsbG93X3NpZ25fdXAgPSB0cnVlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTTVRQIC8gRW1haWxpbmcgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFtzbXRwXSBlbmFibGVkID0gZmFsc2UgaG9zdCA9IGxvY2FsaG9zdDoyNSB1c2VyID0gIyBJZiB0aGUgcGFzc3dvcmQgY29udGFpbnMgIyBvciA7IHlvdSBoYXZlIHRvIHdyYXAgaXQgd2l0aCB0cmlwbGUgcXVvdGVzLiBFeCAiIiIjcGFzc3dvcmQ7IiIiIHBhc3N3b3JkID0gY2VydF9maWxlID0ga2V5X2ZpbGUgPSBza2lwX3ZlcmlmeSA9IGZhbHNlIGZyb21fYWRkcmVzcyA9IGFkbWluQGdyYWZhbmEubG9jYWxob3N0IGZyb21fbmFtZSA9IEdyYWZhbmEgZWhsb19pZGVudGl0eSA9IFtlbWFpbHNdIHdlbGNvbWVfZW1haWxfb25fc2lnbl91cCA9IGZhbHNlIHRlbXBsYXRlc19wYXR0ZXJuID0gZW1haWxzLyouaHRtbCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgTG9nZ2luZyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbbG9nXSAjIEVpdGhlciAiY29uc29sZSIsICJmaWxlIiwgInN5c2xvZyIuIERlZmF1bHQgaXMgY29uc29sZSBhbmQgZmlsZSAjIFVzZSBzcGFjZSB0byBzZXBhcmF0ZSBtdWx0aXBsZSBtb2RlcywgZS5nLiAiY29uc29sZSBmaWxlIiBtb2RlID0gY29uc29sZSBmaWxlICMgRWl0aGVyICJkZWJ1ZyIsICJpbmZvIiwgIndhcm4iLCAiZXJyb3IiLCAiY3JpdGljYWwiLCBkZWZhdWx0IGlzICJpbmZvIiBsZXZlbCA9IGluZm8gIyBvcHRpb25hbCBzZXR0aW5ncyB0byBzZXQgZGlmZmVyZW50IGxldmVscyBmb3Igc3BlY2lmaWMgbG9nZ2Vycy4gRXggZmlsdGVycyA9IHNxbHN0b3JlOmRlYnVnIGZpbHRlcnMgPSAjIEZvciAiY29uc29sZSIgbW9kZSBvbmx5IFtsb2cuY29uc29sZV0gbGV2ZWwgPSAjIGxvZyBsaW5lIGZvcm1hdCwgdmFsaWQgb3B0aW9ucyBhcmUgdGV4dCwgY29uc29sZSBhbmQganNvbiBmb3JtYXQgPSBjb25zb2xlICMgRm9yICJmaWxlIiBtb2RlIG9ubHkgW2xvZy5maWxlXSBsZXZlbCA9ICMgbG9nIGxpbmUgZm9ybWF0LCB2YWxpZCBvcHRpb25zIGFyZSB0ZXh0LCBjb25zb2xlIGFuZCBqc29uIGZvcm1hdCA9IHRleHQgIyBUaGlzIGVuYWJsZXMgYXV0b21hdGVkIGxvZyByb3RhdGUoc3dpdGNoIG9mIGZvbGxvd2luZyBvcHRpb25zKSwgZGVmYXVsdCBpcyB0cnVlIGxvZ19yb3RhdGUgPSB0cnVlICMgTWF4IGxpbmUgbnVtYmVyIG9mIHNpbmdsZSBmaWxlLCBkZWZhdWx0IGlzIDEwMDAwMDAgbWF4X2xpbmVzID0gMTAwMDAwMCAjIE1heCBzaXplIHNoaWZ0IG9mIHNpbmdsZSBmaWxlLCBkZWZhdWx0IGlzIDI4IG1lYW5zIDEgPDwgMjgsIDI1Nk1CIG1heF9zaXplX3NoaWZ0ID0gMjggIyBTZWdtZW50IGxvZyBkYWlseSwgZGVmYXVsdCBpcyB0cnVlIGRhaWx5X3JvdGF0ZSA9IHRydWUgIyBFeHBpcmVkIGRheXMgb2YgbG9nIGZpbGUoZGVsZXRlIGFmdGVyIG1heCBkYXlzKSwgZGVmYXVsdCBpcyA3IG1heF9kYXlzID0gNyBbbG9nLnN5c2xvZ10gbGV2ZWwgPSAjIGxvZyBsaW5lIGZvcm1hdCwgdmFsaWQgb3B0aW9ucyBhcmUgdGV4dCwgY29uc29sZSBhbmQganNvbiBmb3JtYXQgPSB0ZXh0ICMgU3lzbG9nIG5ldHdvcmsgdHlwZSBhbmQgYWRkcmVzcy4gVGhpcyBjYW4gYmUgdWRwLCB0Y3AsIG9yIHVuaXguIElmIGxlZnQgYmxhbmssIHRoZSBkZWZhdWx0IHVuaXggZW5kcG9pbnRzIHdpbGwgYmUgdXNlZC4gbmV0d29yayA9IGFkZHJlc3MgPSAjIFN5c2xvZyBmYWNpbGl0eS4gdXNlciwgZGFlbW9uIGFuZCBsb2NhbDAgdGhyb3VnaCBsb2NhbDcgYXJlIHZhbGlkLiBmYWNpbGl0eSA9ICMgU3lzbG9nIHRhZy4gQnkgZGVmYXVsdCwgdGhlIHByb2Nlc3MnIGFyZ3ZbMF0gaXMgdXNlZC4gdGFnID0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFVzYWdlIFF1b3RhcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgW3F1b3RhXSBlbmFibGVkID0gZmFsc2UgIyMjIyBzZXQgcXVvdGFzIHRvIC0xIHRvIG1ha2UgdW5saW1pdGVkLiAjIyMjICMgbGltaXQgbnVtYmVyIG9mIHVzZXJzIHBlciBPcmcuIG9yZ191c2VyID0gMTAgIyBsaW1pdCBudW1iZXIgb2YgZGFzaGJvYXJkcyBwZXIgT3JnLiBvcmdfZGFzaGJvYXJkID0gMTAwICMgbGltaXQgbnVtYmVyIG9mIGRhdGFfc291cmNlcyBwZXIgT3JnLiBvcmdfZGF0YV9zb3VyY2UgPSAxMCAjIGxpbWl0IG51bWJlciBvZiBhcGlfa2V5cyBwZXIgT3JnLiBvcmdfYXBpX2tleSA9IDEwICMgbGltaXQgbnVtYmVyIG9mIG9yZ3MgYSB1c2VyIGNhbiBjcmVhdGUuIHVzZXJfb3JnID0gMTAgIyBHbG9iYWwgbGltaXQgb2YgdXNlcnMuIGdsb2JhbF91c2VyID0gLTEgIyBnbG9iYWwgbGltaXQgb2Ygb3Jncy4gZ2xvYmFsX29yZyA9IC0xICMgZ2xvYmFsIGxpbWl0IG9mIGRhc2hib2FyZHMgZ2xvYmFsX2Rhc2hib2FyZCA9IC0xICMgZ2xvYmFsIGxpbWl0IG9mIGFwaV9rZXlzIGdsb2JhbF9hcGlfa2V5ID0gLTEgIyBnbG9iYWwgbGltaXQgb24gbnVtYmVyIG9mIGxvZ2dlZCBpbiB1c2Vycy4gZ2xvYmFsX3Nlc3Npb24gPSAtMSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQWxlcnRpbmcgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBbYWxlcnRpbmddICMgRGlzYWJsZSBhbGVydGluZyBlbmdpbmUgJiBVSSBmZWF0dXJlcyBlbmFibGVkID0gdHJ1ZSAjIE1ha2VzIGl0IHBvc3NpYmxlIHRvIHR1cm4gb2ZmIGFsZXJ0IHJ1bGUgZXhlY3V0aW9uIGJ1dCBhbGVydGluZyBVSSBpcyB2aXNpYmxlIGV4ZWN1dGVfYWxlcnRzID0gdHJ1ZSAjIERlZmF1bHQgc2V0dGluZyBmb3IgbmV3IGFsZXJ0IHJ1bGVzLiBEZWZhdWx0cyB0byBjYXRlZ29yaXplIGVycm9yIGFuZCB0aW1lb3V0cyBhcyBhbGVydGluZy4gKGFsZXJ0aW5nLCBrZWVwX3N0YXRlKSBlcnJvcl9vcl90aW1lb3V0ID0gYWxlcnRpbmcgIyBEZWZhdWx0IHNldHRpbmcgZm9yIGhvdyBHcmFmYW5hIGhhbmRsZXMgbm9kYXRhIG9yIG51bGwgdmFsdWVzIGluIGFsZXJ0aW5nLiAoYWxlcnRpbmcsIG5vX2RhdGEsIGtlZXBfc3RhdGUsIG9rKSBub2RhdGFfb3JfbnVsbHZhbHVlcyA9IG5vX2RhdGEgIyBBbGVydCBub3RpZmljYXRpb25zIGNhbiBpbmNsdWRlIGltYWdlcywgYnV0IHJlbmRlcmluZyBtYW55IGltYWdlcyBhdCB0aGUgc2FtZSB0aW1lIGNhbiBvdmVybG9hZCB0aGUgc2VydmVyICMgVGhpcyBsaW1pdCB3aWxsIHByb3RlY3QgdGhlIHNlcnZlciBmcm9tIHJlbmRlciBvdmVybG9hZGluZyBhbmQgbWFrZSBzdXJlIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgb3V0IHF1aWNrbHkgY29uY3VycmVudF9yZW5kZXJfbGltaXQgPSA1ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBFeHBsb3JlICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFtleHBsb3JlXSAjIEVuYWJsZSB0aGUgRXhwbG9yZSBzZWN0aW9uIGVuYWJsZWQgPSBmYWxzZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgSW50ZXJuYWwgR3JhZmFuYSBNZXRyaWNzICMjIyMjIyMjIyMjIyAjIE1ldHJpY3MgYXZhaWxhYmxlIGF0IEhUVFAgQVBJIFVybCAvbWV0cmljcyBbbWV0cmljc10gZW5hYmxlZCA9IHRydWUgaW50ZXJ2YWxfc2Vjb25kcyA9IDEwICMgU2VuZCBpbnRlcm5hbCBHcmFmYW5hIG1ldHJpY3MgdG8gZ3JhcGhpdGUgW21ldHJpY3MuZ3JhcGhpdGVdICMgRW5hYmxlIGJ5IHNldHRpbmcgdGhlIGFkZHJlc3Mgc2V0dGluZyAoZXggbG9jYWxob3N0OjIwMDMpIGFkZHJlc3MgPSBwcmVmaXggPSBwcm9kLmdyYWZhbmEuJShpbnN0YW5jZV9uYW1lKXMuIFtncmFmYW5hX25ldF0gdXJsID0gaHR0cHM6Ly9ncmFmYW5hLmNvbSBbZ3JhZmFuYV9jb21dIHVybCA9IGh0dHBzOi8vZ3JhZmFuYS5jb20gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIERpc3RyaWJ1dGVkIHRyYWNpbmcgIyMjIyMjIyMjIyMjIFt0cmFjaW5nLmphZWdlcl0gIyBqYWVnZXIgZGVzdGluYXRpb24gKGV4IGxvY2FsaG9zdDo2ODMxKSBhZGRyZXNzID0gIyB0YWcgdGhhdCB3aWxsIGFsd2F5cyBiZSBpbmNsdWRlZCBpbiB3aGVuIGNyZWF0aW5nIG5ldyBzcGFucy4gZXggKHRhZzE6dmFsdWUxLHRhZzI6dmFsdWUyKSBhbHdheXNfaW5jbHVkZWRfdGFnID0gIyBUeXBlIHNwZWNpZmllcyB0aGUgdHlwZSBvZiB0aGUgc2FtcGxlcjogY29uc3QsIHByb2JhYmlsaXN0aWMsIHJhdGVMaW1pdGluZywgb3IgcmVtb3RlIHNhbXBsZXJfdHlwZSA9IGNvbnN0ICMgamFlZ2VyIHNhbXBsZXJjb25maWcgcGFyYW0gIyBmb3IgImNvbnN0IiBzYW1wbGVyLCAwIG9yIDEgZm9yIGFsd2F5cyBmYWxzZS90cnVlIHJlc3BlY3RpdmVseSAjIGZvciAicHJvYmFiaWxpc3RpYyIgc2FtcGxlciwgYSBwcm9iYWJpbGl0eSBiZXR3ZWVuIDAgYW5kIDEgIyBmb3IgInJhdGVMaW1pdGluZyIgc2FtcGxlciwgdGhlIG51bWJlciBvZiBzcGFucyBwZXIgc2Vjb25kICMgZm9yICJyZW1vdGUiIHNhbXBsZXIsIHBhcmFtIGlzIHRoZSBzYW1lIGFzIGZvciAicHJvYmFiaWxpc3RpYyIgIyBhbmQgaW5kaWNhdGVzIHRoZSBpbml0aWFsIHNhbXBsaW5nIHJhdGUgYmVmb3JlIHRoZSBhY3R1YWwgb25lICMgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgbW90aGVyc2hpcCBzYW1wbGVyX3BhcmFtID0gMSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgRXh0ZXJuYWwgSW1hZ2UgU3RvcmFnZSAjIyMjIyMjIyMjIyMjIyBbZXh0ZXJuYWxfaW1hZ2Vfc3RvcmFnZV0gIyBZb3UgY2FuIGNob29zZSBiZXR3ZWVuIChzMywgd2ViZGF2LCBnY3MsIGF6dXJlX2Jsb2IsIGxvY2FsKSBwcm92aWRlciA9IFtleHRlcm5hbF9pbWFnZV9zdG9yYWdlLnMzXSBidWNrZXRfdXJsID0gYnVja2V0ID0gcmVnaW9uID0gcGF0aCA9IGFjY2Vzc19rZXkgPSBzZWNyZXRfa2V5ID0gW2V4dGVybmFsX2ltYWdlX3N0b3JhZ2Uud2ViZGF2XSB1cmwgPSB1c2VybmFtZSA9IHBhc3N3b3JkID0gcHVibGljX3VybCA9IFtleHRlcm5hbF9pbWFnZV9zdG9yYWdlLmdjc10ga2V5X2ZpbGUgPSBidWNrZXQgPSBwYXRoID0gW2V4dGVybmFsX2ltYWdlX3N0b3JhZ2UuYXp1cmVfYmxvYl0gYWNjb3VudF9uYW1lID0gYWNjb3VudF9rZXkgPSBjb250YWluZXJfbmFtZSA9IFtleHRlcm5hbF9pbWFnZV9zdG9yYWdlLmxvY2FsXSAjIGRvZXMgbm90IHJlcXVpcmUgYW55IGNvbmZpZ3VyYXRpb24gW3JlbmRlcmluZ10gIyBPcHRpb25zIHRvIGNvbmZpZ3VyZSBleHRlcm5hbCBpbWFnZSByZW5kZXJpbmcgc2VydmVyIGxpa2UgaHR0cHM6Ly9naXRodWIuY29tL2dyYWZhbmEvZ3JhZmFuYS1pbWFnZS1yZW5kZXJlciBzZXJ2ZXJfdXJsID0gY2FsbGJhY2tfdXJsID0K" + "default": "YXBwX21vZGUgPSBwcm9kdWN0aW9uCmluc3RhbmNlX25hbWUgPSAke0hPU1ROQU1FfQpbcGF0aHNdCmRhdGEgPSAvZ3JhZmFuYS1kYXRhCjt0ZW1wX2RhdGFfbGlmZXRpbWUgPSAyNGgKbG9ncyA9IC9ncmFmYW5hLWRhdGEKcGx1Z2lucyA9IC9ncmFmYW5hLWRhdGEvcGx1Z2lucwpwcm92aXNpb25pbmcgPSBjb25mL3Byb3Zpc2lvbmluZwoK" }, "provisioning": { "description": "Provisioning properties to be used", @@ -118,7 +118,7 @@ "binaryEncoding": "base64", "type": "application/x-yaml" }, - "default": "" + "default": "YXBpVmVyc2lvbjogMQoKI2RlbGV0ZURhdGFzb3VyY2VzOgojICAtIG5hbWU6IFByb21ldGhldXMKIyAgICBvcmdJZDogMQoKI2RhdGFzb3VyY2VzOgojICAtIG5hbWU6IFByb21ldGhldXMKIyAgICB0eXBlOiBwcm9tZXRoZXVzCiMgICAgYWNjZXNzOiBwcm94eQojICAgIG9yZ0lkOiAxCiMgICAgdXJsOiBodHRwOi8vcHJvbWV0aGV1cy5wcm9tZXRoZXVzLmw0bGIudGhpc2Rjb3MuZGlyZWN0b3J5OjkwOTAKIyAgICBpc0RlZmF1bHQ6IHRydWUKIyAgICBqc29uRGF0YTogeyAidGltZUludGVydmFsIjogIjMwcyIgfQo" }, "dashboards": { "description": "Base64 encoded conf/provisioning/dashboards/dashboards.yml config", @@ -127,7 +127,7 @@ "binaryEncoding": "base64", "type": "application/x-yaml" }, - "default": "" + "default": "YXBpVmVyc2lvbjogMQoK" } } } diff --git a/repo/packages/G/grafana/7/resource.json b/repo/packages/G/grafana/7/resource.json index 480f5adb0..25f4b79c5 100644 --- a/repo/packages/G/grafana/7/resource.json +++ b/repo/packages/G/grafana/7/resource.json @@ -6,7 +6,7 @@ "bootstrap-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/bootstrap.zip", "executor-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/executor.zip", "scheduler-zip": "https://s3-us-west-1.amazonaws.com/mbgl-bucket/sdk/0.42.1/operator-scheduler.zip", - "svc": "https://s3-us-west-2.amazonaws.com/dcos-objects/grafana/svc.yml", + "svc": "https://s3-us-west-2.amazonaws.com/dcos-objects/grafana/7/svc.yml", "grafana-tar-gz": "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.4.linux-amd64.tar.gz" } }, From 7a0540c809b56a24217dcbd08a04a15d16dc3aa7 Mon Sep 17 00:00:00 2001 From: cbaker Date: Mon, 3 Dec 2018 20:25:01 +0000 Subject: [PATCH 03/13] add PATH type to volume options --- repo/packages/G/grafana/7/config.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/repo/packages/G/grafana/7/config.json b/repo/packages/G/grafana/7/config.json index f3dc6eb62..178950004 100644 --- a/repo/packages/G/grafana/7/config.json +++ b/repo/packages/G/grafana/7/config.json @@ -87,7 +87,8 @@ "default": "ROOT", "enum": [ "ROOT", - "MOUNT" + "MOUNT", + "PATH" ] }, "size": { From 0a41e8905bcd8671e89ae8cdb56db9babb3ea29a Mon Sep 17 00:00:00 2001 From: cbaker Date: Tue, 4 Dec 2018 17:56:11 +0000 Subject: [PATCH 04/13] Make root default user so volume can be created --- repo/packages/G/grafana/7/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo/packages/G/grafana/7/config.json b/repo/packages/G/grafana/7/config.json index 178950004..bfb5c7abf 100644 --- a/repo/packages/G/grafana/7/config.json +++ b/repo/packages/G/grafana/7/config.json @@ -14,7 +14,7 @@ "user": { "description": "The user that the service will run as.", "type": "string", - "default": "nobody", + "default": "root", "title": "User" }, "service_account": { From b120ecc47d1983ef11e2ff0040729376b7076632 Mon Sep 17 00:00:00 2001 From: cbaker Date: Tue, 4 Dec 2018 20:24:21 +0000 Subject: [PATCH 05/13] Fix minDcosReleaseVersion, remove unnecessary env var. --- repo/packages/G/grafana/7/marathon.json.mustache | 1 - repo/packages/G/grafana/7/package.json | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/repo/packages/G/grafana/7/marathon.json.mustache b/repo/packages/G/grafana/7/marathon.json.mustache index ef8d86568..ced43d4ad 100644 --- a/repo/packages/G/grafana/7/marathon.json.mustache +++ b/repo/packages/G/grafana/7/marathon.json.mustache @@ -33,7 +33,6 @@ "FRAMEWORK_LOG_LEVEL": "{{service.log_level}}", "MESOS_API_VERSION": "{{service.mesos_api_version}}", - "GRAFANA_DIR": "{{grafana.dir}}", "GRAFANA_CPUS": "{{grafana.cpus}}", "GRAFANA_MEM": "{{grafana.mem}}", "GRAFANA_VOLUME": "{{grafana.volume.path}}", diff --git a/repo/packages/G/grafana/7/package.json b/repo/packages/G/grafana/7/package.json index 87689f15f..c3d8dfa8e 100644 --- a/repo/packages/G/grafana/7/package.json +++ b/repo/packages/G/grafana/7/package.json @@ -6,7 +6,7 @@ "downgradesTo": [ "*" ], - "minDcosReleaseVersion": "1.10", + "minDcosReleaseVersion": "1.11", "name": "grafana", "version": "5.5.0-5.3.4", "maintainer": "https://dcos.io/community", From ebc428115e2d9f98f9e8e5ece7f671561d85efd3 Mon Sep 17 00:00:00 2001 From: cbaker Date: Tue, 4 Dec 2018 23:15:10 +0000 Subject: [PATCH 06/13] Fix broken screenshot url. --- repo/packages/G/grafana/7/resource.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repo/packages/G/grafana/7/resource.json b/repo/packages/G/grafana/7/resource.json index 25f4b79c5..d960b22ab 100644 --- a/repo/packages/G/grafana/7/resource.json +++ b/repo/packages/G/grafana/7/resource.json @@ -15,7 +15,7 @@ "icon-medium": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-medium.png", "icon-large": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-large.png", "screenshots": [ - "https://prometheus.io/assets/grafana_prometheus-cbb943f0bb3.png", + "https://prometheus.io/assets/grafana_prometheus.png", "https://grafana.com/blog/img/docs/v45/query_inspector.png" ] }, From c6c8081c26c570b369d630b3518890e625bfe6a9 Mon Sep 17 00:00:00 2001 From: cbaker Date: Mon, 7 Jan 2019 16:17:00 +0000 Subject: [PATCH 07/13] changes requested by @vishnu2kmohan for pull/2098 --- .../G/grafana/7/marathon.json.mustache | 31 ++++++++----- repo/packages/G/grafana/7/resource.json | 44 +++++++++---------- 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/repo/packages/G/grafana/7/marathon.json.mustache b/repo/packages/G/grafana/7/marathon.json.mustache index ced43d4ad..87cb33be8 100644 --- a/repo/packages/G/grafana/7/marathon.json.mustache +++ b/repo/packages/G/grafana/7/marathon.json.mustache @@ -15,13 +15,22 @@ "DCOS_SERVICE_PORT_INDEX": "0", "DCOS_SERVICE_SCHEME": "http" }, - {{#service.service_account_secret}} + {{#security.secret-name}} + "container": { + "type": "MESOS", + "volumes":[ + { + "containerPath": "secrets/service-account.json", + "secret": "serviceCredential" + } + ] + }, "secrets": { - "serviceCredential": { - "source": "{{service.service_account_secret}}" - } + "serviceCredential": { + "source": "{{security.secret-name}}" + } }, - {{/service.service_account_secret}} + {{/security.secret-name}} "env": { "PACKAGE_NAME": "{{package-name}}", "PACKAGE_VERSION": "{{package-version}}", @@ -54,12 +63,12 @@ "EXECUTOR_URI": "{{resource.assets.uris.executor-zip}}", "BOOTSTRAP_URI": "{{resource.assets.uris.bootstrap-zip}}", "GRAFANA_URI": "{{resource.assets.uris.grafana-tar-gz}}", - {{#service.service_account_secret}} - "DCOS_SERVICE_ACCOUNT_CREDENTIAL": { "secret": "serviceCredential" }, - "MESOS_MODULES": "{"libraries":[{"file":"libmesos-bundle\/lib\/mesos\/libdcos_security.so","modules":[{"name": "com_mesosphere_dcos_ClassicRPCAuthenticatee"},{"name":"com_mesosphere_dcos_http_Authenticatee","parameters":[{"key":"jwt_exp_timeout","value":"5mins"},{"key":"preemptive_refresh_duration","value":"30mins"}]}]}]}", - "MESOS_AUTHENTICATEE": "com_mesosphere_dcos_ClassicRPCAuthenticatee", - "MESOS_HTTP_AUTHENTICATEE": "com_mesosphere_dcos_http_Authenticatee", - {{/service.service_account_secret}} + {{#security.secret-name}} + "DCOS_SERVICE_ACCOUNT_CREDENTIAL": "secrets/service-account.json", + "MESOS_MODULES": "{\"libraries\":[{\"file\":\"libmesos-bundle\/lib\/mesos\/libdcos_security.so\",\"modules\":[{\"name\": \"com_mesosphere_dcos_ClassicRPCAuthenticatee\"},{\"name\":\"com_mesosphere_dcos_http_Authenticatee\",\"parameters\":[{\"key\":\"jwt_exp_timeout\",\"value\":\"5mins\"},{\"key\":\"preemptive_refresh_duration\",\"value\":\"30mins\"}]}]}]}", + "MESOS_AUTHENTICATEE": "com_mesosphere_dcos_ClassicRPCAuthenticatee", + "MESOS_HTTP_AUTHENTICATEE": "com_mesosphere_dcos_http_Authenticatee", + {{/security.secret-name}} "LIBMESOS_URI": "{{resource.assets.uris.libmesos-bundle-tar-gz}}" }, "uris": [ diff --git a/repo/packages/G/grafana/7/resource.json b/repo/packages/G/grafana/7/resource.json index d960b22ab..920c910b0 100644 --- a/repo/packages/G/grafana/7/resource.json +++ b/repo/packages/G/grafana/7/resource.json @@ -1,59 +1,59 @@ { "assets": { "uris": { - "jre-tar-gz": "https://downloads.mesosphere.com/java/server-jre-8u162-linux-x64.tar.gz", - "libmesos-bundle-tar-gz": "https://downloads.mesosphere.com/libmesos-bundle/libmesos-bundle-1.11.0.tar.gz", - "bootstrap-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/bootstrap.zip", - "executor-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/executor.zip", - "scheduler-zip": "https://s3-us-west-1.amazonaws.com/mbgl-bucket/sdk/0.42.1/operator-scheduler.zip", - "svc": "https://s3-us-west-2.amazonaws.com/dcos-objects/grafana/7/svc.yml", + "jre-tar-gz": "https://downloads.mesosphere.com/java/server-jre-8u192-linux-x64.tar.gz", + "libmesos-bundle-tar-gz": "https://downloads.mesosphere.com/libmesos-bundle/libmesos-bundle-1.12.0.tar.gz", + "bootstrap-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/bootstrap.zip", + "executor-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/executor.zip", + "scheduler-zip": "https://s3-us-west-1.amazonaws.com/mbgl-bucket/sdk/0.42.1/operator-scheduler.zip", + "svc": "https://s3-us-west-2.amazonaws.com/dcos-objects/grafana/7/svc.yml", "grafana-tar-gz": "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.4.linux-amd64.tar.gz" } }, "images": { - "icon-small": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-small.png", - "icon-medium": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-medium.png", - "icon-large": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-large.png", + "icon-small": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-small.png", + "icon-medium": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-medium.png", + "icon-large": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-large.png", "screenshots": [ - "https://prometheus.io/assets/grafana_prometheus.png", + "https://prometheus.io/assets/grafana_prometheus.png", "https://grafana.com/blog/img/docs/v45/query_inspector.png" ] - }, + }, "cli": { "binaries": { "darwin": { "x86-64": { "contentHash": [ { - "algo": "sha256", + "algo": "sha256", "value": "c459d2109b31fc0b423f8cacd49df855ef898e63609f7050957f4a0e044d5432" } - ], - "kind": "executable", + ], + "kind": "executable", "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli-darwin" } - }, + }, "linux": { "x86-64": { "contentHash": [ { - "algo": "sha256", + "algo": "sha256", "value": "e580ee8b71c0c26b1a1a605ca09cbd3528a2c031a8de11519024ccbbce862339" } - ], - "kind": "executable", + ], + "kind": "executable", "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli-linux" } - }, + }, "windows": { "x86-64": { "contentHash": [ { - "algo": "sha256", + "algo": "sha256", "value": "9135f9456a40cd53e27e73e44fc94c1d4cbf27d9b59f2b47d82bad3ae0f8c714" } - ], - "kind": "executable", + ], + "kind": "executable", "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli.exe" } } From c54fc4407d7341aa2bff7ecf25a6ca1a5aa4d51b Mon Sep 17 00:00:00 2001 From: Radu Molnar Date: Thu, 4 Apr 2019 14:08:48 +0000 Subject: [PATCH 08/13] Added env variables for Graphite --- repo/packages/I/influxdb/2/config.json | 131 ++++++++++++++++++ .../I/influxdb/2/marathon.json.mustache | 78 +++++++++++ repo/packages/I/influxdb/2/package.json | 20 +++ repo/packages/I/influxdb/2/resource.json | 17 +++ 4 files changed, 246 insertions(+) create mode 100644 repo/packages/I/influxdb/2/config.json create mode 100644 repo/packages/I/influxdb/2/marathon.json.mustache create mode 100644 repo/packages/I/influxdb/2/package.json create mode 100644 repo/packages/I/influxdb/2/resource.json diff --git a/repo/packages/I/influxdb/2/config.json b/repo/packages/I/influxdb/2/config.json new file mode 100644 index 000000000..5b6bdf47e --- /dev/null +++ b/repo/packages/I/influxdb/2/config.json @@ -0,0 +1,131 @@ +{ + "properties": { + "service": { + "type": "object", + "description": "DC/OS service configuration properties", + "properties": { + "name": { + "description": "Name of this service instance", + "type": "string", + "default": "influxdb" + }, + "cpus": { + "description": "CPU shares to allocate to each service instance.", + "type": "number", + "default": 0.1, + "minimum": 0.1 + }, + "mem": { + "description": "Memory to allocate to each service instance.", + "type": "number", + "default": 2048.0, + "minimum": 1024.0 + } + }, + "required": [ + "cpus", + "mem" + ] + }, + "storage": { + "type": "object", + "description": "influxdb storage configuration properties", + "properties":{ + "host_volume_influxdb": { + "description": "If using non-persistent volumes (local volumes), this sets the location of a volume on the host to be used for the influxdb service to store the contents of the influxdb. The final location will be derived from this value plus the name set in `name` (e.g. `/mnt/host_volume/service_name`). This can be a mounted NFS drive. Note that this path must be the same on all DC/OS agents. NOTE: if you don't change the default /tmp value, YOUR DATA WILL NOT BE SAVED IN ANY WAY.", + "type": "string", + "default": "/tmp" + }, + "persistence": { + "type": "object", + "description": "Enable persistent storage.", + "properties": { + "enable": { + "description": "Enable or disable persistent storage.", + "type": "boolean", + "default": false + }, + "volume_mode_influxdb": { + "description": "Choose your mode: RW, R -> default RW.", + "type": "string", + "default": "RW" + } + } + } + } + }, + "networking": { + "type": "object", + "description": "influxdb networking configuration properties", + "properties": { + "port_api": { + "description": "Port number to be used for api communication internally to the cluster.", + "type": "number", + "default": 8086 + }, + "port_graphite": { + "description": "Port number to be used for Graphite input.", + "type": "number", + "default": 2003 + }, + "external_access": { + "type": "object", + "description": "Enable access from outside the cluster through Marathon-LB.\nNOTE: this connection is unencrypted.", + "properties": { + "enable": { + "description": "Enable or disable creating a VIP for external access through a public node running Marathon-LB.", + "type": "boolean", + "default": false + }, + "external_public_agent_ip": { + "description": "For external access, dns to be used for Marathon-LB vHost: For example use your public slave elb dns.", + "type": "string", + "default": "" + }, + "external_access_port": { + "description": "For external access, port number to be used for clear communication in the external Marathon-LB load balancer", + "type": "number", + "default": 18086 + } + } + } + } + }, + "configuration": { + "type": "object", + "description": "influxdb networking configuration properties", + "properties": { + "INFLUXDB_RETENTION_ENABLED": { + "description": "Set to false to prevent InfluxDB from enforcing retention policies.", + "type": "boolean", + "default": true + }, + "INFLUXDB_RETENTION_CHECK_INTERVAL": { + "description": "The rate at which InfluxDB checks to enforce a retention policy.", + "type": "string", + "default": "30m0s" + }, + "INFLUXDB_MONITOR_STORE_DATABASE": { + "description": "The destination database for recorded statistics.", + "type": "string", + "default": "_internal" + }, + "INFLUXDB_GRAPHITE_0_ENABLED": { + "description": "Set to true to enable Graphite input.", + "type": "boolean", + "default": false + }, + "INFLUXDB_GRAPHITE_0_DATABASE": { + "description": "The name of the Graphite database that you want to write to.", + "type": "string", + "default": "graphite" + }, + "INFLUXDB_GRAPHITE_0_TEMPLATES": { + "description": "The name of the Graphite database that you want to write to.", + "type": "string", + "default": "graphite.measurement*" + } + } + } + } +} diff --git a/repo/packages/I/influxdb/2/marathon.json.mustache b/repo/packages/I/influxdb/2/marathon.json.mustache new file mode 100644 index 000000000..60d8dedcf --- /dev/null +++ b/repo/packages/I/influxdb/2/marathon.json.mustache @@ -0,0 +1,78 @@ +{ + "id": "{{service.name}}", + "cpus": {{service.cpus}}, + "mem": {{service.mem}}, + "instances": 1, + "env": { + "INFLUXDB_RETENTION_ENABLED": "{{configuration.INFLUXDB_RETENTION_ENABLED}}", + "INFLUXDB_RETENTION_CHECK_INTERVAL": "{{configuration.INFLUXDB_RETENTION_CHECK_INTERVAL}}", + "INFLUXDB_MONITOR_STORE_DATABASE": "{{configuration.INFLUXDB_MONITOR_STORE_DATABASE}}", + "INFLUXDB_GRAPHITE_0_ENABLED": "{{configuration.INFLUXDB_GRAPHITE_0_ENABLED}}", + "INFLUXDB_GRAPHITE_0_DATABASE": "{{configuration.INFLUXDB_GRAPHITE_0_DATABASE}}", + "INFLUXDB_GRAPHITE_0_TEMPLATES": "{{configuration.INFLUXDB_GRAPHITE_0_TEMPLATES}}" + }, + "container": { + "type": "DOCKER", + {{#storage.persistence.enable}} + "volumes": [{ + "containerPath": "/var/lib/influxdb", + "hostPath": "{{storage.host_volume_influxdb}}/{{service.name}}", + "mode": "{{storage.persistence.volume_mode_influxdb}}" + } + ], + {{/storage.persistence.enable}} + "docker": { + "image": "{{resource.assets.container.docker.influxdb-docker}}", + "network": "BRIDGE", + "portMappings": [ + { + "containerPort": 8086, + "hostPort": 0, + {{#networking.external_access.enable}} + "servicePort": {{networking.external_access.external_access_port}}, + {{/networking.external_access.enable}} + "protocol": "tcp", + "name": "influxdb-api", + "labels": { + "VIP_0": "/{{service.name}}:{{networking.port_api}}" + } + }, + { + "containerPort": 2003, + "hostPort": 0, + "protocol": "tcp", + "name": "influxdb-graphite", + "labels": { + "VIP_0": "/{{service.name}}:{{networking.port_graphite}}" + } + } + ], + "forcePullImage": true + } + }, + "healthChecks": [ + { + "protocol": "HTTP", + "path": "/ping", + "gracePeriodSeconds": 300, + "intervalSeconds": 60, + "timeoutSeconds": 20, + "maxConsecutiveFailures": 3, + "ignoreHttp1xx": false + } + ], + "labels": { + "DCOS_PACKAGE_VERSION": "1.4", + "DCOS_SERVICE_NAME": "{{service.name}}", + "MARATHON_SINGLE_INSTANCE_APP": "true", + {{#networking.external_access.enable}} + "HAPROXY_GROUP": "external", + "HAPROXY_0_VHOST": "{{networking.external_access.external_public_agent_ip}}", + {{/networking.external_access.enable}} + "DCOS_PACKAGE_IS_FRAMEWORK": "false" + }, + "upgradeStrategy":{ + "minimumHealthCapacity": 0, + "maximumOverCapacity": 0 + } +} diff --git a/repo/packages/I/influxdb/2/package.json b/repo/packages/I/influxdb/2/package.json new file mode 100644 index 000000000..51ded58e6 --- /dev/null +++ b/repo/packages/I/influxdb/2/package.json @@ -0,0 +1,20 @@ +{ + "packagingVersion": "3.0", + "minDcosReleaseVersion": "1.7", + "name": "influxdb", + "version": "1.4-1", + "scm": "https://github.com/influxdata/influxdb", + "maintainer": "https://dcos.io/community", + "website": "https://github.com/influxdata/influxdb", + "description": "InfluxDB is an open-source time series database developed by InfluxData as part of their time series platform. It is written in Go and optimized for fast, high-availability storage and retrieval of time series data in fields such as operations monitoring, application metrics, Internet of Things sensor data, and real-time analytics.\n\nThis package can be used alongside the DC/OS 'cadvisor' and 'grafana' packages for a cluster-wide monitoring solution.\n\nInstallation Documentation: https://github.com/dcos/examples/tree/master/cadvisor-influxdb-grafana\n\nNote: Since InfluxDB 1.3.0 the admin-api is depcrecated and no longer used\n\nNote: You need to manually create your database, e.g. with Chronograf", + "tags": ["docker", "influxdb", "database", "monitoring"], + "preInstallNotes": "This DC/OS Service is currently in preview. There may be bugs, incomplete features, incorrect documentation, or other discrepancies.\n\nAdvanced Installation options notes\n\nstorage / persistence: create local persistent volumes for internal storage files to survive across restarts or failures. \n\nstorage / host_volume: if /tmp for example is used it will try to mount /tmp/influxdb (make sure the influxdb folder exists within your host_volum /tmp) if persistence is not selected, this package can use a local volume in the host for storage, like a local directory or an NFS mount. The parameter host_volume controls the path in the host in which these volumes will be created, which MUST be the same on all nodes of the cluster.\n\nNOTE: If you didn't select persistence in the storage section, or provided a valid value for host_volume on installation,\nYOUR DATA WILL NOT BE SAVED IN ANY WAY.\n\nnetworking / port: This DC/OS service can be accessed from any other application through a NAMED VIP in the format service_name.marathon.l4lb.thisdcos.directory:port. Check status of the VIP in the Network tab of the DC/OS Dashboard (Enterprise DC/OS only).\n\nnetworking / external_access: create an entry in Marathon-LB for accessing the service from outside of the cluster\n\nnetworking / external_access_port: port to be used in Marathon-LB for accessing the service. \n\nnetworking / external_public_agent_ip: dns for Marathon-LB, typically set to your public agents public ip.\n\n Access your InfluxDB Server e.g. from your laptop with Chronograf: docker run -p 8888:8888 chronograf --influxdb-url=http://", + "postInstallNotes": "Service installed.", + "postUninstallNotes": "Service uninstalled. Note that any persisting data still exists and will need to be manually removed from the agent where the service was deployed.", + "licenses": [ + { + "name": "Apache License", + "url": "http://en.wikipedia.org/wiki/Apache_License" + } + ] +} \ No newline at end of file diff --git a/repo/packages/I/influxdb/2/resource.json b/repo/packages/I/influxdb/2/resource.json new file mode 100644 index 000000000..393a5d1e5 --- /dev/null +++ b/repo/packages/I/influxdb/2/resource.json @@ -0,0 +1,17 @@ +{ + "images": { + "icon-small": "https://downloads.mesosphere.com/assets/universe/000/influxdb-icon-small.png", + "icon-medium": "https://downloads.mesosphere.com/assets/universe/000/influxdb-icon-medium.png", + "icon-large": "https://downloads.mesosphere.com/assets/universe/000/influxdb-icon-large.png", + "screenshots": [ + "https://raw.githubusercontent.com/Kentik/docker-monitor/master/screenshots/influxdb-screenshot.png" + ] + }, + "assets": { + "container": { + "docker": { + "influxdb-docker": "influxdb:1.4" + } + } + } +} From 50bc93752df0298f977908ab9eb04dfbec15bf7a Mon Sep 17 00:00:00 2001 From: cbaker Date: Mon, 7 Oct 2019 16:00:08 +0000 Subject: [PATCH 09/13] Upgrade Grafana to 6.4.1 --- repo/packages/G/grafana/8/config.json | 142 ++++++++++++++++++ .../G/grafana/8/marathon.json.mustache | 104 +++++++++++++ repo/packages/G/grafana/8/package.json | 23 +++ repo/packages/G/grafana/8/resource.json | 62 ++++++++ 4 files changed, 331 insertions(+) create mode 100644 repo/packages/G/grafana/8/config.json create mode 100644 repo/packages/G/grafana/8/marathon.json.mustache create mode 100644 repo/packages/G/grafana/8/package.json create mode 100644 repo/packages/G/grafana/8/resource.json diff --git a/repo/packages/G/grafana/8/config.json b/repo/packages/G/grafana/8/config.json new file mode 100644 index 000000000..bfb5c7abf --- /dev/null +++ b/repo/packages/G/grafana/8/config.json @@ -0,0 +1,142 @@ +{ + "type": "object", + "properties": { + "service": { + "type": "object", + "description": "DC/OS service configuration properties", + "properties": { + "name": { + "description": "The name of the service instance", + "type": "string", + "default": "grafana", + "title": "Service name" + }, + "user": { + "description": "The user that the service will run as.", + "type": "string", + "default": "root", + "title": "User" + }, + "service_account": { + "description": "The service account for DC/OS service authentication. This is typically left empty to use the default unless service authentication is needed. The value given here is passed as the principal of Mesos framework.", + "type": "string", + "default": "" + }, + "service_account_secret": { + "description": "Name of the Secret Store credentials to use for DC/OS service authentication. This should be left empty unless service authentication is needed.", + "type": "string", + "default": "", + "title": "Credential secret name (optional)" + }, + "mesos_api_version": { + "description": "Configures the Mesos API version to use. Possible values: V0 (non-HTTP), V1 (HTTP)", + "type": "string", + "enum": [ + "V0", + "V1" + ], + "default": "V1" + }, + "log_level": { + "description": "The log level for the DC/OS service.", + "type": "string", + "enum": [ + "OFF", + "FATAL", + "ERROR", + "WARN", + "INFO", + "DEBUG", + "TRACE", + "ALL" + ], + "default": "INFO" + } + }, + "required": [ + "name", + "user" + ] + }, + "grafana": { + "description": "grafana pod configuration properties", + "type": "object", + "properties": { + "cpus": { + "description": "Grafana pod CPU requirements", + "type": "number", + "default": 0.2 + }, + "mem": { + "description": "Grafana pod mem requirements (in MB)", + "type": "integer", + "default": 2048 + }, + "volume": { + "description": "Grafana volume requirements", + "type": "object", + "properties": { + "path": { + "description": "Location of persistent volume to store data", + "type": "string", + "default": "grafana-data" + }, + "type": { + "description": "The type of persistent volume to use, one of ROOT or MOUNT", + "type": "string", + "default": "ROOT", + "enum": [ + "ROOT", + "MOUNT", + "PATH" + ] + }, + "size": { + "description": "The size of the persistent volume in MB", + "type": "integer", + "default": 512, + "minimum": 512 + } + } + }, + "ini": { + "description": "Base64 encoded conf/grafana.ini", + "type": "string", + "media": { + "binaryEncoding": "base64", + "type": "application/x-yaml" + }, + "default": "YXBwX21vZGUgPSBwcm9kdWN0aW9uCmluc3RhbmNlX25hbWUgPSAke0hPU1ROQU1FfQpbcGF0aHNdCmRhdGEgPSAvZ3JhZmFuYS1kYXRhCjt0ZW1wX2RhdGFfbGlmZXRpbWUgPSAyNGgKbG9ncyA9IC9ncmFmYW5hLWRhdGEKcGx1Z2lucyA9IC9ncmFmYW5hLWRhdGEvcGx1Z2lucwpwcm92aXNpb25pbmcgPSBjb25mL3Byb3Zpc2lvbmluZwoK" + }, + "provisioning": { + "description": "Provisioning properties to be used", + "type": "object", + "properties": { + "datasources": { + "description": "Base64 encoded conf/provisioning/datasources/datasources.yml", + "type": "string", + "media": { + "binaryEncoding": "base64", + "type": "application/x-yaml" + }, + "default": "YXBpVmVyc2lvbjogMQoKI2RlbGV0ZURhdGFzb3VyY2VzOgojICAtIG5hbWU6IFByb21ldGhldXMKIyAgICBvcmdJZDogMQoKI2RhdGFzb3VyY2VzOgojICAtIG5hbWU6IFByb21ldGhldXMKIyAgICB0eXBlOiBwcm9tZXRoZXVzCiMgICAgYWNjZXNzOiBwcm94eQojICAgIG9yZ0lkOiAxCiMgICAgdXJsOiBodHRwOi8vcHJvbWV0aGV1cy5wcm9tZXRoZXVzLmw0bGIudGhpc2Rjb3MuZGlyZWN0b3J5OjkwOTAKIyAgICBpc0RlZmF1bHQ6IHRydWUKIyAgICBqc29uRGF0YTogeyAidGltZUludGVydmFsIjogIjMwcyIgfQo" + }, + "dashboards": { + "description": "Base64 encoded conf/provisioning/dashboards/dashboards.yml config", + "type": "string", + "media": { + "binaryEncoding": "base64", + "type": "application/x-yaml" + }, + "default": "YXBpVmVyc2lvbjogMQoK" + } + } + } + }, + "required": [ + "cpus", + "mem" + ] + } + } +} diff --git a/repo/packages/G/grafana/8/marathon.json.mustache b/repo/packages/G/grafana/8/marathon.json.mustache new file mode 100644 index 000000000..87cb33be8 --- /dev/null +++ b/repo/packages/G/grafana/8/marathon.json.mustache @@ -0,0 +1,104 @@ + +{ + "id": "{{service.name}}", + "cpus": 1.0, + "mem": 1024, + "instances": 1, + "user": "{{service.user}}", + "cmd": "export LD_LIBRARY_PATH=$MESOS_SANDBOX/libmesos-bundle/lib:$LD_LIBRARY_PATH; export MESOS_NATIVE_JAVA_LIBRARY=$(ls $MESOS_SANDBOX/libmesos-bundle/lib/libmesos-*.so); export JAVA_HOME=$(ls -d $MESOS_SANDBOX/jdk*/jre/); export JAVA_HOME=${JAVA_HOME%/}; export PATH=$(ls -d $JAVA_HOME/bin):$PATH && export JAVA_OPTS=\"-Xms256M -Xmx512M -XX:-HeapDumpOnOutOfMemoryError\" && ./bootstrap -resolve=false -template=false && ./operator-scheduler/bin/operator svc.yml", + "labels": { + "DCOS_COMMONS_API_VERSION": "v1", + "DCOS_COMMONS_UNINSTALL": "true", + "DCOS_PACKAGE_FRAMEWORK_NAME": "{{service.name}}", + "MARATHON_SINGLE_INSTANCE_APP": "true", + "DCOS_SERVICE_NAME": "{{service.name}}", + "DCOS_SERVICE_PORT_INDEX": "0", + "DCOS_SERVICE_SCHEME": "http" + }, + {{#security.secret-name}} + "container": { + "type": "MESOS", + "volumes":[ + { + "containerPath": "secrets/service-account.json", + "secret": "serviceCredential" + } + ] + }, + "secrets": { + "serviceCredential": { + "source": "{{security.secret-name}}" + } + }, + {{/security.secret-name}} + "env": { + "PACKAGE_NAME": "{{package-name}}", + "PACKAGE_VERSION": "{{package-version}}", + "PACKAGE_BUILD_TIME_EPOCH_MS": "1531343768523", + "PACKAGE_BUILD_TIME_STR": "2018-07-11T21:16:08.523025", + "FRAMEWORK_NAME": "{{service.name}}", + "FRAMEWORK_USER": "{{service.user}}", + "FRAMEWORK_PRINCIPAL": "{{service.service_account}}", + "FRAMEWORK_LOG_LEVEL": "{{service.log_level}}", + "MESOS_API_VERSION": "{{service.mesos_api_version}}", + + "GRAFANA_CPUS": "{{grafana.cpus}}", + "GRAFANA_MEM": "{{grafana.mem}}", + "GRAFANA_VOLUME": "{{grafana.volume.path}}", + "GRAFANA_VOLUME_TYPE": "{{grafana.volume.type}}", + "GRAFANA_VOLUME_SIZE": "{{grafana.volume.size}}", + "GRAFANA_INI": "{{grafana.ini}}", + "GRAFANA_DSP": "{{grafana.provisioning.datasources}}", + "GRAFANA_DBP": "{{grafana.provisioning.dashboards}}", + + "NODE_COUNT": "{{node.count}}", + "NODE_PLACEMENT": "{{{node.placement_constraint}}}", + + "NODE_CPUS": "{{node.cpus}}", + "NODE_MEM": "{{node.mem}}", + "NODE_DISK": "{{node.disk}}", + "NODE_DISK_TYPE": "{{node.disk_type}}", + + "JAVA_URI": "{{resource.assets.uris.jre-tar-gz}}", + "EXECUTOR_URI": "{{resource.assets.uris.executor-zip}}", + "BOOTSTRAP_URI": "{{resource.assets.uris.bootstrap-zip}}", + "GRAFANA_URI": "{{resource.assets.uris.grafana-tar-gz}}", + {{#security.secret-name}} + "DCOS_SERVICE_ACCOUNT_CREDENTIAL": "secrets/service-account.json", + "MESOS_MODULES": "{\"libraries\":[{\"file\":\"libmesos-bundle\/lib\/mesos\/libdcos_security.so\",\"modules\":[{\"name\": \"com_mesosphere_dcos_ClassicRPCAuthenticatee\"},{\"name\":\"com_mesosphere_dcos_http_Authenticatee\",\"parameters\":[{\"key\":\"jwt_exp_timeout\",\"value\":\"5mins\"},{\"key\":\"preemptive_refresh_duration\",\"value\":\"30mins\"}]}]}]}", + "MESOS_AUTHENTICATEE": "com_mesosphere_dcos_ClassicRPCAuthenticatee", + "MESOS_HTTP_AUTHENTICATEE": "com_mesosphere_dcos_http_Authenticatee", + {{/security.secret-name}} + "LIBMESOS_URI": "{{resource.assets.uris.libmesos-bundle-tar-gz}}" + }, + "uris": [ + "{{resource.assets.uris.bootstrap-zip}}", + "{{resource.assets.uris.jre-tar-gz}}", + "{{resource.assets.uris.scheduler-zip}}", + "{{resource.assets.uris.libmesos-bundle-tar-gz}}", + "{{resource.assets.uris.svc}}" + ], + "upgradeStrategy":{ + "minimumHealthCapacity": 0, + "maximumOverCapacity": 0 + }, + "healthChecks": [ + { + "protocol": "MESOS_HTTP", + "path": "/v1/health", + "gracePeriodSeconds": 900, + "intervalSeconds": 30, + "portIndex": 0, + "timeoutSeconds": 30, + "maxConsecutiveFailures": 0 + } + ], + "portDefinitions": [ + { + "port": 0, + "protocol": "tcp", + "name": "api", + "labels": { "VIP_0": "/api.{{service.name}}:80" } + } + ] +} diff --git a/repo/packages/G/grafana/8/package.json b/repo/packages/G/grafana/8/package.json new file mode 100644 index 000000000..0db5b78f8 --- /dev/null +++ b/repo/packages/G/grafana/8/package.json @@ -0,0 +1,23 @@ +{ + "packagingVersion": "4.0", + "upgradesFrom": [ + "*" + ], + "downgradesTo": [ + "*" + ], + "minDcosReleaseVersion": "1.11", + "name": "grafana", + "version": "5.5.0-6.4.1", + "maintainer": "https://dcos.io/community", + "description": "Grafana on DC/OS", + "selected": false, + "framework": true, + "tags": [ + "grafana", + "monitoring", + "visualization" + ], + "postInstallNotes": "DC/OS Grafana is being installed!", + "postUninstallNotes": "DC/OS Grafana is being uninstalled." +} diff --git a/repo/packages/G/grafana/8/resource.json b/repo/packages/G/grafana/8/resource.json new file mode 100644 index 000000000..d83cda090 --- /dev/null +++ b/repo/packages/G/grafana/8/resource.json @@ -0,0 +1,62 @@ +{ + "assets": { + "uris": { + "jre-tar-gz": "https://downloads.mesosphere.com/java/server-jre-8u192-linux-x64.tar.gz", + "libmesos-bundle-tar-gz": "https://downloads.mesosphere.com/libmesos-bundle/libmesos-bundle-1.12.0.tar.gz", + "bootstrap-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/bootstrap.zip", + "executor-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/executor.zip", + "scheduler-zip": "https://s3-us-west-1.amazonaws.com/mbgl-bucket/sdk/0.42.1/operator-scheduler.zip", + "svc": "https://s3-us-west-2.amazonaws.com/dcos-objects/grafana/8/svc.yml", + "grafana-tar-gz": "https://dl.grafana.com/oss/release/grafana-6.4.1.linux-amd64.tar.gz" + } + }, + "images": { + "icon-small": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-small.png", + "icon-medium": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-medium.png", + "icon-large": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-large.png", + "screenshots": [ + "https://prometheus.io/assets/grafana_prometheus.png", + "https://grafana.com/blog/img/docs/v45/query_inspector.png" + ] + }, + "cli": { + "binaries": { + "darwin": { + "x86-64": { + "contentHash": [ + { + "algo": "sha256", + "value": "c459d2109b31fc0b423f8cacd49df855ef898e63609f7050957f4a0e044d5432" + } + ], + "kind": "executable", + "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli-darwin" + } + }, + "linux": { + "x86-64": { + "contentHash": [ + { + "algo": "sha256", + "value": "e580ee8b71c0c26b1a1a605ca09cbd3528a2c031a8de11519024ccbbce862339" + } + ], + "kind": "executable", + "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli-linux" + } + }, + "windows": { + "x86-64": { + "contentHash": [ + { + "algo": "sha256", + "value": "9135f9456a40cd53e27e73e44fc94c1d4cbf27d9b59f2b47d82bad3ae0f8c714" + } + ], + "kind": "executable", + "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli.exe" + } + } + } + } +} From 5ecdc56b7644e0a4760a15e95f5df449630d31b3 Mon Sep 17 00:00:00 2001 From: cbaker Date: Mon, 7 Oct 2019 19:21:42 +0000 Subject: [PATCH 10/13] Revert "Upgrade Grafana to 6.4.1" This reverts commit 50bc93752df0298f977908ab9eb04dfbec15bf7a. --- repo/packages/G/grafana/8/config.json | 142 ------------------ .../G/grafana/8/marathon.json.mustache | 104 ------------- repo/packages/G/grafana/8/package.json | 23 --- repo/packages/G/grafana/8/resource.json | 62 -------- 4 files changed, 331 deletions(-) delete mode 100644 repo/packages/G/grafana/8/config.json delete mode 100644 repo/packages/G/grafana/8/marathon.json.mustache delete mode 100644 repo/packages/G/grafana/8/package.json delete mode 100644 repo/packages/G/grafana/8/resource.json diff --git a/repo/packages/G/grafana/8/config.json b/repo/packages/G/grafana/8/config.json deleted file mode 100644 index bfb5c7abf..000000000 --- a/repo/packages/G/grafana/8/config.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "type": "object", - "properties": { - "service": { - "type": "object", - "description": "DC/OS service configuration properties", - "properties": { - "name": { - "description": "The name of the service instance", - "type": "string", - "default": "grafana", - "title": "Service name" - }, - "user": { - "description": "The user that the service will run as.", - "type": "string", - "default": "root", - "title": "User" - }, - "service_account": { - "description": "The service account for DC/OS service authentication. This is typically left empty to use the default unless service authentication is needed. The value given here is passed as the principal of Mesos framework.", - "type": "string", - "default": "" - }, - "service_account_secret": { - "description": "Name of the Secret Store credentials to use for DC/OS service authentication. This should be left empty unless service authentication is needed.", - "type": "string", - "default": "", - "title": "Credential secret name (optional)" - }, - "mesos_api_version": { - "description": "Configures the Mesos API version to use. Possible values: V0 (non-HTTP), V1 (HTTP)", - "type": "string", - "enum": [ - "V0", - "V1" - ], - "default": "V1" - }, - "log_level": { - "description": "The log level for the DC/OS service.", - "type": "string", - "enum": [ - "OFF", - "FATAL", - "ERROR", - "WARN", - "INFO", - "DEBUG", - "TRACE", - "ALL" - ], - "default": "INFO" - } - }, - "required": [ - "name", - "user" - ] - }, - "grafana": { - "description": "grafana pod configuration properties", - "type": "object", - "properties": { - "cpus": { - "description": "Grafana pod CPU requirements", - "type": "number", - "default": 0.2 - }, - "mem": { - "description": "Grafana pod mem requirements (in MB)", - "type": "integer", - "default": 2048 - }, - "volume": { - "description": "Grafana volume requirements", - "type": "object", - "properties": { - "path": { - "description": "Location of persistent volume to store data", - "type": "string", - "default": "grafana-data" - }, - "type": { - "description": "The type of persistent volume to use, one of ROOT or MOUNT", - "type": "string", - "default": "ROOT", - "enum": [ - "ROOT", - "MOUNT", - "PATH" - ] - }, - "size": { - "description": "The size of the persistent volume in MB", - "type": "integer", - "default": 512, - "minimum": 512 - } - } - }, - "ini": { - "description": "Base64 encoded conf/grafana.ini", - "type": "string", - "media": { - "binaryEncoding": "base64", - "type": "application/x-yaml" - }, - "default": "YXBwX21vZGUgPSBwcm9kdWN0aW9uCmluc3RhbmNlX25hbWUgPSAke0hPU1ROQU1FfQpbcGF0aHNdCmRhdGEgPSAvZ3JhZmFuYS1kYXRhCjt0ZW1wX2RhdGFfbGlmZXRpbWUgPSAyNGgKbG9ncyA9IC9ncmFmYW5hLWRhdGEKcGx1Z2lucyA9IC9ncmFmYW5hLWRhdGEvcGx1Z2lucwpwcm92aXNpb25pbmcgPSBjb25mL3Byb3Zpc2lvbmluZwoK" - }, - "provisioning": { - "description": "Provisioning properties to be used", - "type": "object", - "properties": { - "datasources": { - "description": "Base64 encoded conf/provisioning/datasources/datasources.yml", - "type": "string", - "media": { - "binaryEncoding": "base64", - "type": "application/x-yaml" - }, - "default": "YXBpVmVyc2lvbjogMQoKI2RlbGV0ZURhdGFzb3VyY2VzOgojICAtIG5hbWU6IFByb21ldGhldXMKIyAgICBvcmdJZDogMQoKI2RhdGFzb3VyY2VzOgojICAtIG5hbWU6IFByb21ldGhldXMKIyAgICB0eXBlOiBwcm9tZXRoZXVzCiMgICAgYWNjZXNzOiBwcm94eQojICAgIG9yZ0lkOiAxCiMgICAgdXJsOiBodHRwOi8vcHJvbWV0aGV1cy5wcm9tZXRoZXVzLmw0bGIudGhpc2Rjb3MuZGlyZWN0b3J5OjkwOTAKIyAgICBpc0RlZmF1bHQ6IHRydWUKIyAgICBqc29uRGF0YTogeyAidGltZUludGVydmFsIjogIjMwcyIgfQo" - }, - "dashboards": { - "description": "Base64 encoded conf/provisioning/dashboards/dashboards.yml config", - "type": "string", - "media": { - "binaryEncoding": "base64", - "type": "application/x-yaml" - }, - "default": "YXBpVmVyc2lvbjogMQoK" - } - } - } - }, - "required": [ - "cpus", - "mem" - ] - } - } -} diff --git a/repo/packages/G/grafana/8/marathon.json.mustache b/repo/packages/G/grafana/8/marathon.json.mustache deleted file mode 100644 index 87cb33be8..000000000 --- a/repo/packages/G/grafana/8/marathon.json.mustache +++ /dev/null @@ -1,104 +0,0 @@ - -{ - "id": "{{service.name}}", - "cpus": 1.0, - "mem": 1024, - "instances": 1, - "user": "{{service.user}}", - "cmd": "export LD_LIBRARY_PATH=$MESOS_SANDBOX/libmesos-bundle/lib:$LD_LIBRARY_PATH; export MESOS_NATIVE_JAVA_LIBRARY=$(ls $MESOS_SANDBOX/libmesos-bundle/lib/libmesos-*.so); export JAVA_HOME=$(ls -d $MESOS_SANDBOX/jdk*/jre/); export JAVA_HOME=${JAVA_HOME%/}; export PATH=$(ls -d $JAVA_HOME/bin):$PATH && export JAVA_OPTS=\"-Xms256M -Xmx512M -XX:-HeapDumpOnOutOfMemoryError\" && ./bootstrap -resolve=false -template=false && ./operator-scheduler/bin/operator svc.yml", - "labels": { - "DCOS_COMMONS_API_VERSION": "v1", - "DCOS_COMMONS_UNINSTALL": "true", - "DCOS_PACKAGE_FRAMEWORK_NAME": "{{service.name}}", - "MARATHON_SINGLE_INSTANCE_APP": "true", - "DCOS_SERVICE_NAME": "{{service.name}}", - "DCOS_SERVICE_PORT_INDEX": "0", - "DCOS_SERVICE_SCHEME": "http" - }, - {{#security.secret-name}} - "container": { - "type": "MESOS", - "volumes":[ - { - "containerPath": "secrets/service-account.json", - "secret": "serviceCredential" - } - ] - }, - "secrets": { - "serviceCredential": { - "source": "{{security.secret-name}}" - } - }, - {{/security.secret-name}} - "env": { - "PACKAGE_NAME": "{{package-name}}", - "PACKAGE_VERSION": "{{package-version}}", - "PACKAGE_BUILD_TIME_EPOCH_MS": "1531343768523", - "PACKAGE_BUILD_TIME_STR": "2018-07-11T21:16:08.523025", - "FRAMEWORK_NAME": "{{service.name}}", - "FRAMEWORK_USER": "{{service.user}}", - "FRAMEWORK_PRINCIPAL": "{{service.service_account}}", - "FRAMEWORK_LOG_LEVEL": "{{service.log_level}}", - "MESOS_API_VERSION": "{{service.mesos_api_version}}", - - "GRAFANA_CPUS": "{{grafana.cpus}}", - "GRAFANA_MEM": "{{grafana.mem}}", - "GRAFANA_VOLUME": "{{grafana.volume.path}}", - "GRAFANA_VOLUME_TYPE": "{{grafana.volume.type}}", - "GRAFANA_VOLUME_SIZE": "{{grafana.volume.size}}", - "GRAFANA_INI": "{{grafana.ini}}", - "GRAFANA_DSP": "{{grafana.provisioning.datasources}}", - "GRAFANA_DBP": "{{grafana.provisioning.dashboards}}", - - "NODE_COUNT": "{{node.count}}", - "NODE_PLACEMENT": "{{{node.placement_constraint}}}", - - "NODE_CPUS": "{{node.cpus}}", - "NODE_MEM": "{{node.mem}}", - "NODE_DISK": "{{node.disk}}", - "NODE_DISK_TYPE": "{{node.disk_type}}", - - "JAVA_URI": "{{resource.assets.uris.jre-tar-gz}}", - "EXECUTOR_URI": "{{resource.assets.uris.executor-zip}}", - "BOOTSTRAP_URI": "{{resource.assets.uris.bootstrap-zip}}", - "GRAFANA_URI": "{{resource.assets.uris.grafana-tar-gz}}", - {{#security.secret-name}} - "DCOS_SERVICE_ACCOUNT_CREDENTIAL": "secrets/service-account.json", - "MESOS_MODULES": "{\"libraries\":[{\"file\":\"libmesos-bundle\/lib\/mesos\/libdcos_security.so\",\"modules\":[{\"name\": \"com_mesosphere_dcos_ClassicRPCAuthenticatee\"},{\"name\":\"com_mesosphere_dcos_http_Authenticatee\",\"parameters\":[{\"key\":\"jwt_exp_timeout\",\"value\":\"5mins\"},{\"key\":\"preemptive_refresh_duration\",\"value\":\"30mins\"}]}]}]}", - "MESOS_AUTHENTICATEE": "com_mesosphere_dcos_ClassicRPCAuthenticatee", - "MESOS_HTTP_AUTHENTICATEE": "com_mesosphere_dcos_http_Authenticatee", - {{/security.secret-name}} - "LIBMESOS_URI": "{{resource.assets.uris.libmesos-bundle-tar-gz}}" - }, - "uris": [ - "{{resource.assets.uris.bootstrap-zip}}", - "{{resource.assets.uris.jre-tar-gz}}", - "{{resource.assets.uris.scheduler-zip}}", - "{{resource.assets.uris.libmesos-bundle-tar-gz}}", - "{{resource.assets.uris.svc}}" - ], - "upgradeStrategy":{ - "minimumHealthCapacity": 0, - "maximumOverCapacity": 0 - }, - "healthChecks": [ - { - "protocol": "MESOS_HTTP", - "path": "/v1/health", - "gracePeriodSeconds": 900, - "intervalSeconds": 30, - "portIndex": 0, - "timeoutSeconds": 30, - "maxConsecutiveFailures": 0 - } - ], - "portDefinitions": [ - { - "port": 0, - "protocol": "tcp", - "name": "api", - "labels": { "VIP_0": "/api.{{service.name}}:80" } - } - ] -} diff --git a/repo/packages/G/grafana/8/package.json b/repo/packages/G/grafana/8/package.json deleted file mode 100644 index 0db5b78f8..000000000 --- a/repo/packages/G/grafana/8/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "packagingVersion": "4.0", - "upgradesFrom": [ - "*" - ], - "downgradesTo": [ - "*" - ], - "minDcosReleaseVersion": "1.11", - "name": "grafana", - "version": "5.5.0-6.4.1", - "maintainer": "https://dcos.io/community", - "description": "Grafana on DC/OS", - "selected": false, - "framework": true, - "tags": [ - "grafana", - "monitoring", - "visualization" - ], - "postInstallNotes": "DC/OS Grafana is being installed!", - "postUninstallNotes": "DC/OS Grafana is being uninstalled." -} diff --git a/repo/packages/G/grafana/8/resource.json b/repo/packages/G/grafana/8/resource.json deleted file mode 100644 index d83cda090..000000000 --- a/repo/packages/G/grafana/8/resource.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "assets": { - "uris": { - "jre-tar-gz": "https://downloads.mesosphere.com/java/server-jre-8u192-linux-x64.tar.gz", - "libmesos-bundle-tar-gz": "https://downloads.mesosphere.com/libmesos-bundle/libmesos-bundle-1.12.0.tar.gz", - "bootstrap-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/bootstrap.zip", - "executor-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/executor.zip", - "scheduler-zip": "https://s3-us-west-1.amazonaws.com/mbgl-bucket/sdk/0.42.1/operator-scheduler.zip", - "svc": "https://s3-us-west-2.amazonaws.com/dcos-objects/grafana/8/svc.yml", - "grafana-tar-gz": "https://dl.grafana.com/oss/release/grafana-6.4.1.linux-amd64.tar.gz" - } - }, - "images": { - "icon-small": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-small.png", - "icon-medium": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-medium.png", - "icon-large": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-large.png", - "screenshots": [ - "https://prometheus.io/assets/grafana_prometheus.png", - "https://grafana.com/blog/img/docs/v45/query_inspector.png" - ] - }, - "cli": { - "binaries": { - "darwin": { - "x86-64": { - "contentHash": [ - { - "algo": "sha256", - "value": "c459d2109b31fc0b423f8cacd49df855ef898e63609f7050957f4a0e044d5432" - } - ], - "kind": "executable", - "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli-darwin" - } - }, - "linux": { - "x86-64": { - "contentHash": [ - { - "algo": "sha256", - "value": "e580ee8b71c0c26b1a1a605ca09cbd3528a2c031a8de11519024ccbbce862339" - } - ], - "kind": "executable", - "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli-linux" - } - }, - "windows": { - "x86-64": { - "contentHash": [ - { - "algo": "sha256", - "value": "9135f9456a40cd53e27e73e44fc94c1d4cbf27d9b59f2b47d82bad3ae0f8c714" - } - ], - "kind": "executable", - "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli.exe" - } - } - } - } -} From 6666f4c5ab5f14a16f1f803960b2f3071bad65a3 Mon Sep 17 00:00:00 2001 From: cbaker Date: Mon, 7 Oct 2019 19:44:36 +0000 Subject: [PATCH 11/13] Revert "Merge branch 'version-3.x' of github.com:cbakersdl/universe into version-3.x" This reverts commit 6c1208564603c134e9bb5db9fa30d35f91744717, reversing changes made to e1502d2e4282eafe562f6bd53f11a5e4a3f31157. --- repo/packages/I/influxdb/2/config.json | 131 ------------------ .../I/influxdb/2/marathon.json.mustache | 78 ----------- repo/packages/I/influxdb/2/package.json | 20 --- repo/packages/I/influxdb/2/resource.json | 17 --- 4 files changed, 246 deletions(-) delete mode 100644 repo/packages/I/influxdb/2/config.json delete mode 100644 repo/packages/I/influxdb/2/marathon.json.mustache delete mode 100644 repo/packages/I/influxdb/2/package.json delete mode 100644 repo/packages/I/influxdb/2/resource.json diff --git a/repo/packages/I/influxdb/2/config.json b/repo/packages/I/influxdb/2/config.json deleted file mode 100644 index 5b6bdf47e..000000000 --- a/repo/packages/I/influxdb/2/config.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "properties": { - "service": { - "type": "object", - "description": "DC/OS service configuration properties", - "properties": { - "name": { - "description": "Name of this service instance", - "type": "string", - "default": "influxdb" - }, - "cpus": { - "description": "CPU shares to allocate to each service instance.", - "type": "number", - "default": 0.1, - "minimum": 0.1 - }, - "mem": { - "description": "Memory to allocate to each service instance.", - "type": "number", - "default": 2048.0, - "minimum": 1024.0 - } - }, - "required": [ - "cpus", - "mem" - ] - }, - "storage": { - "type": "object", - "description": "influxdb storage configuration properties", - "properties":{ - "host_volume_influxdb": { - "description": "If using non-persistent volumes (local volumes), this sets the location of a volume on the host to be used for the influxdb service to store the contents of the influxdb. The final location will be derived from this value plus the name set in `name` (e.g. `/mnt/host_volume/service_name`). This can be a mounted NFS drive. Note that this path must be the same on all DC/OS agents. NOTE: if you don't change the default /tmp value, YOUR DATA WILL NOT BE SAVED IN ANY WAY.", - "type": "string", - "default": "/tmp" - }, - "persistence": { - "type": "object", - "description": "Enable persistent storage.", - "properties": { - "enable": { - "description": "Enable or disable persistent storage.", - "type": "boolean", - "default": false - }, - "volume_mode_influxdb": { - "description": "Choose your mode: RW, R -> default RW.", - "type": "string", - "default": "RW" - } - } - } - } - }, - "networking": { - "type": "object", - "description": "influxdb networking configuration properties", - "properties": { - "port_api": { - "description": "Port number to be used for api communication internally to the cluster.", - "type": "number", - "default": 8086 - }, - "port_graphite": { - "description": "Port number to be used for Graphite input.", - "type": "number", - "default": 2003 - }, - "external_access": { - "type": "object", - "description": "Enable access from outside the cluster through Marathon-LB.\nNOTE: this connection is unencrypted.", - "properties": { - "enable": { - "description": "Enable or disable creating a VIP for external access through a public node running Marathon-LB.", - "type": "boolean", - "default": false - }, - "external_public_agent_ip": { - "description": "For external access, dns to be used for Marathon-LB vHost: For example use your public slave elb dns.", - "type": "string", - "default": "" - }, - "external_access_port": { - "description": "For external access, port number to be used for clear communication in the external Marathon-LB load balancer", - "type": "number", - "default": 18086 - } - } - } - } - }, - "configuration": { - "type": "object", - "description": "influxdb networking configuration properties", - "properties": { - "INFLUXDB_RETENTION_ENABLED": { - "description": "Set to false to prevent InfluxDB from enforcing retention policies.", - "type": "boolean", - "default": true - }, - "INFLUXDB_RETENTION_CHECK_INTERVAL": { - "description": "The rate at which InfluxDB checks to enforce a retention policy.", - "type": "string", - "default": "30m0s" - }, - "INFLUXDB_MONITOR_STORE_DATABASE": { - "description": "The destination database for recorded statistics.", - "type": "string", - "default": "_internal" - }, - "INFLUXDB_GRAPHITE_0_ENABLED": { - "description": "Set to true to enable Graphite input.", - "type": "boolean", - "default": false - }, - "INFLUXDB_GRAPHITE_0_DATABASE": { - "description": "The name of the Graphite database that you want to write to.", - "type": "string", - "default": "graphite" - }, - "INFLUXDB_GRAPHITE_0_TEMPLATES": { - "description": "The name of the Graphite database that you want to write to.", - "type": "string", - "default": "graphite.measurement*" - } - } - } - } -} diff --git a/repo/packages/I/influxdb/2/marathon.json.mustache b/repo/packages/I/influxdb/2/marathon.json.mustache deleted file mode 100644 index 60d8dedcf..000000000 --- a/repo/packages/I/influxdb/2/marathon.json.mustache +++ /dev/null @@ -1,78 +0,0 @@ -{ - "id": "{{service.name}}", - "cpus": {{service.cpus}}, - "mem": {{service.mem}}, - "instances": 1, - "env": { - "INFLUXDB_RETENTION_ENABLED": "{{configuration.INFLUXDB_RETENTION_ENABLED}}", - "INFLUXDB_RETENTION_CHECK_INTERVAL": "{{configuration.INFLUXDB_RETENTION_CHECK_INTERVAL}}", - "INFLUXDB_MONITOR_STORE_DATABASE": "{{configuration.INFLUXDB_MONITOR_STORE_DATABASE}}", - "INFLUXDB_GRAPHITE_0_ENABLED": "{{configuration.INFLUXDB_GRAPHITE_0_ENABLED}}", - "INFLUXDB_GRAPHITE_0_DATABASE": "{{configuration.INFLUXDB_GRAPHITE_0_DATABASE}}", - "INFLUXDB_GRAPHITE_0_TEMPLATES": "{{configuration.INFLUXDB_GRAPHITE_0_TEMPLATES}}" - }, - "container": { - "type": "DOCKER", - {{#storage.persistence.enable}} - "volumes": [{ - "containerPath": "/var/lib/influxdb", - "hostPath": "{{storage.host_volume_influxdb}}/{{service.name}}", - "mode": "{{storage.persistence.volume_mode_influxdb}}" - } - ], - {{/storage.persistence.enable}} - "docker": { - "image": "{{resource.assets.container.docker.influxdb-docker}}", - "network": "BRIDGE", - "portMappings": [ - { - "containerPort": 8086, - "hostPort": 0, - {{#networking.external_access.enable}} - "servicePort": {{networking.external_access.external_access_port}}, - {{/networking.external_access.enable}} - "protocol": "tcp", - "name": "influxdb-api", - "labels": { - "VIP_0": "/{{service.name}}:{{networking.port_api}}" - } - }, - { - "containerPort": 2003, - "hostPort": 0, - "protocol": "tcp", - "name": "influxdb-graphite", - "labels": { - "VIP_0": "/{{service.name}}:{{networking.port_graphite}}" - } - } - ], - "forcePullImage": true - } - }, - "healthChecks": [ - { - "protocol": "HTTP", - "path": "/ping", - "gracePeriodSeconds": 300, - "intervalSeconds": 60, - "timeoutSeconds": 20, - "maxConsecutiveFailures": 3, - "ignoreHttp1xx": false - } - ], - "labels": { - "DCOS_PACKAGE_VERSION": "1.4", - "DCOS_SERVICE_NAME": "{{service.name}}", - "MARATHON_SINGLE_INSTANCE_APP": "true", - {{#networking.external_access.enable}} - "HAPROXY_GROUP": "external", - "HAPROXY_0_VHOST": "{{networking.external_access.external_public_agent_ip}}", - {{/networking.external_access.enable}} - "DCOS_PACKAGE_IS_FRAMEWORK": "false" - }, - "upgradeStrategy":{ - "minimumHealthCapacity": 0, - "maximumOverCapacity": 0 - } -} diff --git a/repo/packages/I/influxdb/2/package.json b/repo/packages/I/influxdb/2/package.json deleted file mode 100644 index 51ded58e6..000000000 --- a/repo/packages/I/influxdb/2/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "packagingVersion": "3.0", - "minDcosReleaseVersion": "1.7", - "name": "influxdb", - "version": "1.4-1", - "scm": "https://github.com/influxdata/influxdb", - "maintainer": "https://dcos.io/community", - "website": "https://github.com/influxdata/influxdb", - "description": "InfluxDB is an open-source time series database developed by InfluxData as part of their time series platform. It is written in Go and optimized for fast, high-availability storage and retrieval of time series data in fields such as operations monitoring, application metrics, Internet of Things sensor data, and real-time analytics.\n\nThis package can be used alongside the DC/OS 'cadvisor' and 'grafana' packages for a cluster-wide monitoring solution.\n\nInstallation Documentation: https://github.com/dcos/examples/tree/master/cadvisor-influxdb-grafana\n\nNote: Since InfluxDB 1.3.0 the admin-api is depcrecated and no longer used\n\nNote: You need to manually create your database, e.g. with Chronograf", - "tags": ["docker", "influxdb", "database", "monitoring"], - "preInstallNotes": "This DC/OS Service is currently in preview. There may be bugs, incomplete features, incorrect documentation, or other discrepancies.\n\nAdvanced Installation options notes\n\nstorage / persistence: create local persistent volumes for internal storage files to survive across restarts or failures. \n\nstorage / host_volume: if /tmp for example is used it will try to mount /tmp/influxdb (make sure the influxdb folder exists within your host_volum /tmp) if persistence is not selected, this package can use a local volume in the host for storage, like a local directory or an NFS mount. The parameter host_volume controls the path in the host in which these volumes will be created, which MUST be the same on all nodes of the cluster.\n\nNOTE: If you didn't select persistence in the storage section, or provided a valid value for host_volume on installation,\nYOUR DATA WILL NOT BE SAVED IN ANY WAY.\n\nnetworking / port: This DC/OS service can be accessed from any other application through a NAMED VIP in the format service_name.marathon.l4lb.thisdcos.directory:port. Check status of the VIP in the Network tab of the DC/OS Dashboard (Enterprise DC/OS only).\n\nnetworking / external_access: create an entry in Marathon-LB for accessing the service from outside of the cluster\n\nnetworking / external_access_port: port to be used in Marathon-LB for accessing the service. \n\nnetworking / external_public_agent_ip: dns for Marathon-LB, typically set to your public agents public ip.\n\n Access your InfluxDB Server e.g. from your laptop with Chronograf: docker run -p 8888:8888 chronograf --influxdb-url=http://", - "postInstallNotes": "Service installed.", - "postUninstallNotes": "Service uninstalled. Note that any persisting data still exists and will need to be manually removed from the agent where the service was deployed.", - "licenses": [ - { - "name": "Apache License", - "url": "http://en.wikipedia.org/wiki/Apache_License" - } - ] -} \ No newline at end of file diff --git a/repo/packages/I/influxdb/2/resource.json b/repo/packages/I/influxdb/2/resource.json deleted file mode 100644 index 393a5d1e5..000000000 --- a/repo/packages/I/influxdb/2/resource.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "images": { - "icon-small": "https://downloads.mesosphere.com/assets/universe/000/influxdb-icon-small.png", - "icon-medium": "https://downloads.mesosphere.com/assets/universe/000/influxdb-icon-medium.png", - "icon-large": "https://downloads.mesosphere.com/assets/universe/000/influxdb-icon-large.png", - "screenshots": [ - "https://raw.githubusercontent.com/Kentik/docker-monitor/master/screenshots/influxdb-screenshot.png" - ] - }, - "assets": { - "container": { - "docker": { - "influxdb-docker": "influxdb:1.4" - } - } - } -} From 43e82317857e31a85191fa41b718e603a378913b Mon Sep 17 00:00:00 2001 From: cbaker Date: Mon, 7 Oct 2019 20:01:07 +0000 Subject: [PATCH 12/13] Revert "Revert "Merge branch 'version-3.x' of github.com:cbakersdl/universe into version-3.x"" This reverts commit 6666f4c5ab5f14a16f1f803960b2f3071bad65a3. --- repo/packages/I/influxdb/2/config.json | 131 ++++++++++++++++++ .../I/influxdb/2/marathon.json.mustache | 78 +++++++++++ repo/packages/I/influxdb/2/package.json | 20 +++ repo/packages/I/influxdb/2/resource.json | 17 +++ 4 files changed, 246 insertions(+) create mode 100644 repo/packages/I/influxdb/2/config.json create mode 100644 repo/packages/I/influxdb/2/marathon.json.mustache create mode 100644 repo/packages/I/influxdb/2/package.json create mode 100644 repo/packages/I/influxdb/2/resource.json diff --git a/repo/packages/I/influxdb/2/config.json b/repo/packages/I/influxdb/2/config.json new file mode 100644 index 000000000..5b6bdf47e --- /dev/null +++ b/repo/packages/I/influxdb/2/config.json @@ -0,0 +1,131 @@ +{ + "properties": { + "service": { + "type": "object", + "description": "DC/OS service configuration properties", + "properties": { + "name": { + "description": "Name of this service instance", + "type": "string", + "default": "influxdb" + }, + "cpus": { + "description": "CPU shares to allocate to each service instance.", + "type": "number", + "default": 0.1, + "minimum": 0.1 + }, + "mem": { + "description": "Memory to allocate to each service instance.", + "type": "number", + "default": 2048.0, + "minimum": 1024.0 + } + }, + "required": [ + "cpus", + "mem" + ] + }, + "storage": { + "type": "object", + "description": "influxdb storage configuration properties", + "properties":{ + "host_volume_influxdb": { + "description": "If using non-persistent volumes (local volumes), this sets the location of a volume on the host to be used for the influxdb service to store the contents of the influxdb. The final location will be derived from this value plus the name set in `name` (e.g. `/mnt/host_volume/service_name`). This can be a mounted NFS drive. Note that this path must be the same on all DC/OS agents. NOTE: if you don't change the default /tmp value, YOUR DATA WILL NOT BE SAVED IN ANY WAY.", + "type": "string", + "default": "/tmp" + }, + "persistence": { + "type": "object", + "description": "Enable persistent storage.", + "properties": { + "enable": { + "description": "Enable or disable persistent storage.", + "type": "boolean", + "default": false + }, + "volume_mode_influxdb": { + "description": "Choose your mode: RW, R -> default RW.", + "type": "string", + "default": "RW" + } + } + } + } + }, + "networking": { + "type": "object", + "description": "influxdb networking configuration properties", + "properties": { + "port_api": { + "description": "Port number to be used for api communication internally to the cluster.", + "type": "number", + "default": 8086 + }, + "port_graphite": { + "description": "Port number to be used for Graphite input.", + "type": "number", + "default": 2003 + }, + "external_access": { + "type": "object", + "description": "Enable access from outside the cluster through Marathon-LB.\nNOTE: this connection is unencrypted.", + "properties": { + "enable": { + "description": "Enable or disable creating a VIP for external access through a public node running Marathon-LB.", + "type": "boolean", + "default": false + }, + "external_public_agent_ip": { + "description": "For external access, dns to be used for Marathon-LB vHost: For example use your public slave elb dns.", + "type": "string", + "default": "" + }, + "external_access_port": { + "description": "For external access, port number to be used for clear communication in the external Marathon-LB load balancer", + "type": "number", + "default": 18086 + } + } + } + } + }, + "configuration": { + "type": "object", + "description": "influxdb networking configuration properties", + "properties": { + "INFLUXDB_RETENTION_ENABLED": { + "description": "Set to false to prevent InfluxDB from enforcing retention policies.", + "type": "boolean", + "default": true + }, + "INFLUXDB_RETENTION_CHECK_INTERVAL": { + "description": "The rate at which InfluxDB checks to enforce a retention policy.", + "type": "string", + "default": "30m0s" + }, + "INFLUXDB_MONITOR_STORE_DATABASE": { + "description": "The destination database for recorded statistics.", + "type": "string", + "default": "_internal" + }, + "INFLUXDB_GRAPHITE_0_ENABLED": { + "description": "Set to true to enable Graphite input.", + "type": "boolean", + "default": false + }, + "INFLUXDB_GRAPHITE_0_DATABASE": { + "description": "The name of the Graphite database that you want to write to.", + "type": "string", + "default": "graphite" + }, + "INFLUXDB_GRAPHITE_0_TEMPLATES": { + "description": "The name of the Graphite database that you want to write to.", + "type": "string", + "default": "graphite.measurement*" + } + } + } + } +} diff --git a/repo/packages/I/influxdb/2/marathon.json.mustache b/repo/packages/I/influxdb/2/marathon.json.mustache new file mode 100644 index 000000000..60d8dedcf --- /dev/null +++ b/repo/packages/I/influxdb/2/marathon.json.mustache @@ -0,0 +1,78 @@ +{ + "id": "{{service.name}}", + "cpus": {{service.cpus}}, + "mem": {{service.mem}}, + "instances": 1, + "env": { + "INFLUXDB_RETENTION_ENABLED": "{{configuration.INFLUXDB_RETENTION_ENABLED}}", + "INFLUXDB_RETENTION_CHECK_INTERVAL": "{{configuration.INFLUXDB_RETENTION_CHECK_INTERVAL}}", + "INFLUXDB_MONITOR_STORE_DATABASE": "{{configuration.INFLUXDB_MONITOR_STORE_DATABASE}}", + "INFLUXDB_GRAPHITE_0_ENABLED": "{{configuration.INFLUXDB_GRAPHITE_0_ENABLED}}", + "INFLUXDB_GRAPHITE_0_DATABASE": "{{configuration.INFLUXDB_GRAPHITE_0_DATABASE}}", + "INFLUXDB_GRAPHITE_0_TEMPLATES": "{{configuration.INFLUXDB_GRAPHITE_0_TEMPLATES}}" + }, + "container": { + "type": "DOCKER", + {{#storage.persistence.enable}} + "volumes": [{ + "containerPath": "/var/lib/influxdb", + "hostPath": "{{storage.host_volume_influxdb}}/{{service.name}}", + "mode": "{{storage.persistence.volume_mode_influxdb}}" + } + ], + {{/storage.persistence.enable}} + "docker": { + "image": "{{resource.assets.container.docker.influxdb-docker}}", + "network": "BRIDGE", + "portMappings": [ + { + "containerPort": 8086, + "hostPort": 0, + {{#networking.external_access.enable}} + "servicePort": {{networking.external_access.external_access_port}}, + {{/networking.external_access.enable}} + "protocol": "tcp", + "name": "influxdb-api", + "labels": { + "VIP_0": "/{{service.name}}:{{networking.port_api}}" + } + }, + { + "containerPort": 2003, + "hostPort": 0, + "protocol": "tcp", + "name": "influxdb-graphite", + "labels": { + "VIP_0": "/{{service.name}}:{{networking.port_graphite}}" + } + } + ], + "forcePullImage": true + } + }, + "healthChecks": [ + { + "protocol": "HTTP", + "path": "/ping", + "gracePeriodSeconds": 300, + "intervalSeconds": 60, + "timeoutSeconds": 20, + "maxConsecutiveFailures": 3, + "ignoreHttp1xx": false + } + ], + "labels": { + "DCOS_PACKAGE_VERSION": "1.4", + "DCOS_SERVICE_NAME": "{{service.name}}", + "MARATHON_SINGLE_INSTANCE_APP": "true", + {{#networking.external_access.enable}} + "HAPROXY_GROUP": "external", + "HAPROXY_0_VHOST": "{{networking.external_access.external_public_agent_ip}}", + {{/networking.external_access.enable}} + "DCOS_PACKAGE_IS_FRAMEWORK": "false" + }, + "upgradeStrategy":{ + "minimumHealthCapacity": 0, + "maximumOverCapacity": 0 + } +} diff --git a/repo/packages/I/influxdb/2/package.json b/repo/packages/I/influxdb/2/package.json new file mode 100644 index 000000000..51ded58e6 --- /dev/null +++ b/repo/packages/I/influxdb/2/package.json @@ -0,0 +1,20 @@ +{ + "packagingVersion": "3.0", + "minDcosReleaseVersion": "1.7", + "name": "influxdb", + "version": "1.4-1", + "scm": "https://github.com/influxdata/influxdb", + "maintainer": "https://dcos.io/community", + "website": "https://github.com/influxdata/influxdb", + "description": "InfluxDB is an open-source time series database developed by InfluxData as part of their time series platform. It is written in Go and optimized for fast, high-availability storage and retrieval of time series data in fields such as operations monitoring, application metrics, Internet of Things sensor data, and real-time analytics.\n\nThis package can be used alongside the DC/OS 'cadvisor' and 'grafana' packages for a cluster-wide monitoring solution.\n\nInstallation Documentation: https://github.com/dcos/examples/tree/master/cadvisor-influxdb-grafana\n\nNote: Since InfluxDB 1.3.0 the admin-api is depcrecated and no longer used\n\nNote: You need to manually create your database, e.g. with Chronograf", + "tags": ["docker", "influxdb", "database", "monitoring"], + "preInstallNotes": "This DC/OS Service is currently in preview. There may be bugs, incomplete features, incorrect documentation, or other discrepancies.\n\nAdvanced Installation options notes\n\nstorage / persistence: create local persistent volumes for internal storage files to survive across restarts or failures. \n\nstorage / host_volume: if /tmp for example is used it will try to mount /tmp/influxdb (make sure the influxdb folder exists within your host_volum /tmp) if persistence is not selected, this package can use a local volume in the host for storage, like a local directory or an NFS mount. The parameter host_volume controls the path in the host in which these volumes will be created, which MUST be the same on all nodes of the cluster.\n\nNOTE: If you didn't select persistence in the storage section, or provided a valid value for host_volume on installation,\nYOUR DATA WILL NOT BE SAVED IN ANY WAY.\n\nnetworking / port: This DC/OS service can be accessed from any other application through a NAMED VIP in the format service_name.marathon.l4lb.thisdcos.directory:port. Check status of the VIP in the Network tab of the DC/OS Dashboard (Enterprise DC/OS only).\n\nnetworking / external_access: create an entry in Marathon-LB for accessing the service from outside of the cluster\n\nnetworking / external_access_port: port to be used in Marathon-LB for accessing the service. \n\nnetworking / external_public_agent_ip: dns for Marathon-LB, typically set to your public agents public ip.\n\n Access your InfluxDB Server e.g. from your laptop with Chronograf: docker run -p 8888:8888 chronograf --influxdb-url=http://", + "postInstallNotes": "Service installed.", + "postUninstallNotes": "Service uninstalled. Note that any persisting data still exists and will need to be manually removed from the agent where the service was deployed.", + "licenses": [ + { + "name": "Apache License", + "url": "http://en.wikipedia.org/wiki/Apache_License" + } + ] +} \ No newline at end of file diff --git a/repo/packages/I/influxdb/2/resource.json b/repo/packages/I/influxdb/2/resource.json new file mode 100644 index 000000000..393a5d1e5 --- /dev/null +++ b/repo/packages/I/influxdb/2/resource.json @@ -0,0 +1,17 @@ +{ + "images": { + "icon-small": "https://downloads.mesosphere.com/assets/universe/000/influxdb-icon-small.png", + "icon-medium": "https://downloads.mesosphere.com/assets/universe/000/influxdb-icon-medium.png", + "icon-large": "https://downloads.mesosphere.com/assets/universe/000/influxdb-icon-large.png", + "screenshots": [ + "https://raw.githubusercontent.com/Kentik/docker-monitor/master/screenshots/influxdb-screenshot.png" + ] + }, + "assets": { + "container": { + "docker": { + "influxdb-docker": "influxdb:1.4" + } + } + } +} From 2a1c9f5c3a4c05d671121489925ca946bf95e36d Mon Sep 17 00:00:00 2001 From: cbaker Date: Tue, 8 Oct 2019 14:23:40 +0000 Subject: [PATCH 13/13] Revert "Revert "Upgrade Grafana to 6.4.1"" This reverts commit 5ecdc56b7644e0a4760a15e95f5df449630d31b3. --- repo/packages/G/grafana/8/config.json | 142 ++++++++++++++++++ .../G/grafana/8/marathon.json.mustache | 104 +++++++++++++ repo/packages/G/grafana/8/package.json | 23 +++ repo/packages/G/grafana/8/resource.json | 62 ++++++++ 4 files changed, 331 insertions(+) create mode 100644 repo/packages/G/grafana/8/config.json create mode 100644 repo/packages/G/grafana/8/marathon.json.mustache create mode 100644 repo/packages/G/grafana/8/package.json create mode 100644 repo/packages/G/grafana/8/resource.json diff --git a/repo/packages/G/grafana/8/config.json b/repo/packages/G/grafana/8/config.json new file mode 100644 index 000000000..bfb5c7abf --- /dev/null +++ b/repo/packages/G/grafana/8/config.json @@ -0,0 +1,142 @@ +{ + "type": "object", + "properties": { + "service": { + "type": "object", + "description": "DC/OS service configuration properties", + "properties": { + "name": { + "description": "The name of the service instance", + "type": "string", + "default": "grafana", + "title": "Service name" + }, + "user": { + "description": "The user that the service will run as.", + "type": "string", + "default": "root", + "title": "User" + }, + "service_account": { + "description": "The service account for DC/OS service authentication. This is typically left empty to use the default unless service authentication is needed. The value given here is passed as the principal of Mesos framework.", + "type": "string", + "default": "" + }, + "service_account_secret": { + "description": "Name of the Secret Store credentials to use for DC/OS service authentication. This should be left empty unless service authentication is needed.", + "type": "string", + "default": "", + "title": "Credential secret name (optional)" + }, + "mesos_api_version": { + "description": "Configures the Mesos API version to use. Possible values: V0 (non-HTTP), V1 (HTTP)", + "type": "string", + "enum": [ + "V0", + "V1" + ], + "default": "V1" + }, + "log_level": { + "description": "The log level for the DC/OS service.", + "type": "string", + "enum": [ + "OFF", + "FATAL", + "ERROR", + "WARN", + "INFO", + "DEBUG", + "TRACE", + "ALL" + ], + "default": "INFO" + } + }, + "required": [ + "name", + "user" + ] + }, + "grafana": { + "description": "grafana pod configuration properties", + "type": "object", + "properties": { + "cpus": { + "description": "Grafana pod CPU requirements", + "type": "number", + "default": 0.2 + }, + "mem": { + "description": "Grafana pod mem requirements (in MB)", + "type": "integer", + "default": 2048 + }, + "volume": { + "description": "Grafana volume requirements", + "type": "object", + "properties": { + "path": { + "description": "Location of persistent volume to store data", + "type": "string", + "default": "grafana-data" + }, + "type": { + "description": "The type of persistent volume to use, one of ROOT or MOUNT", + "type": "string", + "default": "ROOT", + "enum": [ + "ROOT", + "MOUNT", + "PATH" + ] + }, + "size": { + "description": "The size of the persistent volume in MB", + "type": "integer", + "default": 512, + "minimum": 512 + } + } + }, + "ini": { + "description": "Base64 encoded conf/grafana.ini", + "type": "string", + "media": { + "binaryEncoding": "base64", + "type": "application/x-yaml" + }, + "default": "YXBwX21vZGUgPSBwcm9kdWN0aW9uCmluc3RhbmNlX25hbWUgPSAke0hPU1ROQU1FfQpbcGF0aHNdCmRhdGEgPSAvZ3JhZmFuYS1kYXRhCjt0ZW1wX2RhdGFfbGlmZXRpbWUgPSAyNGgKbG9ncyA9IC9ncmFmYW5hLWRhdGEKcGx1Z2lucyA9IC9ncmFmYW5hLWRhdGEvcGx1Z2lucwpwcm92aXNpb25pbmcgPSBjb25mL3Byb3Zpc2lvbmluZwoK" + }, + "provisioning": { + "description": "Provisioning properties to be used", + "type": "object", + "properties": { + "datasources": { + "description": "Base64 encoded conf/provisioning/datasources/datasources.yml", + "type": "string", + "media": { + "binaryEncoding": "base64", + "type": "application/x-yaml" + }, + "default": "YXBpVmVyc2lvbjogMQoKI2RlbGV0ZURhdGFzb3VyY2VzOgojICAtIG5hbWU6IFByb21ldGhldXMKIyAgICBvcmdJZDogMQoKI2RhdGFzb3VyY2VzOgojICAtIG5hbWU6IFByb21ldGhldXMKIyAgICB0eXBlOiBwcm9tZXRoZXVzCiMgICAgYWNjZXNzOiBwcm94eQojICAgIG9yZ0lkOiAxCiMgICAgdXJsOiBodHRwOi8vcHJvbWV0aGV1cy5wcm9tZXRoZXVzLmw0bGIudGhpc2Rjb3MuZGlyZWN0b3J5OjkwOTAKIyAgICBpc0RlZmF1bHQ6IHRydWUKIyAgICBqc29uRGF0YTogeyAidGltZUludGVydmFsIjogIjMwcyIgfQo" + }, + "dashboards": { + "description": "Base64 encoded conf/provisioning/dashboards/dashboards.yml config", + "type": "string", + "media": { + "binaryEncoding": "base64", + "type": "application/x-yaml" + }, + "default": "YXBpVmVyc2lvbjogMQoK" + } + } + } + }, + "required": [ + "cpus", + "mem" + ] + } + } +} diff --git a/repo/packages/G/grafana/8/marathon.json.mustache b/repo/packages/G/grafana/8/marathon.json.mustache new file mode 100644 index 000000000..87cb33be8 --- /dev/null +++ b/repo/packages/G/grafana/8/marathon.json.mustache @@ -0,0 +1,104 @@ + +{ + "id": "{{service.name}}", + "cpus": 1.0, + "mem": 1024, + "instances": 1, + "user": "{{service.user}}", + "cmd": "export LD_LIBRARY_PATH=$MESOS_SANDBOX/libmesos-bundle/lib:$LD_LIBRARY_PATH; export MESOS_NATIVE_JAVA_LIBRARY=$(ls $MESOS_SANDBOX/libmesos-bundle/lib/libmesos-*.so); export JAVA_HOME=$(ls -d $MESOS_SANDBOX/jdk*/jre/); export JAVA_HOME=${JAVA_HOME%/}; export PATH=$(ls -d $JAVA_HOME/bin):$PATH && export JAVA_OPTS=\"-Xms256M -Xmx512M -XX:-HeapDumpOnOutOfMemoryError\" && ./bootstrap -resolve=false -template=false && ./operator-scheduler/bin/operator svc.yml", + "labels": { + "DCOS_COMMONS_API_VERSION": "v1", + "DCOS_COMMONS_UNINSTALL": "true", + "DCOS_PACKAGE_FRAMEWORK_NAME": "{{service.name}}", + "MARATHON_SINGLE_INSTANCE_APP": "true", + "DCOS_SERVICE_NAME": "{{service.name}}", + "DCOS_SERVICE_PORT_INDEX": "0", + "DCOS_SERVICE_SCHEME": "http" + }, + {{#security.secret-name}} + "container": { + "type": "MESOS", + "volumes":[ + { + "containerPath": "secrets/service-account.json", + "secret": "serviceCredential" + } + ] + }, + "secrets": { + "serviceCredential": { + "source": "{{security.secret-name}}" + } + }, + {{/security.secret-name}} + "env": { + "PACKAGE_NAME": "{{package-name}}", + "PACKAGE_VERSION": "{{package-version}}", + "PACKAGE_BUILD_TIME_EPOCH_MS": "1531343768523", + "PACKAGE_BUILD_TIME_STR": "2018-07-11T21:16:08.523025", + "FRAMEWORK_NAME": "{{service.name}}", + "FRAMEWORK_USER": "{{service.user}}", + "FRAMEWORK_PRINCIPAL": "{{service.service_account}}", + "FRAMEWORK_LOG_LEVEL": "{{service.log_level}}", + "MESOS_API_VERSION": "{{service.mesos_api_version}}", + + "GRAFANA_CPUS": "{{grafana.cpus}}", + "GRAFANA_MEM": "{{grafana.mem}}", + "GRAFANA_VOLUME": "{{grafana.volume.path}}", + "GRAFANA_VOLUME_TYPE": "{{grafana.volume.type}}", + "GRAFANA_VOLUME_SIZE": "{{grafana.volume.size}}", + "GRAFANA_INI": "{{grafana.ini}}", + "GRAFANA_DSP": "{{grafana.provisioning.datasources}}", + "GRAFANA_DBP": "{{grafana.provisioning.dashboards}}", + + "NODE_COUNT": "{{node.count}}", + "NODE_PLACEMENT": "{{{node.placement_constraint}}}", + + "NODE_CPUS": "{{node.cpus}}", + "NODE_MEM": "{{node.mem}}", + "NODE_DISK": "{{node.disk}}", + "NODE_DISK_TYPE": "{{node.disk_type}}", + + "JAVA_URI": "{{resource.assets.uris.jre-tar-gz}}", + "EXECUTOR_URI": "{{resource.assets.uris.executor-zip}}", + "BOOTSTRAP_URI": "{{resource.assets.uris.bootstrap-zip}}", + "GRAFANA_URI": "{{resource.assets.uris.grafana-tar-gz}}", + {{#security.secret-name}} + "DCOS_SERVICE_ACCOUNT_CREDENTIAL": "secrets/service-account.json", + "MESOS_MODULES": "{\"libraries\":[{\"file\":\"libmesos-bundle\/lib\/mesos\/libdcos_security.so\",\"modules\":[{\"name\": \"com_mesosphere_dcos_ClassicRPCAuthenticatee\"},{\"name\":\"com_mesosphere_dcos_http_Authenticatee\",\"parameters\":[{\"key\":\"jwt_exp_timeout\",\"value\":\"5mins\"},{\"key\":\"preemptive_refresh_duration\",\"value\":\"30mins\"}]}]}]}", + "MESOS_AUTHENTICATEE": "com_mesosphere_dcos_ClassicRPCAuthenticatee", + "MESOS_HTTP_AUTHENTICATEE": "com_mesosphere_dcos_http_Authenticatee", + {{/security.secret-name}} + "LIBMESOS_URI": "{{resource.assets.uris.libmesos-bundle-tar-gz}}" + }, + "uris": [ + "{{resource.assets.uris.bootstrap-zip}}", + "{{resource.assets.uris.jre-tar-gz}}", + "{{resource.assets.uris.scheduler-zip}}", + "{{resource.assets.uris.libmesos-bundle-tar-gz}}", + "{{resource.assets.uris.svc}}" + ], + "upgradeStrategy":{ + "minimumHealthCapacity": 0, + "maximumOverCapacity": 0 + }, + "healthChecks": [ + { + "protocol": "MESOS_HTTP", + "path": "/v1/health", + "gracePeriodSeconds": 900, + "intervalSeconds": 30, + "portIndex": 0, + "timeoutSeconds": 30, + "maxConsecutiveFailures": 0 + } + ], + "portDefinitions": [ + { + "port": 0, + "protocol": "tcp", + "name": "api", + "labels": { "VIP_0": "/api.{{service.name}}:80" } + } + ] +} diff --git a/repo/packages/G/grafana/8/package.json b/repo/packages/G/grafana/8/package.json new file mode 100644 index 000000000..0db5b78f8 --- /dev/null +++ b/repo/packages/G/grafana/8/package.json @@ -0,0 +1,23 @@ +{ + "packagingVersion": "4.0", + "upgradesFrom": [ + "*" + ], + "downgradesTo": [ + "*" + ], + "minDcosReleaseVersion": "1.11", + "name": "grafana", + "version": "5.5.0-6.4.1", + "maintainer": "https://dcos.io/community", + "description": "Grafana on DC/OS", + "selected": false, + "framework": true, + "tags": [ + "grafana", + "monitoring", + "visualization" + ], + "postInstallNotes": "DC/OS Grafana is being installed!", + "postUninstallNotes": "DC/OS Grafana is being uninstalled." +} diff --git a/repo/packages/G/grafana/8/resource.json b/repo/packages/G/grafana/8/resource.json new file mode 100644 index 000000000..d83cda090 --- /dev/null +++ b/repo/packages/G/grafana/8/resource.json @@ -0,0 +1,62 @@ +{ + "assets": { + "uris": { + "jre-tar-gz": "https://downloads.mesosphere.com/java/server-jre-8u192-linux-x64.tar.gz", + "libmesos-bundle-tar-gz": "https://downloads.mesosphere.com/libmesos-bundle/libmesos-bundle-1.12.0.tar.gz", + "bootstrap-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/bootstrap.zip", + "executor-zip": "http://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/executor.zip", + "scheduler-zip": "https://s3-us-west-1.amazonaws.com/mbgl-bucket/sdk/0.42.1/operator-scheduler.zip", + "svc": "https://s3-us-west-2.amazonaws.com/dcos-objects/grafana/8/svc.yml", + "grafana-tar-gz": "https://dl.grafana.com/oss/release/grafana-6.4.1.linux-amd64.tar.gz" + } + }, + "images": { + "icon-small": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-small.png", + "icon-medium": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-medium.png", + "icon-large": "https://downloads.mesosphere.com/assets/universe/000/grafana-icon-large.png", + "screenshots": [ + "https://prometheus.io/assets/grafana_prometheus.png", + "https://grafana.com/blog/img/docs/v45/query_inspector.png" + ] + }, + "cli": { + "binaries": { + "darwin": { + "x86-64": { + "contentHash": [ + { + "algo": "sha256", + "value": "c459d2109b31fc0b423f8cacd49df855ef898e63609f7050957f4a0e044d5432" + } + ], + "kind": "executable", + "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli-darwin" + } + }, + "linux": { + "x86-64": { + "contentHash": [ + { + "algo": "sha256", + "value": "e580ee8b71c0c26b1a1a605ca09cbd3528a2c031a8de11519024ccbbce862339" + } + ], + "kind": "executable", + "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli-linux" + } + }, + "windows": { + "x86-64": { + "contentHash": [ + { + "algo": "sha256", + "value": "9135f9456a40cd53e27e73e44fc94c1d4cbf27d9b59f2b47d82bad3ae0f8c714" + } + ], + "kind": "executable", + "url": "https://downloads.mesosphere.com/dcos-commons/artifacts/0.42.1/dcos-service-cli.exe" + } + } + } + } +}