{"id":51116498,"url":"https://github.com/oracle-devrel/pulumi-python-oci-devops-oke","last_synced_at":"2026-06-24T22:30:33.324Z","repository":{"id":38343352,"uuid":"498357774","full_name":"oracle-devrel/pulumi-python-oci-devops-oke","owner":"oracle-devrel","description":"pulumi-python-oci-devops-oke","archived":false,"fork":false,"pushed_at":"2025-01-21T20:27:21.000Z","size":8269,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-04-21T17:38:00.242Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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-05-31T13:54:19.000Z","updated_at":"2025-07-25T20:54:48.000Z","dependencies_parsed_at":"2024-05-16T17:32:12.979Z","dependency_job_id":"f546dca1-12c8-48d7-807f-c2b1d6ee41f9","html_url":"https://github.com/oracle-devrel/pulumi-python-oci-devops-oke","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"oracle-devrel/repo-template","purl":"pkg:github/oracle-devrel/pulumi-python-oci-devops-oke","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-devrel%2Fpulumi-python-oci-devops-oke","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-devrel%2Fpulumi-python-oci-devops-oke/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-devrel%2Fpulumi-python-oci-devops-oke/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-devrel%2Fpulumi-python-oci-devops-oke/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oracle-devrel","download_url":"https://codeload.github.com/oracle-devrel/pulumi-python-oci-devops-oke/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle-devrel%2Fpulumi-python-oci-devops-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:31.823Z","updated_at":"2026-06-24T22:30:33.301Z","avatar_url":"https://github.com/oracle-devrel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# pulumi-python-oci-devops-oke\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_pulumi-python-oci-devops-oke)](https://sonarcloud.io/dashboard?id=oracle-devrel_pulumi-python-oci-devops-oke)\n\n\n## Introduction\nIt is an integration of **OCI Pulumi** and **OCI DevOps**. The reference code base will deploy an application over OCI OKE using OCI DevOps, with Pulumi as an infra as a code tool.\n\n\nRapid delivery of software is essential for efficiently running your applications in the cloud. Oracle Cloud Infrastructure (OCI) DevOps services provide a continuous integration and deployment (CI/CD) platform for developers to easily build, test, and deploy software and applications on Oracle Cloud.\n\nThis reference architecture builds and tests a sample Node.js web application and then deploys it to OKE by using the OCI DevOps. The application source code is hosted on a DevOps code repository. The end-user commits the code into the code repository, which triggers the start of a build pipeline.\n\nThe build pipeline follows a user-defined flow to build and test software, then create a container image of the latest version of the application. The output of the build is stored in the container registry as an image. Then a deployment pipeline uses the built image from the container registry and a Kubernetes manifest to deploy the most recent version of the application to OKE.\n\n\nFor details of the architecture, see [Build a continuous integration and deployment pipeline using Oracle DevOps service](https://docs.oracle.com/en/solutions/ci-cd-pipe-oci-devops/index.html)\n\n## Prerequisites\n1. Download and install Pulumi CLI - https://www.pulumi.com/docs/get-started/install/\n2. If not installed, download and install Python3 (3.7 or later) - https://www.python.org/downloads/\n3. Oracle credentilas for Pulumi - https://www.pulumi.com/registry/packages/oci/installation-configuration/\n\n## Optional Prerequisites\n\n- You can manage pulumi stack with stage-managed by pulumi itself, to do so create an account on Pulumi via - https://app.pulumi.com/\n- In the below procedure we will be explaining steps where the state is managed by Pulumi or with a local file.\n\n## How to deploy\n\n- Validate the execution of Pulumi CLI - `pulumi version`\n- Validate the python3 execution - `python -V`\n- Create a folder for the code and switch into it.\n```markdown\n$ mkdir oci-pulumi-devops\n$ cd oci-pulumi-devops\n```\n\n- Login to pulumi\n  - If you wish to have the infra states managed by Pulumi use `pulumi login` and follow the instruction.\n  - You can create a personal access token via the URL and copy it back to the pulumi login prompt as well.\n\n![](images/personal_access_token.png)\n\n- If you wish to manage the states locally follow below\n```markdown\n\n$ mkdir pulumi-state-local\n$ pulumi login file://pulumi-state-local\n```\n\n![](images/pulumi_local.png)\n\n- Create a new pulumi stack - `pulumi new https://github.com/oracle-devrel/pulumi-python-oci-devops-oke ` --force\n- Do not need to use `--force ` for login with Pulumi managed infra state mode.\n- Provide a project and stack name as  `pulumi-python-oci-devops-oke`.\n- You may enter or keep an empty passphrase when asked for the config(This is for locally managed pulumi state).\n- The above step will install all the relevant requirements and set you ready to proceed.\n\n![](images/pulumi_new_final.png)\n\n\n\n- Let's preview the stack using below\n```markdown\n$ touch .random.txt\n$ pulumi preview \n```\n- It will list all the components to create but with debugging errors, as expected.\n-\n![](images/pulumi_first_preview.png)\n\n- Debug errors are due to the fact the OCI credentials are not yet set up.\n- Set below   the environment variables Or with Secret configs - https://www.pulumi.com/registry/packages/oci/installation-configuration/\n\n- As ENV values.\n\n```markdown\nexport TF_VAR_tenancy_ocid=\"ocid1.tenancy.ocx..\u003cunique_ID\u003e\"\nexport TF_VAR_user_ocid=\"ocid1.user.ocx..\u003cunique_ID\u003e\"\nexport TF_VAR_fingerprint=\"\u003ckey_fingerprint\u003e\"\nexport TF_VAR_region=\"OCI Region\"\nexport TF_VAR_private_key_file=\"/path/to/oci_api_key.pem\"\n\nexport TF_VAR_oci_user=\"username\"\n\n# For a federated user (single sign-on with an identity provider), enter the username in the following format: TenancyName/Federation/UserName.\n# For example, if you use OCI's identity provider, your login would be, Acme/oracleidentitycloudservice/alice.jones@acme.com.\n#If you are using OCI's direct sign-in, enter the username in the following format: TenancyName/YourUserName. For example, Acme/alice_jones. Your password is the auth token you created previously.\n\nexport TF_VAR_oci_user_password=\"****\"\n\n# You can get the auth token from your Profile menu -\u003e click User Settings -\u003e On the left side  click *Auth Tokens -\u003e Generate Token\n```\n\n- Set OCI Pulumi config values (Except three all other configurations are set to default).\n\n```markdown\n$ pulumi config set compartment_ocid \u003cOCID of your compartment\u003e\n$ pulumi config set app_name_prefix \u003cA prefix for your resource's name /default is pulumi_devops\u003e\n$ pulumi config set autobuild_run \"False\" - To disable auto-build run /default is \"True\"\n```\n- You may verify the configuration of your stack using file [Pulumi.oci-devops-oke.yaml.](pulumi-python-oci-devops-oke. yaml)\n- Run a preview and validate the configuration and stack.\n\n```markdown\n$ touch .random.txt\n$ pulumi preview \n```\n![](images/pulumi_preview_final.png)\n\n- Create the stack using `pulumi up`\n\n![](images/stack_creation_in_progress.png)\n\n- It may take 20 to 30 minutes to complete the tasks along with the first build run if it's enabled.\n\n![](images/stack_completed.png)\n\n## Validate the application deployment.\n\n- using `OCI Console` \u003e `Developer Services` \u003e `DevOps` \u003e `Project` \u003e `oci_pulumi_devops_project_xxx`\n- Validate the `Build History` and `Deployments` and ensure that they succeeded.\n- Access the OKE Cluster - `OCI Console` \u003e `Developer Services` \u003e `Kubernetes Clusters(OKE)`\n- Using `Access Cluster` set your access to the Kubernetes, or You may use kubectl with the Kube-config under the folder `generated/kubeconfig`\n- Get the external IP address and launch the application using a browser - `http://externalIP`.\n```markdown\nkubectl get svc -n ns-node\n```\n![](images/app_via_browser.png)\n\n## Destroy the stack.\n\n- Delete the application load balancer (via OCI Console ) or clean the Kubernetes services (Using kubectl) before destroying the stack.\n\n```markdown\n$ kubectl delete svc node-gettingstarted-service -n ns-node\n```\n\n- Do a `pulumi destroy` and delete the components.\n\n![](images/pulumi_destroy_start.png)\n\n- The operation would take 20 to 30 minutes to complete.\n- Delete the stack using `pulumi stack rm pulumi-python-oci-devops-oke`\n- Log out from pulumi - `pulumi logout`\n\n## Read more\n\n- Pulumi and OCI - https://www.pulumi.com/registry/packages/oci/installation-configuration/\n- Deploy the stack with Terraform and OCI resource manager - https://github.com/oracle-devrel/terraform-oci-arch-ci-cd-devops\n\n## Contributors\n\nAuthor: Rahul M R.\nCollaborators: NA\nLast release: May 2022\n\n## Contributing\nThis project is open source.  Please submit your contributions by forking this repository and submitting a pull request!  Oracle appreciates any contributions that are made by the open-source community.\n\n## License\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%2Fpulumi-python-oci-devops-oke","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foracle-devrel%2Fpulumi-python-oci-devops-oke","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle-devrel%2Fpulumi-python-oci-devops-oke/lists"}