Skip to content

Commit 092ea3e

Browse files
committed
Merge branch 'master' of https://github.com/ahmedabu98/beam into iceberg_getting_started
2 parents b52c85f + 183ecd3 commit 092ea3e

File tree

1,467 files changed

+89131
-32354
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,467 files changed

+89131
-32354
lines changed

.asf.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ github:
5151

5252
protected_branches:
5353
master: {}
54+
release-2.71.0-postrelease: {}
55+
release-2.71: {}
56+
release-2.70.0-postrelease: {}
57+
release-2.70: {}
58+
release-2.69.0-postrelease: {}
59+
release-2.69: {}
5460
release-2.68.0-postrelease: {}
5561
release-2.68: {}
5662
release-2.67.0-postrelease: {}

.github/REVIEWERS.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,21 @@ labels:
2323
- jrmccluskey
2424
- lostluck
2525
- shunping
26-
- liferoad
2726
exclusionList: []
2827
- name: Python
2928
reviewers:
3029
- claudevdm
3130
- damccorm
3231
- jrmccluskey
3332
- tvalentyn
34-
- liferoad
3533
- shunping
3634
exclusionList: []
3735
- name: Java
3836
reviewers:
3937
- Abacn
4038
- ahmedabu98
4139
- chamikaramj
42-
- m-trieu
4340
- kennknowles
44-
- robertwb
4541
exclusionList: []
4642
- name: spanner
4743
reviewers:
@@ -65,17 +61,16 @@ labels:
6561
exclusionList: []
6662
- name: website
6763
reviewers:
64+
- Abacn
6865
- damccorm
69-
- liferoad
7066
- kennknowles
67+
- shunping
7168
exclusionList: []
7269
fallbackReviewers:
7370
- Abacn
7471
- chamikaramj
7572
- damccorm
7673
- jrmccluskey
7774
- kennknowles
78-
- liferoad
79-
- robertwb
8075
- shunping
8176
- tvalentyn

.github/actions/dind-up-action/action.yml

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ inputs:
4343
storage-driver:
4444
default: overlay2
4545
additional-dockerd-args:
46-
default: ""
46+
default: "--tls=false"
4747
use-host-network:
4848
description: "Run DinD with --network host instead of publishing a TCP port."
4949
default: "false"
@@ -57,6 +57,9 @@ inputs:
5757
default: 10s
5858
wait-timeout:
5959
default: "180"
60+
dind-image:
61+
description: "DinD image. Use a fixed version tag to avoid issues."
62+
default: "docker:27-dind"
6063

6164
# --- NEW: Optional Setup & Verification Steps ---
6265
cleanup-dind-on-start:
@@ -129,7 +132,11 @@ runs:
129132
130133
docker volume create --name "${STORAGE_VOL}" --label "com.github.dind=1" --label "com.github.repo=${GITHUB_REPOSITORY}" >/dev/null
131134
docker volume create --name "${EXECROOT_VOL}" --label "com.github.dind=1" --label "com.github.repo=${GITHUB_REPOSITORY}" >/dev/null
135+
136+
# Clean up any existing DinD containers
137+
docker ps -a -q --filter "label=com.github.dind=1" | xargs -r docker rm -f -v 2>/dev/null || true
132138
docker rm -f -v "$NAME" 2>/dev/null || true
139+
sleep 2
133140
134141
NET_ARGS=""
135142
PUBLISH_ARGS="-p ${BIND}:${PORT}:${PORT}"
@@ -138,6 +145,8 @@ runs:
138145
PUBLISH_ARGS=""
139146
fi
140147
148+
IMAGE="${{ inputs.dind-image || 'docker:27-dind' }}"
149+
141150
docker run -d --privileged --name "$NAME" \
142151
--cgroupns=host \
143152
-e DOCKER_TLS_CERTDIR= \
@@ -152,10 +161,11 @@ runs:
152161
--health-interval=${HI} \
153162
--health-retries=${HR} \
154163
--health-start-period=${HSP} \
155-
docker:dind \
164+
"${IMAGE}" \
156165
--host=tcp://0.0.0.0:${PORT} \
157166
--host=unix:///var/run/docker.sock \
158167
--storage-driver=${SD} \
168+
--iptables=false \
159169
--exec-root=/execroot ${EXTRA}
160170
161171
{
@@ -206,20 +216,20 @@ runs:
206216
run: |
207217
set -euo pipefail
208218
NAME="${{ inputs.container-name || 'dind-daemon' }}"
209-
219+
210220
# Use host daemon to inspect the DinD container
211221
nm=$(docker inspect -f '{{.HostConfig.NetworkMode}}' "$NAME")
212222
echo "DinD NetworkMode=${nm}"
213223
214224
# Try to find the bridge network IP
215225
ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$NAME" || true)
216-
226+
217227
# If still empty, likely host networking -> use loopback
218228
if [[ -z "${ip}" || "${nm}" == "host" ]]; then
219229
echo "No bridge IP found or using host network. Falling back to 127.0.0.1."
220230
ip="127.0.0.1"
221231
fi
222-
232+
223233
echo "Discovered DinD IP: ${ip}"
224234
echo "dind-ip=${ip}" >> "$GITHUB_OUTPUT"
225235
@@ -237,7 +247,7 @@ runs:
237247
hostport=$(docker port redis-smoke 6379/tcp | sed 's/.*://')
238248
echo "Redis container started, mapped to host port ${hostport}"
239249
echo "Probing connection to ${DIND_IP}:${hostport} ..."
240-
250+
241251
timeout 5 bash -c 'exec 3<>/dev/tcp/$DIND_IP/'"$hostport"
242252
if [[ $? -eq 0 ]]; then
243253
echo "TCP connection successful. Port mapping is working."
@@ -272,4 +282,4 @@ runs:
272282
shell: bash
273283
run: |
274284
echo "DOCKER_HOST=${{ steps.set-output.outputs.docker-host }}" >> "$GITHUB_ENV"
275-
echo "DIND_IP=${{ steps.discover-ip.outputs.dind-ip }}" >> "$GITHUB_ENV"
285+
echo "DIND_IP=${{ steps.discover-ip.outputs.dind-ip }}" >> "$GITHUB_ENV"

.github/actions/gradle-command-self-hosted-action/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,6 @@ runs:
4141
if [ -f ~/.m2/settings.xml ]; then
4242
rm ~/.m2/settings.xml
4343
fi
44-
./gradlew ${{ inputs.gradle-command }} --max-workers=${{ inputs.max-workers }} --continue \
44+
./gradlew ${{ inputs.gradle-command }} --max-workers=${{ inputs.max-workers }} --continue --no-daemon \
4545
-Dorg.gradle.jvmargs=-Xms2g -Dorg.gradle.jvmargs=-Xmx6g -Dorg.gradle.vfs.watch=false -Pdocker-pull-licenses \
4646
${{ inputs.arguments }}
Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
{
22
"PythonTestProperties": {
3-
"ALL_SUPPORTED_VERSIONS": ["3.9", "3.10", "3.11", "3.12"],
4-
"LOWEST_SUPPORTED": ["3.9"],
5-
"HIGHEST_SUPPORTED": ["3.12"],
6-
"ESSENTIAL_VERSIONS": ["3.9", "3.12"],
7-
"CROSS_LANGUAGE_VALIDATES_RUNNER_PYTHON_VERSIONS": ["3.9", "3.12"],
3+
"ALL_SUPPORTED_VERSIONS": ["3.10", "3.11", "3.12", "3.13"],
4+
"LOWEST_SUPPORTED": ["3.10"],
5+
"HIGHEST_SUPPORTED": ["3.13"],
6+
"ESSENTIAL_VERSIONS": ["3.10", "3.13"],
7+
"CROSS_LANGUAGE_VALIDATES_RUNNER_PYTHON_VERSIONS": ["3.10", "3.12", "3.13"],
88
"CROSS_LANGUAGE_VALIDATES_RUNNER_DATAFLOW_USING_SQL_PYTHON_VERSIONS": ["3.11"],
9-
"VALIDATES_CONTAINER_DATAFLOW_PYTHON_VERSIONS": ["3.9", "3.10", "3.11", "3.12"],
10-
"LOAD_TEST_PYTHON_VERSION": "3.9",
11-
"CHICAGO_TAXI_EXAMPLE_FLINK_PYTHON_VERSION": "3.9",
12-
"DEFAULT_INTERPRETER": "python3.9",
9+
"VALIDATES_CONTAINER_DATAFLOW_PYTHON_VERSIONS": ["3.10", "3.11", "3.12", "3.13"],
10+
"LOAD_TEST_PYTHON_VERSION": "3.10",
11+
"CHICAGO_TAXI_EXAMPLE_FLINK_PYTHON_VERSION": "3.10",
12+
"DEFAULT_INTERPRETER": "python3.10",
1313
"TOX_ENV": ["Cloud", "Cython"]
1414
},
1515
"JavaTestProperties": {
16-
"SUPPORTED_VERSIONS": ["8", "11", "17", "21"],
17-
"FLINK_VERSIONS": ["1.17", "1.18", "1.19"],
18-
"SPARK_VERSIONS": ["2", "3"]
16+
"SUPPORTED_VERSIONS": ["8", "11", "17", "21", "25"],
17+
"FLINK_VERSIONS": ["1.17", "1.18", "1.19", "1.20"],
18+
"SPARK_VERSIONS": ["3"]
1919
},
2020
"GoTestProperties": {
21-
"SUPPORTED_VERSIONS": ["1.23"]
21+
"SUPPORTED_VERSIONS": ["1.25"]
2222
}
2323
}

.github/actions/setup-environment-action/action.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ runs:
5050
if: ${{ inputs.python-version != '' }}
5151
uses: actions/setup-python@v5
5252
with:
53-
python-version: ${{ inputs.python-version == 'default' && '3.9' || inputs.python-version }}
53+
python-version: ${{ inputs.python-version == 'default' && '3.10' || inputs.python-version }}
5454
cache: ${{ inputs.python-cache && 'pip' || 'none' }}
5555
cache-dependency-path: |
5656
sdks/python/setup.py
@@ -64,10 +64,10 @@ runs:
6464
sdks/python/target/.tox
6565
!sdks/python/target/.tox/**/log
6666
!sdks/python/target/.tox/.package_cache
67-
key: tox-${{ runner.os }}-py${{ inputs.python-version == 'default' && '39' || inputs.python-version }}-${{ hashFiles('sdks/python/tox.ini') }}-${{ hashFiles('sdks/python/setup.py') }}
67+
key: tox-${{ runner.os }}-py${{ inputs.python-version == 'default' && '310' || inputs.python-version }}-${{ hashFiles('sdks/python/tox.ini') }}-${{ hashFiles('sdks/python/setup.py') }}
6868
restore-keys: |
69-
tox-${{ runner.os }}-py${{ inputs.python-version == 'default' && '39' || inputs.python-version }}-${{ hashFiles('sdks/python/tox.ini') }}-
70-
tox-${{ runner.os }}-py${{ inputs.python-version == 'default' && '39' || inputs.python-version }}-
69+
tox-${{ runner.os }}-py${{ inputs.python-version == 'default' && '310' || inputs.python-version }}-${{ hashFiles('sdks/python/tox.ini') }}-
70+
tox-${{ runner.os }}-py${{ inputs.python-version == 'default' && '310' || inputs.python-version }}-
7171
7272
- name: Install Java
7373
if: ${{ inputs.java-version != '' }}
@@ -76,12 +76,13 @@ runs:
7676
distribution: 'temurin'
7777
java-version: ${{ inputs.java-version == 'default' && '11' || inputs.java-version }}
7878
- name: Setup Gradle
79-
uses: gradle/gradle-build-action@v2
79+
uses: gradle/actions/setup-gradle@4d9f0ba0025fe599b4ebab900eb7f3a1d93ef4c2 # v5
8080
with:
8181
cache-disabled: ${{ inputs.disable-cache }}
82+
validate-wrappers: false
8283
- name: Install Go
8384
if: ${{ inputs.go-version != '' }}
84-
uses: actions/setup-go@v5
85+
uses: actions/setup-go@v6
8586
with:
86-
go-version: ${{ inputs.go-version == 'default' && '1.24' || inputs.go-version }} # never set patch, to get latest patch releases.
87+
go-version: ${{ inputs.go-version == 'default' && '1.25' || inputs.go-version }} # never set patch, to get latest patch releases.
8788
cache-dependency-path: $${{ inputs.disable-cache && '' || 'sdks/go.sum' }}

.github/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ task check {
4848
return
4949
}
5050

51-
// precommit and postcommit should triggered by this specific file
51+
// precommit and postcommit should be triggered by this specific file
5252
// this is to ensure not missing test during release branch verification
5353
if (paths != null && !paths.contains('release/trigger_all_tests.json') && !fname.toLowerCase().contains('sickbay') && !workflow.name.toLowerCase().contains('disabled')) {
5454
errors.add("Error validating ${fname}: " +
5555
"Please add 'release/trigger_all_tests.json' to the trigger path")
5656
return
5757
}
5858

59-
// postcommit should triggered by a specific file so that there is a way to exercise post for open PR
59+
// postcommit should be triggered by a specific file so that there is a way to exercise post for open PR
6060
// TODO(https://github.com/apache/beam/issues/28909)
6161
// remove file match trigger once a better trigger (e.g. comment trigger) is implemented
6262
if (fname.startsWith("beam_PostCommit")) {

.github/gh-actions-self-hosted-runners/arc/README.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,26 @@ terraform init -backend-config="bucket=bucket_name"
9696
terraform apply -var-file=environments/environment_name.env
9797
```
9898

99+
# Updating
100+
If you need to update the configuration (e.g. upgrading the github runner image, changing resource settings, etc), follow the steps below:
101+
102+
1. From this directory, login to your gcloud account that you created the bucket with and init terraform. Replace bucket_name with the bucket for storing terraform state, e.g. `beam-arc-state`.
103+
```
104+
gcloud auth login
105+
gcloud auth application-default login
106+
terraform init -backend-config="bucket=bucket_name"
107+
```
108+
109+
2. Terraform plan. Replace environment_name.env with the file under environments, e.g. `beam.env`. Fix config problems if any.
110+
```
111+
terraform plan -var-file=environments/environment_name.env
112+
```
113+
114+
3. Terraform apply. Replace environment_name.env with the file under environments, e.g. `beam.env`.
115+
```
116+
terraform apply -var-file=environments/environment_name.env
117+
```
118+
99119
# Maintanance
100120

101121
- To access the ARC k8s cluster call the `get_kubeconfig_command` terraform output and run the command
102-

.github/gh-actions-self-hosted-runners/arc/environments/beam.env

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ project_id = "apache-beam-testing"
2121
region = "us-central1"
2222
zone = "us-central1-b"
2323
environment = "beam-prod"
24-
ingress_domain = "action.beam.apache.org"
24+
ingress_domain = "action.beam.apache.org"
2525
organization = "apache"
2626
repository = "beam"
2727
github_app_id_secret_name = "gh-app_id"
@@ -35,7 +35,7 @@ service_account_id = "beam-github-actions@apache-beam-testing.iam.gserviceaccoun
3535
runner_group = "beam"
3636
main_runner = {
3737
name = "main-runner"
38-
runner_image = "us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:3063b55757509dad1c14751c9f2aa5905826d9a0"
38+
runner_image = "us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:d7cd81a1649bc665581951d2330c4b8acd19ed72"
3939
machine_type = "e2-standard-16"
4040
min_node_count = "1"
4141
max_node_count = "30"
@@ -51,7 +51,7 @@ main_runner = {
5151
additional_runner_pools = [{
5252
name = "small-runner"
5353
machine_type = "e2-standard-2"
54-
runner_image = "us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:3063b55757509dad1c14751c9f2aa5905826d9a0"
54+
runner_image = "us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:d7cd81a1649bc665581951d2330c4b8acd19ed72"
5555
min_node_count = "1"
5656
max_node_count = "15"
5757
min_replicas = "1"
@@ -68,7 +68,7 @@ additional_runner_pools = [{
6868
{
6969
name = "highmem-runner"
7070
machine_type = "c3-highmem-8"
71-
runner_image = "us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:3063b55757509dad1c14751c9f2aa5905826d9a0"
71+
runner_image = "us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:d7cd81a1649bc665581951d2330c4b8acd19ed72"
7272
min_node_count = "1"
7373
max_node_count = "15"
7474
min_replicas = "1"
@@ -85,7 +85,7 @@ additional_runner_pools = [{
8585
{
8686
name = "highmem-runner-22"
8787
machine_type = "c3-highmem-22"
88-
runner_image = "us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:3063b55757509dad1c14751c9f2aa5905826d9a0"
88+
runner_image = "us-central1-docker.pkg.dev/apache-beam-testing/beam-github-actions/beam-arc-runner:d7cd81a1649bc665581951d2330c4b8acd19ed72"
8989
min_node_count = "0"
9090
max_node_count = "8"
9191
min_replicas = "0"

.github/gh-actions-self-hosted-runners/arc/helm.tf

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,16 @@ resource "helm_release" "cert-manager" {
2222
create_namespace = true
2323
repository = "https://charts.jetstack.io"
2424
chart = "cert-manager"
25-
25+
2626
atomic = "true"
2727
timeout = 100
2828

29-
set {
30-
name = "installCRDs"
31-
value = "true"
32-
}
29+
set = [
30+
{
31+
name = "installCRDs"
32+
value = "true"
33+
}
34+
]
3335
depends_on = [ google_container_node_pool.main-actions-runner-pool ]
3436
}
3537

@@ -43,12 +45,11 @@ resource "helm_release" "arc" {
4345
atomic = "true"
4446
timeout = 120
4547

46-
dynamic "set" {
47-
for_each = local.arc_values
48-
content {
49-
name = set.key
50-
value = set.value
48+
set = [
49+
for k, v in local.arc_values : {
50+
name = k
51+
value = v
5152
}
52-
}
53+
]
5354
depends_on = [ helm_release.cert-manager ]
5455
}

0 commit comments

Comments
 (0)