You will execute this procedure to provision the service project in GCP for applications.
-
Move to the folder where the
gatekeeper-policies
,core-landing-zone
andclients
folders are locatedcd <FOLDER>
-
Create the following folder structure for projects
├── clients │ ├── <client1-name> │ ├── <client2-name> | ├── ... ├── core-landing-zone ├── gatekeeper-policies ├── projects │ ├── <project1-id> │ ├── <project2-id> | ├── ...
- Get the client project package
!!! Update the command below with the proper VERSION, you can locate it in the package's CHANGELOG.md, for example, '0.0.1'. Use 'main' if not available but we strongly recommend using versions over main. Alternatively, each package CHANGELOG.md contains the history if there is a requirement to use an older version.
-
Experimentation
PACKAGE="solutions/experimentation/client-project" VERSION=$(curl -s $URL | jq -r ".\"$PACKAGE\"") PROJECT_ID=project-id kpt pkg get https://github.com/GoogleCloudPlatform/pubsec-declarative-toolkit.git/${PACKAGE}@${VERSION} ./projects/${PROJECT_ID}
-
DEV, PREPROD, PROD
PACKAGE="solutions/client-project-setup" VERSION=$(curl -s $URL | jq -r ".\"$PACKAGE\"") PROJECT_ID=project-id kpt pkg get https://github.com/GoogleCloudPlatform/pubsec-declarative-toolkit.git/${PACKAGE}p@${VERSION} ./projects/${PROJECT_ID}
- Customize the
setters.yaml
file
-
Experimentation
projects/${PROJECT_ID}/client-project/setters.yaml
-
DEV, PREPROD, PROD
projects/${PROJECT_ID}/client-project-setup/setters.yaml
!!! There is a folder in the
client-project-setup
package calledroot-sync-git
. This folder can be deleted if your are not using aGitops - Git
deployment solution. But, if you are, you should now create a new repository for this project and configure the setters.yaml file accordingly.
- Render the Configs
-
Experimentation
kpt fn render projects/${PROJECT_ID}/client-project
-
DEV, PREPROD, PROD
kpt fn render projects/${PROJECT_ID}/client-project-setup
- Deploy the infrastructure using either kpt or gitops-git or gitops-oci