Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SPLAT-1291: platform external documentation #16

Merged
merged 5 commits into from
Dec 7, 2023

Conversation

mtulio
Copy link
Contributor

@mtulio mtulio commented May 22, 2023

Creating Platform External documentation.

Steps:

  • Scaffolding site to support platform external
  • initial review before developing the content

Suggested next steps:

  • develop content: Platform External Overview
  • develop content: Platform External installing (generic)
  • develop content: Platform External use case - Installing Platform External on OCI using CCM

References:

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label May 22, 2023
@openshift-ci-robot
Copy link

openshift-ci-robot commented May 22, 2023

@mtulio: This pull request references OCPCLOUD-1581 which is a valid jira issue.

In response to this:

Creating Platform External documentation.

Steps:

  • Scaffolding site to support platform external
  • initial review before developing the content

Suggested next steps:

  • develop content: Platform External Overview
  • develop content: Platform External installing (generic)
  • develop content: Platform External use case - Installing Platform External UPI on OCI with CCM and CSI
  • develop content: Platform External use case - Installing Platform External Assisted on OCI with CCM and CSI

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/test-infra repository.

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label May 22, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented May 22, 2023

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci-robot
Copy link

openshift-ci-robot commented May 22, 2023

@mtulio: This pull request references OCPCLOUD-1581 which is a valid jira issue.

In response to this:

Creating Platform External documentation.

Steps:

  • Scaffolding site to support platform external
  • initial review before developing the content

Suggested next steps:

  • develop content: Platform External Overview
  • develop content: Platform External installing (generic)
  • develop content: Platform External use case - Installing Platform External UPI on OCI with CCM and CSI
  • develop content: Platform External use case - Installing Platform External Assisted on OCI with CCM and CSI

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/test-infra repository.

@mtulio mtulio changed the title OCPCLOUD-1581: scaffolding platform external docs OCPCLOUD-1581: platform external documentation May 22, 2023
@elmiko
Copy link
Contributor

elmiko commented May 22, 2023

i like how you are separating the two integration paths.

@mtulio
Copy link
Contributor Author

mtulio commented May 22, 2023

i like how you are separating the two integration paths.

Cool! I wasn't sure the best name for those paths, but let's developing the content and check the best fit.

Considering AI requires the same prerequisites as UPI, I also thinking to merge both Use cases (UPI + AI), splitting it into sections of the same doc

@openshift-ci-robot
Copy link

openshift-ci-robot commented May 22, 2023

@mtulio: This pull request references OCPCLOUD-1581 which is a valid jira issue.

In response to this:

Creating Platform External documentation.

Steps:

  • Scaffolding site to support platform external
  • initial review before developing the content

Suggested next steps:

  • develop content: Platform External Overview
  • develop content: Platform External installing (generic)
  • develop content: Platform External use case - Installing Platform External UPI on OCI with CCM and CSI
  • develop content: Platform External use case - Installing Platform External Assisted on OCI with CCM and CSI

References:

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/test-infra repository.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Jun 7, 2023

@mtulio: This pull request references OCPCLOUD-1581 which is a valid jira issue.

In response to this:

Creating Platform External documentation.

Steps:

  • Scaffolding site to support platform external
  • initial review before developing the content

Suggested next steps:

  • develop content: Platform External Overview
  • develop content: Platform External installing (generic)
  • develop content: Platform External use case - Installing Platform External UPI on OCI with CCM and CSI
  • develop content: Platform External use case - Installing Platform External Assisted on OCI with CCM and CSI

References:

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/test-infra repository.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Jun 7, 2023

@mtulio: This pull request references OCPCLOUD-1581 which is a valid jira issue.

In response to this:

Creating Platform External documentation.

Steps:

  • Scaffolding site to support platform external
  • initial review before developing the content

Suggested next steps:

  • develop content: Platform External Overview
  • develop content: Platform External installing (generic)
  • develop content: Platform External use case - Installing Platform External UPI on OCI with CCM and CSI
  • develop content: Platform External use case - Installing Platform External Assisted on OCI with CCM and CSI

References:

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/test-infra repository.

@mtulio
Copy link
Contributor Author

mtulio commented Jun 7, 2023

The general steps to install a cluster using Platform External, providing examples of customizations, have been added (docs/platform-external/installing.md).

I will develop the Use Case using OCI asap.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Jun 7, 2023

@mtulio: This pull request references OCPCLOUD-1581 which is a valid jira issue.

In response to this:

Creating Platform External documentation.

Steps:

  • Scaffolding site to support platform external
  • initial review before developing the content

Suggested next steps:

  • develop content: Platform External Overview
  • develop content: Platform External installing (generic)
  • develop content: Platform External use case - Installing Platform External UPI on OCI with CCM and CSI
  • (TBD) develop content: Platform External use case - Installing Platform External Assisted on OCI with CCM and CSI

References:

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/test-infra repository.

docs/platform-external/installing.md Outdated Show resolved Hide resolved
docs/platform-external/installing.md Outdated Show resolved Hide resolved
@openshift-ci-robot
Copy link

openshift-ci-robot commented Jun 12, 2023

@mtulio: This pull request references OCPCLOUD-1581 which is a valid jira issue.

In response to this:

Creating Platform External documentation.

Steps:

  • Scaffolding site to support platform external
  • initial review before developing the content

Suggested next steps:

  • develop content: Platform External Overview
  • develop content: Platform External installing (generic)
  • develop content: Platform External use case - Installing Platform External UPI on OCI with CCM and CSI

References:

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/test-infra repository.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Jun 12, 2023

@mtulio: This pull request references OCPCLOUD-1581 which is a valid jira issue.

In response to this:

Creating Platform External documentation.

Steps:

  • Scaffolding site to support platform external
  • initial review before developing the content

Suggested next steps:

  • develop content: Platform External Overview
  • develop content: Platform External installing (generic)
  • develop content: Platform External use case - Installing Platform External UPI on OCI with CCM and CSI

References:

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/test-infra repository.

# - specify a command to startup the CCM in your container
# - define and mount extra volumes if needed
# This example defines the CCM as a Deployment, but a DaemonSet is also possible as long as Pod's template is defined in the same way.
kind: Deployment

Choose a reason for hiding this comment

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

Suggested change
kind: Deployment
---
apiVersion: v1
kind: Namespace
metadata:
name: {{ cloud provider name }}-cloud-controller-manager
annotations:
workload.openshift.io/allowed: management
labels:
"pod-security.kubernetes.io/enforce": "privileged"
"pod-security.kubernetes.io/audit": "privileged"
"pod-security.kubernetes.io/warn": "privileged"
"security.openshift.io/scc.podSecurityLabelSync": "false"
"openshift.io/run-level": "0"
"pod-security.kubernetes.io/enforce-version": "v1.24"
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: cloud-controller-manager
namespace: {{ cloud provider name }}-cloud-controller-manager
---
kind: Deployment

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hey @adriengentil , thanks for updating the template. I think we need to make sure we want to run the CCM "as root" (privileged) when defining those PSA labels for Namespace, or if we can improve those permissions.

@elmiko @rvanderp3 do you know the permissions added to CCM's controllers/workloads when PSA was introduced? (IIRC 4.13+)

Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@elmiko No, it is about the labels added in the Namespace manifest (first comment in this thread), also the Google Docs thread about encouraging using a dedicated namespace (out of kube-* or openshift-*).

In our tests (namespace labels above) we are enforcing running the CCM as privileged. My big question is: should we invest to refine those rules, or use the same we are using in integrated providers?

Copy link
Contributor

Choose a reason for hiding this comment

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

My big question is: should we invest to refine those rules, or use the same we are using in integrated providers?

i think we should start with what we already use for the integrated providers, and then refine them over time. unless you have some ideas about how we should restrict them now. my concern here is that we will spend a lot of time understanding the refinements when there might be other areas that need attention.

docs/platform-external/installing.md Show resolved Hide resolved
metadata:
name: oci-cloud-controller-manager
namespace: $OCI_CCM_NAMESPACE
data:

Choose a reason for hiding this comment

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

nit: I discovered stringData: https://kubernetes.io/docs/concepts/configuration/secret/#restriction-names-data
so no need to convert the string into base 64

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good point, thanks! I need to run an e2e to make sure I will not have any formatting issues.

- name: trusted-ca
mountPath: /etc/pki/ca-trust/extracted/pem
readOnly: true
env:

Choose a reason for hiding this comment

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

it should be temporary, but for consistency, should we align with the template and source /etc/kubernetes/apiserver-url.env instead of setting the environment?

Copy link
Contributor Author

@mtulio mtulio Jun 29, 2023

Choose a reason for hiding this comment

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

yeah, we should use that env file. I was thinking about how to do it (load) in the kubernetes object, instead of changing their cmd statement - let's say for example that the bash is not available in the image.

Copy link
Contributor

@elmiko elmiko left a comment

Choose a reason for hiding this comment

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

overall this is going in a good direction @mtulio , i do think we need to be more consistent about how we talk about "Platform External".

i think that unless we are talking about using the exact value External, we should avoid using the block quotes.

in other cases we should say Platform External, or the External platform type, to help differentiate when we are talking about this type as opposed to the direct value.

i left some minor nits in the comments.

edit: fwiw, i'm reaching out to some docs folks to ask about guidance on the whole "Platform External" usage

docs/index.md Outdated Show resolved Hide resolved
docs/index.md Outdated Show resolved Hide resolved
docs/index.md Outdated Show resolved Hide resolved
docs/platform-external/index.md Outdated Show resolved Hide resolved
docs/platform-external/index.md Outdated Show resolved Hide resolved
# - specify a command to startup the CCM in your container
# - define and mount extra volumes if needed
# This example defines the CCM as a Deployment, but a DaemonSet is also possible as long as Pod's template is defined in the same way.
kind: Deployment
Copy link
Contributor

Choose a reason for hiding this comment

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

```


#### Create custom manifests for Kubelet
Copy link
Contributor

Choose a reason for hiding this comment

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

will we need these instructions with the external changes we are landing in 4.14?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, these are instructions to provide the ProviderID through MachineConfig, I think it is not part of the code changes but for the installation setup. Am I correct?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I mean, it is cloud-specific and the provider must tell how the kubelet will find/populate/discover the Provider ID by node.
Let me know if you have any other thoughts/alternatives/advice on that, this is how we are doing so far in OCI :)
cc @rvanderp3 for awareness and suggestions in VMware world

docs/platform-external/installing.md Outdated Show resolved Hide resolved
@elmiko
Copy link
Contributor

elmiko commented Jun 26, 2023

talked with @jeana-redhat about the usage of "External", i think we should reserve External for when we are talking about the literal value and then use "external platform type" or "platform external" (no quotes) when talking about it in other places.

@mtulio
Copy link
Contributor Author

mtulio commented Jun 26, 2023

talked with @jeana-redhat about the usage of "External", i think we should reserve External for when we are talking about the literal value and then use "external platform type" or "platform external" (no quotes) when talking about it in other places.

that's excellent input. Thanks for sharing it. I will address your feedback considering those suggestions.

Copy link
Contributor Author

@mtulio mtulio left a comment

Choose a reason for hiding this comment

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

reminder


Table of Contents

- [Prerequisites]()
Copy link
Contributor Author

Choose a reason for hiding this comment

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

it is missing the links to the sections. I will do it in the next review round.

@@ -0,0 +1,11 @@
# Run conformance tests in custom OpenShift installations
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I am not sure yet the level of tests we'll describe here for platform-external

Copy link
Contributor

@elmiko elmiko left a comment

Choose a reason for hiding this comment

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

in general this is looking really good @mtulio , most of my suggestions are about minor grammar changes. we also need to pass through this to make the capitalization more consistent.

docs/index.md Outdated Show resolved Hide resolved
Comment on lines 4 to 5
Kubernetes components in OpenShift/OKD without the need to modify any core payload
and without the need for direct involvement of OpenShift engineering.
Copy link
Contributor

Choose a reason for hiding this comment

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

maybe we should say "Red Hat engineering" ?

Comment on lines +20 to +22
The external platform in OpenShift sets the `--cloud-provider` flag to `external` on Kubernetes components
(Kubelet and Kube Controller Manager) to signalize the use of external cloud providers,
allowing partners to extend providers' components like Cloud Controller Manager to the OpenShift platform.
Copy link
Contributor

Choose a reason for hiding this comment

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

we probably should update this paragraph to make it clear that users can choose to enable or disable the use of ccms

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@elmiko ACK. What is your suggestion? iirc the optional path will be available only in 4.15, right? Should I say in 4.14 they need to provide a CCM and 4.15 it will be optional, with the default as "similar none"?

Copy link
Contributor

Choose a reason for hiding this comment

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

yeah, i think that makes sense. let users know that in 4.14 it is set to external , but in 4.15 it can set or unset.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added an "admonition" block explaining it.


This work is divided into phases, the initial version is available on OCP 4.14+ which allows
providers to install OpenShift cluster supplying the cloud provider's Cloud Controller
Manager (CCM) when the cluster is initialized.
Copy link
Contributor

Choose a reason for hiding this comment

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

we can probably drop this paragraph, unless we want to talk more about our roadmap.

docs/platform-external/installing.md Outdated Show resolved Hide resolved
--instance-details file://instance-config-details-controlplanes.json
```

- Creating the Instance Pool:
Copy link
Contributor

Choose a reason for hiding this comment

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

i don't think we need to capitalize "Instance Pool"


#### Compute/workers

- Creating the Instance Configuration
Copy link
Contributor

Choose a reason for hiding this comment

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

probably don't need to capitalize "Instance Configuration"

--instance-details file://instance-config-details-compute.json
```

- Creating the Instance Pool
Copy link
Contributor

Choose a reason for hiding this comment

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

similar here with "Instance Pool"


#### Approve certificates for worker nodes

Once the instances are created by the provider and ignitions loaded, the certification signing requests (CSR's) must be created by kubelet awaiting to be approved - in pending condition.
Copy link
Contributor

Choose a reason for hiding this comment

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

this part is a little confusing to me

the certification signing requests (CSR's) must be created by kubelet awaiting to be approved - in pending condition.

it sounds like the user needs to create the requests in pending state, but i thought the kubelet creates the requests?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

it is, it wasn't well stated. I replaced to a fragment from our docs/UPI part.


#### Wait for Bootstrap complete

Check if you can remove the bootstrap instance when the Control Plane
Copy link
Contributor

Choose a reason for hiding this comment

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

no need to capitalize "Control Plane"

Copy link
Contributor Author

@mtulio mtulio left a comment

Choose a reason for hiding this comment

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

Hey @elmiko! Thanks for your review. All the points should be already addressed.
I will take a new look tomorrow if I didn't miss anything, but it is ready for review.

Thanks! o/

Comment on lines +20 to +22
The external platform in OpenShift sets the `--cloud-provider` flag to `external` on Kubernetes components
(Kubelet and Kube Controller Manager) to signalize the use of external cloud providers,
allowing partners to extend providers' components like Cloud Controller Manager to the OpenShift platform.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@elmiko ACK. What is your suggestion? iirc the optional path will be available only in 4.15, right? Should I say in 4.14 they need to provide a CCM and 4.15 it will be optional, with the default as "similar none"?

method from the official documentation ["Installing a cluster on any platform"](https://docs.openshift.com/container-platform/4.13/installing/installing_platform_agnostic/installing-platform-agnostic.html).

This method is a fully customized automation, allowing the user to deploy
a cluster to use any automation they want, including provider's specific,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

rewrote to:

This method is a fully customized automation, allowing the user to deploy
a cluster to use any automation they want, including provider's specific like network components,
required to deploy an OpenShift cluster.

lmk wdyt

~~~

You must upload the downloaded image to your cloud provider image service and
use it when creating virtual machines.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@elmiko imo we can skip this for now, it's not a regular task in AWS, and I am taking some time to set the parameters to do it when importing an RHCOS OVA image, as coreos seems not to be natively supported[1] without adding extra parameters[2]. As we are already sharing how to do it in OCI, maybe we can skip this generic guide.

[1] https://docs.aws.amazon.com/vm-import/latest/userguide/prerequisites.html#vmimport-image-formats

[2] error when importing OVA

$ aws ec2 describe-import-image-tasks --region us-west-2
{
    "ImportImageTasks": [
        {
            "ImportTaskId": "import-ami-0871372c3894f0971",
            "SnapshotDetails": [
                {
                    "DeviceName": "/dev/sde",
                    "DiskImageSize": 1241901056.0,
                    "Format": "VMDK",
                    "Status": "completed",
                    "UserBucket": {
                        "S3Bucket": "openshift-images",
                        "S3Key": "rhcos-414.92.202309201615-0-vmware.x86_64.ova"
                    }
                }
            ],
            "Status": "deleted",
            "StatusMessage": "ClientError: Unknown OS / Missing OS files.",
            "Tags": []
        }
    ]
}

The following section is a draft I wrote that can be revisited in the future.


Example importing image to AWS

As a example in AWS, you can import the OVA image as AMI with the following steps:

Prerequisites:

  • Create the service role vmimport to Import/Export the VM using CLI. See the document as reference.

Steps:

  • Download OVA image:
# Get image URL
IMAGE_URL=$(./openshift-install coreos print-stream-json | jq -r '.architectures["x86_64"].artifacts["vmware"].formats["ova"].disk.location')

# Download the OVA
wget $IMAGE_URL

# Set the name
IMAGE_NAME=$(basename $IMAGE_URL)
  • Import to a S3 Bucket:
aws s3 cp "${IMAGE_NAME}" s3://openshift-images/"${IMAGE_NAME}"
  • Import the image:
aws ec2 import-image --region us-west-2 \
  --disk-containers Format=ova,UserBucket="{S3Bucket=openshift-images,S3Key=${IMAGE_NAME}}"

aws describe-image --region us-west-2  --image-name ${IMAGE_NAME}

The agnostic installation used by the platform external does not require any identity,
although the provider's components may require identity to communicate with the cloud APIs.
OpenShift prioritizes, and recommends, the least privileges and password-less authentication
method, or short-lived tokens, when providing credentials to components.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@elmiko As a generic guide I didn't add much here. With your suggestion, I am adding this statement:
"You might need to create any credentials, secrets and/or configmap manifest according to the cloud provider components' documentation, like Cloud Controller Manager."

I would keep specific guidance to the components's documentation, or expand the "Create manifests" subsection, more specifically Create custom manifests for CCM.


### Load Balancers

The ["Load balancing requirements for user-provisioned infrastructure"](https://docs.openshift.com/container-platform/4.13/installing/installing_platform_agnostic/installing-platform-agnostic.html#installation-load-balancing-user-infra_installing-platform-agnostic).
Copy link
Contributor Author

Choose a reason for hiding this comment

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

yeah xD fixed, thanks!

created replacing it with a remote URL fetching from the temporary Bucket Object URL.

Once the bootstrap instance is created, it must be attached to the Load Balancer in the
Backends for Kubernetes API Server and Machine Config Server.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The correct term is Backend Sets, the official name of OCI: https://docs.oracle.com/en-us/iaas/Content/NetworkLoadBalancer/BackendSets/backend-set-management.htm

I replaced the "Backends for ..." with "Backend Sets of ...". let me known wdyt.

The ignition URL for the Bootstrap node must be available in the `$IGN_BOOTSTRAP_URL`.

!!! warning "Attention"
The bucket Object URL will expire in one hour if you are planning to create
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I adjusted it. non-capitalize must fit better in this case. thanks

!!! tip "Helper - OCI CLI documentation"
- [`oci nlb backend-set update`](https://docs.oracle.com/en-us/iaas/tools/oci-cli/3.29.1/oci_cli_docs/cmdref/nlb/backend-set/update.html)

- Add the bootstrap to the Load Balancer's backend set MCS[Machine Config Server]:
Copy link
Contributor Author

Choose a reason for hiding this comment

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

added MCS, I mentioned it earlier. Thanks

#### Control Plane

Three control plane instances will be created. The instances is created using
Compute Pool, which will automatically inherit the same configuration and add
Copy link
Contributor Author

Choose a reason for hiding this comment

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


#### Approve certificates for worker nodes

Once the instances are created by the provider and ignitions loaded, the certification signing requests (CSR's) must be created by kubelet awaiting to be approved - in pending condition.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

it is, it wasn't well stated. I replaced to a fragment from our docs/UPI part.

@elmiko
Copy link
Contributor

elmiko commented Nov 27, 2023

@mtulio gave another read through today, how do you feel about merging?

@elmiko
Copy link
Contributor

elmiko commented Nov 28, 2023

talked with Marco about this today, it sounds like we just need to make sure we are happy with the oci instructions and then we can consider merging.

@mtulio
Copy link
Contributor Author

mtulio commented Dec 5, 2023

@mtulio gave another read through today, how do you feel about merging?

talked with Marco about this today, it sounds like we just need to make sure we are happy with the oci instructions and then we can consider merging.

Hey @elmiko thanks for the feedback and sync. The plan is:

  • remove the OCI instructions from this PR
  • reorder the instructions in the generic guide focusing in 3 stages with clearly defined the stakeholders/owners for each one.
  • open a new PR with OCI or AWS instructions, which is better and exercised in CI

Working on it now, then we are ready to merge.

adding platform external documentation

adding instructions for OCI CCM

external/use-case oci: adding infra patch steps

Update docs/platform-external/installing.md

Co-authored-by: Adrien Gentil <adrien.gentil@free.fr>

Update docs/platform-external/installing.md (rbac)

Co-authored-by: Adrien Gentil <adrien.gentil@free.fr>

Update docs/platform-external/installing.md (nit)

adding create nodes steps reviewing formatting

plat-external/oci-guide: update provisioning steps

Addressing content review for Platform External

Addressing review for generic installing document

fixes/external-use-case-oci: 4.14-4c4 deployment with CCM

Create/delete reviewed with tagging namespace to restrict cloud api

OCI/use case: adding VCN and dependencies

external/oci: provision and deprovision steps are created/validated

external/review: typo

review: removing account setup in generic guide

review: removing afterburn in the unit for kubelet providerID

review: improving bootstrap node intro

PR full review - addressing feedback and missing test parts
@mtulio
Copy link
Contributor Author

mtulio commented Dec 6, 2023

@mtulio gave another read through today, how do you feel about merging?

talked with Marco about this today, it sounds like we just need to make sure we are happy with the oci instructions and then we can consider merging.

Hey @elmiko thanks for the feedback and sync. The plan is:

  • remove the OCI instructions from this PR
  • reorder the instructions in the generic guide focusing in 3 stages with clearly defined the stakeholders/owners for each one.
  • open a new PR with OCI or AWS instructions, which is better and exercised in CI

Working on it now, then we are ready to merge.

Hi @elmiko - just let you know I just applied all the planned work for this PR. It is ready now.

Copy link
Contributor

@elmiko elmiko left a comment

Choose a reason for hiding this comment

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

this is looking really good @mtulio ! i left a few comments of minor cleanups, but after that i'm good to merge this.

docs/platform-external/e2e-testing.md Outdated Show resolved Hide resolved
docs/platform-external/e2e-testing.md Outdated Show resolved Hide resolved
docs/platform-external/e2e-testing.md Outdated Show resolved Hide resolved
docs/platform-external/e2e-testing.md Show resolved Hide resolved
Comment on lines +20 to +22
The external platform in OpenShift sets the `--cloud-provider` flag to `external` on Kubernetes components
(Kubelet and Kube Controller Manager) to signalize the use of external cloud providers,
allowing partners to extend providers' components like Cloud Controller Manager to the OpenShift platform.
Copy link
Contributor

Choose a reason for hiding this comment

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

yeah, i think that makes sense. let users know that in 4.14 it is set to external , but in 4.15 it can set or unset.

docs/platform-external/installing.md Outdated Show resolved Hide resolved
docs/platform-external/installing.md Outdated Show resolved Hide resolved
docs/platform-external/installing.md Show resolved Hide resolved
docs/platform-external/installing.md Outdated Show resolved Hide resolved
docs/platform-external/installing.md Outdated Show resolved Hide resolved
@mtulio
Copy link
Contributor Author

mtulio commented Dec 7, 2023

this is looking really good @mtulio ! i left a few comments of minor cleanups, but after that i'm good to merge this.

Thanks @elmiko, content reviewed.

Copy link
Contributor

openshift-ci bot commented Dec 7, 2023

@mtulio: all tests passed!

Full PR test history. Your PR dashboard.

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/test-infra repository. I understand the commands that are listed here.

@mtulio mtulio changed the title OCPCLOUD-1581: platform external documentation SPLAT-1291: platform external documentation Dec 7, 2023
@openshift-ci-robot
Copy link

openshift-ci-robot commented Dec 7, 2023

@mtulio: This pull request references SPLAT-1291 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the epic to target the "4.15.0" version, but no target version was set.

In response to this:

Creating Platform External documentation.

Steps:

  • Scaffolding site to support platform external
  • initial review before developing the content

Suggested next steps:

  • develop content: Platform External Overview
  • develop content: Platform External installing (generic)
  • develop content: Platform External use case - Installing Platform External on OCI using CCM

References:

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/test-infra repository.

Copy link
Contributor

@elmiko elmiko left a comment

Choose a reason for hiding this comment

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

updates look great, thanks @mtulio

/approve
/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Dec 7, 2023
Copy link
Contributor

openshift-ci bot commented Dec 7, 2023

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: elmiko, mtulio

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

The pull request process is described here

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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Dec 7, 2023
@mtulio
Copy link
Contributor Author

mtulio commented Dec 7, 2023

updates look great, thanks @mtulio

/approve /lgtm

Thanks for your feedback, @elmiko !
/hold cancel

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Dec 7, 2023
@openshift-merge-bot openshift-merge-bot bot merged commit 8de4218 into openshift:main Dec 7, 2023
2 checks passed
@mtulio mtulio deleted the platform-external branch December 7, 2023 19:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants