Remove support of OC < 4.0.

Related story: PROD-24611

Change-Id: I8da24cf70d4eb747aafb3a1c7b5942ecfc029111
diff --git a/.kitchen.yml b/.kitchen.yml
index be4fc3c..3c5f6be 100644
--- a/.kitchen.yml
+++ b/.kitchen.yml
@@ -72,11 +72,6 @@
       pillars-from-files:
         kubernetes.sls: tests/pillar/pool_cluster_with_domain.sls
 
-  - name: master_contrail
-    provisioner:
-      pillars-from-files:
-        kubernetes.sls: tests/pillar/master_contrail.sls
-
   - name: master_contrail4_0
     provisioner:
       pillars-from-files:
diff --git a/.travis.yml b/.travis.yml
index d8b6989..9397e45 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,18 +17,15 @@
 env:
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2016.3/salt:2018_11_19 SUITE=master-cluster
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2016.3/salt:2018_11_19 SUITE=pool-cluster
-  - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2016.3/salt:2018_11_19 SUITE=master-contrail
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2016.3/salt:2018_11_19 SUITE=master-contrail4-0
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2016.3/salt:2018_11_19 SUITE=pool-contrail4-0
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2016.3/salt:2018_11_19 SUITE=common-storageclass
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2017.7/salt:2018_11_19 SUITE=master-cluster
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2017.7/salt:2018_11_19 SUITE=pool-cluster
-  - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2017.7/salt:2018_11_19 SUITE=master-contrail
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2017.7/salt:2018_11_19 SUITE=master-contrail4-0
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-2017.7/salt:2018_11_19 SUITE=pool-contrail4-0
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-stable/salt:2018_11_19 SUITE=master-cluster
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-stable/salt:2018_11_19 SUITE=pool-cluster
-  - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-stable/salt:2018_11_19 SUITE=master-contrail
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-stable/salt:2018_11_19 SUITE=master-contrail4-0
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-stable/salt:2018_11_19 SUITE=pool-contrail4-0
   - PLATFORM=docker-dev-local.docker.mirantis.net/epcim/salt/saltstack-ubuntu-xenial-salt-stable/salt:2018_11_19 SUITE=common-storageclass
diff --git a/README.rst b/README.rst
index 7ec845b..77565ef 100644
--- a/README.rst
+++ b/README.rst
@@ -411,12 +411,6 @@
 .. code-block:: yaml
 
     kubernetes:
-      common:
-        addons:
-          contrail_network_controller:
-            enabled: true
-            namespace: kube-system
-            image: yashulyak/contrail-controller:latest
       master:
         network:
           opencontrail:
diff --git a/kubernetes/files/kube-addons/contrail-network-controller/contrail-network-controller-configmap.yml b/kubernetes/files/kube-addons/contrail-network-controller/contrail-network-controller-configmap.yml
deleted file mode 100644
index 85bb373..0000000
--- a/kubernetes/files/kube-addons/contrail-network-controller/contrail-network-controller-configmap.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-{%- from "kubernetes/map.jinja" import common with context -%}
-{%- from "kubernetes/map.jinja" import master with context -%}
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: contrail-kube-manager
-  namespace: {{ common.addons.contrail_network_controller.get('namespace', 'kube-system') }}
-  labels:
-    addonmanager.kubernetes.io/mode: Reconcile
-data:
-  contrail.conf: |
-    [DEFAULT]
-    master = localhost:8080
-    service-cluster-ip-range = {{ master.service_addresses }}
-
-    [opencontrail]
-    default-domain = {{ master.network.opencontrail.get('default_domain', 'default-domain') }}
-    public-ip-range = {{ master.network.opencontrail.get('public_ip_range', '185.22.97.128/26') }}
-    cluster-service = {{ master.network.opencontrail.get('cluster_service', 'kube-system/default') }}
-    api-server = {{ master.network.opencontrail.config.api.host }}
-    api-port = {{ master.network.opencontrail.get('port', 8082) }}
-    default = {{ master.network.opencontrail.get('default_project', 'default-domain:default-project') }}
-    public-network = {{ master.network.opencontrail.get('public_network', 'default-domain:default-project:Public') }}
-    private-ip-range = {{ master.network.opencontrail.private_ip_range }}
-    network-label = {{ master.network.opencontrail.get('network_label', 'opencontrail.org/name') }}
-    service-label = {{ master.network.opencontrail.get('service_label', 'opencontrail.org/uses') }}
-    service-cluster-ip-range = {{ master.get('service_addresses', '10.254.0.0/16') }}
diff --git a/kubernetes/files/kube-addons/contrail-network-controller/contrail-network-controller-deploy.yml b/kubernetes/files/kube-addons/contrail-network-controller/contrail-network-controller-deploy.yml
deleted file mode 100644
index 1615919..0000000
--- a/kubernetes/files/kube-addons/contrail-network-controller/contrail-network-controller-deploy.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-{%- from "kubernetes/map.jinja" import common with context -%}
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: contrail-network-controller
-  namespace: {{ common.addons.contrail_network_controller.get('namespace', 'kube-system') }}
-  labels:
-    addonmanager.kubernetes.io/mode: Reconcile
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        app: contrail-network-controller
-        addonmanager.kubernetes.io/mode: Reconcile
-    spec:
-      hostNetwork: true
-      tolerations:
-        - key: node-role.kubernetes.io/master
-          effect: NoSchedule
-      nodeSelector:
-        node-role.kubernetes.io/master: 'true'
-      containers:
-        - name: contrail-kube-manager
-          image: {{ common.addons.contrail_network_controller.get('image', 'yashulyak/contrail-controller:latest') }}
-          imagePullPolicy: Always
-          args: ["--config-file", "/etc/kube-manager/contrail.conf", "--alsologtostderr"]
-          volumeMounts:
-          - name: contrail-kube-manager
-            mountPath: /etc/kube-manager/
-      volumes:
-        - name: contrail-kube-manager
-          configMap:
-            name: contrail-kube-manager
-      restartPolicy: Always
diff --git a/kubernetes/files/kube-addons/netchecker/netchecker-server.yml b/kubernetes/files/kube-addons/netchecker/netchecker-server.yml
index f4d28de..997df9b 100644
--- a/kubernetes/files/kube-addons/netchecker/netchecker-server.yml
+++ b/kubernetes/files/kube-addons/netchecker/netchecker-server.yml
@@ -41,9 +41,6 @@
             - "-v=5"
             - "-logtostderr"
             - "-endpoint=0.0.0.0:{{ common.addons.netchecker.port }}"
-{%- if common.addons.get('contrail_network_controller', {}).get('enabled') %}
-            - "-kubeproxyinit=true"
-{%- else %}
             - "-kubeproxyinit=false"
             - "-etcd-endpoints={% for member in master.etcd.members %}https://{{ member.host }}:4001{% if not loop.last %},{% endif %}{% endfor %}"
 {%- if master.etcd.get('ssl', {}).get('enabled') %}
@@ -59,4 +56,3 @@
       - hostPath:
           path: /var/lib/etcd
         name: etcd-certs
-{%- endif %}
diff --git a/kubernetes/map.jinja b/kubernetes/map.jinja
index ad1a7a8..9cf805f 100644
--- a/kubernetes/map.jinja
+++ b/kubernetes/map.jinja
@@ -105,15 +105,6 @@
     'cni_image': calico.cni.image,
 }) %}
 {% do master.network.calico.update(calico) %}
-{%- elif master.get('network', {}).get('engine') == 'opencontrail' %}
-{% set opencontrail = salt['grains.filter_by']({
-    'default': master.network.opencontrail
-}, merge=salt['pillar.get']('kubernetes:master:network')) %}
-{% do opencontrail.update({
-    'enabled': true,
-    'cni_image': opencontrail.contrail_cni.image,
-}) %}
-{% do master.network.opencontrail.update(opencontrail) %}
 {%- endif %}
 
 {%- if pool.get('network', {}).get('engine') == 'calico' %}
@@ -126,15 +117,6 @@
     'cni_image': calico.cni.image,
 }) %}
 {% do pool.network.calico.update(calico) %}
-{%- elif pool.get('network', {}).get('engine') == 'opencontrail' %}
-{% set opencontrail = salt['grains.filter_by']({
-    'default': pool.network.opencontrail
-}, merge=salt['pillar.get']('kubernetes:pool:network')) %}
-{% do opencontrail.update({
-    'enabled': true,
-    'cni_image': opencontrail.contrail_cni.image,
-}) %}
-{% do pool.network.opencontrail.update(opencontrail) %}
 {%- endif %}
 
 {%- set monitoring = salt['grains.filter_by']({
diff --git a/kubernetes/master/kube-addons.sls b/kubernetes/master/kube-addons.sls
index 20d05c3..493576b 100644
--- a/kubernetes/master/kube-addons.sls
+++ b/kubernetes/master/kube-addons.sls
@@ -30,24 +30,6 @@
     - makedirs: True
 {% endif %}
 
-{%- if master.network.get('opencontrail', {}).get('enabled', False) and master.network.opencontrail.get('version', 3.0) < 4.0 %}
-/etc/kubernetes/addons/contrail-network-controller/contrail-network-controller-configmap.yml:
-  file.managed:
-    - source: salt://kubernetes/files/kube-addons/contrail-network-controller/contrail-network-controller-configmap.yml
-    - template: jinja
-    - group: root
-    - dir_mode: 755
-    - makedirs: True
-
-/etc/kubernetes/addons/contrail-network-controller/contrail-network-controller-deploy.yml:
-  file.managed:
-    - source: salt://kubernetes/files/kube-addons/contrail-network-controller/contrail-network-controller-deploy.yml
-    - template: jinja
-    - group: root
-    - dir_mode: 755
-    - makedirs: True
-{% endif %}
-
 {%- if common.addons.get('virtlet', {}).get('enabled') %}
 /etc/kubernetes/addons/virtlet/virtlet-ds.yml:
   file.managed:
diff --git a/kubernetes/pool/opencontrail.sls b/kubernetes/pool/opencontrail.sls
index 255861b..54dafd0 100644
--- a/kubernetes/pool/opencontrail.sls
+++ b/kubernetes/pool/opencontrail.sls
@@ -11,37 +11,6 @@
     - dir_mode: 755
     - template: jinja
 
-{%- if pool.network.opencontrail.get('version', '3.0') == '3.0' %}
-
-/tmp/opencontrail:
-  file.directory:
-    - user: root
-    - group: root
-
-copy-contrail-cni:
-  cmd.run:
-    - name: docker cp $(docker create  {{ pool.network.opencontrail.cni_image }}):/opencontrail /tmp/opencontrail
-    - require:
-      - file: /tmp/opencontrail
-    {%- if grains.get('noservices') %}
-    - onlyif: /bin/false
-    {%- endif %}
-
-/opt/cni/bin/opencontrail:
-  file.managed:
-    - source: /tmp/opencontrail/opencontrail
-    - mode: 755
-    - makedirs: true
-    - user: root
-    - group: root
-    - require:
-      - cmd: copy-contrail-cni
-    {%- if grains.get('noservices') %}
-    - onlyif: /bin/false
-    {%- endif %}
-
-{%- else %}
-
 opencontrail_cni_package:
   pkg.installed:
   - name: contrail-k8s-cni
@@ -59,5 +28,3 @@
     - pkg: opencontrail_cni_package
 
 {%- endif %}
-
-{%- endif %}
diff --git a/metadata/service/common.yml b/metadata/service/common.yml
index 877a6a1..425c234 100644
--- a/metadata/service/common.yml
+++ b/metadata/service/common.yml
@@ -45,19 +45,6 @@
           port: 80
           agent_image: mirantis/k8s-netchecker-agent:stable
           server_image: mirantis/k8s-netchecker-server:stable
-        contrail_network_controller:
-          enabled: False
-          namespace: kube-system
-          image: yashulyak/contrail-controller:latest
-        opencontrail:
-          controller:
-            image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-controller:latest
-          analyticsdb:
-            image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-analyticsdb:latest
-          analytics:
-            image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-analytics:latest
-          kube_manager:
-            image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-kube-manager:latest
         coredns:
           enabled: False
           namespace: kube-system
diff --git a/metadata/service/master/single.yml b/metadata/service/master/single.yml
index f00bd2b..be5d701 100644
--- a/metadata/service/master/single.yml
+++ b/metadata/service/master/single.yml
@@ -51,10 +51,6 @@
         helm:
           enabled: False
           tiller_image: gcr.io/kubernetes-helm/tiller:v2.4.2
-        contrail_network_controller:
-          enabled: False
-          namespace: kube-system
-          image: yashulyak/contrail-controller:latest
         virtlet:
           enabled: False
           namespace: kube-system
diff --git a/tests/pillar/master_contrail.sls b/tests/pillar/master_contrail.sls
deleted file mode 100644
index 2b0da6c..0000000
--- a/tests/pillar/master_contrail.sls
+++ /dev/null
@@ -1,119 +0,0 @@
-kubernetes:
-  common:
-    cluster_domain: cluster.local
-    cluster_name: cluster
-    hyperkube:
-      image: hyperkube-amd64:v1.6.4-3
-      source: hyperkube-amd64:v1.6.4-3
-      source_hash: hnsj0XqABgrSww7Nqo7UVTSZLJUt2XRd
-    addons:
-      dns:
-        domain: cluster.local
-        enabled: false
-        replicas: 1
-        server: 10.254.0.10
-        autoscaler:
-          enabled: true
-      heapster_influxdb:
-        enabled: true
-        public_ip: 185.22.97.132
-      dashboard:
-        enabled: true
-        public_ip: 185.22.97.131
-      helm:
-        enabled: true
-        tiller_image: gcr.io/kubernetes-helm/tiller:v2.2.3
-      netchecker:
-        enabled: true
-        namespace: netchecker
-        port: 80
-        interval: 60
-        server_image: image
-        agent_image: image
-        agent_probeurls: "http://ipinfo.io"
-      virtlet:
-        enabled: true
-        namespace: kube-system
-        image: mirantis/virtlet:v1.0.3
-      contrail_network_controller:
-        enabled: true
-        namespace: kube-system
-        image: yashulyak/contrail-controller:latest
-      opencontrail:
-        controller:
-          image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-controller:latest
-        analyticsdb:
-          image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-analyticsdb:latest
-        analytics:
-          image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-analytics:latest
-        kube_manager:
-          image: docker-prod-local.artifactory.mirantis.com/opencontrail-oc40/opencontrail-kube-manager:latest
-    monitoring:
-      backend: prometheus
-  master:
-    admin:
-      password: password
-      username: admin
-    registry:
-        host: tcpcloud
-    host:
-      name: node040
-    apiserver:
-      address: 10.0.175.100
-      secure_port: 6443
-      internal_address: 185.22.97.1
-      insecure_address: 127.0.0.1
-      insecure_port: 8080
-    ca: kubernetes
-    enabled: true
-    unschedulable: true
-    etcd:
-      members:
-      - host: 10.0.175.100
-        name: node040
-    kubelet:
-      address: 10.0.175.100
-      allow_privileged: true
-    network:
-      opencontrail:
-        enabled: true
-        config:
-          api:
-            host: 10.0.170.70
-        port: 8082
-        default_domain: default-domain
-        default_project: default-domain:default-project
-        public_network: default-domain:default-project:Public
-        public_ip_range: 185.22.97.128/26
-        private_ip_range: 10.150.0.0/16
-        service_cluster_ip_range: 10.254.0.0/16
-        network_label: name
-        service_label: uses
-        cluster_service: kube-system/default
-        image: tianon/true
-    service_addresses: 10.254.0.0/16
-    storage:
-      engine: glusterfs
-      members:
-      - host: 10.0.175.101
-        port: 24007
-      - host: 10.0.175.102
-        port: 24007
-      - host: 10.0.175.103
-        port: 24007
-      port: 24007
-    token:
-      admin: DFvQ8GJ9JD4fKNfuyEddw3rjnFTkUKsv
-      controller_manager: EreGh6AnWf8DxH8cYavB2zS029PUi7vx
-      dns: RAFeVSE4UvsCz4gk3KYReuOI5jsZ1Xt3
-      kube_proxy: DFvQ8GelB7afH3wClC9romaMPhquyyEe
-      kubelet: 7bN5hJ9JD4fKjnFTkUKsvVNfuyEddw3r
-      logging: MJkXKdbgqRmTHSa2ykTaOaMykgO6KcEf
-      monitoring: hnsj0XqABgrSww7Nqo7UVTSZLJUt2XRd
-      scheduler: HY1UUxEPpmjW4a1dDLGIANYQp1nZkLDk
-    version: v1.2.4
-    namespace:
-      kube-system:
-        enabled: true
-      netchecker:
-        enabled: true