diff --git a/.buildkite/Buildkite.csproj b/.buildkite/Buildkite.csproj
deleted file mode 100644
index 212bdcfce59..00000000000
--- a/.buildkite/Buildkite.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- net5.0
-
-
-
-
- .dockerignore
-
-
-
-
diff --git a/.buildkite/DockerFile b/.buildkite/DockerFile
deleted file mode 100644
index e8e0211202b..00000000000
--- a/.buildkite/DockerFile
+++ /dev/null
@@ -1,55 +0,0 @@
-ARG DOTNET_VERSION=9.0.100
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION} AS elasticsearch-net-build
-
-ENV NUGET_SCRATCH="/tmp/NuGetScratch"
-
-ARG USER_ID
-ARG GROUP_ID
-
-RUN echo addgroup --gid $GROUP_ID user
-RUN addgroup --gid $GROUP_ID user
-RUN adduser --disabled-password --gecos '' --uid $USER_ID --gid $GROUP_ID user
-
-WORKDIR /sln
-RUN chown $GROUP_ID:$USER_ID $(pwd)
-COPY ./*.sln ./nuget.config ./*.Build.props ./*.Build.targets ./
-
-COPY ./dotnet-tools.json ./
-
-# todo standardize on Build.props as Directory.Build.props needs that form
-COPY ./src/*.Build.props ./src/
-COPY ./tests/*.Build.props ./tests/
-
-# Copy the main source project files
-COPY src/*/*.?sproj ./src/
-COPY tests/*/*.?sproj ./tests/
-COPY benchmarks/*/*.?sproj ./benchmarks/
-COPY examples/*/*.?sproj ./examples/
-
-# this puts the project files back into original location since COPY flattens
-RUN for file in $(find . -name "*.?sproj"); do echo mkdir -p $(dirname $file)/$(basename ${file%.*})/ && echo mv $file $(dirname $file)/$(basename ${file%.*})/; done
-RUN for file in $(find . -name "*.?sproj"); do mkdir -p $(dirname $file)/$(basename ${file%.*})/ && mv $file $(dirname $file)/$(basename ${file%.*})/; done
-
-# copy these manually since these do not follow a pattern under src or tests
-COPY build/scripts/scripts.fsproj ./build/scripts/
-COPY .buildkite/Buildkite.csproj ./.buildkite/
-
-# Install app dependencies
-RUN dotnet restore
-RUN dotnet tool restore
-
-RUN chown -R $GROUP_ID:$USER_ID $(pwd)
-RUN chown -R $GROUP_ID:$USER_ID /tmp/NuGetScratch
-
-# copy relevant files (see .dockerignore)
-COPY . .
-
-# making sure enough git info is available inside the container
-RUN git config --global --add safe.directory '*'
-RUN git rev-parse HEAD .
-
-# USER user
-
-
-
-
diff --git a/.buildkite/certs/ca.crt b/.buildkite/certs/ca.crt
deleted file mode 100755
index 71f9bfc818a..00000000000
--- a/.buildkite/certs/ca.crt
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIVAJQLm8V2LcaCTHUcoIfO+KL63nG3MA0GCSqGSIb3DQEB
-CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
-ZXJhdGVkIENBMB4XDTIwMDIyNjA1NTA1N1oXDTIzMDIyNTA1NTA1N1owNDEyMDAG
-A1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5lcmF0ZWQgQ0Ew
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYyajkPvGtUOE5M1OowQfB
-kWVrWjo1+LIxzgCeRHp0YztLtdVJ0sk2xoSrt2uZpxcPepdyOseLTjFJex1D2yCR
-AEniIqcFif4G72nDih2LlbhpUe/+/MTryj8ZTkFTzI+eMmbQi5FFMaH+kwufmdt/
-5/w8YazO18SxxJUlzMqzfNUrhM8vvvVdxgboU7PWhk28wZHCMHQovomHmzclhRpF
-N0FMktA98vHHeRjH19P7rNhifSd7hZzoH3H148HVAKoPgqnZ6vW2O2YfAWOP6ulq
-cyszr57p8fS9B2wSdlWW7nVHU1JuKcYD67CxbBS23BeGFgCj4tiNrmxO8S5Yf85v
-AgMBAAGjUzBRMB0GA1UdDgQWBBSWAlip9eoPmnG4p4OFZeOUBlAbNDAfBgNVHSME
-GDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
-SIb3DQEBCwUAA4IBAQA19qqrMTWl7YyId+LR/QIHDrP4jfxmrEELrAL58q5Epc1k
-XxZLzOBSXoBfBrPdv+3XklWqXrZjKWfdkux0Xmjnl4qul+srrZDLJVZG3I7IrITh
-AmQUmL9MuPiMnAcxoGZp1xpijtW8Qmd2qnambbljWfkuVaa4hcVRfrAX6TciIQ21
-bS5aeLGrPqR14h30YzDp0RMmTujEa1o6ExN0+RSTkE9m89Q6WdM69az8JW7YkWqm
-I+UCG3TcLd3TXmN1zNQkq4y2ObDK4Sxy/2p6yFPI1Fds5w/zLfBOvvPQY61vEqs8
-SCCcQIe7f6NDpIRIBlty1C9IaEHj7edyHjF6rtYb
------END CERTIFICATE-----
diff --git a/.buildkite/certs/ca.key b/.buildkite/certs/ca.key
deleted file mode 100644
index dfc41b558d1..00000000000
--- a/.buildkite/certs/ca.key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpgIBAAKCAQEA2Mmo5D7xrVDhOTNTqMEHwZFla1o6NfiyMc4AnkR6dGM7S7XV
-SdLJNsaEq7drmacXD3qXcjrHi04xSXsdQ9sgkQBJ4iKnBYn+Bu9pw4odi5W4aVHv
-/vzE68o/GU5BU8yPnjJm0IuRRTGh/pMLn5nbf+f8PGGsztfEscSVJczKs3zVK4TP
-L771XcYG6FOz1oZNvMGRwjB0KL6Jh5s3JYUaRTdBTJLQPfLxx3kYx9fT+6zYYn0n
-e4Wc6B9x9ePB1QCqD4Kp2er1tjtmHwFjj+rpanMrM6+e6fH0vQdsEnZVlu51R1NS
-binGA+uwsWwUttwXhhYAo+LYja5sTvEuWH/ObwIDAQABAoIBAQC8QDGnMnmPdWJ+
-13FYY3cmwel+FXXjFDk5QpgK15A2rUz6a8XxO1d7d1wR+U84uH4v9Na6XQyWjaoD
-EyPQnuJiyAtgkZLUHoY244PGR5NsePEQlBSCKmGeF5w/j1LvP/2e9EmP4wKdQYJY
-nLxFNcgEBCFnFbKIU5n8fKa/klybCrwlBokenyBro02tqH4LL7h1YMRRrl97fv1V
-e/y/0WcMN+KnMglfz6haimBRV2yamCCHHmBImC+wzOgT/quqlxPfI+a3ScHxuA65
-3QyCavaqlPh+T3lXnN/Na4UWqFtzMmwgJX2x1zM5qiln46/JoDiXtagvV43L3rNs
-LhPRFeIRAoGBAPhEB7nNpEDNjIRUL6WpebWS9brKAVY7gYn7YQrKGhhCyftyaiBZ
-zYgxPaJdqYXf+DmkWlANGoYiwEs40QwkR/FZrvO4+Xh3n3dgtl59ZmieuoQvDsG+
-RYIj+TfBaqhewhZNMMl7dxz7DeyQhyRCdsvl3VqJM0RuOsIrzrhCIEItAoGBAN+K
-lgWI7swDpOEaLmu+IWMkGImh1LswXoZqIgi/ywZ7htZjPzidOIeUsMi+lrYsKojG
-uU3sBxASsf9kYXDnuUuUbGT5M/N2ipXERt7klUAA/f5sg1IKlTrabaN/HGs/uNtf
-Efa8v/h2VyTurdPCJ17TNpbOMDwX1qGM62tyt2CLAoGBAIHCnP8iWq18QeuQTO8b
-a3/Z9hHRL22w4H4MI6aOB6GSlxuTq6CJD4IVqo9IwSg17fnCy2l3z9s4IqWuZqUf
-+XJOW8ELd2jdrT2qEOfGR1Z7UCVyqxXcq1vgDYx0zZh/HpalddB5dcJx/c8do2Ty
-UEE2PcHqYB9uNcvzNbLc7RtpAoGBALbuU0yePUTI6qGnajuTcQEPpeDjhRHWSFRZ
-ABcG1N8uMS66Mx9iUcNp462zgeP8iqY5caUZtMHreqxT+gWKK7F0+as7386pwElF
-QPXgO18QMMqHBIQb0vlBjJ1SRPBjSiSDTVEML1DljvTTOX7kEJHh6HdKrmBO5b54
-cqMQUo53AoGBAPVWRPUXCqlBz914xKna0ZUh2aesRBg5BvOoq9ey9c52EIU5PXL5
-0Isk8sWSsvhl3tjDPBH5WuL5piKgnCTqkVbEHmWu9s1T57Mw6NuxlPMLBWvyv4c6
-tB9brOxv0ui3qGMuBsBoDKbkNnwXyOXLyFg7O+H4l016A3mLQzJM+NGV
------END RSA PRIVATE KEY-----
diff --git a/.buildkite/certs/testnode.crt b/.buildkite/certs/testnode.crt
deleted file mode 100755
index a49dfd77507..00000000000
--- a/.buildkite/certs/testnode.crt
+++ /dev/null
@@ -1,19 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDIzCCAgugAwIBAgIVAMTO6uVx9dLox2t0lY4IcBKZXb5WMA0GCSqGSIb3DQEB
-CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
-ZXJhdGVkIENBMB4XDTIwMDIyNjA1NTA1OVoXDTIzMDIyNTA1NTA1OVowEzERMA8G
-A1UEAxMIaW5zdGFuY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDK
-YLTOikVENiN/qYupOsoXd7VYYnryyfCC/dK4FC2aozkbqjFzBdvPGAasoc4yEiH5
-CGeXMgJuOjk1maqetmdIsw00j4oHJviYsnGXzxxS5swhD7spcW4Uk4V4tAUzrbfT
-vW/2WW/yYCLe5phVb2chz0jL+WYb4bBmdfs/t6RtP9RqsplYAmVp3gZ6lt2YNtvE
-k9gz0TVk3DuO1TquIClfRYUjuywS6xDSvxJ8Jl91EfDWM8QU+9F+YAtiv74xl2U3
-P0wwMqNvMxf9/3ak3lTQGsgO4L6cwbKpVLMMzxSVunZz/sgl19xy3qHHz1Qr2MjJ
-/2c2J7vahUL4NPRkjJClAgMBAAGjTTBLMB0GA1UdDgQWBBS2Wn8E2VZv4oenY+pR
-O8G3zfQXhzAfBgNVHSMEGDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAJBgNVHRME
-AjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAvwPvCiJJ6v9jYcyvYY8I3gP0oCwrylpRL
-n91UlgRSHUmuAObyOoVN5518gSV/bTU2SDrstcLkLFxHvnfpoGJoxsQEHuGxwDRI
-nhYNd62EKLerehNM/F9ILKmvTh8f6QPCzjUuExTXv+63l2Sr6dBS7FHsGs6UKUYO
-llM/y9wMZ1LCuZuBg9RhtgpFXRSgDM9Z7Begu0d/BPX9od/qAeZg9Arz4rwUiCN4
-IJOMEBEPi5q1tgeS0Fb1Grpqd0Uz5tZKtEHNKzLG+zSMmkneL62Nk2HsmEFZKwzg
-u2pU42UaUE596G6o78s1aLn9ICcElPHTjiuZNSiyuu9IzvFDjGQw
------END CERTIFICATE-----
diff --git a/.buildkite/certs/testnode.key b/.buildkite/certs/testnode.key
deleted file mode 100755
index 82efeecb949..00000000000
--- a/.buildkite/certs/testnode.key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEAymC0zopFRDYjf6mLqTrKF3e1WGJ68snwgv3SuBQtmqM5G6ox
-cwXbzxgGrKHOMhIh+QhnlzICbjo5NZmqnrZnSLMNNI+KByb4mLJxl88cUubMIQ+7
-KXFuFJOFeLQFM623071v9llv8mAi3uaYVW9nIc9Iy/lmG+GwZnX7P7ekbT/UarKZ
-WAJlad4GepbdmDbbxJPYM9E1ZNw7jtU6riApX0WFI7ssEusQ0r8SfCZfdRHw1jPE
-FPvRfmALYr++MZdlNz9MMDKjbzMX/f92pN5U0BrIDuC+nMGyqVSzDM8Ulbp2c/7I
-Jdfcct6hx89UK9jIyf9nNie72oVC+DT0ZIyQpQIDAQABAoIBADAh7f7NjgnaInlD
-ds8KB3SraPsbeQhzlPtiqRJU4j/MIFH/GYG03AGWQkget67a9y+GmzSvlTpoKKEh
-6h2TXl9BDpv4o6ht0WRn1HJ5tM/Wyqf2WNpTew3zxCPgFPikkXsPrChYPzLTQJfp
-GkP/mfTFmxfAOlPZSp4j41zVLYs53eDkAegFPVfKSr1XNNJ3QODLPcIBfxBYsiC9
-oU+jRW8xYuj31cEl5k5UqrChJ1rm3mt6cguqXKbISuoSvi13gXI6DccqhuLAU+Kr
-ib2XYrRP+pWocZo/pM9WUVoNGtFxfY88sAQtvG6gDKo2AURtFyq84Ow0h9mdixV/
-gRIDPcECgYEA5nEqE3OKuG9WuUFGXvjtn4C0F6JjflYWh7AbX51S4F6LKrW6/XHL
-Rg4BtF+XReT7OQ6llsV8kZeUxsUckkgDLzSaA8lysNDV5KkhAWHfRqH//QKFbqZi
-JL9t3x63Qt81US8s2hQk3khPYTRM8ZB3xHiXvZYSGC/0x/DxfEO3QJECgYEA4NK5
-sxtrat8sFz6SK9nWEKimPjDVzxJ0hxdX4tRq/JdOO5RncawVqt6TNP9gTuxfBvhW
-MhJYEsQj8iUoL1dxo9d1eP8HEANNV0iX5OBvJNmgBp+2OyRSyr+PA55+wAxYuAE7
-QKaitOjW57fpArNRt2hQyiSzTuqUFRWTWJHCWNUCgYAEurPTXF6vdFGCUc2g61jt
-GhYYGhQSpq+lrz6Qksj9o9MVWE9zHh++21C7o+6V16I0RJGva3QoBMVf4vG4KtQt
-5tV2WG8LI+4P2Ey+G4UajP6U8bVNVQrUmD0oBBhcvfn5JY+1Fg6/pRpD82/U0VMz
-7AmpMWhDqNBMPiymkTk0kQKBgCuWb05cSI0ly4SOKwS5bRk5uVFhYnKNH255hh6C
-FGP4acB/WzbcqC7CjEPAJ0nl5d6SExQOHmk1AcsWjR3wlCWxxiK5PwNJwJrlhh1n
-reS1FKN0H36D4lFQpkeLWQOe4Sx7gKNeKzlr0w6Fx3Uwku0+Gju2tdTdAey8jB6l
-08opAoGAEe1AuR/OFp2xw6V8TH9UHkkpGxy+OrXI6PX6tgk29PgB+uiMu4RwbjVz
-1di1KKq2XecAilVbnyqY+edADxYGbSnci9x5wQRIebfMi3VXKtV8NQBv2as6qwtW
-JDcQUWotOHjpdvmfJWWkcBhbAKrgX8ukww00ZI/lC3/rmkGnBBg=
------END RSA PRIVATE KEY-----
diff --git a/.buildkite/certs/testnode_san.crt b/.buildkite/certs/testnode_san.crt
deleted file mode 100644
index 8abba55b597..00000000000
--- a/.buildkite/certs/testnode_san.crt
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDVjCCAj6gAwIBAgIULh42yRefYlRRl1hvt055LrUH0HwwDQYJKoZIhvcNAQEL
-BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
-cmF0ZWQgQ0EwHhcNMjAwMjI4MDMzNzIwWhcNMjMwMjI3MDMzNzIwWjATMREwDwYD
-VQQDEwhpbnN0YW5jZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIUP
-t267NN21z+3ukajej8eojSXwP6zHxy7CUAp+sQ7bTq2XCKxkYX3CW9ThcS4cV9mL
-ayYdWEYnbEDGYPQDo7Wk3Ih5OEXTMZb/yNEx5D4S2lGMOS5bCDdYx6GvwCMG4jNx
-aMktosaxpprAJiHh2oLgQk0hQc/a9JfMo6kJKtuhjxsxjxLwcOHhuaUD7NS0Pjop
-CJkSYcrL+nnQPQjKe4uLhAbSyiX914h4QX0CJ0e4z1ccdDX2PFWTrwaIf//vQhCR
-wP2YKdfjR0JB4oDAlu85GsIs2cFLPysM5ufuNZO4fCr8uOwloKI8zZ2HhlIfBEcY
-Gcy4g9N/9epmxMXZlGcCAwEAAaOBgDB+MB0GA1UdDgQWBBRefYm8DHHDdkTPHhS1
-HEUwTb2uiDAfBgNVHSMEGDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAxBgNVHREE
-KjAogglsb2NhbGhvc3SHBH8AAAGHEAAAAAAAAAAAAAAAAAAAAAGCA2VzMTAJBgNV
-HRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC+pauqM2wJjQaHyHu+kIm59P4b/5Oj
-IH1cYCQfMB7Y2UMLxp0ew+f7o7zzE2DA52YYFDWy6J5DVWtSBPyeFGgX+RH+aA+9
-Iv4cc9QpAs6aFjncorHrzNOrWLgCHIeRAxTR0CAkeP2dUZfDBuMpRyP6rAsYzyLH
-Rb3/BfYJSI5vxgt5Ke49Y/ljDKFJTyDmAVrHQ4JWrseYE1UZ2eDkBXeiRlYE/QtB
-YsrUSqdL6zvFZyUcilxDUUabNcA+GgeGZ2lAEA90F8vwi62QwRXo3Iv1Hz+6xc43
-nFofDK9D8/qkrUD9iuhpx1974QwPhwWyjn9RZRpbZA4ngRL+szdRXR4N
------END CERTIFICATE-----
diff --git a/.buildkite/certs/testnode_san.key b/.buildkite/certs/testnode_san.key
deleted file mode 100644
index 75d19539e69..00000000000
--- a/.buildkite/certs/testnode_san.key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEAhQ+3brs03bXP7e6RqN6Px6iNJfA/rMfHLsJQCn6xDttOrZcI
-rGRhfcJb1OFxLhxX2YtrJh1YRidsQMZg9AOjtaTciHk4RdMxlv/I0THkPhLaUYw5
-LlsIN1jHoa/AIwbiM3FoyS2ixrGmmsAmIeHaguBCTSFBz9r0l8yjqQkq26GPGzGP
-EvBw4eG5pQPs1LQ+OikImRJhysv6edA9CMp7i4uEBtLKJf3XiHhBfQInR7jPVxx0
-NfY8VZOvBoh//+9CEJHA/Zgp1+NHQkHigMCW7zkawizZwUs/Kwzm5+41k7h8Kvy4
-7CWgojzNnYeGUh8ERxgZzLiD03/16mbExdmUZwIDAQABAoIBAEwhjulLMVc9JEfV
-PP/qv0cUOBYh3LzF3T/yq4slq7Z9YgnOJYdFM8aZgqNNjc09KEJvE5JOLeiNu9Ff
-768Nugg+2HM5MCo7SN9FYCfZLOcbMFCCM2FDcnMAV9A512vzD08xryuT8dNPZ6yZ
-DfhK2hQRrb2lrpr3gwSrcGRRu3THqvq7X1RIjpLV3teDMeP8rQPAlpj8fmP+kdVV
-5y1ihiDIo87McihG9FMavJtBDXQkUEuVw6eIeir8L/zHHD/ZwhYjNHZGWbrB88sz
-CkJkfWh/FlA63tCVdJzkmnERALLTVy9mR0Sq6sUlnFhFNO2BRdWgYLrcp9McfTJC
-e8+WsSECgYEAuwQ3nAaFL0jqYu1AREyKT/f3WUenf2UsX7dwwV2/yFtQvkzW7ji4
-uZLnfUnZBojtHf35dRo+hDgtvhZhgZNAuPPsbOl/EIMTcbChEqV/3CSTFlhLFM1d
-hfM9PoM+Bt/pyUNabjD1sWM0X7WeUhzcddshY3S4daBsNsLuOzweRRcCgYEAtiSS
-4qiiGafYsY7gOHuAlOhs/00+1uWIFEHKgoHM9vzCxDN3LCmBdynHk8ZE2TAdhw+l
-7xpu6LUxKQDfGmVZa9Epg0kQmVq9c54oQP57pJ3tR+68++insEkfnaZH8jblfq2s
-sSkFrY3pdS19edq60nuft64kswKRUUkamCXTXTECgYBdoSfiMpV9bekC7DsPtq5M
-iR3KEgi2zEViCmomNTRuL+GF1NyKWdWJ+xVwcYd5MRZdvKimyyPfeGzWTUg14i42
-KtEEWgZmkukqMz8BIeCYq6sENeIpIQQgqv3PjU+Bi5r1S4Y7wsFPNRakkD4aaB6r
-1rCppWcwZMeoxwEUoO2aswKBgBdDIIdWJi3EpAY5SyWrkEZ0UMdiZC4p7nE33ddB
-IJ5CtdU9BXFcc652ZYjX/58FaCABvZ2F8LhDu92SwOusGfmNIxIjWL1dO2jywA1c
-8wmZKd7P/M7nbdMz45fMzs9+d1zwbWfK53C8+R4AC1BuwQF0zHc3BHTgVRLelUjt
-O8thAoGAdO2gHIqEsZzTgbvLbsh52eVbumjfNGnrnEv1fjb+o+/wAol8dymcmzbL
-bZCRzoyA0qwU9kdPFgX46H6so6o1tUM2GQtVFoT6kDnPv7EkLQK0C4cDh6OOHxDU
-NPvr/9fHhQd9EDWDvS1JnVMAdKDO6ELp3SoKGGmCXR2QplnqWAk=
------END RSA PRIVATE KEY-----
diff --git a/.buildkite/functions/cleanup.sh b/.buildkite/functions/cleanup.sh
deleted file mode 100644
index 98dfe4e1412..00000000000
--- a/.buildkite/functions/cleanup.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env bash
-#
-# Shared cleanup routines between different steps
-#
-# Please source .buildkite/functions/imports.sh as a whole not just this file
-#
-# Version 1.0.0
-# - Initial version after refactor
-
-function cleanup_volume {
- if [[ "$(docker volume ls -q -f name=$1)" ]]; then
- echo -e "\033[34;1mINFO:\033[0m Removing volume $1\033[0m"
- (docker volume rm "$1") || true
- fi
-}
-function container_running {
- if [[ "$(docker ps -q -f name=$1)" ]]; then
- return 0;
- else return 1;
- fi
-}
-function cleanup_node {
- if container_running "$1"; then
- echo -e "\033[34;1mINFO:\033[0m Removing container $1\033[0m"
- (docker container rm --force --volumes "$1") || true
- fi
- if [[ -n "$1" ]]; then
- echo -e "\033[34;1mINFO:\033[0m Removing volume $1-${suffix}-data\033[0m"
- cleanup_volume "$1-${suffix}-data"
- fi
-}
-function cleanup_network {
- if [[ "$(docker network ls -q -f name=$1)" ]]; then
- echo -e "\033[34;1mINFO:\033[0m Removing network $1\033[0m"
- (docker network rm "$1") || true
- fi
-}
-
-function cleanup_trap {
- status=$?
- set +x
- if [[ "$DETACH" != "true" ]]; then
- echo -e "\033[34;1mINFO:\033[0m clean the network if not detached (start and exit)\033[0m"
- cleanup_all_in_network "$1"
- fi
- # status is 0 or SIGINT
- if [[ "$status" == "0" || "$status" == "130" ]]; then
- echo -e "\n\033[32;1mSUCCESS run-tests\033[0m"
- exit 0
- else
- echo -e "\n\033[31;1mFAILURE during run-tests\033[0m"
- exit ${status}
- fi
-};
-function cleanup_all_in_network {
-
- if [[ -z "$(docker network ls -q -f name="^$1\$")" ]]; then
- echo -e "\033[34;1mINFO:\033[0m $1 is already deleted\033[0m"
- return 0
- fi
- containers=$(docker network inspect -f '{{ range $key, $value := .Containers }}{{ printf "%s\n" .Name}}{{ end }}' $1)
- while read -r container; do
- cleanup_node "$container"
- done <<< "$containers"
- cleanup_network $1
- echo -e "\033[32;1mSUCCESS:\033[0m Cleaned up and exiting\033[0m"
-};
diff --git a/.buildkite/functions/imports.sh b/.buildkite/functions/imports.sh
deleted file mode 100644
index c05f3682695..00000000000
--- a/.buildkite/functions/imports.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env bash
-#
-# Sets up all the common variables and imports relevant functions
-#
-# Version 1.0.1
-# - Initial version after refactor
-# - Validate STACK_VERSION asap
-
-function require_stack_version() {
- if [[ -z $STACK_VERSION ]]; then
- echo -e "\033[31;1mERROR:\033[0m Required environment variable [STACK_VERSION] not set\033[0m"
- exit 1
- fi
-}
-
-require_stack_version
-
-if [[ -z $es_node_name ]]; then
- # only set these once
- set -euo pipefail
- export TEST_SUITE=${TEST_SUITE-free}
- export RUNSCRIPTS=${RUNSCRIPTS-}
- export DETACH=${DETACH-false}
- export CLEANUP=${CLEANUP-false}
-
- export es_node_name=instance
- export elastic_password=changeme
- export elasticsearch_image=elasticsearch
- export elasticsearch_scheme="https"
- if [[ $TEST_SUITE != "platinum" ]]; then
- export elasticsearch_scheme="http"
- fi
- export elasticsearch_url=${elasticsearch_scheme}://elastic:${elastic_password}@${es_node_name}:9200
- export external_elasticsearch_url=${elasticsearch_url/$es_node_name/localhost}
- export elasticsearch_container="${elasticsearch_image}:${STACK_VERSION}"
-
- export suffix=rest-test
- export moniker=$(echo "$elasticsearch_container" | tr -C "[:alnum:]" '-')
- export network_name=${moniker}${suffix}
-
- export ssl_cert="${script_path}/certs/testnode.crt"
- export ssl_key="${script_path}/certs/testnode.key"
- export ssl_ca="${script_path}/certs/ca.crt"
-
-fi
-
- export script_path=$(dirname $(realpath -s $0))
- source $script_path/functions/cleanup.sh
- source $script_path/functions/wait-for-container.sh
- trap "cleanup_trap ${network_name}" EXIT
-
-
-if [[ "$CLEANUP" == "true" ]]; then
- cleanup_all_in_network $network_name
- exit 0
-fi
-
-echo -e "\033[34;1mINFO:\033[0m Creating network $network_name if it does not exist already \033[0m"
-docker network inspect "$network_name" > /dev/null 2>&1 || docker network create "$network_name"
-
diff --git a/.buildkite/functions/wait-for-container.sh b/.buildkite/functions/wait-for-container.sh
deleted file mode 100644
index 82e7394fb08..00000000000
--- a/.buildkite/functions/wait-for-container.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-#
-# Exposes a routine scripts can call to wait for a container if that container set up a health command
-#
-# Please source .buildkite/functions/imports.sh as a whole not just this file
-#
-# Version 1.0.1
-# - Initial version after refactor
-# - Make sure wait_for_contiainer is silent
-
-function wait_for_container {
- set +x
- until ! container_running "$1" || (container_running "$1" && [[ "$(docker inspect -f "{{.State.Health.Status}}" ${1})" != "starting" ]]); do
- echo ""
- docker inspect -f "{{range .State.Health.Log}}{{.Output}}{{end}}" ${1}
- echo -e "\033[34;1mINFO:\033[0m waiting for node $1 to be up\033[0m"
- sleep 10;
- done;
-
- # Always show logs if the container is running, this is very useful both on CI as well as while developing
- if container_running $1; then
- docker logs $1
- fi
-
- if ! container_running $1 || [[ "$(docker inspect -f "{{.State.Health.Status}}" ${1})" != "healthy" ]]; then
- cleanup_all_in_network $2
- echo
- echo -e "\033[31;1mERROR:\033[0m Failed to start $1 in detached mode beyond health checks\033[0m"
- echo -e "\033[31;1mERROR:\033[0m dumped the docker log before shutting the node down\033[0m"
- return 1
- else
- echo
- echo -e "\033[32;1mSUCCESS:\033[0m Detached and healthy: ${1} on docker network: ${network_name}\033[0m"
- return 0
- fi
-}
diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml
deleted file mode 100644
index b702d1737b2..00000000000
--- a/.buildkite/pipeline.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-steps:
- - label: ":dotnet: Elasticsearch-Net {{ matrix.suite }}"
- agents:
- provider: "gcp"
- env:
- TEST_SUITE: "{{ matrix.suite }}"
- STACK_VERSION: master-SNAPSHOT
- DOTNET_VERSION: 9.0.100
- matrix:
- setup:
- suite:
- - "free"
- - "platinum"
- command: ./.buildkite/run-tests
diff --git a/.buildkite/run-elasticsearch.ps1 b/.buildkite/run-elasticsearch.ps1
deleted file mode 100644
index f319ea3f322..00000000000
--- a/.buildkite/run-elasticsearch.ps1
+++ /dev/null
@@ -1,253 +0,0 @@
-# Launch one or more Elasticsearch nodes via the Docker image,
-# to form a cluster suitable for running the REST API tests.
-#
-# Export the ELASTICSEARCH_VERSION variable, eg. 'elasticsearch:8.0.0-SNAPSHOT'.
-
-param(
- [string]
- $NODE_NAME,
-
- [string]
- $MASTER_NODE_NAME,
-
- [string]
- $CLUSTER_NAME,
-
- [int]
- $HTTP_PORT = 9200,
-
- [string]
- $ELASTIC_PASSWORD = "changeme",
-
- [string]
- $SSL_CERT = "$PWD/certs/testnode.crt",
-
- [string]
- $SSL_KEY = "$PWD/certs/testnode.key",
-
- [string]
- $SSL_CA = "$PWD/certs/ca.crt",
-
- [switch]
- $DETACH,
-
- [switch]
- $CLEANUP,
-
- [string]
- $NETWORK_NAME
-
-)
-
-trap {
- cleanup
-}
-
-$ESC = [char]27
-
-if ($null -eq $env:ELASTICSEARCH_VERSION) {
- Write-Error "ERROR: Required environment variable [ELASTICSEARCH_VERSION] not set"
- exit 1
-}
-
-$moniker = $env:ELASTICSEARCH_VERSION -replace "[^a-zA-Z\d]", "-"
-$suffix = "rest-test"
-
-if (!$NODE_NAME) {
- $NODE_NAME = "${moniker}node1"
-}
-
-if (!$MASTER_NODE_NAME) {
- $MASTER_NODE_NAME = $NODE_NAME
-}
-
-if (!$CLUSTER_NAME) {
- $CLUSTER_NAME = "${moniker}${suffix}"
-}
-
-$volume_name = "${NODE_NAME}-${suffix}-data"
-
-if (!$NETWORK_NAME) {
- $NETWORK_NAME= "${moniker}${suffix}"
-}
-
-
-function cleanup_volume {
- param(
- [string]
- $Name
- )
-
- if ("$(docker volume ls --quiet --filter name="$Name")") {
- Write-Output "$ESC[34;1mINFO:$ESC[0m Removing volume $Name$ESC[0m"
- docker volume rm "$Name"
- }
-}
-function cleanup_node {
- param(
- [string]
- $Name
- )
-
- if ("$(docker ps --quiet --filter name="$Name")") {
- Write-Output "$ESC[34;1mINFO:$ESC[0m Removing container $Name$ESC[0m"
- docker container rm --force --volumes "$Name"
- cleanup_volume "$Name-${suffix}-data"
- }
-}
-function cleanup_network {
- param(
- [string]
- $Name
- )
-
- if ("$(docker network ls --quiet --filter name="$Name")") {
- Write-Output "$ESC[34;1mINFO:$ESC[0m Removing network ${Name}$ESC[0m"
- docker network rm "$Name"
- }
-}
-
-function cleanup {
- param(
- [switch]
- $Cleanup
- )
-
- if ((-not $DETACH) -or $Cleanup) {
- Write-Output "$ESC[34;1mINFO:$ESC[0m clean the node and volume on startup (1) OR on exit if not detached$ESC[0m"
- cleanup_node "$NODE_NAME"
- }
- if (-not $DETACH) {
- Write-Output "$ESC[34;1mINFO:$ESC[0m clean the network if not detached (start and exit)$ESC[0m"
- cleanup_network "$NETWORK_NAME"
- }
-}
-
-if ($CLEANUP) {
- #trap - EXIT
- if ("$(docker network ls --quiet --filter name=${NETWORK_NAME})" -eq "") {
- Write-Output "$ESC[34;1mINFO:$ESC[0m $NETWORK_NAME is already deleted$ESC[0m"
- exit 0
- }
- $containers = $(docker network inspect --format '{{ range $key, $value := .Containers }}{{ println .Name}}{{ end }}' ${NETWORK_NAME})
-
- foreach($container in $containers) {
- cleanup_node "$container"
- }
-
- cleanup_network "$NETWORK_NAME"
- Write-Output "$ESC[32;1mSUCCESS:$ESC[0m Cleaned up and exiting$ESC[0m"
- exit 0
-}
-
-Write-Output "$ESC[34;1mINFO:$ESC[0m Making sure previous run leftover infrastructure is removed$ESC[0m"
-cleanup -Cleanup
-
-Write-Output "$ESC[34;1mINFO:$ESC[0m Creating network $NETWORK_NAME if it does not exist already$ESC[0m"
-
-docker network inspect "$NETWORK_NAME" | Out-Null
-if ($LASTEXITCODE -ne 0) {
- docker network create "$NETWORK_NAME"
-}
-
-$environment = @(
- "--env", "node.name=`"$NODE_NAME`"",
- "--env", "cluster.name=`"$CLUSTER_NAME`"",
- "--env", "cluster.initial_master_nodes=`"$MASTER_NODE_NAME`"",
- "--env", "discovery.seed_hosts=`"$MASTER_NODE_NAME`"",
- "--env", "cluster.routing.allocation.disk.threshold_enabled=false",
- "--env", "bootstrap.memory_lock=true",
- "--env", "node.attr.testattr=test",
- "--env", "path.repo=/tmp",
- "--env", "repositories.url.allowed_urls=http://snapshot.test*",
- "--env", "ingest.geoip.downloader.enabled=false"
-)
-
-$volumes = @(
- "--volume", "${volume_name}:/usr/share/elasticsearch/data"
-)
-
-if (-not $env:ELASTICSEARCH_VERSION -contains "free") {
- $environment += @(
- "--env", "ELASTIC_PASSWORD=`"$ELASTIC_PASSWORD`"",
- "--env", "xpack.license.self_generated.type=trial",
- "--env", "xpack.security.enabled=true",
- "--env", "xpack.security.http.ssl.enabled=true",
- "--env", "xpack.security.http.ssl.verification_mode=certificate",
- "--env", "xpack.security.http.ssl.key=certs/testnode.key",
- "--env", "xpack.security.http.ssl.certificate=certs/testnode.crt",
- "--env", "xpack.security.http.ssl.certificate_authorities=certs/ca.crt",
- "--env", "xpack.security.transport.ssl.enabled=true",
- "--env", "xpack.security.transport.ssl.key=certs/testnode.key",
- "--env", "xpack.security.transport.ssl.certificate=certs/testnode.crt",
- "--env", "xpack.security.transport.ssl.certificate_authorities=certs/ca.crt"
- )
-
- $volumes += @(
- "--volume", "`"${SSL_CERT}`":/usr/share/elasticsearch/config/certs/testnode.crt",
- "--volume", "`"${SSL_KEY}`":/usr/share/elasticsearch/config/certs/testnode.key",
- "--volume", "`"${SSL_CA}`":/usr/share/elasticsearch/config/certs/ca.crt"
- )
-}
-
-$url="http://$NODE_NAME"
-if (-not $env:ELASTICSEARCH_VERSION -contains "free") {
- $url="https://elastic:$ELASTIC_PASSWORD@$NODE_NAME"
-}
-
-Write-Output "$ESC[34;1mINFO:$ESC[0m Starting container $NODE_NAME $ESC[0m"
-
-if ($DETACH) {
- $d = "true"
-} else {
- $d = "false"
-}
-
-docker run `
- --name "`"$NODE_NAME`"" `
- --network "`"$NETWORK_NAME`"" `
- --env ES_JAVA_OPTS=-"`"Xms1g -Xmx1g`"" `
- $environment `
- $volumes `
- --publish ${HTTP_PORT}:9200 `
- --ulimit nofile=65536:65536 `
- --ulimit memlock=-1:-1 `
- --detach="$d" `
- --health-cmd="`"curl --silent --fail ${url}:9200/_cluster/health || exit 1`"" `
- --health-interval=2s `
- --health-retries=20 `
- --health-timeout=2s `
- --rm docker.elastic.co/elasticsearch/"$($env:ELASTICSEARCH_VERSION)"
-
-
-if ($DETACH) {
- while("$(docker inspect -f '{{.State.Health.Status}}' ${NODE_NAME})" -eq "starting") {
- Start-Sleep 2;
- Write-Output ""
- Write-Output "$ESC[34;1mINFO:$ESC[0m waiting for node $NODE_NAME to be up$ESC[0m"
- }
-
- # Always show the node getting started logs, this is very useful both on CI as well as while developing
- docker logs "$NODE_NAME"
-
- if ("$(docker inspect -f '{{.State.Health.Status}}' ${NODE_NAME})" -ne "healthy") {
- cleanup -Cleanup
- Write-Output ""
- Write-Output "$ESC[31;1mERROR:$ESC[0m Failed to start $($env:ELASTICSEARCH_VERSION) in detached mode beyond health checks$ESC[0m"
- Write-Output "$ESC[31;1mERROR:$ESC[0m dumped the docker log before shutting the node down$ESC[0m"
- exit 1
- } else {
- Write-Output ""
- Write-Output "$ESC[32;1mSUCCESS:$ESC[0m Detached and healthy: ${NODE_NAME} on docker network: ${NETWORK_NAME}$ESC[0m"
- $es_host = $url
- if (!$es_host) {
- $es_host = $NODE_NAME
- }
- if (!$es_host) {
- $es_host = "localhost"
- }
-
- Write-Output "$ESC[32;1mSUCCESS:$ESC[0m Running on: ${es_host}:${HTTP_PORT}$ESC[0m"
- exit 0
- }
-}
diff --git a/.buildkite/run-elasticsearch.sh b/.buildkite/run-elasticsearch.sh
deleted file mode 100755
index 7ed65d12a2f..00000000000
--- a/.buildkite/run-elasticsearch.sh
+++ /dev/null
@@ -1,135 +0,0 @@
-#!/usr/bin/env bash
-#
-# Launch one or more Elasticsearch nodes via the Docker image,
-# to form a cluster suitable for running the REST API tests.
-#
-# Export the STACK_VERSION variable, eg. '8.0.0-SNAPSHOT'.
-# Export the TEST_SUITE variable, eg. 'free' or 'platinum' defaults to 'free'.
-# Export the NUMBER_OF_NODES variable to start more than 1 node
-
-# Version 1.4.0
-# - Initial version of the run-elasticsearch.sh script
-# - Deleting the volume should not dependent on the container still running
-# - Fixed `ES_JAVA_OPTS` config
-# - Moved to STACK_VERSION and TEST_VERSION
-# - Refactored into functions and imports
-# - Support NUMBER_OF_NODES
-# - Added 5 retries on docker pull for fixing transient network errors
-# - Added flags to make local CCR configurations work
-# - Added action.destructive_requires_name=false as the default will be true in v8
-# - Added ingest.geoip.downloader.enabled=false as it causes false positives in testing
-
-# Version 1.2.0
-# - Added action.destructive_requires_name=false as the default will be true in v8
-
-# Version 1.4.0
-# - Added ingest.geoip.downloader.enabled=false as it causes false positives in testing
-
-# Version 1.5.0
-# - Moved ELASTIC_PASSWORD to the base arguments for "Security On by default"
-
-script_path=$(dirname $(realpath -s $0))
-source $script_path/functions/imports.sh
-set -euo pipefail
-
-echo -e "\033[34;1mINFO:\033[0m Take down node if called twice with the same arguments (DETACH=true) or on seperate terminals \033[0m"
-cleanup_node $es_node_name
-
-master_node_name=${es_node_name}
-cluster_name=${moniker}${suffix}
-
-BUILDKITE=${BUILDKITE-false}
-
-# Set vm.max_map_count kernel setting to 262144 if we're in CI
-if [[ "$BUILDKITE" == "true" ]]; then
- sudo sysctl -w vm.max_map_count=262144
-fi
-
-declare -a volumes
-environment=($(cat <<-END
- --env ELASTIC_PASSWORD=$elastic_password
- --env node.name=$es_node_name
- --env cluster.name=$cluster_name
- --env cluster.initial_master_nodes=$master_node_name
- --env discovery.seed_hosts=$master_node_name
- --env cluster.routing.allocation.disk.threshold_enabled=false
- --env bootstrap.memory_lock=true
- --env node.attr.testattr=test
- --env path.repo=/tmp
- --env repositories.url.allowed_urls=http://snapshot.test*
- --env ingest.geoip.downloader.enabled=false
- --env cluster.deprecation_indexing.enabled=false
-END
-))
-if [[ "$TEST_SUITE" == "platinum" ]]; then
- environment+=($(cat <<-END
- --env xpack.license.self_generated.type=trial
- --env xpack.security.enabled=true
- --env xpack.security.http.ssl.enabled=true
- --env xpack.security.http.ssl.verification_mode=certificate
- --env xpack.security.http.ssl.key=certs/testnode.key
- --env xpack.security.http.ssl.certificate=certs/testnode.crt
- --env xpack.security.http.ssl.certificate_authorities=certs/ca.crt
- --env xpack.security.transport.ssl.enabled=true
- --env xpack.security.transport.ssl.key=certs/testnode.key
- --env xpack.security.transport.ssl.certificate=certs/testnode.crt
- --env xpack.security.transport.ssl.certificate_authorities=certs/ca.crt
-END
-))
- volumes+=($(cat <<-END
- --volume $ssl_cert:/usr/share/elasticsearch/config/certs/testnode.crt
- --volume $ssl_key:/usr/share/elasticsearch/config/certs/testnode.key
- --volume $ssl_ca:/usr/share/elasticsearch/config/certs/ca.crt
-END
-))
-fi
-
-cert_validation_flags=""
-if [[ "$TEST_SUITE" == "platinum" ]]; then
- cert_validation_flags="--insecure --cacert /usr/share/elasticsearch/config/certs/ca.crt --resolve ${es_node_name}:443:127.0.0.1"
-fi
-
-NUMBER_OF_NODES=${NUMBER_OF_NODES-1}
-http_port=9200
-for (( i=0; i<$NUMBER_OF_NODES; i++, http_port++ )); do
- node_name=${es_node_name}$i
- node_url=${external_elasticsearch_url/9200/${http_port}}$i
- if [[ "$i" == "0" ]]; then node_name=$es_node_name; fi
- environment+=($(cat <<-END
- --env node.name=$node_name
-END
-))
- echo "$i: $http_port $node_url "
- volume_name=${node_name}-${suffix}-data
- volumes+=($(cat <<-END
- --volume $volume_name:/usr/share/elasticsearch/data${i}
-END
-))
- echo "--- :elasticsearch: Running container"
- # make sure we detach for all but the last node if DETACH=false (default) so all nodes are started
- local_detach="true"
- if [[ "$i" == "$((NUMBER_OF_NODES-1))" ]]; then local_detach=$DETACH; fi
- echo -e "\033[34;1mINFO:\033[0m Starting container $node_name \033[0m"
- set -x
- docker run \
- --name "$node_name" \
- --network "$network_name" \
- --env "ES_JAVA_OPTS=-Xms1g -Xmx1g" \
- "${environment[@]}" \
- "${volumes[@]}" \
- --publish "$http_port":9200 \
- --ulimit nofile=65536:65536 \
- --ulimit memlock=-1:-1 \
- --detach="$local_detach" \
- --health-cmd="curl $cert_validation_flags --fail $elasticsearch_url/_cluster/health || exit 1" \
- --health-interval=2s \
- --health-retries=20 \
- --health-timeout=2s \
- --rm \
- docker.elastic.co/elasticsearch/"$elasticsearch_container";
-
- set +x
- if wait_for_container "$es_node_name" "$network_name"; then
- echo -e "\033[32;1mSUCCESS:\033[0m Running on: $node_url\033[0m"
- fi
-done
diff --git a/.buildkite/run-repository.ps1 b/.buildkite/run-repository.ps1
deleted file mode 100644
index 774f3684ccd..00000000000
--- a/.buildkite/run-repository.ps1
+++ /dev/null
@@ -1,42 +0,0 @@
-# ELASTICSEARCH_URL -- The url at which elasticsearch is reachable
-# NETWORK_NAME -- The docker network name
-# NODE_NAME -- The docker container name also used as Elasticsearch node name
-# DOTNET_VERSION -- SDK version (defined in test-matrix.yml, a default is hardcoded here)
-
-param(
- [System.Uri]
- $ELASTICSEARCH_URL,
-
- [string]
- $NETWORK_NAME,
-
- [string]
- $NODE_NAME,
-
- [string]
- $DOTNET_VERSION = "9.0.100"
-)
-
-$ESC = [char]27
-
-Write-Output "$ESC[34;1mINFO:$ESC[0m URL ${ELASTICSEARCH_URL}$ESC[0m"
-Write-Output "$ESC[34;1mINFO:$ESC[0m DOTNET_VERSION ${DOTNET_VERSION}$ESC[0m"
-
-Write-Output "$ESC[1m>>>>> Build [elastic/elasticsearch-net container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>$ESC[0m"
-
-docker build --file .buildkite/DockerFile --tag elastic/elasticsearch-net .
-
-Write-Output "$ESC[1m>>>>> Run [elastic/elasticsearch-net container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>$ESC[0m"
-
-mkdir -p build/output -ErrorAction Ignore
-
-$repo = Get-Location
-
-docker run `
- --network="`"$NETWORK_NAME`"" `
- --env "DOTNET_VERSION=$DOTNET_VERSION" `
- --name test-runner `
- --volume $repo/build/output:/sln/build/output `
- --rm `
- elastic/elasticsearch-net `
- ./build.sh rest-spec-tests -f count -e $ELASTICSEARCH_URL -o /sln/build/output/rest-spec-junit.xml
diff --git a/.buildkite/run-repository.sh b/.buildkite/run-repository.sh
deleted file mode 100755
index d0b1ba84870..00000000000
--- a/.buildkite/run-repository.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env bash
-# parameters are available to this script
-
-# STACK_VERSION -- version e.g Major.Minor.Patch(-Prelease)
-# TEST_SUITE -- which test suite to run: free or platinum
-# ELASTICSEARCH_URL -- The url at which elasticsearch is reachable, a default is composed based on STACK_VERSION and TEST_SUITE
-# DOTNET_VERSION -- SDK version (defined in test-matrix.yml, a default is hardcoded here)
-script_path=$(dirname $(realpath -s $0))
-source $script_path/functions/imports.sh
-set -euo pipefail
-
-DOTNET_VERSION=${DOTNET_VERSION-9.0.100}
-ELASTICSEARCH_URL=${ELASTICSEARCH_URL-"$elasticsearch_url"}
-elasticsearch_container=${elasticsearch_container-}
-
-TEST_FOLDER=${TEST_FOLDER-}
-TEST_FILE=${TEST_FILE-}
-TEST_SECTION=${TEST_SECTION-}
-
-run_script_args=""
-if [[ "$TEST_FOLDER" != "" ]]; then
- run_script_args="-f ${TEST_FOLDER}"
-fi
-if [[ "$TEST_FILE" != "" ]]; then
- run_script_args="${run_script_args} -t ${TEST_FILE}"
-fi
-if [[ "$TEST_SECTION" != "" ]]; then
- run_script_args="${run_script_args} -s ${TEST_SECTION}"
-fi
-
-echo -e "--- :computer: Environment variables"
-echo -e "\033[34;1mINFO:\033[0m VERSION ${STACK_VERSION}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m TEST_SUITE ${TEST_SUITE}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m URL ${ELASTICSEARCH_URL}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m CONTAINER ${elasticsearch_container}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m DOTNET_VERSION ${DOTNET_VERSION}\033[0m"
-
-echo -e "--- :dotnet: :docker: Build [elastic/elasticsearch-net container]"
-docker build --file .buildkite/DockerFile --tag elastic/elasticsearch-net \
- --build-arg USER_ID=$(id -u) \
- --build-arg GROUP_ID=$(id -g) .
-echo -e "--- :dotnet: :docker: Run [elastic/elasticsearch-net container]"
-mkdir -p build/output
-
-repo=$(realpath $(dirname $(realpath -s $0))/../)
-
-docker run \
- --network=${network_name} \
- --env "DOTNET_VERSION" \
- --name test-runner \
- --volume ${repo}/build/output:/sln/build/output \
- --rm \
- elastic/elasticsearch-net \
- ./build.sh rest-spec-tests $TEST_SUITE -e ${ELASTICSEARCH_URL} -o /sln/build/output/rest-spec-junit.xml ${run_script_args}
diff --git a/.buildkite/run-tests b/.buildkite/run-tests
deleted file mode 100755
index 87a68216fa9..00000000000
--- a/.buildkite/run-tests
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env bash
-#
-# Version 1.1
-# - Moved to .ci folder and seperated out `run-repository.sh`
-# - Add `$RUNSCRIPTS` env var for running Elasticsearch dependent products
-script_path=$(dirname $(realpath -s $0))
-source $script_path/functions/imports.sh
-set -euo pipefail
-
-echo "--- :elasticsearch: Starting Elasticsearch"
-DETACH=true bash .buildkite/run-elasticsearch.sh
-
-if [[ -n "$RUNSCRIPTS" ]]; then
- for RUNSCRIPT in ${RUNSCRIPTS//,/ } ; do
- echo -e "\033[1m>>>>> Running run-$RUNSCRIPT.sh >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
- CONTAINER_NAME=${RUNSCRIPT} \
- DETACH=true \
- bash .buildkite/run-${RUNSCRIPT}.sh
- done
-fi
-
-echo -e "\033[1m>>>>> Repository specific tests >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
-bash .buildkite/run-repository.sh
diff --git a/.buildkite/run-tests.ps1 b/.buildkite/run-tests.ps1
deleted file mode 100644
index 3113065ce2d..00000000000
--- a/.buildkite/run-tests.ps1
+++ /dev/null
@@ -1,76 +0,0 @@
-param (
- [string]
- [Parameter(Mandatory = $true)]
- $ELASTICSEARCH_VERSION,
-
- [string]
- [ValidateSet("free", "platinum")]
- $TEST_SUITE = "free",
-
- [string]
- $DOTNET_VERSION = "9.0.100"
-)
-
-$ESC = [char]27
-$NODE_NAME = "es1"
-$elasticsearch_image= "elasticsearch"
-$elasticsearch_url = "https://elastic:changeme@${NODE_NAME}:9200"
-
-if ($TEST_SUITE -ne "platinum") {
- $elasticsearch_url = "http://${NODE_NAME}:9200"
-}
-
-# set for run-elasticsearch.ps1
-$env:ELASTICSEARCH_VERSION = "${elasticsearch_image}:$ELASTICSEARCH_VERSION"
-
-function cleanup {
- $status=$?
-
- $runParams = @{
- NODE_NAME= $NODE_NAME
- NETWORK_NAME = "elasticsearch"
- CLEANUP = $true
- }
-
- ./.buildkite/run-elasticsearch.ps1 @runParams
-
- # Report status and exit
- if ($status -eq 0) {
- Write-Output "SUCCESS run-tests"
- exit 0
- } else {
- Write-Output "FAILURE during run-tests"
- exit $status
- }
-}
-
-
-try {
- Write-Output "$ESC[1m>>>>> Start [$env:ELASTICSEARCH_VERSION container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>$ESC[0m"
-
- $runParams = @{
- NODE_NAME= "$NODE_NAME"
- NETWORK_NAME = "elasticsearch"
- DETACH = $true
- }
-
- ./.buildkite/run-elasticsearch.ps1 @runParams
-
- Write-Output "$ESC[1m>>>>> Repository specific tests >>>>>>>>>>>>>>>>>>>>>>>>>>>>>$ESC[0m"
-
- $runParams = @{
- ELASTICSEARCH_VERSION = "$env:ELASTICSEARCH_VERSION"
- ELASTICSEARCH_CONTAINER = "$env:ELASTICSEARCH_VERSION"
- NETWORK_NAME = "elasticsearch"
- NODE_NAME= "$NODE_NAME"
- ELASTICSEARCH_URL = $elasticsearch_url
- DOTNET_VERSION = $DOTNET_VERSION
- }
-
- ./.buildkite/run-repository.ps1 @runParams
-
- cleanup
-}
-catch {
- cleanup
-}
diff --git a/.ci/DockerFile b/.ci/DockerFile
deleted file mode 100644
index 1deaccd4986..00000000000
--- a/.ci/DockerFile
+++ /dev/null
@@ -1,55 +0,0 @@
-ARG DOTNET_VERSION=9.0.100
-FROM mcr.microsoft.com/dotnet/sdk:${DOTNET_VERSION} AS elasticsearch-net-build
-
-ENV NUGET_SCRATCH="/tmp/NuGetScratch"
-
-ARG USER_ID
-ARG GROUP_ID
-
-RUN echo addgroup --gid $GROUP_ID user
-RUN addgroup --gid $GROUP_ID user
-RUN adduser --disabled-password --gecos '' --uid $USER_ID --gid $GROUP_ID user
-
-WORKDIR /sln
-RUN chown $GROUP_ID:$USER_ID $(pwd)
-COPY ./*.sln ./nuget.config ./*.Build.props ./*.Build.targets ./
-
-COPY ./dotnet-tools.json ./
-
-# todo standardize on Build.props as Directory.Build.props needs that form
-COPY ./src/*.Build.props ./src/
-COPY ./tests/*.Build.props ./tests/
-
-# Copy the main source project files
-COPY src/*/*.?sproj ./src/
-COPY tests/*/*.?sproj ./tests/
-COPY benchmarks/*/*.?sproj ./benchmarks/
-COPY examples/*/*.?sproj ./examples/
-
-# this puts the project files back into original location since COPY flattens
-RUN for file in $(find . -name "*.?sproj"); do echo mkdir -p $(dirname $file)/$(basename ${file%.*})/ && echo mv $file $(dirname $file)/$(basename ${file%.*})/; done
-RUN for file in $(find . -name "*.?sproj"); do mkdir -p $(dirname $file)/$(basename ${file%.*})/ && mv $file $(dirname $file)/$(basename ${file%.*})/; done
-
-# copy these manually since these do not follow a pattern under src or tests
-COPY build/scripts/scripts.fsproj ./build/scripts/
-COPY .ci/Jenkins.csproj ./.ci/
-
-# Install app dependencies
-RUN dotnet restore
-RUN dotnet tool restore
-
-RUN chown -R $GROUP_ID:$USER_ID $(pwd)
-RUN chown -R $GROUP_ID:$USER_ID /tmp/NuGetScratch
-
-# copy relevant files (see .dockerignore)
-COPY . .
-
-# making sure enough git info is available inside the container
-RUN git config --global --add safe.directory '*'
-RUN git rev-parse HEAD .
-
-# USER user
-
-
-
-
diff --git a/.ci/Jenkins.csproj b/.ci/Jenkins.csproj
deleted file mode 100644
index 212bdcfce59..00000000000
--- a/.ci/Jenkins.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- net5.0
-
-
-
-
- .dockerignore
-
-
-
-
diff --git a/.ci/certs/ca.crt b/.ci/certs/ca.crt
deleted file mode 100755
index 71f9bfc818a..00000000000
--- a/.ci/certs/ca.crt
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDSjCCAjKgAwIBAgIVAJQLm8V2LcaCTHUcoIfO+KL63nG3MA0GCSqGSIb3DQEB
-CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
-ZXJhdGVkIENBMB4XDTIwMDIyNjA1NTA1N1oXDTIzMDIyNTA1NTA1N1owNDEyMDAG
-A1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5lcmF0ZWQgQ0Ew
-ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYyajkPvGtUOE5M1OowQfB
-kWVrWjo1+LIxzgCeRHp0YztLtdVJ0sk2xoSrt2uZpxcPepdyOseLTjFJex1D2yCR
-AEniIqcFif4G72nDih2LlbhpUe/+/MTryj8ZTkFTzI+eMmbQi5FFMaH+kwufmdt/
-5/w8YazO18SxxJUlzMqzfNUrhM8vvvVdxgboU7PWhk28wZHCMHQovomHmzclhRpF
-N0FMktA98vHHeRjH19P7rNhifSd7hZzoH3H148HVAKoPgqnZ6vW2O2YfAWOP6ulq
-cyszr57p8fS9B2wSdlWW7nVHU1JuKcYD67CxbBS23BeGFgCj4tiNrmxO8S5Yf85v
-AgMBAAGjUzBRMB0GA1UdDgQWBBSWAlip9eoPmnG4p4OFZeOUBlAbNDAfBgNVHSME
-GDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
-SIb3DQEBCwUAA4IBAQA19qqrMTWl7YyId+LR/QIHDrP4jfxmrEELrAL58q5Epc1k
-XxZLzOBSXoBfBrPdv+3XklWqXrZjKWfdkux0Xmjnl4qul+srrZDLJVZG3I7IrITh
-AmQUmL9MuPiMnAcxoGZp1xpijtW8Qmd2qnambbljWfkuVaa4hcVRfrAX6TciIQ21
-bS5aeLGrPqR14h30YzDp0RMmTujEa1o6ExN0+RSTkE9m89Q6WdM69az8JW7YkWqm
-I+UCG3TcLd3TXmN1zNQkq4y2ObDK4Sxy/2p6yFPI1Fds5w/zLfBOvvPQY61vEqs8
-SCCcQIe7f6NDpIRIBlty1C9IaEHj7edyHjF6rtYb
------END CERTIFICATE-----
diff --git a/.ci/certs/ca.key b/.ci/certs/ca.key
deleted file mode 100644
index dfc41b558d1..00000000000
--- a/.ci/certs/ca.key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpgIBAAKCAQEA2Mmo5D7xrVDhOTNTqMEHwZFla1o6NfiyMc4AnkR6dGM7S7XV
-SdLJNsaEq7drmacXD3qXcjrHi04xSXsdQ9sgkQBJ4iKnBYn+Bu9pw4odi5W4aVHv
-/vzE68o/GU5BU8yPnjJm0IuRRTGh/pMLn5nbf+f8PGGsztfEscSVJczKs3zVK4TP
-L771XcYG6FOz1oZNvMGRwjB0KL6Jh5s3JYUaRTdBTJLQPfLxx3kYx9fT+6zYYn0n
-e4Wc6B9x9ePB1QCqD4Kp2er1tjtmHwFjj+rpanMrM6+e6fH0vQdsEnZVlu51R1NS
-binGA+uwsWwUttwXhhYAo+LYja5sTvEuWH/ObwIDAQABAoIBAQC8QDGnMnmPdWJ+
-13FYY3cmwel+FXXjFDk5QpgK15A2rUz6a8XxO1d7d1wR+U84uH4v9Na6XQyWjaoD
-EyPQnuJiyAtgkZLUHoY244PGR5NsePEQlBSCKmGeF5w/j1LvP/2e9EmP4wKdQYJY
-nLxFNcgEBCFnFbKIU5n8fKa/klybCrwlBokenyBro02tqH4LL7h1YMRRrl97fv1V
-e/y/0WcMN+KnMglfz6haimBRV2yamCCHHmBImC+wzOgT/quqlxPfI+a3ScHxuA65
-3QyCavaqlPh+T3lXnN/Na4UWqFtzMmwgJX2x1zM5qiln46/JoDiXtagvV43L3rNs
-LhPRFeIRAoGBAPhEB7nNpEDNjIRUL6WpebWS9brKAVY7gYn7YQrKGhhCyftyaiBZ
-zYgxPaJdqYXf+DmkWlANGoYiwEs40QwkR/FZrvO4+Xh3n3dgtl59ZmieuoQvDsG+
-RYIj+TfBaqhewhZNMMl7dxz7DeyQhyRCdsvl3VqJM0RuOsIrzrhCIEItAoGBAN+K
-lgWI7swDpOEaLmu+IWMkGImh1LswXoZqIgi/ywZ7htZjPzidOIeUsMi+lrYsKojG
-uU3sBxASsf9kYXDnuUuUbGT5M/N2ipXERt7klUAA/f5sg1IKlTrabaN/HGs/uNtf
-Efa8v/h2VyTurdPCJ17TNpbOMDwX1qGM62tyt2CLAoGBAIHCnP8iWq18QeuQTO8b
-a3/Z9hHRL22w4H4MI6aOB6GSlxuTq6CJD4IVqo9IwSg17fnCy2l3z9s4IqWuZqUf
-+XJOW8ELd2jdrT2qEOfGR1Z7UCVyqxXcq1vgDYx0zZh/HpalddB5dcJx/c8do2Ty
-UEE2PcHqYB9uNcvzNbLc7RtpAoGBALbuU0yePUTI6qGnajuTcQEPpeDjhRHWSFRZ
-ABcG1N8uMS66Mx9iUcNp462zgeP8iqY5caUZtMHreqxT+gWKK7F0+as7386pwElF
-QPXgO18QMMqHBIQb0vlBjJ1SRPBjSiSDTVEML1DljvTTOX7kEJHh6HdKrmBO5b54
-cqMQUo53AoGBAPVWRPUXCqlBz914xKna0ZUh2aesRBg5BvOoq9ey9c52EIU5PXL5
-0Isk8sWSsvhl3tjDPBH5WuL5piKgnCTqkVbEHmWu9s1T57Mw6NuxlPMLBWvyv4c6
-tB9brOxv0ui3qGMuBsBoDKbkNnwXyOXLyFg7O+H4l016A3mLQzJM+NGV
------END RSA PRIVATE KEY-----
diff --git a/.ci/certs/testnode.crt b/.ci/certs/testnode.crt
deleted file mode 100755
index a49dfd77507..00000000000
--- a/.ci/certs/testnode.crt
+++ /dev/null
@@ -1,19 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDIzCCAgugAwIBAgIVAMTO6uVx9dLox2t0lY4IcBKZXb5WMA0GCSqGSIb3DQEB
-CwUAMDQxMjAwBgNVBAMTKUVsYXN0aWMgQ2VydGlmaWNhdGUgVG9vbCBBdXRvZ2Vu
-ZXJhdGVkIENBMB4XDTIwMDIyNjA1NTA1OVoXDTIzMDIyNTA1NTA1OVowEzERMA8G
-A1UEAxMIaW5zdGFuY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDK
-YLTOikVENiN/qYupOsoXd7VYYnryyfCC/dK4FC2aozkbqjFzBdvPGAasoc4yEiH5
-CGeXMgJuOjk1maqetmdIsw00j4oHJviYsnGXzxxS5swhD7spcW4Uk4V4tAUzrbfT
-vW/2WW/yYCLe5phVb2chz0jL+WYb4bBmdfs/t6RtP9RqsplYAmVp3gZ6lt2YNtvE
-k9gz0TVk3DuO1TquIClfRYUjuywS6xDSvxJ8Jl91EfDWM8QU+9F+YAtiv74xl2U3
-P0wwMqNvMxf9/3ak3lTQGsgO4L6cwbKpVLMMzxSVunZz/sgl19xy3qHHz1Qr2MjJ
-/2c2J7vahUL4NPRkjJClAgMBAAGjTTBLMB0GA1UdDgQWBBS2Wn8E2VZv4oenY+pR
-O8G3zfQXhzAfBgNVHSMEGDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAJBgNVHRME
-AjAAMA0GCSqGSIb3DQEBCwUAA4IBAQAvwPvCiJJ6v9jYcyvYY8I3gP0oCwrylpRL
-n91UlgRSHUmuAObyOoVN5518gSV/bTU2SDrstcLkLFxHvnfpoGJoxsQEHuGxwDRI
-nhYNd62EKLerehNM/F9ILKmvTh8f6QPCzjUuExTXv+63l2Sr6dBS7FHsGs6UKUYO
-llM/y9wMZ1LCuZuBg9RhtgpFXRSgDM9Z7Begu0d/BPX9od/qAeZg9Arz4rwUiCN4
-IJOMEBEPi5q1tgeS0Fb1Grpqd0Uz5tZKtEHNKzLG+zSMmkneL62Nk2HsmEFZKwzg
-u2pU42UaUE596G6o78s1aLn9ICcElPHTjiuZNSiyuu9IzvFDjGQw
------END CERTIFICATE-----
diff --git a/.ci/certs/testnode.key b/.ci/certs/testnode.key
deleted file mode 100755
index 82efeecb949..00000000000
--- a/.ci/certs/testnode.key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEAymC0zopFRDYjf6mLqTrKF3e1WGJ68snwgv3SuBQtmqM5G6ox
-cwXbzxgGrKHOMhIh+QhnlzICbjo5NZmqnrZnSLMNNI+KByb4mLJxl88cUubMIQ+7
-KXFuFJOFeLQFM623071v9llv8mAi3uaYVW9nIc9Iy/lmG+GwZnX7P7ekbT/UarKZ
-WAJlad4GepbdmDbbxJPYM9E1ZNw7jtU6riApX0WFI7ssEusQ0r8SfCZfdRHw1jPE
-FPvRfmALYr++MZdlNz9MMDKjbzMX/f92pN5U0BrIDuC+nMGyqVSzDM8Ulbp2c/7I
-Jdfcct6hx89UK9jIyf9nNie72oVC+DT0ZIyQpQIDAQABAoIBADAh7f7NjgnaInlD
-ds8KB3SraPsbeQhzlPtiqRJU4j/MIFH/GYG03AGWQkget67a9y+GmzSvlTpoKKEh
-6h2TXl9BDpv4o6ht0WRn1HJ5tM/Wyqf2WNpTew3zxCPgFPikkXsPrChYPzLTQJfp
-GkP/mfTFmxfAOlPZSp4j41zVLYs53eDkAegFPVfKSr1XNNJ3QODLPcIBfxBYsiC9
-oU+jRW8xYuj31cEl5k5UqrChJ1rm3mt6cguqXKbISuoSvi13gXI6DccqhuLAU+Kr
-ib2XYrRP+pWocZo/pM9WUVoNGtFxfY88sAQtvG6gDKo2AURtFyq84Ow0h9mdixV/
-gRIDPcECgYEA5nEqE3OKuG9WuUFGXvjtn4C0F6JjflYWh7AbX51S4F6LKrW6/XHL
-Rg4BtF+XReT7OQ6llsV8kZeUxsUckkgDLzSaA8lysNDV5KkhAWHfRqH//QKFbqZi
-JL9t3x63Qt81US8s2hQk3khPYTRM8ZB3xHiXvZYSGC/0x/DxfEO3QJECgYEA4NK5
-sxtrat8sFz6SK9nWEKimPjDVzxJ0hxdX4tRq/JdOO5RncawVqt6TNP9gTuxfBvhW
-MhJYEsQj8iUoL1dxo9d1eP8HEANNV0iX5OBvJNmgBp+2OyRSyr+PA55+wAxYuAE7
-QKaitOjW57fpArNRt2hQyiSzTuqUFRWTWJHCWNUCgYAEurPTXF6vdFGCUc2g61jt
-GhYYGhQSpq+lrz6Qksj9o9MVWE9zHh++21C7o+6V16I0RJGva3QoBMVf4vG4KtQt
-5tV2WG8LI+4P2Ey+G4UajP6U8bVNVQrUmD0oBBhcvfn5JY+1Fg6/pRpD82/U0VMz
-7AmpMWhDqNBMPiymkTk0kQKBgCuWb05cSI0ly4SOKwS5bRk5uVFhYnKNH255hh6C
-FGP4acB/WzbcqC7CjEPAJ0nl5d6SExQOHmk1AcsWjR3wlCWxxiK5PwNJwJrlhh1n
-reS1FKN0H36D4lFQpkeLWQOe4Sx7gKNeKzlr0w6Fx3Uwku0+Gju2tdTdAey8jB6l
-08opAoGAEe1AuR/OFp2xw6V8TH9UHkkpGxy+OrXI6PX6tgk29PgB+uiMu4RwbjVz
-1di1KKq2XecAilVbnyqY+edADxYGbSnci9x5wQRIebfMi3VXKtV8NQBv2as6qwtW
-JDcQUWotOHjpdvmfJWWkcBhbAKrgX8ukww00ZI/lC3/rmkGnBBg=
------END RSA PRIVATE KEY-----
diff --git a/.ci/certs/testnode_san.crt b/.ci/certs/testnode_san.crt
deleted file mode 100644
index 8abba55b597..00000000000
--- a/.ci/certs/testnode_san.crt
+++ /dev/null
@@ -1,20 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDVjCCAj6gAwIBAgIULh42yRefYlRRl1hvt055LrUH0HwwDQYJKoZIhvcNAQEL
-BQAwNDEyMDAGA1UEAxMpRWxhc3RpYyBDZXJ0aWZpY2F0ZSBUb29sIEF1dG9nZW5l
-cmF0ZWQgQ0EwHhcNMjAwMjI4MDMzNzIwWhcNMjMwMjI3MDMzNzIwWjATMREwDwYD
-VQQDEwhpbnN0YW5jZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIUP
-t267NN21z+3ukajej8eojSXwP6zHxy7CUAp+sQ7bTq2XCKxkYX3CW9ThcS4cV9mL
-ayYdWEYnbEDGYPQDo7Wk3Ih5OEXTMZb/yNEx5D4S2lGMOS5bCDdYx6GvwCMG4jNx
-aMktosaxpprAJiHh2oLgQk0hQc/a9JfMo6kJKtuhjxsxjxLwcOHhuaUD7NS0Pjop
-CJkSYcrL+nnQPQjKe4uLhAbSyiX914h4QX0CJ0e4z1ccdDX2PFWTrwaIf//vQhCR
-wP2YKdfjR0JB4oDAlu85GsIs2cFLPysM5ufuNZO4fCr8uOwloKI8zZ2HhlIfBEcY
-Gcy4g9N/9epmxMXZlGcCAwEAAaOBgDB+MB0GA1UdDgQWBBRefYm8DHHDdkTPHhS1
-HEUwTb2uiDAfBgNVHSMEGDAWgBSWAlip9eoPmnG4p4OFZeOUBlAbNDAxBgNVHREE
-KjAogglsb2NhbGhvc3SHBH8AAAGHEAAAAAAAAAAAAAAAAAAAAAGCA2VzMTAJBgNV
-HRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQC+pauqM2wJjQaHyHu+kIm59P4b/5Oj
-IH1cYCQfMB7Y2UMLxp0ew+f7o7zzE2DA52YYFDWy6J5DVWtSBPyeFGgX+RH+aA+9
-Iv4cc9QpAs6aFjncorHrzNOrWLgCHIeRAxTR0CAkeP2dUZfDBuMpRyP6rAsYzyLH
-Rb3/BfYJSI5vxgt5Ke49Y/ljDKFJTyDmAVrHQ4JWrseYE1UZ2eDkBXeiRlYE/QtB
-YsrUSqdL6zvFZyUcilxDUUabNcA+GgeGZ2lAEA90F8vwi62QwRXo3Iv1Hz+6xc43
-nFofDK9D8/qkrUD9iuhpx1974QwPhwWyjn9RZRpbZA4ngRL+szdRXR4N
------END CERTIFICATE-----
diff --git a/.ci/certs/testnode_san.key b/.ci/certs/testnode_san.key
deleted file mode 100644
index 75d19539e69..00000000000
--- a/.ci/certs/testnode_san.key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEAhQ+3brs03bXP7e6RqN6Px6iNJfA/rMfHLsJQCn6xDttOrZcI
-rGRhfcJb1OFxLhxX2YtrJh1YRidsQMZg9AOjtaTciHk4RdMxlv/I0THkPhLaUYw5
-LlsIN1jHoa/AIwbiM3FoyS2ixrGmmsAmIeHaguBCTSFBz9r0l8yjqQkq26GPGzGP
-EvBw4eG5pQPs1LQ+OikImRJhysv6edA9CMp7i4uEBtLKJf3XiHhBfQInR7jPVxx0
-NfY8VZOvBoh//+9CEJHA/Zgp1+NHQkHigMCW7zkawizZwUs/Kwzm5+41k7h8Kvy4
-7CWgojzNnYeGUh8ERxgZzLiD03/16mbExdmUZwIDAQABAoIBAEwhjulLMVc9JEfV
-PP/qv0cUOBYh3LzF3T/yq4slq7Z9YgnOJYdFM8aZgqNNjc09KEJvE5JOLeiNu9Ff
-768Nugg+2HM5MCo7SN9FYCfZLOcbMFCCM2FDcnMAV9A512vzD08xryuT8dNPZ6yZ
-DfhK2hQRrb2lrpr3gwSrcGRRu3THqvq7X1RIjpLV3teDMeP8rQPAlpj8fmP+kdVV
-5y1ihiDIo87McihG9FMavJtBDXQkUEuVw6eIeir8L/zHHD/ZwhYjNHZGWbrB88sz
-CkJkfWh/FlA63tCVdJzkmnERALLTVy9mR0Sq6sUlnFhFNO2BRdWgYLrcp9McfTJC
-e8+WsSECgYEAuwQ3nAaFL0jqYu1AREyKT/f3WUenf2UsX7dwwV2/yFtQvkzW7ji4
-uZLnfUnZBojtHf35dRo+hDgtvhZhgZNAuPPsbOl/EIMTcbChEqV/3CSTFlhLFM1d
-hfM9PoM+Bt/pyUNabjD1sWM0X7WeUhzcddshY3S4daBsNsLuOzweRRcCgYEAtiSS
-4qiiGafYsY7gOHuAlOhs/00+1uWIFEHKgoHM9vzCxDN3LCmBdynHk8ZE2TAdhw+l
-7xpu6LUxKQDfGmVZa9Epg0kQmVq9c54oQP57pJ3tR+68++insEkfnaZH8jblfq2s
-sSkFrY3pdS19edq60nuft64kswKRUUkamCXTXTECgYBdoSfiMpV9bekC7DsPtq5M
-iR3KEgi2zEViCmomNTRuL+GF1NyKWdWJ+xVwcYd5MRZdvKimyyPfeGzWTUg14i42
-KtEEWgZmkukqMz8BIeCYq6sENeIpIQQgqv3PjU+Bi5r1S4Y7wsFPNRakkD4aaB6r
-1rCppWcwZMeoxwEUoO2aswKBgBdDIIdWJi3EpAY5SyWrkEZ0UMdiZC4p7nE33ddB
-IJ5CtdU9BXFcc652ZYjX/58FaCABvZ2F8LhDu92SwOusGfmNIxIjWL1dO2jywA1c
-8wmZKd7P/M7nbdMz45fMzs9+d1zwbWfK53C8+R4AC1BuwQF0zHc3BHTgVRLelUjt
-O8thAoGAdO2gHIqEsZzTgbvLbsh52eVbumjfNGnrnEv1fjb+o+/wAol8dymcmzbL
-bZCRzoyA0qwU9kdPFgX46H6so6o1tUM2GQtVFoT6kDnPv7EkLQK0C4cDh6OOHxDU
-NPvr/9fHhQd9EDWDvS1JnVMAdKDO6ELp3SoKGGmCXR2QplnqWAk=
------END RSA PRIVATE KEY-----
diff --git a/.ci/functions/cleanup.sh b/.ci/functions/cleanup.sh
deleted file mode 100644
index 4c25166fb2e..00000000000
--- a/.ci/functions/cleanup.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env bash
-#
-# Shared cleanup routines between different steps
-#
-# Please source .ci/functions/imports.sh as a whole not just this file
-#
-# Version 1.0.0
-# - Initial version after refactor
-
-function cleanup_volume {
- if [[ "$(docker volume ls -q -f name=$1)" ]]; then
- echo -e "\033[34;1mINFO:\033[0m Removing volume $1\033[0m"
- (docker volume rm "$1") || true
- fi
-}
-function container_running {
- if [[ "$(docker ps -q -f name=$1)" ]]; then
- return 0;
- else return 1;
- fi
-}
-function cleanup_node {
- if container_running "$1"; then
- echo -e "\033[34;1mINFO:\033[0m Removing container $1\033[0m"
- (docker container rm --force --volumes "$1") || true
- fi
- if [[ -n "$1" ]]; then
- echo -e "\033[34;1mINFO:\033[0m Removing volume $1-${suffix}-data\033[0m"
- cleanup_volume "$1-${suffix}-data"
- fi
-}
-function cleanup_network {
- if [[ "$(docker network ls -q -f name=$1)" ]]; then
- echo -e "\033[34;1mINFO:\033[0m Removing network $1\033[0m"
- (docker network rm "$1") || true
- fi
-}
-
-function cleanup_trap {
- status=$?
- set +x
- if [[ "$DETACH" != "true" ]]; then
- echo -e "\033[34;1mINFO:\033[0m clean the network if not detached (start and exit)\033[0m"
- cleanup_all_in_network "$1"
- fi
- # status is 0 or SIGINT
- if [[ "$status" == "0" || "$status" == "130" ]]; then
- echo -e "\n\033[32;1mSUCCESS run-tests\033[0m"
- exit 0
- else
- echo -e "\n\033[31;1mFAILURE during run-tests\033[0m"
- exit ${status}
- fi
-};
-function cleanup_all_in_network {
-
- if [[ -z "$(docker network ls -q -f name="^$1\$")" ]]; then
- echo -e "\033[34;1mINFO:\033[0m $1 is already deleted\033[0m"
- return 0
- fi
- containers=$(docker network inspect -f '{{ range $key, $value := .Containers }}{{ printf "%s\n" .Name}}{{ end }}' $1)
- while read -r container; do
- cleanup_node "$container"
- done <<< "$containers"
- cleanup_network $1
- echo -e "\033[32;1mSUCCESS:\033[0m Cleaned up and exiting\033[0m"
-};
diff --git a/.ci/functions/imports.sh b/.ci/functions/imports.sh
deleted file mode 100644
index c05f3682695..00000000000
--- a/.ci/functions/imports.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env bash
-#
-# Sets up all the common variables and imports relevant functions
-#
-# Version 1.0.1
-# - Initial version after refactor
-# - Validate STACK_VERSION asap
-
-function require_stack_version() {
- if [[ -z $STACK_VERSION ]]; then
- echo -e "\033[31;1mERROR:\033[0m Required environment variable [STACK_VERSION] not set\033[0m"
- exit 1
- fi
-}
-
-require_stack_version
-
-if [[ -z $es_node_name ]]; then
- # only set these once
- set -euo pipefail
- export TEST_SUITE=${TEST_SUITE-free}
- export RUNSCRIPTS=${RUNSCRIPTS-}
- export DETACH=${DETACH-false}
- export CLEANUP=${CLEANUP-false}
-
- export es_node_name=instance
- export elastic_password=changeme
- export elasticsearch_image=elasticsearch
- export elasticsearch_scheme="https"
- if [[ $TEST_SUITE != "platinum" ]]; then
- export elasticsearch_scheme="http"
- fi
- export elasticsearch_url=${elasticsearch_scheme}://elastic:${elastic_password}@${es_node_name}:9200
- export external_elasticsearch_url=${elasticsearch_url/$es_node_name/localhost}
- export elasticsearch_container="${elasticsearch_image}:${STACK_VERSION}"
-
- export suffix=rest-test
- export moniker=$(echo "$elasticsearch_container" | tr -C "[:alnum:]" '-')
- export network_name=${moniker}${suffix}
-
- export ssl_cert="${script_path}/certs/testnode.crt"
- export ssl_key="${script_path}/certs/testnode.key"
- export ssl_ca="${script_path}/certs/ca.crt"
-
-fi
-
- export script_path=$(dirname $(realpath -s $0))
- source $script_path/functions/cleanup.sh
- source $script_path/functions/wait-for-container.sh
- trap "cleanup_trap ${network_name}" EXIT
-
-
-if [[ "$CLEANUP" == "true" ]]; then
- cleanup_all_in_network $network_name
- exit 0
-fi
-
-echo -e "\033[34;1mINFO:\033[0m Creating network $network_name if it does not exist already \033[0m"
-docker network inspect "$network_name" > /dev/null 2>&1 || docker network create "$network_name"
-
diff --git a/.ci/functions/wait-for-container.sh b/.ci/functions/wait-for-container.sh
deleted file mode 100644
index 1a721b588fd..00000000000
--- a/.ci/functions/wait-for-container.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-#
-# Exposes a routine scripts can call to wait for a container if that container set up a health command
-#
-# Please source .ci/functions/imports.sh as a whole not just this file
-#
-# Version 1.0.1
-# - Initial version after refactor
-# - Make sure wait_for_contiainer is silent
-
-function wait_for_container {
- set +x
- until ! container_running "$1" || (container_running "$1" && [[ "$(docker inspect -f "{{.State.Health.Status}}" ${1})" != "starting" ]]); do
- echo ""
- docker inspect -f "{{range .State.Health.Log}}{{.Output}}{{end}}" ${1}
- echo -e "\033[34;1mINFO:\033[0m waiting for node $1 to be up\033[0m"
- sleep 2;
- done;
-
- # Always show logs if the container is running, this is very useful both on CI as well as while developing
- if container_running $1; then
- docker logs $1
- fi
-
- if ! container_running $1 || [[ "$(docker inspect -f "{{.State.Health.Status}}" ${1})" != "healthy" ]]; then
- cleanup_all_in_network $2
- echo
- echo -e "\033[31;1mERROR:\033[0m Failed to start $1 in detached mode beyond health checks\033[0m"
- echo -e "\033[31;1mERROR:\033[0m dumped the docker log before shutting the node down\033[0m"
- return 1
- else
- echo
- echo -e "\033[32;1mSUCCESS:\033[0m Detached and healthy: ${1} on docker network: ${network_name}\033[0m"
- return 0
- fi
-}
diff --git a/.ci/jobs/defaults.yml b/.ci/jobs/defaults.yml
deleted file mode 100755
index e24b4b48b24..00000000000
--- a/.ci/jobs/defaults.yml
+++ /dev/null
@@ -1,78 +0,0 @@
----
-
-##### GLOBAL METADATA
-
-- meta:
- cluster: clients-ci
-
-##### JOB DEFAULTS
-
-- job:
- project-type: matrix
- logrotate:
- daysToKeep: 30
- numToKeep: 100
- parameters:
- - string:
- name: branch_specifier
- default: refs/heads/main
- description: the Git branch specifier to build (<branchName>, <tagName>,
- <commitId>, etc.)
- properties:
- - github:
- url: https://github.com/elastic/elasticsearch-net/
- - inject:
- properties-content: HOME=$JENKINS_HOME
- concurrent: true
- node: flyweight
- scm:
- - git:
- name: origin
- credentials-id: f6c7695a-671e-4f4f-a331-acdce44ff9ba
- reference-repo: /var/lib/jenkins/.git-references/elasticsearch-net.git
- branches:
- - ${branch_specifier}
- url: git@github.com:elastic/elasticsearch-net.git
- basedir: ''
- wipe-workspace: 'True'
- triggers:
- - github
- axes:
- - axis:
- type: slave
- name: label
- values:
- - linux
- - axis:
- type: yaml
- filename: .ci/test-matrix.yml
- name: STACK_VERSION
- - axis:
- type: yaml
- filename: .ci/test-matrix.yml
- name: DOTNET_VERSION
- - axis:
- type: yaml
- filename: .ci/test-matrix.yml
- name: TEST_SUITE
- yaml-strategy:
- exclude-key: exclude
- filename: .ci/test-matrix.yml
- wrappers:
- - ansicolor
- - timeout:
- type: absolute
- timeout: 120
- fail: true
- - timestamps
- - workspace-cleanup
- builders:
- - shell: |-
- #!/usr/local/bin/runbld
- .ci/run-tests
- publishers:
- - email:
- recipients: build-lang-clients@elastic.co
- - junit:
- results: "build/output/*-junit.xml"
- allow-empty-results: true
diff --git a/.ci/jobs/elastic+elasticsearch-net+7.17.yml b/.ci/jobs/elastic+elasticsearch-net+7.17.yml
deleted file mode 100644
index fdd1e403779..00000000000
--- a/.ci/jobs/elastic+elasticsearch-net+7.17.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-- job:
- name: elastic+elasticsearch-net+7.17
- display-name: 'elastic / elasticsearch-net # 7.17'
- description: Testing the elasticsearch-net 7.17 branch.
- junit_results: "*-junit.xml"
- parameters:
- - string:
- name: branch_specifier
- default: refs/heads/7.17
- description: The Git branch specifier to build
- triggers:
- - github
- - timed: 'H */12 * * *'
diff --git a/.ci/jobs/elastic+elasticsearch-net+7.x.yml b/.ci/jobs/elastic+elasticsearch-net+7.x.yml
deleted file mode 100755
index e1a2c30a1f5..00000000000
--- a/.ci/jobs/elastic+elasticsearch-net+7.x.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-- job:
- name: elastic+elasticsearch-net+7.x
- display-name: 'elastic / elasticsearch-net # 7.x'
- description: Testing the elasticsearch-net 7.x branch.
- junit_results: "*-junit.xml"
- parameters:
- - string:
- name: branch_specifier
- default: refs/heads/7.x
- description: The Git branch specifier to build
- triggers:
- - github
- - timed: 'H */12 * * *'
diff --git a/.ci/jobs/elastic+elasticsearch-net+main.yml b/.ci/jobs/elastic+elasticsearch-net+main.yml
deleted file mode 100644
index 9e7017880b3..00000000000
--- a/.ci/jobs/elastic+elasticsearch-net+main.yml
+++ /dev/null
@@ -1,14 +0,0 @@
----
-- job:
- name: elastic+elasticsearch-net+main
- display-name: 'elastic / elasticsearch-net # main'
- description: Testing the elasticsearch-net main branch.
- junit_results: "*-junit.xml"
- parameters:
- - string:
- name: branch_specifier
- default: refs/heads/main
- description: The Git branch specifier to build
- triggers:
- - github
- - timed: 'H */12 * * *'
diff --git a/.ci/jobs/elastic+elasticsearch-net+pull-request.yml b/.ci/jobs/elastic+elasticsearch-net+pull-request.yml
deleted file mode 100644
index 1a91818f419..00000000000
--- a/.ci/jobs/elastic+elasticsearch-net+pull-request.yml
+++ /dev/null
@@ -1,20 +0,0 @@
----
-- job:
- name: elastic+elasticsearch-net+pull-request
- display-name: 'elastic / elasticsearch-net # pull-request'
- description: Testing of elasticsearch-net pull requests.
- junit_results: "*-junit.xml"
- scm:
- - git:
- branches:
- - ${ghprbActualCommit}
- refspec: +refs/pull/*:refs/remotes/origin/pr/*
- triggers:
- - github-pull-request:
- org-list:
- - elastic
- allow-whitelist-orgs-as-admins: true
- github-hooks: true
- status-context: clients-ci
- cancel-builds-on-update: true
- publishers: []
diff --git a/.ci/make.sh b/.ci/make.sh
deleted file mode 100755
index 40346ce1fd9..00000000000
--- a/.ci/make.sh
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/usr/bin/env bash
-
-# ------------------------------------------------------- #
-#
-# Skeleton for common build entry script for all elastic
-# clients. Needs to be adapted to individual client usage.
-#
-# Must be called: ./.ci/make.sh
-#
-# Version: 1.1.0
-#
-# Targets:
-# ---------------------------
-# assemble : build client artefacts with version
-# bump : bump client internals to version
-# codegen : generate endpoints
-# docsgen : generate documentation
-# examplegen : generate the doc examples
-# clean : clean workspace
-#
-# ------------------------------------------------------- #
-
-# ------------------------------------------------------- #
-# Bootstrap
-# ------------------------------------------------------- #
-
-script_path=$(dirname "$(realpath -s "$0")")
-repo=$(realpath "$script_path/../")
-
-# shellcheck disable=SC1090
-CMD=$1
-TASK=$1
-TASK_ARGS=()
-VERSION=$2
-STACK_VERSION=$VERSION
-set -euo pipefail
-
-product="elastic/elasticsearch-net"
-output_folder=".ci/output"
-codegen_folder=".ci/output"
-OUTPUT_DIR="$repo/${output_folder}"
-REPO_BINDING="${OUTPUT_DIR}:/sln/${output_folder}"
-mkdir -p "$OUTPUT_DIR"
-
-DOTNET_VERSION=${DOTNET_VERSION-9.0.305}
-
-echo -e "\033[34;1mINFO:\033[0m PRODUCT ${product}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m VERSION ${STACK_VERSION}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m OUTPUT_DIR ${OUTPUT_DIR}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m DOTNET_VERSION ${DOTNET_VERSION}\033[0m"
-
-# ------------------------------------------------------- #
-# Parse Command
-# ------------------------------------------------------- #
-
-case $CMD in
- clean)
- echo -e "\033[36;1mTARGET: clean workspace $output_folder\033[0m"
- TASK=clean
- rm -rf "$output_folder"
- echo -e "\033[32;1mdone.\033[0m"
- exit 0
- ;;
- assemble)
- if [ -v $VERSION ]; then
- echo -e "\033[31;1mTARGET: assemble -> missing version parameter\033[0m"
- exit 1
- fi
- echo -e "\033[36;1mTARGET: assemble artefact $VERSION\033[0m"
- TASK=release
- TASK_ARGS=("$VERSION" "$output_folder" "skiptests" "skip-release-notes")
- ;;
- codegen)
- if [ -v $VERSION ]; then
- echo -e "\033[31;1mTARGET: codegen -> missing version parameter\033[0m"
- exit 1
- fi
- echo -e "\033[36;1mTARGET: codegen API v$VERSION\033[0m"
- TASK=codegen
- # VERSION is BRANCH here for now
- TASK_ARGS=("$VERSION")
- REPO_BINDING="$repo:/sln"
- ;;
- docsgen)
- if [ -v $VERSION ]; then
- echo -e "\033[31;1mTARGET: docsgen -> missing version parameter\033[0m"
- exit 1
- fi
- echo -e "\033[36;1mTARGET: generate docs for $VERSION\033[0m"
- TASK=documentation
- # VERSION is BRANCH here for now
- TASK_ARGS=("$VERSION" "$codegen_folder")
- ;;
- examplesgen)
- echo -e "\033[36;1mTARGET: generate examples\033[0m"
- TASK=codegen
- # VERSION is BRANCH here for now
- TASK_ARGS=("$VERSION" "$codegen_folder")
- ;;
- bump)
- if [ -v $VERSION ]; then
- echo -e "\033[31;1mTARGET: bump -> missing version parameter\033[0m"
- exit 1
- fi
- echo -e "\033[36;1mTARGET: bump to version $VERSION\033[0m"
- TASK="set-version"
- # VERSION is BRANCH here for now
- TASK_ARGS=("$VERSION")
- REPO_BINDING="$repo:/sln"
- ;;
- *)
- echo -e "\nUsage:\n\t $CMD is not supported right now\n"
- exit 1
-esac
-
-# ------------------------------------------------------- #
-# Build Container
-# ------------------------------------------------------- #
-
-echo -e "\033[34;1mINFO: building $product container\033[0m"
-
-docker build --file .ci/DockerFile --tag ${product} \
- --build-arg USER_ID="$(id -u)" \
- --build-arg GROUP_ID="$(id -g)" \
- --build-arg DOTNET_VERSION="$DOTNET_VERSION" .
-
-# ------------------------------------------------------- #
-# Run the Container
-# ------------------------------------------------------- #
-
-# -u does not work need to be root inside the container, the chown hack at the end ensures
-# we still own any new files at the end of this run
-
-echo -e "\033[34;1mINFO: running $product container\033[0m"
-
-docker run \
- --env "DOTNET_VERSION" \
- --name test-runner \
- --volume $REPO_BINDING \
- --rm \
- ${product} \
- /bin/bash -c "./build.sh $TASK ${TASK_ARGS[*]} && chown -R $(id -u):$(id -g) ."
-
-# ------------------------------------------------------- #
-# Post Command tasks & checks
-# ------------------------------------------------------- #
-
-if [[ "$CMD" == "assemble" ]]; then
- if compgen -G ".ci/output/*" > /dev/null; then
- echo -e "\033[32;1mTARGET: successfully assembled client v$VERSION\033[0m"
- else
- echo -e "\033[31;1mTARGET: assemble failed, empty workspace!\033[0m"
- exit 1
- fi
-fi
-
-if [[ "$CMD" == "bump" ]]; then
- echo "TODO"
-fi
-
-if [[ "$CMD" == "codegen" ]]; then
- echo "TODO"
-fi
-
-if [[ "$CMD" == "docsgen" ]]; then
- echo "TODO"
-fi
-
-if [[ "$CMD" == "examplesgen" ]]; then
- echo "TODO"
-fi
diff --git a/.ci/readme.md b/.ci/readme.md
deleted file mode 100644
index 95bd4f20fc9..00000000000
--- a/.ci/readme.md
+++ /dev/null
@@ -1,63 +0,0 @@
-## Jenkins test folder
-
-This `.ci` folder is used by https://clients-ci.elastic.co
-
-Where each Elasticsearch client runs the [rest api spec test](https://github.com/elastic/elasticsearch/tree/main/rest-api-spec/src/main/resources/rest-api-spec/test)
-as defined by the Elasticsearch team.
-
-Each client starts the cluster using the same `.ci/run-elasticsearch` from `run-tests` and then bootstraps there own `rest api test runner`.api
-
-The .NET rest api spec runner lives under `src/Tests/Test.YamlRunner`. This runner takes the test yaml files and turns them into .NET instructions.api
-
-Each `do` section in the yaml is mapped to a low level client method. To aid with assertions the tests ask for `DynamicResponse` which is a great
-way to deal with elasticsearch responses in a semi typed fashion.
-
-These `rest-api-spec` tests are in addition to the unit and integration tests that live under `src/Tests/Tests` which for 90% of the cases focuses
-more on the high level client `NEST` where as these `rest-api-spec` tests fully focus on the low level client `Elasticsearch.Net`
-
-The `DockerFile` in this folder sets up this repo inside a docker container ready to run our build.
-
-The `rest-api-spec` runner expects Elasticsearch to be started before invocation and uses the endpoint its passed to discover the current Elasticsearch
-`build hash` that is running and downloads the tests matching that `build hash`.
-
-If you want to run the tests the same way that the Jenkins instance on elastic.co does you can call
-
-```bash
-$ STACK_VERSION=8.0.0-SNAPSHOT ./.ci/run-tests
-```
-
-| Variable Name | Default | Description |
-|-------------------------|-------------|-------------|
-| `STACK_VERSION` | `N/A` | The elasticsearch version to target
-| `TEST_SUITE` | `basic` | `free` or `platinum` sets which test suite to run and which container to run against. |
-| `DOTNET_VERSION` | `9.0.100` | The .NET sdk version used to grab the proper container |
-
-If you want to manually spin up elasticsearch for these tests and call the runner afterwards you can use
-
-```bash
-$ STACK_VERSION=8.0.0-SNAPSHOT DETACH=true bash .ci/run-elasticsearch.sh
-```
-
-Spinning down the cluster can be done by passing `CLEANUP=true` using the same args
-
-```bash
-$ STACK_VERSION=8.0.0-SNAPSHOT CLEANUP=true bash .ci/run-elasticsearch.sh
-```
-
-To kick off the `rest-api-spec` tests manually after starting the cluster manually:
-
-```bash
-$ ./build.sh rest-spec-tests -f create -e http://localhost:9200 -o /sln/build/output/rest-spec-junit.xml
-```
-
-See `--help` for a full command line reference
-
-```bash
-$ ./build.sh rest-spec-tests -f --help
-```
-
-Against in most cases running through `./ci/run-tests` is all you need:
-
-```bash
-$ STACK_VERSION=8.0.0-SNAPSHOT ./.ci/run-tests
-```
\ No newline at end of file
diff --git a/.ci/run-elasticsearch.ps1 b/.ci/run-elasticsearch.ps1
deleted file mode 100644
index f319ea3f322..00000000000
--- a/.ci/run-elasticsearch.ps1
+++ /dev/null
@@ -1,253 +0,0 @@
-# Launch one or more Elasticsearch nodes via the Docker image,
-# to form a cluster suitable for running the REST API tests.
-#
-# Export the ELASTICSEARCH_VERSION variable, eg. 'elasticsearch:8.0.0-SNAPSHOT'.
-
-param(
- [string]
- $NODE_NAME,
-
- [string]
- $MASTER_NODE_NAME,
-
- [string]
- $CLUSTER_NAME,
-
- [int]
- $HTTP_PORT = 9200,
-
- [string]
- $ELASTIC_PASSWORD = "changeme",
-
- [string]
- $SSL_CERT = "$PWD/certs/testnode.crt",
-
- [string]
- $SSL_KEY = "$PWD/certs/testnode.key",
-
- [string]
- $SSL_CA = "$PWD/certs/ca.crt",
-
- [switch]
- $DETACH,
-
- [switch]
- $CLEANUP,
-
- [string]
- $NETWORK_NAME
-
-)
-
-trap {
- cleanup
-}
-
-$ESC = [char]27
-
-if ($null -eq $env:ELASTICSEARCH_VERSION) {
- Write-Error "ERROR: Required environment variable [ELASTICSEARCH_VERSION] not set"
- exit 1
-}
-
-$moniker = $env:ELASTICSEARCH_VERSION -replace "[^a-zA-Z\d]", "-"
-$suffix = "rest-test"
-
-if (!$NODE_NAME) {
- $NODE_NAME = "${moniker}node1"
-}
-
-if (!$MASTER_NODE_NAME) {
- $MASTER_NODE_NAME = $NODE_NAME
-}
-
-if (!$CLUSTER_NAME) {
- $CLUSTER_NAME = "${moniker}${suffix}"
-}
-
-$volume_name = "${NODE_NAME}-${suffix}-data"
-
-if (!$NETWORK_NAME) {
- $NETWORK_NAME= "${moniker}${suffix}"
-}
-
-
-function cleanup_volume {
- param(
- [string]
- $Name
- )
-
- if ("$(docker volume ls --quiet --filter name="$Name")") {
- Write-Output "$ESC[34;1mINFO:$ESC[0m Removing volume $Name$ESC[0m"
- docker volume rm "$Name"
- }
-}
-function cleanup_node {
- param(
- [string]
- $Name
- )
-
- if ("$(docker ps --quiet --filter name="$Name")") {
- Write-Output "$ESC[34;1mINFO:$ESC[0m Removing container $Name$ESC[0m"
- docker container rm --force --volumes "$Name"
- cleanup_volume "$Name-${suffix}-data"
- }
-}
-function cleanup_network {
- param(
- [string]
- $Name
- )
-
- if ("$(docker network ls --quiet --filter name="$Name")") {
- Write-Output "$ESC[34;1mINFO:$ESC[0m Removing network ${Name}$ESC[0m"
- docker network rm "$Name"
- }
-}
-
-function cleanup {
- param(
- [switch]
- $Cleanup
- )
-
- if ((-not $DETACH) -or $Cleanup) {
- Write-Output "$ESC[34;1mINFO:$ESC[0m clean the node and volume on startup (1) OR on exit if not detached$ESC[0m"
- cleanup_node "$NODE_NAME"
- }
- if (-not $DETACH) {
- Write-Output "$ESC[34;1mINFO:$ESC[0m clean the network if not detached (start and exit)$ESC[0m"
- cleanup_network "$NETWORK_NAME"
- }
-}
-
-if ($CLEANUP) {
- #trap - EXIT
- if ("$(docker network ls --quiet --filter name=${NETWORK_NAME})" -eq "") {
- Write-Output "$ESC[34;1mINFO:$ESC[0m $NETWORK_NAME is already deleted$ESC[0m"
- exit 0
- }
- $containers = $(docker network inspect --format '{{ range $key, $value := .Containers }}{{ println .Name}}{{ end }}' ${NETWORK_NAME})
-
- foreach($container in $containers) {
- cleanup_node "$container"
- }
-
- cleanup_network "$NETWORK_NAME"
- Write-Output "$ESC[32;1mSUCCESS:$ESC[0m Cleaned up and exiting$ESC[0m"
- exit 0
-}
-
-Write-Output "$ESC[34;1mINFO:$ESC[0m Making sure previous run leftover infrastructure is removed$ESC[0m"
-cleanup -Cleanup
-
-Write-Output "$ESC[34;1mINFO:$ESC[0m Creating network $NETWORK_NAME if it does not exist already$ESC[0m"
-
-docker network inspect "$NETWORK_NAME" | Out-Null
-if ($LASTEXITCODE -ne 0) {
- docker network create "$NETWORK_NAME"
-}
-
-$environment = @(
- "--env", "node.name=`"$NODE_NAME`"",
- "--env", "cluster.name=`"$CLUSTER_NAME`"",
- "--env", "cluster.initial_master_nodes=`"$MASTER_NODE_NAME`"",
- "--env", "discovery.seed_hosts=`"$MASTER_NODE_NAME`"",
- "--env", "cluster.routing.allocation.disk.threshold_enabled=false",
- "--env", "bootstrap.memory_lock=true",
- "--env", "node.attr.testattr=test",
- "--env", "path.repo=/tmp",
- "--env", "repositories.url.allowed_urls=http://snapshot.test*",
- "--env", "ingest.geoip.downloader.enabled=false"
-)
-
-$volumes = @(
- "--volume", "${volume_name}:/usr/share/elasticsearch/data"
-)
-
-if (-not $env:ELASTICSEARCH_VERSION -contains "free") {
- $environment += @(
- "--env", "ELASTIC_PASSWORD=`"$ELASTIC_PASSWORD`"",
- "--env", "xpack.license.self_generated.type=trial",
- "--env", "xpack.security.enabled=true",
- "--env", "xpack.security.http.ssl.enabled=true",
- "--env", "xpack.security.http.ssl.verification_mode=certificate",
- "--env", "xpack.security.http.ssl.key=certs/testnode.key",
- "--env", "xpack.security.http.ssl.certificate=certs/testnode.crt",
- "--env", "xpack.security.http.ssl.certificate_authorities=certs/ca.crt",
- "--env", "xpack.security.transport.ssl.enabled=true",
- "--env", "xpack.security.transport.ssl.key=certs/testnode.key",
- "--env", "xpack.security.transport.ssl.certificate=certs/testnode.crt",
- "--env", "xpack.security.transport.ssl.certificate_authorities=certs/ca.crt"
- )
-
- $volumes += @(
- "--volume", "`"${SSL_CERT}`":/usr/share/elasticsearch/config/certs/testnode.crt",
- "--volume", "`"${SSL_KEY}`":/usr/share/elasticsearch/config/certs/testnode.key",
- "--volume", "`"${SSL_CA}`":/usr/share/elasticsearch/config/certs/ca.crt"
- )
-}
-
-$url="http://$NODE_NAME"
-if (-not $env:ELASTICSEARCH_VERSION -contains "free") {
- $url="https://elastic:$ELASTIC_PASSWORD@$NODE_NAME"
-}
-
-Write-Output "$ESC[34;1mINFO:$ESC[0m Starting container $NODE_NAME $ESC[0m"
-
-if ($DETACH) {
- $d = "true"
-} else {
- $d = "false"
-}
-
-docker run `
- --name "`"$NODE_NAME`"" `
- --network "`"$NETWORK_NAME`"" `
- --env ES_JAVA_OPTS=-"`"Xms1g -Xmx1g`"" `
- $environment `
- $volumes `
- --publish ${HTTP_PORT}:9200 `
- --ulimit nofile=65536:65536 `
- --ulimit memlock=-1:-1 `
- --detach="$d" `
- --health-cmd="`"curl --silent --fail ${url}:9200/_cluster/health || exit 1`"" `
- --health-interval=2s `
- --health-retries=20 `
- --health-timeout=2s `
- --rm docker.elastic.co/elasticsearch/"$($env:ELASTICSEARCH_VERSION)"
-
-
-if ($DETACH) {
- while("$(docker inspect -f '{{.State.Health.Status}}' ${NODE_NAME})" -eq "starting") {
- Start-Sleep 2;
- Write-Output ""
- Write-Output "$ESC[34;1mINFO:$ESC[0m waiting for node $NODE_NAME to be up$ESC[0m"
- }
-
- # Always show the node getting started logs, this is very useful both on CI as well as while developing
- docker logs "$NODE_NAME"
-
- if ("$(docker inspect -f '{{.State.Health.Status}}' ${NODE_NAME})" -ne "healthy") {
- cleanup -Cleanup
- Write-Output ""
- Write-Output "$ESC[31;1mERROR:$ESC[0m Failed to start $($env:ELASTICSEARCH_VERSION) in detached mode beyond health checks$ESC[0m"
- Write-Output "$ESC[31;1mERROR:$ESC[0m dumped the docker log before shutting the node down$ESC[0m"
- exit 1
- } else {
- Write-Output ""
- Write-Output "$ESC[32;1mSUCCESS:$ESC[0m Detached and healthy: ${NODE_NAME} on docker network: ${NETWORK_NAME}$ESC[0m"
- $es_host = $url
- if (!$es_host) {
- $es_host = $NODE_NAME
- }
- if (!$es_host) {
- $es_host = "localhost"
- }
-
- Write-Output "$ESC[32;1mSUCCESS:$ESC[0m Running on: ${es_host}:${HTTP_PORT}$ESC[0m"
- exit 0
- }
-}
diff --git a/.ci/run-elasticsearch.sh b/.ci/run-elasticsearch.sh
deleted file mode 100755
index 7badac17c6f..00000000000
--- a/.ci/run-elasticsearch.sh
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/env bash
-#
-# Launch one or more Elasticsearch nodes via the Docker image,
-# to form a cluster suitable for running the REST API tests.
-#
-# Export the STACK_VERSION variable, eg. '8.0.0-SNAPSHOT'.
-# Export the TEST_SUITE variable, eg. 'free' or 'platinum' defaults to 'free'.
-# Export the NUMBER_OF_NODES variable to start more than 1 node
-
-# Version 1.4.0
-# - Initial version of the run-elasticsearch.sh script
-# - Deleting the volume should not dependent on the container still running
-# - Fixed `ES_JAVA_OPTS` config
-# - Moved to STACK_VERSION and TEST_VERSION
-# - Refactored into functions and imports
-# - Support NUMBER_OF_NODES
-# - Added 5 retries on docker pull for fixing transient network errors
-# - Added flags to make local CCR configurations work
-# - Added action.destructive_requires_name=false as the default will be true in v8
-# - Added ingest.geoip.downloader.enabled=false as it causes false positives in testing
-
-# Version 1.2.0
-# - Added action.destructive_requires_name=false as the default will be true in v8
-
-# Version 1.4.0
-# - Added ingest.geoip.downloader.enabled=false as it causes false positives in testing
-
-# Version 1.5.0
-# - Moved ELASTIC_PASSWORD to the base arguments for "Security On by default"
-
-script_path=$(dirname $(realpath -s $0))
-source $script_path/functions/imports.sh
-set -euo pipefail
-
-echo -e "\033[34;1mINFO:\033[0m Take down node if called twice with the same arguments (DETACH=true) or on seperate terminals \033[0m"
-cleanup_node $es_node_name
-
-master_node_name=${es_node_name}
-cluster_name=${moniker}${suffix}
-
-declare -a volumes
-environment=($(cat <<-END
- --env ELASTIC_PASSWORD=$elastic_password
- --env node.name=$es_node_name
- --env cluster.name=$cluster_name
- --env cluster.initial_master_nodes=$master_node_name
- --env discovery.seed_hosts=$master_node_name
- --env cluster.routing.allocation.disk.threshold_enabled=false
- --env bootstrap.memory_lock=true
- --env node.attr.testattr=test
- --env path.repo=/tmp
- --env repositories.url.allowed_urls=http://snapshot.test*
- --env ingest.geoip.downloader.enabled=false
- --env cluster.deprecation_indexing.enabled=false
-END
-))
-if [[ "$TEST_SUITE" == "platinum" ]]; then
- environment+=($(cat <<-END
- --env xpack.license.self_generated.type=trial
- --env xpack.security.enabled=true
- --env xpack.security.http.ssl.enabled=true
- --env xpack.security.http.ssl.verification_mode=certificate
- --env xpack.security.http.ssl.key=certs/testnode.key
- --env xpack.security.http.ssl.certificate=certs/testnode.crt
- --env xpack.security.http.ssl.certificate_authorities=certs/ca.crt
- --env xpack.security.transport.ssl.enabled=true
- --env xpack.security.transport.ssl.key=certs/testnode.key
- --env xpack.security.transport.ssl.certificate=certs/testnode.crt
- --env xpack.security.transport.ssl.certificate_authorities=certs/ca.crt
-END
-))
- volumes+=($(cat <<-END
- --volume $ssl_cert:/usr/share/elasticsearch/config/certs/testnode.crt
- --volume $ssl_key:/usr/share/elasticsearch/config/certs/testnode.key
- --volume $ssl_ca:/usr/share/elasticsearch/config/certs/ca.crt
-END
-))
-fi
-
-cert_validation_flags=""
-if [[ "$TEST_SUITE" == "platinum" ]]; then
- cert_validation_flags="--insecure --cacert /usr/share/elasticsearch/config/certs/ca.crt --resolve ${es_node_name}:443:127.0.0.1"
-fi
-
-NUMBER_OF_NODES=${NUMBER_OF_NODES-1}
-http_port=9200
-for (( i=0; i<$NUMBER_OF_NODES; i++, http_port++ )); do
- node_name=${es_node_name}$i
- node_url=${external_elasticsearch_url/9200/${http_port}}$i
- if [[ "$i" == "0" ]]; then node_name=$es_node_name; fi
- environment+=($(cat <<-END
- --env node.name=$node_name
-END
-))
- echo "$i: $http_port $node_url "
- volume_name=${node_name}-${suffix}-data
- volumes+=($(cat <<-END
- --volume $volume_name:/usr/share/elasticsearch/data${i}
-END
-))
-
- # make sure we detach for all but the last node if DETACH=false (default) so all nodes are started
- local_detach="true"
- if [[ "$i" == "$((NUMBER_OF_NODES-1))" ]]; then local_detach=$DETACH; fi
- echo -e "\033[34;1mINFO:\033[0m Starting container $node_name \033[0m"
- set -x
- docker run \
- --name "$node_name" \
- --network "$network_name" \
- --env "ES_JAVA_OPTS=-Xms1g -Xmx1g" \
- "${environment[@]}" \
- "${volumes[@]}" \
- --publish "$http_port":9200 \
- --ulimit nofile=65536:65536 \
- --ulimit memlock=-1:-1 \
- --detach="$local_detach" \
- --health-cmd="curl $cert_validation_flags --fail $elasticsearch_url/_cluster/health || exit 1" \
- --health-interval=2s \
- --health-retries=20 \
- --health-timeout=2s \
- --rm \
- docker.elastic.co/elasticsearch/"$elasticsearch_container";
-
- set +x
- if wait_for_container "$es_node_name" "$network_name"; then
- echo -e "\033[32;1mSUCCESS:\033[0m Running on: $node_url\033[0m"
- fi
-
-done
-
diff --git a/.ci/run-repository.ps1 b/.ci/run-repository.ps1
deleted file mode 100644
index 877995e542f..00000000000
--- a/.ci/run-repository.ps1
+++ /dev/null
@@ -1,42 +0,0 @@
-# ELASTICSEARCH_URL -- The url at which elasticsearch is reachable
-# NETWORK_NAME -- The docker network name
-# NODE_NAME -- The docker container name also used as Elasticsearch node name
-# DOTNET_VERSION -- SDK version (defined in test-matrix.yml, a default is hardcoded here)
-
-param(
- [System.Uri]
- $ELASTICSEARCH_URL,
-
- [string]
- $NETWORK_NAME,
-
- [string]
- $NODE_NAME,
-
- [string]
- $DOTNET_VERSION = "9.0.100"
-)
-
-$ESC = [char]27
-
-Write-Output "$ESC[34;1mINFO:$ESC[0m URL ${ELASTICSEARCH_URL}$ESC[0m"
-Write-Output "$ESC[34;1mINFO:$ESC[0m DOTNET_VERSION ${DOTNET_VERSION}$ESC[0m"
-
-Write-Output "$ESC[1m>>>>> Build [elastic/elasticsearch-net container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>$ESC[0m"
-
-docker build --file .ci/DockerFile --tag elastic/elasticsearch-net .
-
-Write-Output "$ESC[1m>>>>> Run [elastic/elasticsearch-net container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>$ESC[0m"
-
-mkdir -p build/output -ErrorAction Ignore
-
-$repo = Get-Location
-
-docker run `
- --network="`"$NETWORK_NAME`"" `
- --env "DOTNET_VERSION=$DOTNET_VERSION" `
- --name test-runner `
- --volume $repo/build/output:/sln/build/output `
- --rm `
- elastic/elasticsearch-net `
- ./build.sh rest-spec-tests -f count -e $ELASTICSEARCH_URL -o /sln/build/output/rest-spec-junit.xml
diff --git a/.ci/run-repository.sh b/.ci/run-repository.sh
deleted file mode 100755
index 2191e872ea9..00000000000
--- a/.ci/run-repository.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env bash
-# parameters are available to this script
-
-# STACK_VERSION -- version e.g Major.Minor.Patch(-Prelease)
-# TEST_SUITE -- which test suite to run: free or platinum
-# ELASTICSEARCH_URL -- The url at which elasticsearch is reachable, a default is composed based on STACK_VERSION and TEST_SUITE
-# DOTNET_VERSION -- SDK version (defined in test-matrix.yml, a default is hardcoded here)
-script_path=$(dirname $(realpath -s $0))
-source $script_path/functions/imports.sh
-set -euo pipefail
-
-DOTNET_VERSION=${DOTNET_VERSION-9.0.100}
-ELASTICSEARCH_URL=${ELASTICSEARCH_URL-"$elasticsearch_url"}
-elasticsearch_container=${elasticsearch_container-}
-
-TEST_FOLDER=${TEST_FOLDER-}
-TEST_FILE=${TEST_FILE-}
-TEST_SECTION=${TEST_SECTION-}
-
-run_script_args=""
-if [[ "$TEST_FOLDER" != "" ]]; then
- run_script_args="-f ${TEST_FOLDER}"
-fi
-if [[ "$TEST_FILE" != "" ]]; then
- run_script_args="${run_script_args} -t ${TEST_FILE}"
-fi
-if [[ "$TEST_SECTION" != "" ]]; then
- run_script_args="${run_script_args} -s ${TEST_SECTION}"
-fi
-
-echo -e "\033[34;1mINFO:\033[0m VERSION ${STACK_VERSION}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m TEST_SUITE ${TEST_SUITE}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m URL ${ELASTICSEARCH_URL}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m CONTAINER ${elasticsearch_container}\033[0m"
-echo -e "\033[34;1mINFO:\033[0m DOTNET_VERSION ${DOTNET_VERSION}\033[0m"
-
-echo -e "\033[1m>>>>> Build [elastic/elasticsearch-net container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
-
-docker build --file .ci/DockerFile --tag elastic/elasticsearch-net \
- --build-arg USER_ID=$(id -u) \
- --build-arg GROUP_ID=$(id -g) .
-
-echo -e "\033[1m>>>>> Run [elastic/elasticsearch-net container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
-
-mkdir -p build/output
-
-repo=$(realpath $(dirname $(realpath -s $0))/../)
-
-docker run \
- --network=${network_name} \
- --env "DOTNET_VERSION" \
- --name test-runner \
- --volume ${repo}/build/output:/sln/build/output \
- --rm \
- elastic/elasticsearch-net \
- ./build.sh rest-spec-tests $TEST_SUITE -e ${ELASTICSEARCH_URL} -o /sln/build/output/rest-spec-junit.xml ${run_script_args}
diff --git a/.ci/run-tests b/.ci/run-tests
deleted file mode 100755
index 76bb055a365..00000000000
--- a/.ci/run-tests
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env bash
-#
-# Version 1.1
-# - Moved to .ci folder and seperated out `run-repository.sh`
-# - Add `$RUNSCRIPTS` env var for running Elasticsearch dependent products
-script_path=$(dirname $(realpath -s $0))
-source $script_path/functions/imports.sh
-set -euo pipefail
-
-echo -e "\033[1m>>>>> Start [$STACK_VERSION container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
-DETACH=true bash .ci/run-elasticsearch.sh
-
-if [[ -n "$RUNSCRIPTS" ]]; then
- for RUNSCRIPT in ${RUNSCRIPTS//,/ } ; do
- echo -e "\033[1m>>>>> Running run-$RUNSCRIPT.sh >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
- CONTAINER_NAME=${RUNSCRIPT} \
- DETACH=true \
- bash .ci/run-${RUNSCRIPT}.sh
- done
-fi
-
-echo -e "\033[1m>>>>> Repository specific tests >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m"
-bash .ci/run-repository.sh
diff --git a/.ci/run-tests.ps1 b/.ci/run-tests.ps1
deleted file mode 100644
index 89b91ebaadf..00000000000
--- a/.ci/run-tests.ps1
+++ /dev/null
@@ -1,77 +0,0 @@
-param (
- [string]
- [Parameter(Mandatory = $true)]
- $ELASTICSEARCH_VERSION,
-
- [string]
- [ValidateSet("free", "platinum")]
- $TEST_SUITE = "free",
-
- [string]
- $DOTNET_VERSION = "9.0.100"
-)
-
-$ESC = [char]27
-$NODE_NAME = "es1"
-$elasticsearch_image= "elasticsearch"
-$elasticsearch_url = "https://elastic:changeme@${NODE_NAME}:9200"
-
-if ($TEST_SUITE -ne "platinum") {
- $elasticsearch_url = "http://${NODE_NAME}:9200"
-}
-
-# set for run-elasticsearch.ps1
-$env:ELASTICSEARCH_VERSION = "${elasticsearch_image}:$ELASTICSEARCH_VERSION"
-
-function cleanup {
- $status=$?
-
- $runParams = @{
- NODE_NAME= $NODE_NAME
- NETWORK_NAME = "elasticsearch"
- CLEANUP = $true
- }
-
- ./.ci/run-elasticsearch.ps1 @runParams
-
- # Report status and exit
- if ($status -eq 0) {
- Write-Output "SUCCESS run-tests"
- exit 0
- } else {
- Write-Output "FAILURE during run-tests"
- exit $status
- }
-}
-
-
-try {
- Write-Output "$ESC[1m>>>>> Start [$env:ELASTICSEARCH_VERSION container] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>$ESC[0m"
-
- $runParams = @{
- NODE_NAME= "$NODE_NAME"
- NETWORK_NAME = "elasticsearch"
- DETACH = $true
- }
-
- ./.ci/run-elasticsearch.ps1 @runParams
-
- Write-Output "$ESC[1m>>>>> Repository specific tests >>>>>>>>>>>>>>>>>>>>>>>>>>>>>$ESC[0m"
-
- $runParams = @{
- ELASTICSEARCH_VERSION = "$env:ELASTICSEARCH_VERSION"
- ELASTICSEARCH_CONTAINER = "$env:ELASTICSEARCH_VERSION"
- NETWORK_NAME = "elasticsearch"
- NODE_NAME= "$NODE_NAME"
- ELASTICSEARCH_URL = $elasticsearch_url
- DOTNET_VERSION = $DOTNET_VERSION
- }
-
- ./.ci/run-repository.ps1 @runParams
-
- cleanup
-}
-catch {
- cleanup
-}
-
diff --git a/.ci/test-matrix.yml b/.ci/test-matrix.yml
deleted file mode 100755
index 0c4a5a2b9ba..00000000000
--- a/.ci/test-matrix.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-
-STACK_VERSION:
- - master-SNAPSHOT
-
-TEST_SUITE:
- - free
- - platinum
-
-DOTNET_VERSION:
- - 9.0.100
-
-exclude: ~
diff --git a/.github/workflows/unified-release.yml b/.github/workflows/unified-release.yml
deleted file mode 100644
index fe5f3a1aecd..00000000000
--- a/.github/workflows/unified-release.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-name: Unified Release
-
-on:
- pull_request:
- paths-ignore:
- - 'README.md'
- - '.editorconfig'
- push:
- paths-ignore:
- - 'README.md'
- - '.editorconfig'
- branches:
- - main
- - '[0-9]+.[0-9]+'
- - '[0-9]+.x'
-
-jobs:
- assemble:
- name: Assemble
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- stack_version: [ '9.0.0-SNAPSHOT']
-
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - uses: actions/setup-dotnet@v4
- with:
- global-json-file: 'global.json'
-
- - run: "./.ci/make.sh assemble ${{ matrix.stack_version }}"
- name: Assemble ${{ matrix.stack_version }}
diff --git a/benchmarks/Benchmarks/Benchmarks.csproj b/benchmarks/Benchmarks/Benchmarks.csproj
index 00e4ad09fd9..94cda590371 100644
--- a/benchmarks/Benchmarks/Benchmarks.csproj
+++ b/benchmarks/Benchmarks/Benchmarks.csproj
@@ -2,11 +2,12 @@
Exe
- net8.0
+ net10.0
enable
enable
True
$(SolutionRoot)\build\keys\keypair.snk
+ true
diff --git a/benchmarks/Profiling/Profiling.csproj b/benchmarks/Profiling/Profiling.csproj
index e591f4ab2c7..9ac14b42220 100644
--- a/benchmarks/Profiling/Profiling.csproj
+++ b/benchmarks/Profiling/Profiling.csproj
@@ -2,8 +2,9 @@
Exe
- net8.0
+ net10.0
enable
+ true
diff --git a/build/scripts/scripts.fsproj b/build/scripts/scripts.fsproj
index 94f4e3194ff..de491e1fe73 100644
--- a/build/scripts/scripts.fsproj
+++ b/build/scripts/scripts.fsproj
@@ -1,10 +1,11 @@
- net9.0
+ net10.0
Exe
$(NoWarn);NU1701
true
+ true
diff --git a/examples/aot/aot.csproj b/examples/aot/aot.csproj
index cec1671aa11..43cdc23d321 100644
--- a/examples/aot/aot.csproj
+++ b/examples/aot/aot.csproj
@@ -2,12 +2,13 @@
Exe
- net9.0
+ net10.0
enable
true
true
false
+ true
diff --git a/global.json b/global.json
index 00b67caef9e..fe7e453b1cd 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "9.0.100",
+ "version": "10.0.100",
"rollForward": "latestFeature",
"allowPrerelease": false
}
diff --git a/src/Elastic.Clients.Elasticsearch/Elastic.Clients.Elasticsearch.csproj b/src/Elastic.Clients.Elasticsearch/Elastic.Clients.Elasticsearch.csproj
index c8e220a78fc..6c6f2135a4c 100644
--- a/src/Elastic.Clients.Elasticsearch/Elastic.Clients.Elasticsearch.csproj
+++ b/src/Elastic.Clients.Elasticsearch/Elastic.Clients.Elasticsearch.csproj
@@ -14,15 +14,17 @@
true
true
- netstandard2.0;net462;netstandard2.1;net8.0;net9.0
+ netstandard2.0;net462;netstandard2.1;net8.0;net9.0;net10.0
true
true
annotations
true
+ true
+ $([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net9.0')) or
+ $([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net10.0'))">
true
@@ -31,7 +33,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/src/Playground/Playground.csproj b/src/Playground/Playground.csproj
index 75df2119aef..0ebf0009d72 100644
--- a/src/Playground/Playground.csproj
+++ b/src/Playground/Playground.csproj
@@ -2,20 +2,17 @@
Exe
- net9.0
+ net10.0
enable
enable
true
+ true
false
-
-
-
-
diff --git a/tests/Tests.ClusterLauncher/Tests.ClusterLauncher.csproj b/tests/Tests.ClusterLauncher/Tests.ClusterLauncher.csproj
index 7935ae2f92a..6a30f505cdb 100644
--- a/tests/Tests.ClusterLauncher/Tests.ClusterLauncher.csproj
+++ b/tests/Tests.ClusterLauncher/Tests.ClusterLauncher.csproj
@@ -1,8 +1,9 @@
Exe
- net8.0
+ net10.0
false
+ true
diff --git a/tests/Tests/Tests.csproj b/tests/Tests/Tests.csproj
index a99139377b6..729879efe6f 100644
--- a/tests/Tests/Tests.csproj
+++ b/tests/Tests/Tests.csproj
@@ -1,10 +1,11 @@
- net8.0
+ net10.0
$(NoWarn);xUnit1013
True
True
latest
+ true