--- OpenSearch-2.7.0/buildSrc/src/main/java/org/opensearch/gradle/Jdk.java.orig
+++ OpenSearch-2.7.0/buildSrc/src/main/java/org/opensearch/gradle/Jdk.java
@@ -54,7 +54,7 @@
     );
     private static final List<String> ALLOWED_VENDORS = Collections.unmodifiableList(Arrays.asList("adoptium", "adoptopenjdk", "openjdk"));
     private static final List<String> ALLOWED_PLATFORMS = Collections.unmodifiableList(
-        Arrays.asList("darwin", "freebsd", "linux", "mac", "windows")
+        Arrays.asList("darwin", "freebsd", "sunos", "linux", "mac", "windows")
     );
     private static final Pattern VERSION_PATTERN = Pattern.compile("(\\d+)(\\.\\d+\\.\\d+)?\\+(\\d+(?:\\.\\d+)?)(@([a-f0-9]{32}))?");
     private static final Pattern LEGACY_VERSION_PATTERN = Pattern.compile("(\\d)(u\\d+)(?:\\+|\\-)(b\\d+?)(@([a-f0-9]{32}))?");
--- OpenSearch-2.7.0/buildSrc/src/main/java/org/opensearch/gradle/OpenSearchDistribution.java.orig
+++ OpenSearch-2.7.0/buildSrc/src/main/java/org/opensearch/gradle/OpenSearchDistribution.java
@@ -50,6 +50,7 @@
     public enum Platform {
         DARWIN,
         FREEBSD,
+        SUNOS,
         LINUX,
         WINDOWS;
 
@@ -87,6 +88,7 @@
     // package private to tests can use
     public static final Platform CURRENT_PLATFORM = OS.<Platform>conditional()
         .onFreeBSD(() -> Platform.FREEBSD)
+        .onSunOS(() -> Platform.SUNOS)
         .onLinux(() -> Platform.LINUX)
         .onMac(() -> Platform.DARWIN)
         .onWindows(() -> Platform.WINDOWS)
--- OpenSearch-2.7.0/buildSrc/src/main/java/org/opensearch/gradle/OS.java.orig
+++ OpenSearch-2.7.0/buildSrc/src/main/java/org/opensearch/gradle/OS.java
@@ -39,6 +39,7 @@
 
 public enum OS {
     FREEBSD,
+    SUNOS,
     LINUX,
     MAC,
     WINDOWS;
@@ -48,6 +49,9 @@
         if (os.startsWith("FreeBSD")) {
             return OS.FREEBSD;
         }
+        if (os.startsWith("SunOS")) {
+            return OS.SUNOS;
+        }
         if (os.startsWith("Linux") || os.startsWith("LINUX")) {
             return OS.LINUX;
         }
@@ -74,6 +78,11 @@
             return this;
         }
 
+        public Conditional<T> onSunOS(Supplier<T> supplier) {
+            conditions.put(SUNOS, supplier);
+            return this;
+        }
+
         public Conditional<T> onMac(Supplier<T> supplier) {
             conditions.put(MAC, supplier);
             return this;
@@ -81,6 +90,7 @@
 
         public Conditional<T> onUnix(Supplier<T> supplier) {
             conditions.put(FREEBSD, supplier);
+            conditions.put(SUNOS, supplier);
             conditions.put(LINUX, supplier);
             conditions.put(MAC, supplier);
             return this;
--- OpenSearch-2.7.0/buildSrc/src/main/java/org/opensearch/gradle/VersionProperties.java.orig
+++ OpenSearch-2.7.0/buildSrc/src/main/java/org/opensearch/gradle/VersionProperties.java
@@ -61,6 +61,8 @@
                 return bundledJdkDarwin;
             case "freebsd":
                 return bundledJdkFreeBSD;
+            case "sunos":
+                return bundledJdkSunOS;
             case "linux":
                 return bundledJdkLinux;
             case "windows":
@@ -82,6 +84,7 @@
     private static final String lucene;
     private static final String bundledJdkDarwin;
     private static final String bundledJdkFreeBSD;
+    private static final String bundledJdkSunOS;
     private static final String bundledJdkLinux;
     private static final String bundledJdkWindows;
     private static final String bundledJdkVendor;
@@ -95,6 +98,7 @@
         final String bundledJdk = props.getProperty("bundled_jdk");
         bundledJdkDarwin = props.getProperty("bundled_jdk_darwin", bundledJdk);
         bundledJdkFreeBSD = props.getProperty("bundled_jdk_freebsd", bundledJdk);
+        bundledJdkSunOS = props.getProperty("bundled_jdk_sunos", bundledJdk);
         bundledJdkLinux = props.getProperty("bundled_jdk_linux", bundledJdk);
         bundledJdkWindows = props.getProperty("bundled_jdk_windows", bundledJdk);
 
--- OpenSearch-2.7.0/buildSrc/src/test/java/org/opensearch/gradle/JdkDownloadPluginTests.java.orig
+++ OpenSearch-2.7.0/buildSrc/src/test/java/org/opensearch/gradle/JdkDownloadPluginTests.java
@@ -95,7 +95,7 @@
             "11.0.2+33",
             "unknown",
             "x64",
-            "unknown platform [unknown] for jdk [testjdk], must be one of [darwin, freebsd, linux, mac, windows]"
+            "unknown platform [unknown] for jdk [testjdk], must be one of [darwin, freebsd, sunos, linux, mac, windows]"
         );
     }
 
--- OpenSearch-2.7.0/distribution/archives/build.gradle.orig
+++ OpenSearch-2.7.0/distribution/archives/build.gradle
@@ -130,6 +130,20 @@
     }
   }
 
+  sunosTar {
+    archiveClassifier = 'sunos-x64'
+    content {
+      archiveFiles(modulesFiles('sunos-x64'), 'tar', 'sunos', 'x64', false)
+    }
+  }
+
+  noJdkSunosTar {
+    archiveClassifier = 'no-jdk-sunos-x64'
+    content {
+      archiveFiles(modulesFiles('sunos-x64'), 'tar', 'sunos', 'x64', false)
+    }
+  }
+
   linuxArm64Tar {
     archiveClassifier = 'linux-arm64'
     content {
--- OpenSearch-2.7.0/distribution/build.gradle.orig
+++ OpenSearch-2.7.0/distribution/build.gradle
@@ -353,7 +353,7 @@
           }
         }
         def buildModules = buildModulesTaskProvider
-        List excludePlatforms = ['darwin-x64', 'freebsd-x64', 'linux-x64', 'linux-arm64', 'linux-s390x', 'linux-ppc64le', 'windows-x64', 'darwin-arm64']
+        List excludePlatforms = ['darwin-x64', 'freebsd-x64', 'sunos-x64', 'linux-x64', 'linux-arm64', 'linux-s390x', 'linux-ppc64le', 'windows-x64', 'darwin-arm64']
         if (platform != null) {
           excludePlatforms.remove(excludePlatforms.indexOf(platform))
         } else {
--- OpenSearch-2.7.0/settings.gradle.orig
+++ OpenSearch-2.7.0/settings.gradle
@@ -46,6 +46,8 @@
   'distribution:archives:no-jdk-darwin-tar',
   'distribution:archives:freebsd-tar',
   'distribution:archives:no-jdk-freebsd-tar',
+  'distribution:archives:sunos-tar',
+  'distribution:archives:no-jdk-sunos-tar',
   'distribution:archives:linux-arm64-tar',
   'distribution:archives:no-jdk-linux-arm64-tar',
   'distribution:archives:linux-s390x-tar',
--- OpenSearch-2.7.0/distribution/src/bin/opensearch-env.orig
+++ OpenSearch-2.7.0/distribution/src/bin/opensearch-env
@@ -9,6 +9,8 @@
 UNAME=$(uname -s)
 if [ $UNAME = "FreeBSD" ]; then
   OS="freebsd"
+elif [ $UNAME = "SunOS" ]; then
+  OS="sunos"
 elif [ $UNAME = "Darwin" ]; then
   OS="darwin"
 else
@@ -60,6 +62,9 @@
   elif [ $OS = "freebsd" ]; then
     # using FreeBSD default java from ports if JAVA_HOME is not set
     JAVA="/usr/local/bin/java"
+  elif [ $OS = "sunos" ]; then
+    # using SunOS default java from repo if JAVA_HOME is not set
+    JAVA="/usr/bin/java"
   else
     JAVA="$OPENSEARCH_HOME/jdk/bin/java"
   fi