Vous devez spécifier les paramètres NCP dans le fichier hosts Ansible pour l'instance de NCP à intégrer à OpenShift.

Une fois que vous spécifiez les paramètres suivants dans le fichier hosts Ansible, l'installation d'OpenShift installe automatiquement NCP.

  • openshift_use_nsx=True

  • openshift_use_openshift_sdn=False

  • os_sdn_network_plugin_name='cni'

  • nsx_openshift_cluster_name='ocp-cluster1'

    (Obligatoire) Cela est obligatoire, car plusieurs clusters Openshift/Kubernetes peuvent se connecter à la même instance de NSX Manager.

  • nsx_api_managers='10.10.10.10'

    (Obligatoire) Adresse IP de NSX Manager. Pour un cluster NSX Manager, spécifiez les adresses IP séparées par des virgules.

  • nsx_tier0_router='MyT0Router'

    (Obligatoire) Nom ou UUID du routeur de niveau 0 auquel se connecteront les routeurs de niveau 1 du projet.

  • nsx_overlay_transport_zone='my_overlay_tz'

    (Obligatoire) Nom ou UUID de la zone de transport de superposition qui sera utilisée pour créer des commutateurs logiques.

  • nsx_container_ip_block='ip_block_for_my_ocp_cluster'

    (Obligatoire) Nom ou UUID d'un bloc d'adresses IP configuré sur NSX-T. Il y aura un sous-réseau par projet en dehors de ce bloc d'adresses IP. Ces réseaux seront derrière SNAT et non routables.

  • nsx_ovs_uplink_port='ens224'

    (Obligatoire) Si l'instance de NSX-T est en mode HOSTVM, une deuxième carte réseau virtuelle (vNIC) est requise pour la mise en réseau d'espace sur les nœuds OCP, différente de la carte réseau virtuelle de gestion. Il est fortement recommandé que les deux cartes réseaux virtuelles soit connectées à des commutateurs logiques NSX-T. La seconde carte réseau virtuelle (hors gestion) doit être fournie ici. Pour une configuration bare metal, ce paramètre n'est pas nécessaire.

  • nsx_cni_url='http://myserver/nsx-cni.rpm'

    (Obligatoire) Condition requise temporaire jusqu'à ce que NCP puisse démarrer les nœuds. Nous devons placer nsx-cni sur un serveur HTTP.

  • nsx_ovs_url='http://myserver/openvswitch.rpm'

  • nsx_kmod_ovs_url='http://myserver/kmod-openvswitch.rpm'

    (Obligatoire) Paramètres temporaires jusqu'à ce que NCP puisse démarrer les nœuds. Peut être ignoré dans une configuration bare metal.

  • nsx_node_type='HOSTVM'

    (Facultatif) Défini par défaut sur HOSTVM. Défini sur BAREMETAL si OpenShift ne s'exécute pas dans des machines virtuelles.

  • nsx_k8s_api_ip=192.168.10.10

    (Facultatif) S'il est défini, NCP accède à cette adresse IP, sinon à l'adresse IP du service Kubernetes.

  • nsx_k8s_api_port=192.168.10.10

    (Facultatif) Par défaut 443 pour le service Kubernetes. Défini sur 8443 si vous l'utilisez avec nsx_k8s_api_ip pour spécifier l'adresse IP du nœud master.

  • nsx_insecure_ssl=true

    (Facultatif) La valeur par défaut est true, car NSX Manager dispose d'un certificat non approuvé. Si vous avez remplacé le certificat par un certificat approuvé, vous pouvez le définir sur false.

  • nsx_api_user='admin'

  • nsx_api_password='super_secret_password'

  • nsx_subnet_prefix=24

    (Facultatif) Défini par défaut sur 24. Il s'agit de la taille de sous-réseau dédiée par projet Openshift. Si le nombre d'espaces dépasse la taille du sous-réseau, un nouveau commutateur logique ayant la même taille de sous-réseau est ajouté au projet.

  • nsx_use_loadbalancer=true

    (Facultatif) Défini par défaut sur true. Défini sur false si vous ne souhaitez pas utiliser d'équilibrages de charge NSX-T pour les routes OpenShift et les services de type LoadBalancer.

  • nsx_lb_service_size='SMALL'

    (Facultatif) Défini par défaut sur SMALL. Selon la taille de NSX Edge, MEDIUM ou LARGE est également possible.

  • nsx_no_snat_ip_block='router_ip_block_for_my_ocp_cluster'

    (Facultatif) Si l'annotation ncp/no_snat=true est appliquée sur un projet ou un espace de noms, le sous-réseau proviendra de ce bloc d'adresses IP et aucun SNAT ne lui sera dédié. Il est censé être routable.

  • nsx_external_ip_pool='external_pool_for_snat'

    (Obligatoire) Pool d'adresses IP pour SNAT et l'équilibrage de charge si nsx_external_ip_pool_lb n'est pas défini.

  • nsx_external_ip_pool_lb='my_ip_pool_for_lb'

    (Facultatif) Définissez cette option si vous souhaitez un pool d'adresses IP distinct pour Router et pour SvcTypeLB.

  • nsx_top_fw_section='top_section'

    (Facultatif) Les règles de stratégie réseau Kubernetes seront traduites en règles de pare-feu NSX-T et placées en dessous de cette section.

  • nsx_bottom_fw_section='bottom_section'

    (Facultatif) Les règles de stratégie réseau Kubernetes seront traduites en règles de pare-feu NSX-T et placées au-dessus de cette section.

  • nsx_api_cert='/path/to/cert/nsx.crt'

  • nsx_api_private_key='/path/to/key/nsx.key

    (Facultatif) Si ce paramètre est défini, nsx_api_user et nsx_api_password sont ignorés. Le certificat doit être téléchargé sur NSX-T et une authentification d'utilisateur d'identité de principal avec ce certificat doit être créée manuellement.

  • nsx_lb_default_cert='/path/to/cert/nsx.crt'

  • nsx_lb_default_key='/path/to/key/nsx.key

    (Facultatif) L'équilibrage de charge NSX-T nécessite un certificat par défaut afin de pouvoir créer des SNI pour les routes basées sur TLS. Ce certificat sera présenté uniquement si aucune route n'est configurée. S'il n'est pas fourni, un certificat autosigné sera généré.

Exemple de fichier hosts Ansible

[OSEv3:children]
masters
nodes
etcd

[OSEv3:vars]
ansible_ssh_user=root
openshift_deployment_type=origin

openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
openshift_master_htpasswd_users={'yasen' : 'password'}

openshift_master_default_subdomain=demo.corp.local
openshift_use_nsx=true
os_sdn_network_plugin_name=cni
openshift_use_openshift_sdn=false
openshift_node_sdn_mtu=1500

# NSX specific configuration
nsx_openshift_cluster_name='ocp-cluster1'
nsx_api_managers='192.168.110.201'
nsx_api_user='admin'
nsx_api_password='VMware1!'
nsx_tier0_router='DefaultT0Router'
nsx_overlay_transport_zone='overlay-tz'
nsx_container_ip_block='ocp-pod-networking'
nsx_no_snat_ip_block='ocp-nonat-pod-networking'
nsx_external_ip_pool='ocp-external'
nsx_top_fw_section='openshift-top'
nsx_bottom_fw_section='openshift-bottom'
nsx_ovs_uplink_port='ens224'
nsx_cni_url='http://1.1.1.1/nsx-cni-2.3.2.x86_64.rpm'
nsx_ovs_url='http://1.1.1.1/openvswitch-2.9.1.rhel75-1.x86_64.rpm'
nsx_kmod_ovs_url='http://1.1.1.1/kmod-openvswitch-2.9.1.rhel75-1.el7.x86_64.rpm'

[masters]
ocp-master.corp.local

[etcd]
ocp-master.corp.local

[nodes]
ocp-master.corp.local ansible_ssh_host=10.1.0.10 openshift_node_group_name='node-config-master'
ocp-node1.corp.local ansible_ssh_host=10.1.0.11 openshift_node_group_name='node-config-infra'
ocp-node2.corp.local ansible_ssh_host=10.1.0.12 openshift_node_group_name='node-config-infra'
ocp-node3.corp.local ansible_ssh_host=10.1.0.13 openshift_node_group_name='node-config-compute'
ocp-node4.corp.local ansible_ssh_host=10.1.0.14 openshift_node_group_name='node-config-compute'