diff --git a/repo/packages/G/grafana/7/config.json b/repo/packages/G/grafana/7/config.json new file mode 100644 index 000000000..bfb5c7abf --- /dev/null +++ b/repo/packages/G/grafana/7/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/7/marathon.json.mustache b/repo/packages/G/grafana/7/marathon.json.mustache new file mode 100644 index 000000000..87cb33be8 --- /dev/null +++ b/repo/packages/G/grafana/7/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/7/package.json b/repo/packages/G/grafana/7/package.json new file mode 100644 index 000000000..c3d8dfa8e --- /dev/null +++ b/repo/packages/G/grafana/7/package.json @@ -0,0 +1,23 @@ +{ + "packagingVersion": "4.0", + "upgradesFrom": [ + "*" + ], + "downgradesTo": [ + "*" + ], + "minDcosReleaseVersion": "1.11", + "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..920c910b0 --- /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-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", + "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" + } + } + } + } +} 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" + } + } + } + } +} 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" + } + } + } +}