Kolla provides production-ready containers and deployment tools for operating OpenStack clouds
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Dockerfile.j2 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. FROM {{ namespace }}/{{ image_prefix }}ironic-base:{{ tag }}
  2. LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
  3. {% block ironic_conductor_header %}{% endblock %}
  4. {% import "macros.j2" as macros with context %}
  5. {% if install_type == 'binary' %}
  6. {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
  7. # TODO(Jeffrey4l): no python-oneviewclient
  8. {% set ironic_conductor_packages = [
  9. 'ansible',
  10. 'dosfstools',
  11. 'e2fsprogs',
  12. 'gdisk',
  13. 'ipmitool',
  14. 'openstack-ironic-conductor',
  15. 'parted',
  16. 'psmisc',
  17. 'pysnmp',
  18. 'python2-ImcSdk',
  19. 'python-dracclient',
  20. 'python-ironic-inspector-client',
  21. 'python-proliantutils',
  22. 'python-scciclient',
  23. 'python-sushy',
  24. 'python-UcsSdk',
  25. 'shellinabox',
  26. 'systemd-python',
  27. 'util-linux',
  28. 'xfsprogs',
  29. ] %}
  30. {% if base_distro in ['centos', 'oraclelinux'] %}
  31. {% set ironic_conductor_packages = ironic_conductor_packages + [
  32. 'qemu-img-ev'
  33. ] %}
  34. {% else %}
  35. {% set ironic_conductor_packages = ironic_conductor_packages + [
  36. 'qemu-img'
  37. ] %}
  38. {% endif %}
  39. {% elif base_distro in ['debian', 'ubuntu'] %}
  40. # TODO(jeffrey4l): no python-dracclient, python-oneviewclient, UcsSdk,
  41. # ImcSdk package, python-sushy
  42. {% set ironic_conductor_packages = [
  43. 'ansible',
  44. 'bsdmainutils',
  45. 'dosfstools',
  46. 'e2fsprogs',
  47. 'gdisk',
  48. 'ipmitool',
  49. 'ironic-conductor',
  50. 'parted',
  51. 'psmisc',
  52. 'python-ironic-inspector-client',
  53. 'python-proliantutils',
  54. 'python-pysnmp4',
  55. 'python-scciclient',
  56. 'python-systemd',
  57. 'qemu-utils',
  58. 'shellinabox',
  59. 'xfsprogs',
  60. ] %}
  61. {% endif %}
  62. {% elif install_type == 'source' %}
  63. {% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
  64. {% set ironic_conductor_packages = [
  65. 'dosfstools',
  66. 'e2fsprogs',
  67. 'fuse',
  68. 'gdisk',
  69. 'ipmitool',
  70. 'parted',
  71. 'psmisc',
  72. 'qemu-img-ev',
  73. 'shellinabox',
  74. 'util-linux',
  75. 'xfsprogs',
  76. ] %}
  77. {% elif base_distro in ['debian', 'ubuntu'] %}
  78. {% set ironic_conductor_packages = [
  79. 'bsdmainutils',
  80. 'dosfstools',
  81. 'e2fsprogs',
  82. 'gdisk',
  83. 'ipmitool',
  84. 'parted',
  85. 'psmisc',
  86. 'qemu-utils',
  87. 'shellinabox',
  88. 'xfsprogs',
  89. ] %}
  90. {% endif %}
  91. {% set ironic_conductor_pip_packages = [
  92. '-r /ironic/driver-requirements.txt'
  93. ] %}
  94. RUN {{ macros.install_pip(ironic_conductor_pip_packages | customizable("pip_packages")) }}
  95. {% endif %}
  96. {{ macros.install_packages(ironic_conductor_packages | customizable("packages")) }}
  97. COPY extend_start.sh /usr/local/bin/kolla_ironic_extend_start
  98. COPY iscsi_tcp_sudoers /etc/sudoers.d/kolla_iscsi_tcp_sudoers
  99. RUN chmod 755 /usr/local/bin/kolla_ironic_extend_start \
  100. && chmod 440 /etc/sudoers.d/kolla_iscsi_tcp_sudoers
  101. {% block ironic_conductor_footer %}{% endblock %}
  102. {% block footer %}{% endblock %}
  103. USER ironic