Skip to content

Conversation

@alicefr
Copy link
Contributor

@alicefr alicefr commented Jan 15, 2026

No description provided.

@openshift-ci
Copy link

openshift-ci bot commented Jan 15, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: alicefr

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Contributor

@Jakob-Naucke Jakob-Naucke left a comment

Choose a reason for hiding this comment

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

Thank you for the write-up. A couple of comments.


## Key Components

The operator consists of several interconnected components:
Copy link
Contributor

Choose a reason for hiding this comment

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

Should these be grouped by pod?


## Architecture Components

### 1. Registration Server Deployment
Copy link
Contributor

Choose a reason for hiding this comment

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

1. but no 2.. IMO you can just drop the number.


#### Secret Provisioning Process

- Creates Kubernetes owner reference linking the secret to the Machine object
Copy link
Contributor

Choose a reason for hiding this comment

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

Could mention the endpoint here too like you do for AK reg further below. I think it makes it clearer what happens technically.

**During First Boot (handled by Ignition)**
1. Ignition checks if `/var/tpm/ak.pub` exists
2. If not present, generates a new AK in the TPM
3. Contacts the operator's AK registration endpoint (e.g., `https://register-server:8000/register-ak`)
Copy link
Contributor

Choose a reason for hiding this comment

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

In this example, maybe pick a domain that makes it clear it's AK registration, not key registration. Also the port is usually 8001 I think?

3. Contacts the operator's AK registration endpoint (e.g., `https://register-server:8000/register-ak`)
4. Submits the AK public key in PEM format along with platform information

**Operator Processing (in `operator/src/attestation_key_register.rs`)**
Copy link
Contributor

Choose a reason for hiding this comment

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

Please be consistent in mentioning the file for all parts (no strong preference between always/never)


**Operator Processing (in `operator/src/attestation_key_register.rs`)**
1. **AK Registration Service**: Receives and stores the AK public key
2. **Machine Matching**: Associates the AK with the corresponding Machine object based on registration correlation. If no machine machine exist, the AK isn't approved
Copy link
Contributor

Choose a reason for hiding this comment

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

nit

Suggested change
2. **Machine Matching**: Associates the AK with the corresponding Machine object based on registration correlation. If no machine machine exist, the AK isn't approved
2. **Machine Matching**: Associates the AK with the corresponding Machine object based on registration correlation. If no Machine exists, the AK isn't approved

- The Trustee deployment is updated with the new AK secret
- Triggers a pod restart to load the new attestation key
- After restart, Trustee can verify attestation reports signed by the registered AK
- At machine deletion, the AK is also garbage collected and removed from the trustee deployment.
Copy link
Contributor

Choose a reason for hiding this comment

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

nit

Suggested change
- At machine deletion, the AK is also garbage collected and removed from the trustee deployment.
- At machine deletion, the AK is also garbage collected and removed from the Trustee deployment.

@yalzhang
Copy link
Contributor

/test operator-lifecycle-verify

@openshift-ci
Copy link

openshift-ci bot commented Jan 18, 2026

@alicefr: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/infra-provision-verify 2cb48a4 link true /test infra-provision-verify
ci/prow/operator-lifecycle-verify 2cb48a4 link true /test operator-lifecycle-verify

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@yalzhang
Copy link
Contributor

yalzhang commented Jan 18, 2026

@alicefr: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Please ignore the test-related messages. I had planned to test concurrent runs, but I forgot that the fix hasn’t been merged yet. The latest fix now skips tests for documentation changes.

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.

3 participants