cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
752
Views
0
Helpful
0
Replies

ACI Kubernetes Contracts - noironetworks/acc-provision/ACI Containers

simon.birtles
Level 1
Level 1

I am looking at the Cisco ACI Containers/acc-provision tool vs Calico for ACI/K8 integrations. In terms of the noironetworks acc-provision/Cisco ACI Containers tools using the Cisco ACI containers I find that its not easy to understand what the intent is in terms of configuration for an internal EPG in a separate tenant to communicate with a K8 service IP defined in a L3Out. 

 

So for example, K8 running with a app deployment of 3 containers and configured with a loadbalancer service. The acc-provision tool has setup ACI and the acc-provision output file has been applied to via kubectl apply. The L3Out/EPGs etc are all in the common tenant. When the deployment is created for the app, the correct service graphs/contracts are all setup correctly and as expected the service (container app) can be successfully accessed from outside the fabric via the service host address. All good. 

 

What is not clear is the intent in relation to how an internal EPG (i.e. tn-ATEN/ap-AAP/epg-AEPG) not in the same tenant or vrf as the deployed L3Out/VRF/etc (common as above) should communicate with the application via the service IP. Most of the objects created by the ACI containers on the APIC are 'managed' and should any configuration of these objects change, the ACI containers will change the configuration back to the original state. So for example, if I change the subnet settings for the host route in the L3Out EPG to allow the advertisement of the service host IP (enable Shared Security Import Subnet) to another VRF, the change is immediately reversed by the ACI containers. This prevents the route leaking of the host IP. In the same way, if I change the contract scope for the K8 app service (the contract created by the ACI Containers when the K8 app was deployed) from VRF to Global to be able to use this contract in another tenant, the modification is reversed immediately.

 

I did take a look at the configuration option kube_config\snat_operator\contract_scope: global which does not seem to apply here although I did try this option and reapply the configuration but this does not change the app contract scope.

 

There is little documentation around the Cisco (noironetworks) / ACI Containers hence the question. 

 

Does anybody understand what the intent is to provide this EPG to K8 Service IP communication ? I would have expected just allowing the contract to be Global and not the default VRF would be the obvious but as above I can't do this.

 

ACI 4.2(6h)

acc-provision 5.1.3.1

K8 1.2

 

Thanks.

0 Replies 0

Save 25% on Day-2 Operations Add-On License