Skip to content

Pr/metrics logging#5115

Merged
javanlacerda merged 4 commits into
pr/dependenciesfrom
pr/metrics-logging
Jan 9, 2026
Merged

Pr/metrics logging#5115
javanlacerda merged 4 commits into
pr/dependenciesfrom
pr/metrics-logging

Conversation

@javanlacerda

Copy link
Copy Markdown
Collaborator

No description provided.

Signed-off-by: Javan Lacerda <javanlacerda@google.com>
Signed-off-by: Javan Lacerda <javanlacerda@google.com>
Signed-off-by: Javan Lacerda <javanlacerda@google.com>
@javanlacerda javanlacerda marked this pull request as ready for review January 9, 2026 16:16
@javanlacerda javanlacerda merged commit 1c1fffb into pr/dependencies Jan 9, 2026
4 of 6 checks passed
@javanlacerda javanlacerda deleted the pr/metrics-logging branch January 9, 2026 16:16
javanlacerda added a commit that referenced this pull request Jan 9, 2026
This commit introduces the Kubernetes job client and service, providing a mechanism to schedule tasks on Kubernetes clusters (including GKE and Kind), supporting both standard and Kata Containers.

Key Features & Changes:
- **Kubernetes Service**: Implemented `KubernetesService` in `clusterfuzz._internal.k8s.service` to manage job creation.
- **Kata Support**: Added specialized job creation for Kata Containers (`create_kata_container_job`) with required security context (`privileged`, `capabilities: ALL`), networking (`hostNetwork: True`), and environment variables (`HOST_UID`).
- **Dependency Management**: Added `kubernetes` and necessary Google Cloud dependencies (`google-api-python-client`, `google-cloud-storage`, `google-cloud-ndb`, etc.) to `Pipfile`.
- **E2E Testing**:
    - Created `tests.core.k8s.k8s_service_e2e_test` to verify job lifecycle on a local Kind cluster.
    - Updated `local/tests/kubernetes_e2e_test.bash` to provision the test environment.
    - Updated CI workflow (`.github/workflows/kubernetes-e2e-tests.yaml`) to install JDK 21 (required for Datastore emulator).
    - Tests now verify job "Running" status to avoid timeouts with long-running commands.
    - `KubernetesService` skips default credential loading when `K8S_E2E` is set to utilize the test-provided kubeconfig.
- **Unit Tests**: Added comprehensive unit tests in `tests.core.k8s.k8s_service_test` and `tests.core.kubernetes.kubernetes_test`, including mocking of `load_kube_config` and `_load_gke_credentials` to ensure robust testing without external dependencies.

pipenv lock

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

install kubernetes

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

Update dependencies and fix linting

move use_batch

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

add todo

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

Pr/metrics logging (#5115)

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

fixes

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

fix lint

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

mock gcloud auth default

Signed-off-by: Javan Lacerda <javanlacerda@google.com>
javanlacerda added a commit that referenced this pull request Jan 9, 2026
This commit introduces the Kubernetes job client and service, providing a mechanism to schedule tasks on Kubernetes clusters (including GKE and Kind), supporting both standard and Kata Containers.

Key Features & Changes:
- **Kubernetes Service**: Implemented `KubernetesService` in `clusterfuzz._internal.k8s.service` to manage job creation.
- **Kata Support**: Added specialized job creation for Kata Containers (`create_kata_container_job`) with required security context (`privileged`, `capabilities: ALL`), networking (`hostNetwork: True`), and environment variables (`HOST_UID`).
- **Dependency Management**: Added `kubernetes` and necessary Google Cloud dependencies (`google-api-python-client`, `google-cloud-storage`, `google-cloud-ndb`, etc.) to `Pipfile`.
- **E2E Testing**:
    - Created `tests.core.k8s.k8s_service_e2e_test` to verify job lifecycle on a local Kind cluster.
    - Updated `local/tests/kubernetes_e2e_test.bash` to provision the test environment.
    - Updated CI workflow (`.github/workflows/kubernetes-e2e-tests.yaml`) to install JDK 21 (required for Datastore emulator).
    - Tests now verify job "Running" status to avoid timeouts with long-running commands.
    - `KubernetesService` skips default credential loading when `K8S_E2E` is set to utilize the test-provided kubeconfig.
- **Unit Tests**: Added comprehensive unit tests in `tests.core.k8s.k8s_service_test` and `tests.core.kubernetes.kubernetes_test`, including mocking of `load_kube_config` and `_load_gke_credentials` to ensure robust testing without external dependencies.

pipenv lock

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

install kubernetes

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

Update dependencies and fix linting

move use_batch

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

add todo

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

Pr/metrics logging (#5115)

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

fixes

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

fix lint

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

mock gcloud auth default

Signed-off-by: Javan Lacerda <javanlacerda@google.com>
javanlacerda added a commit that referenced this pull request Jan 9, 2026
This commit introduces the Kubernetes job client and service, providing a mechanism to schedule tasks on Kubernetes clusters (including GKE and Kind), supporting both standard and Kata Containers.

Key Features & Changes:
- **Kubernetes Service**: Implemented `KubernetesService` in `clusterfuzz._internal.k8s.service` to manage job creation.
- **Kata Support**: Added specialized job creation for Kata Containers (`create_kata_container_job`) with required security context (`privileged`, `capabilities: ALL`), networking (`hostNetwork: True`), and environment variables (`HOST_UID`).
- **Dependency Management**: Added `kubernetes` and necessary Google Cloud dependencies (`google-api-python-client`, `google-cloud-storage`, `google-cloud-ndb`, etc.) to `Pipfile`.
- **E2E Testing**:
    - Created `tests.core.k8s.k8s_service_e2e_test` to verify job lifecycle on a local Kind cluster.
    - Updated `local/tests/kubernetes_e2e_test.bash` to provision the test environment.
    - Updated CI workflow (`.github/workflows/kubernetes-e2e-tests.yaml`) to install JDK 21 (required for Datastore emulator).
    - Tests now verify job "Running" status to avoid timeouts with long-running commands.
    - `KubernetesService` skips default credential loading when `K8S_E2E` is set to utilize the test-provided kubeconfig.
- **Unit Tests**: Added comprehensive unit tests in `tests.core.k8s.k8s_service_test` and `tests.core.kubernetes.kubernetes_test`, including mocking of `load_kube_config` and `_load_gke_credentials` to ensure robust testing without external dependencies.

pipenv lock

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

install kubernetes

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

Update dependencies and fix linting

move use_batch

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

add todo

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

Pr/metrics logging (#5115)

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

fixes

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

fix lint

Signed-off-by: Javan Lacerda <javanlacerda@google.com>

mock gcloud auth default

Signed-off-by: Javan Lacerda <javanlacerda@google.com>
javanlacerda added a commit that referenced this pull request Jan 9, 2026
Signed-off-by: Javan Lacerda <javanlacerda@google.com>
javanlacerda added a commit that referenced this pull request Jan 15, 2026
Signed-off-by: Javan Lacerda <javanlacerda@google.com>
javanlacerda added a commit that referenced this pull request Jan 16, 2026
Signed-off-by: Javan Lacerda <javanlacerda@google.com>
javanlacerda added a commit that referenced this pull request Jan 21, 2026
Signed-off-by: Javan Lacerda <javanlacerda@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant