# This ConfigMap is used to configure Nuage VSP configuration kind: ConfigMap apiVersion: v1 metadata: name: nuage-config namespace: kube-system data: # This will generate the required Nuage vsp-openshift.yaml # config on each slave node plugin_yaml_config: | clientCert: {{ nuage_node_config_dsets_mount_dir }}/vsp-openshift/client.crt # The key to the certificate in clientCert above clientKey: {{ nuage_node_config_dsets_mount_dir }}/vsp-openshift/client.key # The certificate authority's certificate for the local kubelet. Usually the # same as the CA cert used to create the client Cert/Key pair. CACert: {{ nuage_node_config_dsets_mount_dir }}/vsp-openshift/ca.crt # Name of the enterprise in which pods will reside enterpriseName: {{ enterprise }} # Name of the domain in which pods will reside domainName: {{ domain }} # Name of the VSD user in admin group vsdUser: {{ vsd_user }} # IP address and port number of master API server masterApiServer: {{ api_server_url }} # REST server URL nuageMonRestServer: https://{{ openshift_master_cluster_hostname }}:{{ nuage_mon_rest_server_port }} # Bridge name for the docker bridge dockerBridgeName: docker0 # Certificate for connecting to the openshift monitor REST api nuageMonClientCert: {{ nuage_node_config_dsets_mount_dir }}/vsp-openshift/nuageMonClient.crt # Key to the certificate in restClientCert nuageMonClientKey: {{ nuage_node_config_dsets_mount_dir }}/vsp-openshift/nuageMonClient.key # CA certificate for verifying the master's rest server nuageMonServerCA: {{ nuage_node_config_dsets_mount_dir }}/vsp-openshift/nuageMonCA.crt # This will generate the required Nuage CNI yaml configuration cni_yaml_config: | vrsendpoint: "/var/run/openvswitch/db.sock" vrsbridge: "alubr0" monitorinterval: 60 cniversion: 0.2.0 loglevel: "info" portresolvetimer: 60 logfilesize: 1 vrsconnectionchecktimer: 180 mtu: 1450 staleentrytimeout: 600 --- # This manifest installs Nuage CNI plugins and network config on # each worker node in Openshift cluster kind: DaemonSet apiVersion: extensions/v1beta1 metadata: name: nuage-cni-ds namespace: kube-system labels: k8s-app: nuage-cni-ds spec: selector: matchLabels: k8s-app: nuage-cni-ds updateStrategy: type: RollingUpdate template: metadata: labels: k8s-app: nuage-cni-ds spec: hostNetwork: true containers: # This container installs Nuage CNI binaries # and CNI network config file on each node. - name: install-nuage-cni image: nuage/cni:{{ nuage_cni_container_image_version }} command: ["/install-cni.sh"] args: ["nuage-cni-openshift", "{{ slave_host_type }}"] securityContext: privileged: true env: # Nuage vsp-openshift.yaml config to install on each slave node. - name: NUAGE_VSP_CONFIG valueFrom: configMapKeyRef: name: nuage-config key: plugin_yaml_config # Nuage nuage-cni.yaml config to install on each slave node. - name: NUAGE_CNI_YAML_CONFIG valueFrom: configMapKeyRef: name: nuage-config key: cni_yaml_config # Nuage cluster network CIDR for iptables configuration - name: NUAGE_CLUSTER_NW_CIDR value: "{{ hostvars[groups.oo_first_master.0].openshift.master.sdn_cluster_network_cidr }}" volumeMounts: - mountPath: /host/opt/cni/bin name: cni-bin-dir - mountPath: /host/etc/cni/net.d name: cni-net-dir - mountPath: /etc/default name: cni-yaml-dir - mountPath: /var/run name: var-run-dir - mountPath: /var/log name: cni-log-dir - mountPath: {{ nuage_node_config_dsets_mount_dir }} name: var-usr-share-dir - mountPath: /usr/share/ name: usr-share-dir volumes: - name: cni-bin-dir hostPath: path: {{ nuage_cni_bin_dsets_mount_dir }} - name: cni-net-dir hostPath: path: {{ nuage_cni_netconf_dsets_mount_dir }} - name: cni-yaml-dir hostPath: path: /etc/default - name: var-run-dir hostPath: path: /var/run - name: cni-log-dir hostPath: path: /var/log - name: var-usr-share-dir hostPath: path: {{ nuage_node_config_dsets_mount_dir }} - name: usr-share-dir hostPath: path: /usr/share/ --- # This manifest installs Nuage VRS on # each worker node in an Openshift cluster. kind: DaemonSet apiVersion: extensions/v1beta1 metadata: name: nuage-vrs-ds namespace: kube-system labels: k8s-app: nuage-vrs-ds spec: selector: matchLabels: k8s-app: nuage-vrs-ds updateStrategy: type: RollingUpdate template: metadata: labels: k8s-app: nuage-vrs-ds spec: hostNetwork: true containers: # This container installs Nuage VRS running as a # container on each worker node - name: install-nuage-vrs image: nuage/vrs:{{ nuage_vrs_container_image_version }} securityContext: privileged: true env: # Configure parameters for VRS openvswitch file - name: NUAGE_ACTIVE_CONTROLLER value: "{{ vsc_active_ip }}" - name: NUAGE_STANDBY_CONTROLLER value: "{{ vsc_standby_ip }}" - name: NUAGE_PLATFORM value: '"kvm, k8s"' - name: NUAGE_K8S_SERVICE_IPV4_SUBNET value: '172.30.0.0\/16' - name: NUAGE_NETWORK_UPLINK_INTF value: "eth0" volumeMounts: - mountPath: /var/run name: vrs-run-dir - mountPath: /var/log name: vrs-log-dir - mountPath: /sys/module name: sys-mod-dir readOnly: true - mountPath: /lib/modules name: lib-mod-dir readOnly: true volumes: - name: vrs-run-dir hostPath: path: /var/run - name: vrs-log-dir hostPath: path: /var/log - name: sys-mod-dir hostPath: path: /sys/module - name: lib-mod-dir hostPath: path: /lib/modules