--- layout: default notice: true highlighter: rouge pretty: guide: "Install Guide" sha: "SHA" signature: "File Signature" artifacts: opensearch: OpenSearch odfe-cli: ODFE-CLI perftop: PerfTop elasticsearch: Elasticsearch kibana: Kibana odfe-jdbc: JDBC Driver odfe-odbc: ODBC Driver opensearch-sql-odbc: ODBC Driver opensearch-sql-jdbc: JDBC Driver data-prepper: Data Prepper data-prepper-no-jdk: Data Prepper (without bundled JDK) logstash-oss-with-opensearch-output-plugin: Logstash OSS with OpenSearch Output Plugin platforms: windows: "Windows" linux: "Linux" freebsd: "FreeBSD" macos: macOS java: "Java" docker: Docker extensions: targz: ".tar.gz" exe: "Installer (exe)" zip: ".zip" pkg: "Installer (pkg)" msi: "Installer (msi)" jar: ".jar" docker_hub: 'Dockerfile' system-package: "System package" architectures: arm64: "ARM64" x64: "x64" x86: "x86" jvm: Java Virtual Machine sections: opensearch: OpenSearch opensearch-dashboards: OpenSearch Dashboards command-line-tools: 'Command Line Tools' data-ingest: 'Ingest Tools' docker-compose: 'Try OpenSearch with Docker Compose' minimal: 'Minimal Distributions' drivers: "Drivers" architecture_order: - x64 - arm64 - x86 - jvm platform_order: - linux - docker - freebsd - macos - windows - java --- {%comment%} template layout setup {% endcomment %} {% assign primary_title = site.headings.downloads %} {% assign layout_class = 'sidebar-right' %} {%comment%} human readable setup - pretty.html will get the most specific override in the frontmatters 1. page frontmatter 2. layout frontmatter 3. fall back to the key {%endcomment%} {% capture guide_pretty %}{% include downloads/pretty.html key="guide" %}{% endcapture %} {% capture sha_pretty%}{% include downloads/pretty.html key="sha" %}{% endcapture %} {% capture signature_pretty%}{% include downloads/pretty.html key="signature" %}{% endcapture %} {% comment %} this is the built-in error checking for the version definition having missing artifacts {% endcomment %} {% for component in page.components %} {% assign component_details = site.artifacts | where: "version", component.version | where: "artifact_id", component.artifact %} {% assign number_of_artifacts = component_details | size %} {% if number_of_artifacts == 0 %} {% capture artifact_error %}ERROR: "{{component.artifact}}" defined in version but artifact definition missing in collection. {%endcapture%} {% assign error_block = error_block | append: artifact_error %} {% endif %} {% endfor %} {% capture content %} {% if error_block %}

Errors:

{{error_block}}
{% endif %} {% if page.version_note %}
{{ page.version_note | markdownify }}
{% endif %} {% for section in page.sections %} {% capture role %}{{section[1].role}}{%endcapture%} {% capture section_id%}{{section[0]}}{%endcapture%} {% capture section_heading_pretty %} {% include downloads/pretty-group.html group="sections" key=section_id%}{%endcapture%} {% assign include_url = section[1].explanation %}

{{ section_heading_pretty }}

{% if include_url %}{%capture explanation %}{% include {{include_url}} %}{% endcapture %}{{ explanation | markdownify }}{% endif %} {% if role %} {% assign components = page.components | where: "role", role %} {% assign artifact_selects = "" %} {% for component in components %} {% assign component_details = site.artifacts | where: "version", component.version | where: "artifact_id", component.artifact | sort: "architecture" %} {% capture name_pretty %}{% include downloads/pretty-group.html group="artifacts" key=component.artifact%}{%endcapture%} {% assign number_of_artifacts = component_details | size %} {% if number_of_artifacts == 0 %} [Artifacts Missing] {% endif %} {% assign number_of_components = components | size %}
{% if number_of_components > 1 %} {% assign name_pretty = name_pretty | strip %} {% if name_pretty.size > 0 %}

{{ name_pretty }}

{% endif %} {% endif %}
{% if section[1].artifacts[component.artifact].explanation %} {% assign artifact_explain_path = section[1].artifacts[component.artifact].explanation%} {% capture explanation %}{% include {{artifact_explain_path}} %}{% endcapture %} {{ explanation | markdownify }} {% endif %}
{% comment %} preference the order specified in the component - default to the layout order {%endcomment%} {% if component.architecture_order %} {% assign specified_architecture_order = component.architecture_order %} {% else %} {% assign specified_architecture_order = layout.architecture_order %} {% endif %} {% if component.platform_order %} {% assign specified_platform_order = component.platform_order %} {% else %} {% assign specified_platform_order = layout.platform_order %} {% endif %} {% assign platform_list = ""%} {% assign artifact_list = ""%} {% for platform in specified_platform_order %} {% assign count = component_details | where: "platform", platform | size %} {% if count > 0 %} {% capture platform_pretty %}{% if layout.pretty.platforms[platform] %}{{layout.pretty.platforms[platform]}} {%else%} {{platform}} {%endif%}{%endcapture%} {% capture platform_option %}{% endcapture %} {% capture platform_list %}{{ platform_list | append: platform_option}}{% endcapture %} {%endif%} {% endfor %} {% comment %} preference the order specified in the component - default to the layout order {%endcomment%} {% if component.architecture_order %} {% assign specified_architecture_order = component.architecture_order %} {% else %} {% assign specified_architecture_order = layout.architecture_order %} {% endif %} {% if component.platform_order %} {% assign specified_platform_order = component.platform_order %} {% else %} {% assign specified_platform_order = layout.platform_order %} {% endif %} {% for platform in specified_platform_order %} {% assign platform_components = component_details | where: "platform", platform %} {% for architecture in specified_architecture_order %} {% assign architecture_components = platform_components | where: "architecture", architecture | sort: "slug" %} {% for details in architecture_components %} {% capture platform_pretty %}{% if layout.pretty.platforms[platform] %}{{layout.pretty.platforms[platform]}} {%else%} {{platform}} {%endif%}{%endcapture%} {% capture extension_pretty %}{% include downloads/pretty-group.html group="extensions" key=details.type %}{% endcapture %} {% capture architecture_pretty %}{% include downloads/pretty-group.html group="architectures" key=details.architecture %}{% endcapture %} {% capture artifact_id %}{{details.platform}}-{{details.architecture}}-{{details.type}}{% endcapture %} {% capture artifact_option %}{%endcapture%} {% assign artifact_options = artifact_options | append: artifact_option %} {% if details.artifact_url %} {% capture artifact_extra %}{% endcapture %} {% assign artifact_extras = artifact_extras | append: artifact_extra %} {% endif %} {% if details.freebsd_package_name %} {% capture artifact_extra %}{% endcapture %} {% assign artifact_extras = artifact_extras | append: artifact_extra %} {% endif %} {% if details.link %} {% capture artifact_extra %}{% endcapture %} {% assign artifact_extras = artifact_extras | append: artifact_extra %} {% endif %} {% if details.inline_instructions %} {% capture artifact_instructions %} {{artifact_instructions}}
{% for instruction in details.inline_instructions %}

{% if instruction.link %} {{instruction.link.label}} {% endif %} {{instruction.label}}

{% highlight bash %}{{instruction.code}}{% endhighlight %} {% endfor %}
{% endcapture %} {% assign artifact_extras = artifact_extras | append: artifact_extra %} {% endif %} {% if details.guide %} {% capture artifact_extra %}{% endcapture %} {% assign artifact_extras = artifact_extras | append: artifact_extra %} {% endif %} {% if details.sha %} {% capture artifact_extra %}{% endcapture %} {% assign artifact_extras = artifact_extras | append: artifact_extra %} {% endif %} {% if details.signature %} {% capture artifact_extra %} {% endcapture %} {% assign artifact_extras = artifact_extras | append: artifact_extra %} {% endif %} {% if details.jarsigner %} {% capture artifact_extra %} {% endcapture %} {% assign artifact_extras = artifact_extras | append: artifact_extra %} {% endif %} {% if details.code_signer %} {% capture artifact_extra %} {% endcapture %} {% assign artifact_extras = artifact_extras | append: artifact_extra %} {% endif %} {% if details.windows_signer %} {% capture artifact_extra %} {% endcapture %} {% assign artifact_extras = artifact_extras | append: artifact_extra %} {% endif %} {% assign artifact_extra = nil %} {% endfor %} {%endfor%} {% endfor %}
{% if platform_list %} {% endif %} {% if artifact_option %} {% assign artifact_options = "" %} {% endif %} {% assign artifact_extras = "" %}
{{artifact_instructions}}
{% assign artifact_instructions = "" %}
{% endfor %} {% endif %}
{% endfor %} {% include downloads/final-section.html %}
{% assign major_version = page.version | split: "." | first %} Releases in the {{major_version}}.x line:
{% assign versions = site.versions | sort_versions: 'version_sort' | reverse %} {% assign first_version_in_line = true %} {% for version in versions %} {% assign this_major_version = version.version | split: "." | first %} {% if this_major_version == major_version %} {% if first_version_in_line == true %} {% assign first_version_in_line = false %} {% else %} / {% endif %} {% if version.version == page.version %} {{version.version}} {% else %} {{version.version}} {% endif %} {%endif%} {% endfor %}
Release sequence (all release lines):
{% if page.next.url %} Next Release {% endif %} {% if page.previous.url %} Previous Release {% endif %}
{%endcapture%} {% capture content_related %}
{{ page.content }} Version: {{page.version}} {% if page.product == 'odfe' %}(Open Distro for Elasticsearch){% endif %}
Release Date: {{ page.date | date: "%b %d, %Y" }}
Release Notes
Version Permalink
This is a release in the {{major_version}}.x line. Available release lines:
{% endcapture %} {% include copy_banner.html %} {% include base_3col.html %}