{"id":51116357,"url":"https://github.com/oracle-devrel/kubeflow-oke","last_synced_at":"2026-06-24T22:30:26.890Z","repository":{"id":58297176,"uuid":"529180791","full_name":"oracle-devrel/kubeflow-oke","owner":"oracle-devrel","description":"Kubeflow on OKE","archived":false,"fork":false,"pushed_at":"2025-01-21T20:33:08.000Z","size":3655,"stargazers_count":7,"open_issues_count":1,"forks_count":8,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-06-24T11:36:12.614Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"upl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oracle-devrel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-26T08:40:54.000Z","updated_at":"2025-02-11T08:22:32.000Z","dependencies_parsed_at":"2024-02-09T10:25:54.326Z","dependency_job_id":"14812c4f-ad33-4659-995d-7554acf5c5ab","html_url":"https://github.com/oracle-devrel/kubeflow-oke","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":"oracle-devrel/repo-template","purl":"pkg:github/oracle-devrel/kubeflow-oke","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-devrel%2Fkubeflow-oke","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-devrel%2Fkubeflow-oke/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-devrel%2Fkubeflow-oke/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-devrel%2Fkubeflow-oke/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oracle-devrel","download_url":"https://codeload.github.com/oracle-devrel/kubeflow-oke/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-devrel%2Fkubeflow-oke/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34752465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-24T22:30:23.302Z","updated_at":"2026-06-24T22:30:26.869Z","avatar_url":"https://github.com/oracle-devrel.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kubeflow on Oracle Container Engine for Kubernetes (OKE)\n\n[uri-Kubernetes]: https://Kubernetes.io/\n[uri-oci]: https://cloud.oracle.com/cloud-infrastructure\n[uri-oracle]: https://www.oracle.com\n\n[![License: UPL](https://img.shields.io/badge/license-UPL-green)](https://img.shields.io/badge/license-UPL-green) [![Quality gate](https://sonarcloud.io/api/project_badges/quality_gate?project=oracle-devrel_kubeflow-oke)](https://sonarcloud.io/dashboard?id=oracle-devrel_kubeflow-oke)\n\n## Introduction\n\nOracle Container Engine for Kubernetes (OKE) is the [Oracle][uri-oracle]-managed [Kubernetes][uri-Kubernetes] service on [Oracle Cloud Infrastructure (OCI)][uri-oci].\n\nIn this demo, we will show how to create a Kubernetes cluster, and install Kubeflow within it.\n\nKubeflow is an open-source platform for machine learning and MLOps on Kubernetes introduced by Google. The different stages in a typical machine learning lifecycle are represented with different software components in Kubeflow, including model development, model training, model serving, and automated machine learning.\n\nOnce we have Kubeflow installed, we'll use it to create a **Jupyter notebook environment** so you can have your own self-hosted Jupyter environment to run GPU and High-Performance Computing (HPC) workloads seamlessly.\n\nTo run our demo's workflow, we will use the [Cloud Shell](https://docs.oracle.com/en-us/iaas/Content/API/Concepts/devcloudshellintro.htm) built into the Oracle Cloud Console but can also be run from your local workstation.\n\n[You can watch the solution's video here.](https://youtu.be/Cc90XzwZ3fQ)\n\n## 0. Prerequisites \u0026 Docs\n\n### Prerequisites\n\n- An Oracle Cloud Infrastructure (OCI) Account\n- The tenancy shall have access to NVIDIA A10 Tensor Core GPU(s). Although it's not compulsory (you could run Kubeflow on CPU), launching this AI workload will work best with GPUs.\n\nThis guide can be run in many different ways, but in all cases, you will need to be signed into your Oracle Cloud Infrastructure tenancy.\n\n### Docs\n\n[Kubeflow](https://www.kubeflow.org/)\n[Cloud Shell](https://docs.oracle.com/en-us/iaas/Content/API/Concepts/devcloudshellintro.htm)\n\n## 1. Create an OKE cluster\n\n\n## Before getting Started\n\n\u003e ⚠️ Kubeflow 1.5.0 is not compatible with Kubernetes version 1.22 and onwards. To install Kubeflow 1.5.0 or older, set the Kubernetes version of your OKE cluster to v1.21.5.\n\nWe will install Kubeflow *1.8.1* on OKE using Kubernetes versions *1.29.1* and onwards running on Oracle Linux 8.\n\n### Recommendation\n\nSuppose you provision an OKE cluster manually or deploy with your own terraform. In that case, you must turn off the OKE in-transit encryption option and apply the cloud-init script to enable Istio.\n\n## Getting Started\n\nThis section describes how to:\n\n- Create a Kubernetes cluster using OKE and [The Terraform OKE Module](https://github.com/oracle-terraform-modules/terraform-oci-oke)\n- Accessing OKE\n- Installing Kubeflow and how to expose the Kubeflow Dashboard\n\n1. Launch an OCI Cloud Shell instance within your OCI tenancy. Once you're inside, let's clone this repository to get access to the resources available:\n\n    ```bash\n    git clone https://github.com/oracle-devrel/kubeflow-oke.git\n    ```\n2. To Create a Kubernetes cluster clone [The Terraform OKE Module](https://github.com/oracle-terraform-modules/terraform-oci-oke) repository to deploy OKE Cluster\n    ```bash\n    git clone https://github.com/oracle-terraform-modules/terraform-oci-oke.git\n    ```\n3. Obtain the OCIDs we will need for the next step:\n\n    ```bash\n    echo $OCI_TENANCY\n    echo $OCI_REGION\n    echo $OCI_COMPARTMENT\n    ```\n\n4. Edit the `kubeflow-oke/terraform.tfvars.example` file. We need to set 4 variables: the compartment and tenancy OCIDs, your home region (see [all region identifiers here](https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm)) and the region identifier where you want to deploy Kubeflow. From here, you can also review other settings, including security settings around control plane access, bastions and operators. If needed, change the Kubernetes version to match the version supported by the Kubeflow version you are installing. Consider the node pool setup and if you want to use the cluster autoscaler.\n\n    Review the number of nodes in each node pool, in this example we are using three node pools.\n\n    - **System** for running system processes, e.g. *Prometheus* server.\n    - **App** for running actual applications, e.g. the kubeflow runtime.\n    - **Processing** for executing your actual analysis in, if you want this to auto scale set `autoscale` to `True` and modify `max_node_pool_size` to meet your needs.\n\n5. Copy the `terraform.tfvars.example` as `terraform.tfvars` in terraform-oci-oke folder.\n6. Copy the `provider.tf` in terraform-oci-oke folder.\n\n    \u003c!-- - Replace the first provider region with the name of the region you want to create the OKE cluster in, replace the second provider region with the name of your home region (there are comments indicating which one to change to what). --\u003e\n\n7. If you aren't running this installation in your OCI Cloud Shell instance, you will need to configure  OCI's security credentials for Terraform. **From terraform-oci-oke folder** init Terraform:\n\n    ```bash\n    terraform init\n    ```\n\n8. Plan the deployment, and let's save the plan to a file:\n\n    ```bash\n    terraform plan --out=kubeflow.plan\n    ```\n\n9. Apply the deployment (run the script):\n\n    ```bash\n    terraform apply kubeflow.plan\n    ```\n\nNow you need to follow the OCI Kubernetes Environment instructions for getting your Kubernetes config information and adding it to your local kubeconfig.\n\n## 2. Access your OKE cluster\n\n1. Click Access Cluster on the `Cluster details` page:\n\n    ![cluster1](images/AccessCluster.png)\n\n2. You can either choose to run Kubernetes on the Cloud Shell (easiest) or on your own machine. It's recommended to use Cloud Shell, as otherwise you'd need to install OCI CLI and authenticate yourself. Accept the default Cloud Shell Access and click Copy to copy the `oci ce cluster create-kubeconfig ...` command.\n\n3. To access the cluster, paste the command into your Cloud Shell session and hit Enter.\n\n4. Verify that the `kubectl` is working by using the `get nodes` command:\n\n    ```bash\n    kubectl get nodes\n    ```\n\n5. Repeat this command multiple times until all three nodes show `Ready` in the `STATUS` column:\n\n    When all three nodes are `Ready`, your OKE installation has finished successfully.\n\n## 3. Install Kubeflow\n\nNow that the cluster is ready, we can begin to install Kubeflow within the OKE cluster.\n\n0. If you're running in a Compute Instance and not Cloud Shell, you will need to install `Kustomize`:\n\n    ```bash\n    curl -s \"https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh\"  | bash\n    ```\n\n1. Let's run the `install-kubeflow.sh` script in the kubeflow-oke folder to set up the version of `kustomise` and specify which `kubeflow` branch to use:\n\n    ```bash\n    ./install-kubeflow.sh\n    ```\n\n2. The script output will provide you with the URL, login and password to access Kubeflow console.\n\n3. Your kubeflow dashboard is at `https://\u003cIP_ADDRESS\u003e`. Login as `user@example.com`:\n\n    ```bash\n    This is your kubeflow password for user user@example.com:\n\n    xxxxxx\n    ```\n\n4. (Optional) To destroy, you must remove the non-Terraform constructed OCI resources, specifically the Istio gateway load balancer. The easiest way here is to remove the service:\n\n  ```bash\n  kubectl delete service istio-ingressgateway  -n istio-system\n  ```\n\n## Contributing\n\n\u003c!-- If your project has specific contribution requirements, update the\n    CONTRIBUTING.md file to ensure those requirements are clearly explained. --\u003e\n\nThis project welcomes contributions from the community. Before submitting a pull\nrequest, please [review our contribution guide](./CONTRIBUTING.md).\n\n## Security\n\nPlease consult the [security guide](./SECURITY.md) for our responsible security\nvulnerability disclosure process.\n\n## License\n\nCopyright (c) 2024 Oracle and/or its affiliates.\n\nLicensed under the Universal Permissive License (UPL), Version 1.0.\n\nSee [LICENSE](LICENSE.txt) for more details.\n\nORACLE AND ITS AFFILIATES DO NOT PROVIDE ANY WARRANTY WHATSOEVER, EXPRESS OR IMPLIED, FOR ANY SOFTWARE, MATERIAL OR CONTENT OF ANY KIND CONTAINED OR PRODUCED WITHIN THIS REPOSITORY, AND IN PARTICULAR SPECIFICALLY DISCLAIM ANY AND ALL IMPLIED WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.  FURTHERMORE, ORACLE AND ITS AFFILIATES DO NOT REPRESENT THAT ANY CUSTOMARY SECURITY REVIEW HAS BEEN PERFORMED WITH RESPECT TO ANY SOFTWARE, MATERIAL OR CONTENT CONTAINED OR PRODUCED WITHIN THIS REPOSITORY. IN ADDITION, AND WITHOUT LIMITING THE FOREGOING, THIRD PARTIES MAY HAVE POSTED SOFTWARE, MATERIAL OR CONTENT TO THIS REPOSITORY WITHOUT ANY REVIEW. USE AT YOUR OWN RISK.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle-devrel%2Fkubeflow-oke","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foracle-devrel%2Fkubeflow-oke","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle-devrel%2Fkubeflow-oke/lists"}