Skip to content

Add webhook server readyz checker#1880

Merged
ulucinar merged 3 commits intocrossplane-contrib:mainfrom
ulucinar:ready-set-go
Oct 16, 2025
Merged

Add webhook server readyz checker#1880
ulucinar merged 3 commits intocrossplane-contrib:mainfrom
ulucinar:ready-set-go

Conversation

@ulucinar
Copy link
Copy Markdown
Collaborator

@ulucinar ulucinar commented Oct 10, 2025

Description of your changes

Related PRs: crossplane/uptest#49, crossplane/uptest#50, crossplane-contrib/provider-upjet-azure#1074

This PR adds a controller-manager Webhook server readiness checker so that the provider's conversion webhook will not be marked as ready before the webhook server is actually started. There's been community requests for a readiness check implementation for a while as the API clients (when implicitly calling the conversion webhooks) had no way of knowing when the conversion webhook server has successfully started. This also affects the robustness of uptest, which is also a client of the conversion webhook.

This PR also introduces a new provider command-line option named --health-probe-bind-addr so that the controller-manager health probe server's bind address can be customized. The default bind address is :8081.

In order to utilize the new readiness probe, one can specify a DeploymentRuntimeConfig which enables the readiness probe as follows:

apiVersion: pkg.crossplane.io/v1beta1
kind: DeploymentRuntimeConfig
metadata:
  name: config-aws
spec:
  deploymentTemplate:
    spec:
      selector: {}
      template:
        spec:
          containers:
          - name: package-runtime
            ports:
            - containerPort: 8081
              name: readyz
              protocol: TCP
            readinessProbe:
              httpGet:
                scheme: HTTP
                port: readyz
                path: /readyz

and install the Crossplane provider referring to this DeploymentRuntimeConfig.

This PR also switches from the monolithic provider to the config provider (provider-family-aws) in the local-deploy as we cannot run the monolith provider by installing all the CRDs. We will attempt to switch back to the monolith for better coverage when we start using Crossplane v2 and MR activations. The local-deploy job is currently broken although it does not report errors when run in the pipeline jobs due to the missing readiness probes in the main HEAD.

This PR also bumps the kind version to v0.30.0 and migrates an ENV command in the family Dockerfile to its new syntax.

I have:

  • Read and followed Crossplane's contribution process.
  • Run make reviewable to ensure this PR is ready for review.

How has this code been tested

Manually tested using make generate and make local-deploy.

@ulucinar
Copy link
Copy Markdown
Collaborator Author

/test-examples="examples/eks/cluster/v1beta1/cluster.yaml"

6 similar comments
@ulucinar
Copy link
Copy Markdown
Collaborator Author

/test-examples="examples/eks/cluster/v1beta1/cluster.yaml"

@ulucinar
Copy link
Copy Markdown
Collaborator Author

/test-examples="examples/eks/cluster/v1beta1/cluster.yaml"

@ulucinar
Copy link
Copy Markdown
Collaborator Author

/test-examples="examples/eks/cluster/v1beta1/cluster.yaml"

@ulucinar
Copy link
Copy Markdown
Collaborator Author

/test-examples="examples/eks/cluster/v1beta1/cluster.yaml"

@ulucinar
Copy link
Copy Markdown
Collaborator Author

/test-examples="examples/eks/cluster/v1beta1/cluster.yaml"

@ulucinar
Copy link
Copy Markdown
Collaborator Author

/test-examples="examples/eks/cluster/v1beta1/cluster.yaml"

- Add command-line option "--health-probe-bind-addr" to configure the bind address for
  provider's health probe server.
- Make use of the provider readiness probes in uptest by patching DeploymentRuntimeConfigs
  in local-deploy make target.
- Bump upjet to commit 0b7f640373c8.
- Switch from monolith package to config package in local-deploy make target.

Signed-off-by: Alper Rifat Ulucinar <ulucinar@users.noreply.github.com>
Signed-off-by: Alper Rifat Ulucinar <ulucinar@users.noreply.github.com>
Signed-off-by: Alper Rifat Ulucinar <ulucinar@users.noreply.github.com>
@ulucinar
Copy link
Copy Markdown
Collaborator Author

/test-examples="examples/eks/cluster/v1beta1/cluster.yaml"

Copy link
Copy Markdown
Collaborator

@sergenyalcin sergenyalcin left a comment

Choose a reason for hiding this comment

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

Thanks @ulucinar LGTM!

@ulucinar ulucinar merged commit a8ced66 into crossplane-contrib:main Oct 16, 2025
9 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.

2 participants