Hmm, yes was already thinking of changing the source, but a wrapper is 
indeed better. Anyone have already something like this lying around? So 
I do not need to start from scratch :)




-----Original Message-----
From: Jie Yu [mailto:yujie....@gmail.com] 
Sent: zaterdag 4 mei 2019 0:14
To: user
Subject: Re: How should I pass the cni_args / ip, injecting lables #5592 
not working

ah. I think one workaround I can think of is to write a wrapper CNI 
plugin that understand args."org.apache.mesos", and set "cni.ips" 
properly for the macvtap plugin.


This is a common pattern in CNI called delegation before CNI chaining 
was proposed.

- Jie

On Fri, May 3, 2019 at 11:14 AM Marc Roos <m.r...@f1-outsourcing.eu> 
wrote:




         >      Yet the cni plugin is afaik not even looking at the  
        args.'org.apache.mesos'.network_info configuration,
         >      for the cni_args it looks e.g. at args.cni.ips (or an 
environment 
        variable)
         >
         >
         >That depends on the CNI plugin you're using. CNI is a spec 
between CO 
        (container orchestration system
         > like K8s, mesos, etc.) and NP (network providers like calico, 
cisco, 
        juniper, etc.).
         >
         >`args` field is the place where CO can inject CO specific 
information. 
        Some CNI plugin might use those CO
         > specific information to perform some special operations. 
Although I 
        don't like it, this is just how the
         > spec has evolved. The use of CNI_ARGS has been deprecated 
        
<https://github.com/containernetworking/cni/blob/master/CONVENTIONS.md#cni_args>
         > in favor of using `args` field.
         >
         >
         >      Or is it possible to reference in the cni network json 
config 
        files a key of args.'org.apache.mesos'.network_info?
         >
         >
         >I don't really follow this. Can you state your use case?
        
        Basically I want to assign a static ip via mesos/marathon. The only 
way 
        I can get this to work now is via
         the cni network configuration something like this. But I do not 
want to 
        start creating a cni network
         config file for every app.
        
        
        {
          "name": "test-macvtap",
          "type": "macvtap",
          "master": "eth1",
          "hostrouteif": "macvtap1",
          "ipam": {
            "type": "host-local",
            "subnet": "192.168.122.0/24",
            "rangeStart": "192.168.122.171",
            "rangeEnd": "192.168.122.179",
            "routes": [ { "dst": "192.168.122.22/32", "gw": "0.0.0.0" },
                        { "dst": "192.168.10.10/32", "gw": "0.0.0.0" },
                        { "dst": "192.168.10.22/32", "gw": "0.0.0.0" }]
          },
          "dns": { "nameservers": ["192.168.10.10"] },
          "args": {
            "cni": { "ips": ["192.168.122.177"] }
        }
        
        
        


Reply via email to