This repository has been archived by the owner on Oct 23, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 427
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
9 changed files
with
790 additions
and
3 deletions.
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,210 @@ | ||
{ | ||
"type": "object", | ||
"properties": { | ||
"service": { | ||
"type": "object", | ||
"description": "DC/OS service configuration properties", | ||
"properties": { | ||
"name": { | ||
"description": "The name of the service instance", | ||
"type": "string" | ||
}, | ||
"namespace": { | ||
"description": "The namespace for this service instance", | ||
"type": "string" | ||
}, | ||
"mesosApiVersion": { | ||
"description": "Configures the Mesos API version to use. Possible values: V0 (non-HTTP), V1 (HTTP)", | ||
"type": "string", | ||
"enum": [ | ||
"V0", | ||
"V1" | ||
], | ||
"default": "V1" | ||
}, | ||
"mesosAuthNZ": { | ||
"title": "Mesos authNZ control for the pool scheduler", | ||
"description": "Defines whether the pool schedulers should try to authorize with Mesos or not. Set to non-empty string by the apiserver in case when authNZ should be enabled", | ||
"type": "string", | ||
"default": "" | ||
}, | ||
"healthcheckGracePeriod": { | ||
"title": "Pool tasks healthcheck grace period (in seconds)", | ||
"description": "Defines the period of time after start of the container when failed healthchecks will be ignored", | ||
"type": "string" | ||
}, | ||
"healthcheckInterval": { | ||
"title": "Pool tasks healthcheck interval (in seconds)", | ||
"description": "Defines how often should the healthcheck be executed. At most one healthcheck is going to execute at any given time.", | ||
"type": "string" | ||
}, | ||
"healthcheckMaxfail": { | ||
"title": "Pool tasks healthcheck maximum number of consecutive failures before declaring as unhealthy", | ||
"description": "Defines how many failures in a row mark the task as failed and force Mesos to kill it", | ||
"type": "string" | ||
}, | ||
"healthcheckCmdExecutionTimeout": { | ||
"title": "Maximum amount of time that the healthcheck command itself is allowed to execute", | ||
"description": "This is the amount of that that the actual healthcheck command is allowed to execute.", | ||
"type": "string" | ||
}, | ||
"healthcheckTimeout": { | ||
"title": "Maximum amount of time that Mesos will wait for the healthcheck container to finish executing", | ||
"description": "This parameter should be bigger than healthcheckCheckTimeout as the execution time as seen by Mesos includes the container setup as well as the time spent by the healthcheck executing the test.", | ||
"type": "string" | ||
}, | ||
"specFile": { | ||
"description": "The name of the service spec yaml file.", | ||
"type": "string", | ||
"default": "svc.yml" | ||
}, | ||
"secretName": { | ||
"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": "" | ||
}, | ||
"user": { | ||
"description": "The user that the service will run as.", | ||
"type": "string", | ||
"default": "root" | ||
}, | ||
"principal": { | ||
"description": "The principal for the service instance.", | ||
"type": "string", | ||
"default": "" | ||
}, | ||
"metricsPrefix": { | ||
"title": "The metrics prefix", | ||
"description": "The common prefix shared by all the metrics generated by Edge-LB", | ||
"type": "string", | ||
"default": "dcos" | ||
}, | ||
"deploymentPath": { | ||
"title": "Edge-LB's base deployment path", | ||
"description": "The base deployment path to which Edge-LB has been deployed", | ||
"type": "string", | ||
"default": "/dcos-edgelb" | ||
}, | ||
"disableTLSAuth": { | ||
"title": "Disable TLS auth", | ||
"description": "Enable (default) or disable TLS auth for lbmgr", | ||
"type": "boolean", | ||
"default": false | ||
} | ||
} | ||
}, | ||
"edgelbPool": { | ||
"description": "Template pod configuration properties", | ||
"type": "object", | ||
"properties": { | ||
"name": { | ||
"type": "string" | ||
}, | ||
"role": { | ||
"type": "string" | ||
}, | ||
"count": { | ||
"title": "Node count", | ||
"description": "Number of Template pods to run", | ||
"type": "integer" | ||
}, | ||
"placementConstraints": { | ||
"title": "Placement constraints", | ||
"description": "Marathon-style placement constraints for nodes. Public example: 'public_ip:CLUSTER:true,hostname:UNIQUE'", | ||
"type": "string" | ||
}, | ||
"cpus": { | ||
"title": "CPU count", | ||
"description": "Template pod CPU requirements", | ||
"type": "number" | ||
}, | ||
"mem": { | ||
"title": "Memory size (MB)", | ||
"description": "Template pod mem requirements (in MB)", | ||
"type": "integer" | ||
}, | ||
"disk": { | ||
"title": "Disk size (MB)", | ||
"description": "Template pod persistent disk requirements (in MB)", | ||
"type": "integer" | ||
}, | ||
"ports": { | ||
"type": "string" | ||
}, | ||
"autoCertEnabled": { | ||
"type": "string" | ||
}, | ||
"secrets": { | ||
"type": "array", | ||
"items": { | ||
"type": "object", | ||
"properties": { | ||
"secret": { | ||
"type": "string" | ||
}, | ||
"file": { | ||
"type": "string" | ||
}, | ||
"index": { | ||
"type": "integer" | ||
} | ||
} | ||
} | ||
}, | ||
"networks": { | ||
"type": "array", | ||
"items": { | ||
"type": "object", | ||
"properties": { | ||
"name": { | ||
"type": "string" | ||
}, | ||
"labels": { | ||
"type": "string" | ||
}, | ||
"index": { | ||
"type": "integer" | ||
} | ||
} | ||
} | ||
}, | ||
"env": { | ||
"type": "array", | ||
"description": "Environment variables to pass through to the loadbalancer", | ||
"items": { | ||
"type": "object", | ||
"properties": { | ||
"key": { | ||
"description": "The name of the environment variable", | ||
"type": "string" | ||
}, | ||
"value": { | ||
"description": "The value of the environment variable", | ||
"type": "string" | ||
} | ||
} | ||
} | ||
} | ||
}, | ||
"required": [ | ||
"cpus", | ||
"mem", | ||
"disk", | ||
"count" | ||
] | ||
}, | ||
"variables": { | ||
"type": "object", | ||
"properties": { | ||
"secrets": { | ||
"type": "string", | ||
"default": "secrets" | ||
}, | ||
"envfile": { | ||
"type": "string", | ||
"default": "envfile" | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
{ | ||
"id": "{{service.name}}", | ||
"cpus": 1.0, | ||
"mem": 2048, | ||
"instances": 1, | ||
"constraints": [["public_ip", "UNLIKE", "true"]], | ||
"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*/); 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 && ./edgelb-pool-scheduler/bin/edgelb-pool ./edgelb-pool-scheduler/{{service.specFile}}", | ||
"container": { | ||
"type": "MESOS" | ||
}, | ||
"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.secretName}} | ||
"secrets": { | ||
"serviceCredential": { | ||
"source": "{{service.secretName}}" | ||
} | ||
}, | ||
{{/service.secretName}} | ||
"env": { | ||
"PACKAGE_NAME": "edgelb-pool", | ||
"PACKAGE_VERSION": "1.6.0", | ||
"PACKAGE_BUILD_TIME_EPOCH_MS": "1591826956768", | ||
"PACKAGE_BUILD_TIME_STR": "Wed Jun 10 2020 22:09:16 +0000", | ||
"MESOS_API_VERSION": "{{service.mesosApiVersion}}", | ||
"FRAMEWORK_NAME": "{{service.name}}", | ||
"FRAMEWORK_PRINCIPAL": "{{service.principal}}", | ||
"FRAMEWORK_USER": "{{service.user}}", | ||
"POOL_RESERVED_ROLE": "{{{edgelbPool.role}}}", | ||
"POOL_NAME": "{{edgelbPool.name}}", | ||
"POOL_CONSTRAINTS": "{{{edgelbPool.placementConstraints}}}", | ||
"POOL_COUNT": "{{edgelbPool.count}}", | ||
"POOL_CPUS": "{{edgelbPool.cpus}}", | ||
"POOL_MEM": "{{edgelbPool.mem}}", | ||
"POOL_DISK": "{{edgelbPool.disk}}", | ||
"POOL_PORTS": "{{edgelbPool.ports}}", | ||
"POOL_AUTOCERT_ENABLED": "{{edgelbPool.autoCertEnabled}}", | ||
"POOL_IMAGE": "{{resource.assets.container.docker.image}}", | ||
"POOL_RELATIVE_VOLUME_PATH": "persistent", | ||
"POOL_SECRETS_RELATIVE_PATH": "{{variables.secrets}}", | ||
"POOL_ENVFILE_RELATIVE_PATH": "{{variables.envfile}}", | ||
"JAVA_URI": "{{resource.assets.uris.jre-tar-gz}}", | ||
{{#service.secretName}} | ||
{{#service.mesosAuthNZ}} | ||
"DCOS_SECRET_NAME": "{{service.secretName}}", | ||
"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.mesosAuthNZ}} | ||
{{/service.secretName}} | ||
{{#edgelbPool.env}} | ||
"TASKCFG_ALL_{{key}}": "{{value}}", | ||
{{/edgelbPool.env}} | ||
{{#edgelbPool.secrets}} | ||
"PARSESECRET_SECRET{{index}}": "{{secret}}", | ||
"PARSESECRET_FILE{{index}}": "{{variables.secrets}}/{{file}}", | ||
{{/edgelbPool.secrets}} | ||
{{#edgelbPool.networks}} | ||
"PARSENETWORK_NAME{{index}}": "{{name}}", | ||
"PARSENETWORK_LABELS{{index}}": "{{labels}}", | ||
{{/edgelbPool.networks}} | ||
"LIBMESOS_URI": "{{resource.assets.uris.libmesos-bundle-tar-gz}}", | ||
"CONTAINER_LOGGER_LOGROTATE_MAX_STDOUT_SIZE": "25MB", | ||
"CONTAINER_LOGGER_LOGROTATE_MAX_STDERR_SIZE": "25MB", | ||
"CONTAINER_LOGGER_LOGROTATE_STDOUT_OPTIONS": "rotate 4", | ||
"CONTAINER_LOGGER_LOGROTATE_STDERR_OPTIONS": "rotate 4", | ||
"POOL_HEALTHCHECK_GRACE_PERIOD": "{{edgelbPool.healthcheckGracePeriod}}", | ||
"POOL_HEALTHCHECK_INTERVAL": "{{edgelbPool.healthcheckInterval}}", | ||
"POOL_HEALTHCHECK_MAXFAIL": "{{edgelbPool.healthcheckMaxfail}}", | ||
"POOL_HEALTHCHECK_TIMEOUT": "{{edgelbPool.healthcheckTimeout}}", | ||
"POOL_HEALTHCHECK_CMD_EXECUTION_TIMEOUT": "{{edgelbPool.healthcheckCmdExecutionTimeout}}", | ||
"METRICS_PREFIX": "{{service.metricsPrefix}}", | ||
"DEPLOYMENT_PATH": "{{service.deploymentPath}}", | ||
"ALLOW_REGION_AWARENESS": "true", | ||
"DISABLE_TLS_AUTH": "{{service.disableTLSAuth}}" | ||
}, | ||
"uris": [ | ||
"{{resource.assets.uris.jre-tar-gz}}", | ||
"{{resource.assets.uris.scheduler-zip}}", | ||
"{{resource.assets.uris.libmesos-bundle-tar-gz}}", | ||
"{{resource.assets.uris.bootstrap-zip}}" | ||
], | ||
"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" } | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"packagingVersion": "3.0", | ||
"minDcosReleaseVersion": "1.10", | ||
"name": "edgelb-pool", | ||
"version": "v1.6.0", | ||
"maintainer": "support@mesosphere.io", | ||
"description": "EdgeLB Pool on DC/OS", | ||
"selected": false, | ||
"framework": true, | ||
"tags": [ | ||
"edgelb-pool" | ||
], | ||
"postInstallNotes": "DC/OS EdgeLB Pool is being installed!", | ||
"postUninstallNotes": "DC/OS EdgeLB Pool has been uninstalled." | ||
} |
Oops, something went wrong.