Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Olaf
    @olafmol
    @larryon if on DC/OS you can add credentials like URI’s inside the “dialects” part of the vamp-workflow-javascript.yml artifact, like described here: https://vamp.io/documentation/using-vamp/v0.9.5/dialects/#dc-os-marathon-dialect
    Ciprian Larion
    @larryon
    Yep, it's on DC/OS and we already tried the "dialects" part and it's not working
    Olaf
    @olafmol
    could you send me (olaf@vamp.io) the details, version of Vamp, DC/OS, cloud/platform, YAML you tried etc so we can debug
    Rogier Wensink
    @Wensink
    @olafmol the example given there is for a blueprint in Vamp itself. There is no example for using it in yml
    Olaf
    @olafmol
    Hi Rogier, placing this in your workflow definition should achieve the same.
    We have workflow definitions that pull from private repos by adding this: dialects:
    marathon:
    fetch:
    - extract: true
      uri: https://s3.eu-central-1.amazonaws.com/xxxxxx/docker.tar.gz
    Rogier Wensink
    @Wensink
    Thanks for that. But somehow it isn't working. My code now looks like this:
    ---
    name: vamp-workflow-javascript
    kind: breed
    deployable: wehkamp/blaze-vamp-workflow:1.0
    ports:
      webport: 8080/http
    environment_variables:
    vga-${config://vamp.namespace}-*
    arguments:
    - privileged: true
    health_checks:
      port: webport
      initial_delay: 10s
      timeout: 5s
      interval: 30s
      failures: 5
      protocol: HTTP
    dialects:
      marathon:
        fetch:
          uri: file:///etc/.dockercfg
    Olaf
    @olafmol
    What are the errors you see in the VGA container log?
    Rogier Wensink
    @Wensink
    It doesn't come that far. This is from the log of Vamp itself:
    12:38:21.264    INFO    io.vamp.operation.workflow.WorkflowActor    Triggering workflow: 'kibana'.
    12:38:21.265    INFO    io.vamp.operation.workflow.WorkflowActor    Triggering workflow: 'allocation'.
    12:38:21.265    INFO    io.vamp.operation.workflow.WorkflowActor    Triggering workflow: 'metrics'.
    12:38:21.265    INFO    io.vamp.operation.workflow.WorkflowActor    Triggering workflow: 'health'.
    12:38:21.265    INFO    io.vamp.operation.workflow.WorkflowActor    Triggering workflow: 'vga'.
    12:38:21.266    ERROR    io.vamp.common.notification.Notification    Artifact cannot be found: 'vamp-workflow-javascript'.
    12:38:21.266    ERROR    io.vamp.common.notification.Notification    Artifact cannot be found: 'vamp-workflow-javascript'.
    12:38:21.266    ERROR    io.vamp.common.notification.Notification    Artifact cannot be found: 'vamp-workflow-javascript'.
    12:38:21.266    ERROR    io.vamp.common.notification.Notification    Artifact cannot be found: 'vamp-workflow-javascript'.
    12:38:21.266    ERROR    io.vamp.common.notification.Notification    Artifact cannot be found: 'vamp-workflow-javascript'.
    Olaf
    @olafmol
    hmmm '12:38:21.266 ERROR io.vamp.common.notification.Notification Artifact cannot be found: 'vamp-workflow-javascript’.’ suggests that the vamp-workflow-javascript artifact cannot be found? Is it available in the package?
    Rogier Wensink
    @Wensink
    Yes it is. I just removed the whole dialects part, and all workflows are starting. But now give the error again that they have a pull access denied.
    So for the artifact not being found, it must be something with the coding of the dialects part
    Olaf
    @olafmol
    @Wensink @larryon we currently don’t support a dialect section inside the breed level, only at the breed level, which consequently needs to be defined in the workflow/blueprint definition
    Rogier Wensink
    @Wensink
    Thanks @olafmol. We'll try something else
    Olaf
    @olafmol
    You could add it to the workflow definition.
    HarryKroes
    @HarryKroes
    Hello, we try to test the rollback, generated a 503, this can be found via Kibana in ElasticSearch but the workflow doesn't, he always returns errorCount 0; the ElasticSearch-request executed via curl gives the correct returns (total.hits > 0); would you be so kind to check if our javascript-code is correct?

    'use strict';
    let _ = require('highland');
    let vamp = require('vamp-node-client');
    let http = new vamp.Http();
    const exec = require('shelljs').exec;

    let marathonHost = process.env.MARATHON_HOST || 'marathon.service.consul';
    var $gateway = process.env.GATEWAY;
    var $service1 = process.env.SERVICE_CURRENT;
    var $service2 = process.env.SERVICE_NEXT;
    var $deployment_name = process.env.DEPLOYMENT_NAME;
    var $period = Number(process.env.PERIOD); // seconds
    var $window = Number(process.env.WINDOW); // seconds

    _(http.get('http://' + marathonHost + ':8080/v2/apps/vamp/tasks').then(JSON.parse)).each(function(taskdetails) {
    let vampip = taskdetails.tasks[0].host;
    let vampport = taskdetails.tasks[0].ports[0];
    console.log('Using VAMP at ' + vampip + ':' + vampport);
    let api = new vamp.Api({host: 'http://' + vampip + ':' + vampport});
    let metrics = new vamp.ElasticsearchMetrics(api);
    let headers = {'Accept': 'application/json', 'Content-Type': 'application/json'};
    global.api = api;
    global.metrics = metrics;
    global.headers = headers;
    global.vampip = vampip;
    global.vampport = vampport;
    });

    var run = function () {
    api.get('gateways/' + $gateway).each(function (gateway) {
    metrics.count({ft: gateway.lookup_name}, {ST: {gte: 500}}, $window).each(function (errorCount) {
    console.log('errorCount: ' + errorCount);
    if (errorCount > 0)
    rollback(gateway);
    else
    increase(gateway, gateway['routes'][$service1]['weight']);
    });
    });
    };

    Or do you have other suggestions?
    Olaf
    @olafmol
    can you check the the VWA workflow logs and see what is reported there? Can the workflow script reach (the correct) ES cluster?
    Rogier Wensink
    @Wensink
    We are now looking into how to migrate from the current setup to Vamp and need to do it with zero downtime. Our current proxy has a bind on port 80 (the same Vamp Gateway Agent needs).
    What would be a good strategy to follow with no impact for customers?
    Olaf
    @olafmol
    @Wensink you can add a route to your existing proxy that points to the VGA and migrate traffic to the VGA once you are happy with the Vamp setup. It gets more complicated if you need to run the VGA and the existing proxy on the same nodes.
    Olaf
    @olafmol
    @Wensink does this help?
    ujjain
    @ujjain
    I keep on getting this error: info marathon_driver marathon_driver:ERROR NoSuchElementException
    Not sure what this means.
    Olaf
    @olafmol
    Can you give us some info on how to reproduce?
    Rogier Wensink
    @Wensink
    @olafmol During my holiday the colleagues came up with a good strategy to migrate. Thanks for the help so far
    Olaf
    @olafmol
    Good to hear! :)
    Brian Curtich
    @briancurt
    any way to install vamp v1.0.0 without having to register for the Enterprise Trial? as stated on the quickstart... I just want to use the v1.0.0 but can't find an installation guide like this https://vamp.io/documentation/installation/v0.9.4/dcos/ anymore... I can't even see the 1.0.0 version on Dockerhub - any clue?
    Olaf
    @olafmol
    Hi @briancurt we decided to shift focus to our commercial Vamp enterprise offering as our main platform. It’s “open core” so you can still go into our public GitHub repos and build the latest builds of the single tenant Vamp from there. The main reason for this is that we didn’t see enough commercial traction and revenue from the open source version happening. We’re also thinking about a “free/light” version of Vamp EE but want more data and feedback on what this should entitle for users. Would love to hear your thoughts on that. Pm me to discuss options, I’d love to understand more! :smile:
    Brian Curtich
    @briancurt
    hey @olafmol Thanks a lot for the explanation. We will go ahead with the free trial and see how it goes.
    Olaf
    @olafmol
    Cool! If you need anything let me know :)
    Rogier Wensink
    @Wensink
    Our dev environment is now equipped with Vamp, though due to transition we still use our own proxy (instead of the VGA). At night this env is stopped and started again in the morning.
    When everything is started, the env is working fine. No errors there. Also all services are reported healthy in govamp in Marathon. But the dashboard shows a blinking failed sign for every service. Why is this happening? And what can we do about it?
    Olaf
    @olafmol
    @Wensink it's probably something timing out and losing state. Could you try to update the scale in Vamp and see if Vamp gets the correct state again?
    Olaf
    @olafmol
    @Wensink you are running version 0.9.5.6?
    can you check what config settings you run for vamp.operation and persistence and container-driver.marathon for response-timeout and synchronisation periods?
    Olaf
    @olafmol
    anything you can see in the log that might be related?
    Rogier Wensink
    @Wensink
    When I scale the service, it gets healthy again.
    Yes, that is our current version. I'll check those params
    Olaf
    @olafmol
    Ok.
    Rogier Wensink
    @Wensink
    I figured out that when I only click the marker to edit the scale, and in the popup click 'save' (without changing anything) the state in the dashboard goes to green.
    What is the api call that is being done when you hit the save button? When we know this, we can do the call in the morning when the environment is started again
    Olaf
    @olafmol
    I will let you know asap. For my clarification: if your restart Vamp it doesn’t pick up the running state from marathon? Consistently or infrequently? What more is restarted?
    Olaf
    @olafmol
    @Wensink the scale can be set using this info: https://vamp.io/documentation/api/v0.9.5/api-deployment-scales/
    I guess in your case getting the scale and then setting it again would do the job to get in sync again. It’s a hack though, as the out-of-sync should not happen normally.
    Rogier Wensink
    @Wensink
    Thanks @olafmol. I'll go with that info.
    When all systems are up, this is no issue at all. But during the night we shutdown our env (down for 12 hours). The configs don't have these high values
    Olaf
    @olafmol
    Would it help to shutdown vamp before shutting down the services?
    You could try and increase the timeouts to a value higher than 12hrs. Vamp tries to correct the deployment state, when it times out it throws a failed state. Increasing the time out makes it try longer :smile:
    Rogier Wensink
    @Wensink
    Increasing timeouts might help, too. But that would mean something like 60 hours, due to weekends :-)
    Olaf
    @olafmol
    ah i guess then shutting down Vamp before shutting down the services would work best i guess :)
    Olaf
    @olafmol
    of course make sure the persistence data and K/V store is available when restarting Vamp, then Vamp should recover the services/containers from this data
    aviratna
    @aviratna
    Hi, need small help wanted to understand if VAMP supports integration with Docker using remote docker API ? I am trying to build using source code from Github. Anyone using VAMP with docker ?
    Olaf
    @olafmol
    Hi Aviratna, vamp is tested and certified against marathon and Kubernetes schedulers. Of course we’re open for PR’s to support the remote docker API.
    aviratna
    @aviratna
    @olafmol Thanks for the response. I will submit a PR. Just to give background I was working on VMWare Integrated Containers which supports remote docker API and VMWare integrated Container allows you to create (container VM) directly on Hypervisor which can co exists with VM. It’s similar to AWS Fargate.