Frequently Asked Questions
I created a DevOps project in VS Code, triggered the build pipeline which ran successfully, and I noticed new resources created in my OCI tenancy/compartment. What is happening? #
When you click Create DevOps Project, the GCN extension calls the OCI DevOps service and creates the following resources in your tenancy or compartment:
Resource Type | Name used by GCN Tooling | Tenancy | User Compartment |
---|---|---|---|
OKE Deploy Environment | <projectname>OkeDeployEnvironment |
X (Unique name per tenancy) | |
Notifications | <usercompartmentname>NotificationTopic |
X | |
DevOps Project | <projectname> |
X | |
Default Log Group | Default_Group |
X | |
Default Compartment Access Policy | CompartmentAccessPolicy |
X | |
Container Registry Repository | <projectname> |
X | |
Artifact Registry Repository | <projectname>ArtifactRepository |
X | |
ADM Knowledge Base | <projectname>Audits |
X | |
Source Code Repository | many under <projectname> |
X | |
OKE Cluster | Leads user to web Quick Create OKE page | X |
The GCN extension creates a policy to provide the DevOps service with access to the resources within the compartment. One policy is created per compartment. A policy specifies who can access which resources, and how. You can review the compartment policies: in the Oracle Cloud Console navigation menu, select Identity & Security. Under Identity select Policies, and view the CompartmentAccessPolicy which is a default policy to access compartment resources created from VS Code. Click it to see the policy statements.
The policies created by the OCI DevOps service match this pattern:
const rules = [
`Allow any-user to read devops-family in compartment id ${compartmentID} where ALL {request.principal.type='devopsbuildpipeline', request.principal.compartment.id='${compartmentID}'}`,
`Allow any-user to manage generic-artifacts in compartment id ${compartmentID} where ALL {request.principal.type='devopsbuildpipeline', request.principal.compartment.id='${compartmentID}'}`,
`Allow any-user to manage repos in compartment id ${compartmentID} where ALL {request.principal.type='devopsbuildpipeline', request.principal.compartment.id='${compartmentID}'}`,
`Allow any-user to manage compute-container-instances in compartment id ${compartmentID} where ALL {request.principal.type='devopsdeploypipeline', request.principal.compartment.id='${compartmentID}'}`,
`Allow any-user to manage compute-containers in compartment id ${compartmentID} where ALL {request.principal.type='devopsdeploypipeline', request.principal.compartment.id='${compartmentID}'}`,
`Allow any-user to use vnics in compartment id ${compartmentID} where ALL {request.principal.type='devopsdeploypipeline', request.principal.compartment.id='${compartmentID}'}`,
`Allow any-user to use subnets in compartment id ${compartmentID} where ALL {request.principal.type='devopsdeploypipeline', request.principal.compartment.id='${compartmentID}'}`,
`Allow any-user to use dhcp-options in compartment id ${compartmentID} where ALL {request.principal.type='devopsdeploypipeline', request.principal.compartment.id='${compartmentID}'}`,
`Allow any-user to read all-artifacts in compartment id ${compartmentID} where ALL {request.principal.type='devopsdeploypipeline', request.principal.compartment.id='${compartmentID}'}`,
`Allow any-user to manage clusters in compartment id ${compartmentID} where ALL {request.principal.type='devopsdeploypipeline', request.principal.compartment.id='${compartmentID}'}`
];
How does the OCI DevOps service handle unique resource names? For example, if one user creates two projects in two separate compartments? #
DevOps Project names must be unique per tenancy. The OCI DevOps Tools VS Code extension checks that the name is unique.
How do I delete a DevOps project created by the VS Code OCI DevOps Extension? #
You cannot currently delete a DevOps project from within VS Code. Instead, delete the DevOps project from the Oracle Cloud Console. Use the Delete action which is available from the root of the project.