Skip to content

MLE-27886: Merge back to develop after Operator 1.3.0 Release - #186

Merged
pengzhouml merged 14 commits into
developfrom
main
Jul 15, 2026
Merged

pengzhouml merged 14 commits into
developfrom
main

Conversation

@pengzhouml

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR merges Operator 1.3.0 release changes back to develop, updating chart/app versions and test/CI automation, and enhancing operator/client functionality (notably digest auth + dynamic-host support).

Changes:

  • Added an upgrade-focused e2e test runner and wired “upgrade mode” through Makefile/Jenkinsfile, including reuse of existing operator installs for follow-on suites.
  • Updated default MarkLogic image versions and Helm chart version/appVersion to 1.3.0.
  • Improved management client behavior (digest auth SHA-256 support; stricter error propagation) and expanded CRD schemas/templates (securityContext/podSecurityContext additions).

Reviewed changes

Copilot reviewed 46 out of 48 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
test/upgrade_e2e_test.go New upgrade validation runner for cluster- and namespace-scope upgrade scenarios plus cleanup.
test/e2e/main_test.go Adds configurable operator namespace and “reuse existing operator” mode for e2e suite.
test/e2e/8_metrics_test.go Makes metrics test discover the operator ServiceAccount from the deployment spec.
test/e2e/10_dynamic_host_test.go Updates default MarkLogic image used in dynamic-host tests.
test/e2e/1_operator_ready_test.go Copyright year bump.
test/e2e-helm/main_test.go Adds env-configurable operator namespace/release/watch list and reuse-existing-operator mode.
README.md Updates Helm install examples to --version=1.3.0.
pkg/mlmanage/client.go Digest auth improvements (SHA-256 support) + better body-close/error handling.
pkg/mlmanage/client_test.go Adds test coverage for SHA-256 / SHA-256-SESS digest auth and unsupported algorithms.
pkg/k8sutil/service.go Copyright year bump.
pkg/k8sutil/secret.go Reuses a shared suffix constant for dynamic credential secret name and username.
pkg/k8sutil/scripts/prestop-hook.sh Copyright year bump.
pkg/k8sutil/scripts/copy-certs.sh Copyright year bump.
pkg/k8sutil/haProxyHelper.go Copyright year bump.
pkg/k8sutil/haProxy.go Copyright year bump.
pkg/k8sutil/handler.go Copyright year bump.
pkg/k8sutil/dynamic_reconcile.go Replaces FNV hash with SHA-256-derived suffix; refactors candidate handling.
pkg/k8sutil/context.go Copyright year bump.
pkg/k8sutil/common.go Copyright year bump.
Makefile Updates MarkLogic image, adds upgrade e2e targets/timeouts, changes docker-build behavior.
Jenkinsfile Adds E2E_INSTALL_MODE and routes Minikube runs through fresh vs upgrade flows.
internal/controller/suite_test.go Copyright year bump.
internal/controller/marklogicgroup_controller.go Copyright year bump.
internal/controller/marklogicgroup_controller_test.go Copyright bump + MarkLogic image update in tests.
internal/controller/marklogiccluster_controller_test.go Copyright year bump.
go.sum Dependency updates aligned with go.mod changes.
go.mod Updates Go version directive and bumps key test/deps (ginkgo/gomega/gjson/pprof), drops automaxprocs.
Dockerfile Updates builder image to match Go toolchain version.
config/samples/security-context-example.yaml Updates sample MarkLogic image.
config/samples/quick-start.yaml Updates sample MarkLogic image and changes persistence.enabled default.
config/samples/minimal-production.yaml Updates sample MarkLogic image.
config/samples/dynamic-host.yaml Adds a dynamic-host sample manifest.
config/samples/complete.yaml Updates sample MarkLogic images (cluster + group).
config/rbac/role_binding_namespaced.yaml Copyright year bump.
config/default/kustomization.yaml Removes commented webhook/cert-manager scaffold blocks.
config/crd/bases/marklogic.progress.com_marklogicgroups.yaml Updates CRD default image.
config/crd/bases/marklogic.progress.com_marklogicclusters.yaml Updates CRD default image.
charts/marklogic-operator-kubernetes/templates/marklogicgroup-crd.yaml Updates default image and extends schema (securityContext).
charts/marklogic-operator-kubernetes/templates/marklogiccluster-crd.yaml Updates default image and extends schema (podSecurityContext/securityContext).
charts/marklogic-operator-kubernetes/templates/manager-rbac.yaml Refactors RBAC rules (PVC + events split/ordering).
charts/marklogic-operator-kubernetes/Chart.yaml Bumps chart version/appVersion to 1.3.0.
api/v1/zz_generated.deepcopy.go Copyright year bump.
api/v1/marklogicgroup_types.go Updates kubebuilder default image annotation.
api/v1/marklogiccluster_types.go Updates kubebuilder default image annotation.
api/v1/common_types.go Copyright year bump.
.github/workflows/asana-release-trigger.yaml Adds branch-create-driven Asana checklist automation.
.github/workflows/asana-release-merged.yaml Adds PR-merge-to-main-driven Asana checklist automation.
.github/scripts/asana_release_bot.py New Asana helper script for checking subtasks and leaving audit comments.
Files not reviewed (1)
  • api/v1/zz_generated.deepcopy.go: Generated file
Comments suppressed due to low confidence (1)

test/e2e-helm/main_test.go:332

  • The #nosec rationale is now incorrect: helmRelease and helmNS are vars derived from environment variables, not package constants. Update the suppression comment to accurately describe why this exec.Command usage is acceptable.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/e2e/main_test.go
Comment on lines 500 to +506
envfuncs.DeleteNamespace(namespace),
func(ctx context.Context, cfg *envconf.Config) (context.Context, error) {
if useExistingOperator {
return ctx, nil
}
return envfuncs.DeleteNamespace(operatorNamespace)(ctx, cfg)
},
Comment on lines +8 to +23
def get_task_gid_by_name(project_id, task_name, headers):
"""Searches a project for a specific task name and returns its GID."""
print(f"🔍 Searching project for main task: '{task_name}'...")
url = f"{BASE_URL}/projects/{project_id}/tasks"
params = {"opt_fields": "name,gid"}

response = requests.get(url, headers=headers, params=params)
response.raise_for_status()

for task in response.json().get("data", []):
if task.get("name") == task_name:
print(f"✅ Found main task: {task['name']} (GID: {task['gid']})")
return task["gid"]

print(f"❌ Error: Main task '{task_name}' not found.")
return None
Comment on lines +25 to +40
def get_subtask_gid_by_name(parent_task_id, subtask_name, headers):
"""Fetches all subtasks for a given task and returns the GID of the matching name."""
print(f"🔍 Searching for subtask: '{subtask_name}'...")
url = f"{BASE_URL}/tasks/{parent_task_id}/subtasks"
params = {"opt_fields": "name,gid"}

response = requests.get(url, headers=headers, params=params)
response.raise_for_status()

for subtask in response.json().get("data", []):
if subtask.get("name") == subtask_name:
print(f"✅ Found subtask: {subtask['name']} (GID: {subtask['gid']})")
return subtask["gid"]

print(f"❌ Error: Subtask '{subtask_name}' not found.")
return None
Comment on lines +3 to +6
on:
create:
# This ensures the workflow only triggers on branch creation, not tags

Comment thread Makefile
Comment on lines 562 to 568
# If you wish to build the manager image targeting other platforms you can use the --platform flag.
# (i.e. docker build --platform linux/arm64). However, you must enable docker buildKit for it.
# More info: https://docs.docker.com/develop/develop-images/build_enhancements/
.PHONY: docker-build
docker-build: ## Build docker image with the manager. to build for linux, add --platform="linux/amd64"
$(CONTAINER_TOOL) buildx build --load -t ${IMG} .
$(CONTAINER_TOOL) buildx build --platform="linux/amd64" --load -t ${IMG} .

@pengzhouml
pengzhouml merged commit 5bc5c56 into develop Jul 15, 2026
7 of 8 checks passed
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.

5 participants