Skip to content

Commit

Permalink
improvement: add guidance on how to run it on a VM (#132)
Browse files Browse the repository at this point in the history
* improvement: add mysql support for the inventory service (#89)

* fix: remove incorrect delimiter in skaffold

* ci: add skaffold build step

* fix: namespace error in cloudbuild

* fix: the cloudbuild config for gcloud

* fix: the pr number prefix

* cleanup: use kubectl image

* cleanup: format cloudbuild file

* fix: pr prefix

* fix: change underscore to hyphen

* cleanup: update kubectl image in skaffold builder

* fix: kubectl command

* cleanup: add correct node version tag

* cleanup: update namepsace yaml creation

* cleanup: update the skaffold image usage

* cleanup: split the gcloud command

* cleanup: fix extra quotes

* fix: split the cloudbuild step commands

* cleanup: move gcloud and skaffold into a file

* cleanup: split the exec command

* fix: add skaffold build and deploy steps

* cleanup: add timeout to build

* cleanup: remove unused image

* cleanup: remove unused file

* process: add options related t custom sa

* cleanup: write logs to bucket

* test: trigger ci

* test: trigger ci

* cleanup: remove unnecessary skaffold steps

* cleanup:migrate to new project

* cleanup:migrate to new project

* test: check builds

* test: check builds

* test: check builds

* ci: add cleanup step

* ci: fix merge commits

* ci: add steps to deploy main to staging

* test: check builds

* ci: split the deploy steps

* test: check builds

* test: check builds

* test: check builds

* ci: remove the maven clean

* ci: fix repo name

* ci: fix repo name

* ci: comment the artifact maven plugin

* ci: add mvn clean step before skaffold

* ci: run the maven wrapper

* ci run the mvnw first

* ci: remove mvnw

* ci: remove mvnw

* ci: make mvnw executable

* ci: add mvnw back

* ci: add mvnw to the merge to pr step

* doc: minor fix (#87)

* doc: test pr (#88)

* doc: minor fix

* test: check builds

* test: check builds

* fix: remove maven clean

* fix: remove maven clean

* ci: remove initial mvn install

* test: check builds

* cleanup: change master to main

* improvement: add db access layer to the inventory service

* improvement: complete mysql to inventory service

* ci: add license header

* fix: skip datasource loading with payments and apiserver

* fix: explude JDBC in tests

* cleanup: remove the exclusion rule in test

* fix: NPE

* test: check builds

* test: exclude hibernate

* add: spring profiles and h2 db

* improvement: add mysql manifest

* improvement: split skaffold with profiles

* doc: add readme

* fix: update the skaffold commands

* lint: remove unnecessary extra line

* cleanup: add region tags

* cleanup: add profiles for db

* config: fix skaffold ot point to correct repo for mysql

* config: move build to the dev profile

* fix: skaffold error with 3p images

* ci: add inmemory profile to the pr cloudbuild yaml

* ci: add deployment type suffix to tag

* cleanup: fix region tags

* ci: update cleanup and staging ci yamls

* ci: increase timeout

* doc: add details for inmemory profile

* improvement: add mysql payments (#90)

* fix: remove incorrect delimiter in skaffold

* ci: add skaffold build step

* fix: namespace error in cloudbuild

* fix: the cloudbuild config for gcloud

* fix: the pr number prefix

* cleanup: use kubectl image

* cleanup: format cloudbuild file

* fix: pr prefix

* fix: change underscore to hyphen

* cleanup: update kubectl image in skaffold builder

* fix: kubectl command

* cleanup: add correct node version tag

* cleanup: update namepsace yaml creation

* cleanup: update the skaffold image usage

* cleanup: split the gcloud command

* cleanup: fix extra quotes

* fix: split the cloudbuild step commands

* cleanup: move gcloud and skaffold into a file

* cleanup: split the exec command

* fix: add skaffold build and deploy steps

* cleanup: add timeout to build

* cleanup: remove unused image

* cleanup: remove unused file

* process: add options related t custom sa

* cleanup: write logs to bucket

* test: trigger ci

* test: trigger ci

* cleanup: remove unnecessary skaffold steps

* cleanup:migrate to new project

* cleanup:migrate to new project

* test: check builds

* test: check builds

* test: check builds

* ci: add cleanup step

* ci: fix merge commits

* ci: add steps to deploy main to staging

* test: check builds

* ci: split the deploy steps

* test: check builds

* test: check builds

* test: check builds

* ci: remove the maven clean

* ci: fix repo name

* ci: fix repo name

* ci: comment the artifact maven plugin

* ci: add mvn clean step before skaffold

* ci: run the maven wrapper

* ci run the mvnw first

* ci: remove mvnw

* ci: remove mvnw

* ci: make mvnw executable

* ci: add mvnw back

* ci: add mvnw to the merge to pr step

* doc: minor fix (#87)

* doc: test pr (#88)

* doc: minor fix

* test: check builds

* test: check builds

* fix: remove maven clean

* fix: remove maven clean

* ci: remove initial mvn install

* test: check builds

* cleanup: change master to main

* improvement: add db access layer to the inventory service

* improvement: complete mysql to inventory service

* ci: add license header

* improvement: add mysql to payments

* improvement: add db stuff to payments service

* lint: add header

* fix: skip datasource loading with payments and apiserver

* fix: explude JDBC in tests

* cleanup: remove the exclusion rule in test

* fix: NPE

* test: check builds

* test: exclude hibernate

* add: spring profiles and h2 db

* improvement: add mysql manifest

* improvement: split skaffold with profiles

* doc: add readme

* fix: update the skaffold commands

* lint: remove unnecessary extra line

* cleanup: add region tags

* cleanup: point to new project ci

* cleanup: remove command activation in skaffold

* ci: fix the skaffold profile definintion

* skaffold: add snapshot tag until first release

* doc: add comment with the link to the builder

* cleanup: add profiles for db

* config: fix skaffold ot point to correct repo for mysql

* config: move build to the dev profile

* fix: skaffold error with 3p images

* ci: add inmemory profile to the pr cloudbuild yaml

* ci: add deployment type suffix to tag

* cleanup: fix region tags

* ci: update cleanup and staging ci yamls

* ci: increase timeout

* ci: add encrypted token

* fix: cloudbuild yaml for gh token

* fix: remove linebreak

* fix: remove linebreak

* test: check builds

* ci: format

* fix: gh command

* cleanup: update app.properties for payments

* fix: quotation issue in jsonpath

* ci: split Ip fetching to a script

* ci: update the image for the github ci

* cleanup: remove the inmemory payment impl

* ci: fix the comment step in the build

* ci: fix the substitution variable rrors

* cleanup: remove unused class

* cleanup: remove ref to deleted class

* ci: add markdown syntax for URL

* fix: invalid import statement

* fix: removed fields during merge

* cldeanup: remove extra space

* test: check builds

* ci: update the gh comment

* test: check builds

* fix: error with the incorrect annotation

* cleanup: remove unnecessary annotations

* fix: mysql warning (#110)

* doc: restructure

* doc: fix region tag

* doc: fix region tags

* cleanup: update the skaffold file

* cleanup: add project suffix to the pom

* cleanup: fix path error in cloudbuild yaml

* fix: update the cloudbuild yamls

* cleanup: add the mvnwrapper

* lint: add correct license year

* fix: update the header

* fix: clpoudbuil yaml

* ci: add dir for deploy step

* ci: revert cloudbuild changes

* cleanup: maintain point-of-sale-app folder as is in main

* header: fix year

* cleanup: remove and add

* fix: header check error

* test: find directory

* test: find directory

* test: find directory

* cleanup: move maven wrapper to the root

* cleanup: add relativePath to parent pom

* cleanup: update the push to main yaml

* fix: the path issue in the apiserver pom

* doc: restructure directories and add quickstart (#115)

* doc: restructure

* doc: fix region tag

* doc: fix region tags

* cleanup: update the skaffold file

* cleanup: add project suffix to the pom

* cleanup: fix path error in cloudbuild yaml

* fix: update the cloudbuild yamls

* cleanup: add the mvnwrapper

* lint: add correct license year

* fix: update the header

* fix: clpoudbuil yaml

* ci: add dir for deploy step

* ci: revert cloudbuild changes

* test: find directory

* test: find directory

* test: find directory

* cleanup: move maven wrapper to the root

* cleanup: add relativePath to parent pom

* cleanup: update the push to main yaml

* fix: the path issue in the apiserver pom

* release: add initial releaser code

* release: fix str error

* cleanup: get xml parser working

* cleanuP: fix pom linting

* cleanup: add extra linebreak

* fix: merge conflict

* cleanup: linting in ui pom

* improvement: add logic to update package.json

* lint: reformat the pom

* lint: remove extra space

* chore(release): 0.1.0-SNAPSHOT

* Revert "chore(release): 0.1.0-SNAPSHOT"

This reverts commit 8f3fae2.

* chore(release): 0.1.0-SNAPSHOT

* Revert "chore(release): 0.1.0-SNAPSHOT"

This reverts commit fdb238f.

* cleanup: add changlog packagejson

* fix: add code to update release pkg json

* fix: indent on pkf json

* fix: indent on pkf json

* process: add release trigger

* fix: escape env subs

* chore: add branch name

* chore: add pip install step

* chore: add git branch

* chore: add remote

* test: show remote

* test: show remote

* test: show remote

* test: show remote

* test: show remote

* test: show remote

* release: update version before release

* Revert "release: update version before release"

This reverts commit 00e36d9.

* cleanup: remove username from git

* test: show remote

* test: set branch

* test: set branch

* test: set branch

* test: set branch

* test: set branch

* test: set branch

* release: update version before release

* Revert "release: update version before release"

This reverts commit db838c5.

* test: set branch

* release: update version before release

* cleanup: add clarifying comment

* Revert "release: update version before release"

This reverts commit c6590f6.

* chore: set github email secret

* release: update version before release

* Revert "release: update version before release"

This reverts commit f2649c4.

* release: update version before release

* chore: add publish yaml

* Revert "release: update version before release"

This reverts commit ff14e7f.

* release: update version before release

* Revert "release: update version before release"

This reverts commit 110a1bc.

* chore: add build step for deploying images

* chore: add python step to publish yaml

* chore: update releaser to print version

* chore: rearrange code

* release: update version before release

* chore: fix version error

* Revert "release: update version before release"

This reverts commit 550eb9c.

* release: update version before release

* Revert "release: update version before release"

This reverts commit 65bd83f.

* chore: fix substution variable

* release: update version before release

* Revert "release: update version before release"

This reverts commit 3fe4f54.

* chore: fix the version and deps

* release: update version before release

* Revert "release: update version before release"

This reverts commit ec7b888.

* chore: fix the version and deps

* release: update version before release

* Revert "release: update version before release"

This reverts commit abbdbd4.

* chore: fix the version and deps

* release: update version before release

* Revert "release: update version before release"

This reverts commit ececb4d.

* chore: fix the version and deps

* release: update version before release

* Revert "release: update version before release"

This reverts commit 4208bd6.

* chore: fix the version and deps

* release: update version before release

* Revert "release: update version before release"

This reverts commit 9642318.

* chore: fix the version and deps

* release: update version before release

* Revert "release: update version before release"

This reverts commit 9aebc49.

* chore: fix the version and deps

* release: update version before release

* Revert "release: update version before release"

This reverts commit 0039752.

* cleanup: rearrange yamls

* improv: add yaml update logic

* chore: add logic to update all yamls

* chore: add new lines

* chore: reorder the updates

* release: update version before release

* chore: updated release script

* chore: uncomment the file edit

* chore: rearrange the prints

* chore: add new argument

* chore: update the releaser to take patch as the next release version

* chore: add logic to set SNAPSHOT version

* chore: fix incorrect variable bug

* chore: fix releaser release versioning

* chore: update release yaml files

* chore: complete the release yamls

* chore: save merge conflict resolution

* chore: set root pom to SNAPSHOT

* chore: fix bash error

* release: update version before release

* chore: update commit msg checks

* chore: add formatting

* Revert "release: update version before release"

This reverts commit 7d5aad9.

* release: update version before release

* chore: fix versions

* chore: fix commit message

* release: update version before release

* chore: fix formatting

* Revert "release: update version before release"

This reverts commit 20f362a.

* chore: add email token to build file

* release: update version before release

* Revert "release: update version before release"

This reverts commit ee086cc.

* chore add deploy script

* chore: fix branch error

* release: update version before release

* release: update version before release

* release: update version before release

* Revert "release: update version before release"

This reverts commit 4473cb5.

* chore: fix version.txt error

* chore: fix deploy ci

* chore: update print message

* chore: enhance comment message

* chore(release): 0.1.0

* chore(release): 0.1.1

* chore: fix comment msg

* chore: remove mvn install

* chore: reorganize the deploy yaml

* cleanup: revert changes inside the point-of-sale-app folder to match main (#116)

* doc: restructure

* doc: fix region tag

* doc: fix region tags

* cleanup: update the skaffold file

* cleanup: add project suffix to the pom

* cleanup: fix path error in cloudbuild yaml

* fix: update the cloudbuild yamls

* cleanup: add the mvnwrapper

* lint: add correct license year

* fix: update the header

* fix: clpoudbuil yaml

* ci: add dir for deploy step

* ci: revert cloudbuild changes

* cleanup: maintain point-of-sale-app folder as is in main

* header: fix year

* cleanup: remove and add

* fix: header check error

* test: find directory

* test: find directory

* test: find directory

* cleanup: move maven wrapper to the root

* cleanup: add relativePath to parent pom

* cleanup: update the push to main yaml

* chore: add gh release step

* chore: rename common service fiel names

* chore: update the skaffold file to have services

* chore: fix region tag

* chore: force

* chore: fix bash err

* release: update version before release

* release: bump version to next snapshot

* chore: update release messafe

* Revert "release: bump version to next snapshot"

This reverts commit 7f54c9a.

* Revert "release: update version before release"

This reverts commit e57bfdf.

* chore: add readme for release

* doc: improve release doc

* doc: add more release steps

* doc: add more release steps

* doc: add more release steps

* doc: add more release steps

* doc: add more release steps

* doc: add more release steps

* doc: add more release steps

* chore: remove branch ref

* chore: update the README

* chore: rename relese yaml

* doc: add release link to the main README

* doc: update doc size

* doc: add note to click to enlarge

* doc: add contrib doc

* doc: note about Googler release

* doc: fix hyperlonk

* doc: add inital steps

* doc: add inital guide

* doc: add section for skaffold run

* doc: add section

* doc: add section

* doc: add section

* doc: add section

* doc: add section

* doc: add ui build setup

* doc: fix hyperlinks

* doc: add indentation

* doc: add linebreaks

* doc: add local dev instrcution to main readme

* cleanup: remove release please

* cleanup: remove the old folders

* doc: add docstring for the releaser

* doc: add references to this application

* fix: java lint errors

* fix: revert pom changes

* cleanup: add the coveo plugin for formatting

* cleanup: add maven verify step

* doc: add running on vm

* fix: pr comments

* cleanup: point to dir

* fix: vulnerability

* Revert "fix: vulnerability"

This reverts commit c802aac.

* revert: vult change

* doc: add image create docs
  • Loading branch information
Shabirmean committed May 12, 2022
1 parent f36cca4 commit 8de826a
Show file tree
Hide file tree
Showing 4 changed files with 243 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -40,6 +40,7 @@ distributed across customer data centers and device fleets.

### Resources
- _(Quickstart)_ [Deploy this application to a cluster](/docs/quickstart.md)
- _(Anthos VMRuntime)_ [Run the entire application in a VM](/extras/anthos-vmruntime)

#### External use cases of this application
- _(Solution guide)_ [VM based PoS deployed in an Anthos cluster using Anthos VMRuntime](https://github.com/GoogleCloudPlatform/anthos-samples/tree/main/anthos-vmruntime)
Expand Down
72 changes: 72 additions & 0 deletions extras/anthos-vmruntime/README.md
@@ -0,0 +1,72 @@
# Run the PoS Application in a VM

You can run all the services of the application in a single VM as a system
service. Simply copy the [**init-vm.sh**](init-vm.sh) file into your VM and then
execute it from inside the VM. This sets up all the services of the application
to run as a system service inside your VM.

```sh
sudo bash init-vm.sh
```

Note that the `inventory service` and the `payments service`
[expects the hostname `mysql-db` to resolve to an IP address](init-vm.sh#L115)
pointing to a MySQL service. This is because these _systemd service_ files were
written for a use-case where the PoS application VM is run inside an Anthos on
bare metal cluster using [Anthos VMRuntime](https://cloud.google.com/anthos/clusters/docs/bare-metal/latest/how-to/vm-workloads). In that use-case we have a MySQL container being made
available to the services via a `Kubernetes Service` named `mysql-db`. _See the
[full guide for that here](https://github.com/GoogleCloudPlatform/anthos-samples/tree/main/anthos-vmruntime)._

If you don't want the application connecting to an external MySQL instance, then
you can simply change the `SPRING_PROFILES_ACTIVE` environment variable in the
systemd service files to **inmemory**. This will spawn an embedded H2 database
per service that they will use.

```sh
# line 116 (pos_inventory.service) of the init-vm.sh file
Environment=SPRING_PROFILES_ACTIVE=inmemory

# line 141 (pos_payments.service) of the init-vm.sh file
Environment=SPRING_PROFILES_ACTIVE=inmemory
```

### Creating an image of this VM to be run in an Anthos cluster using Anthos VMRuntime

> Make sure you stop the VM first.
- Set your environment variables
```sh
export PROJECT_ID=<YOUR_GCP_PROJECT>
export ZONE=<YOUR_GCP_ZONE>
export BUCKET_NAME=<STORAGE_BUCKET_NAME>
```

- Create a `Disk Image` of the VM
```sh
gcloud compute images create pos-vm-image \
--source-disk=pos-vm \
--source-disk-zone=${YOUR_GCP_ZONE} \
--project=${PROJECT_ID}
```

- Create `Cloud Storage Bucket` to store the image
```sh
gsutil mb -p ${PROJECT_ID} -c standard -b on gs://${BUCKET_NAME}
```

- Make the bucket **publicly readable**
```sh
gsutil iam ch allUsers:objectViewer gs://${BUCKET_NAME}
```

- Upload the Disk Image we create to the Cloud Storage Bucket
```sh
gcloud compute images export \
--destination-uri gs://${BUCKET_NAME}/pos-vm.qcow2 \
--image pos-vm-image \
--export-format qcow2 \
--project ${PROJECT_ID}
```

Now you can use the URL `https://storage.googleapis.com/${BUCKET_NAME}/pos-vm.qcow2`
to refer to the VM image when creating your VM in an Anthos VMRuntime enabled
cluster.
151 changes: 151 additions & 0 deletions extras/anthos-vmruntime/init-vm.sh
@@ -0,0 +1,151 @@
#!/bin/bash
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# install dependencies
sudo apt update -y
sudo apt install -y default-jre default-jdk

# clone the Point of Sale repository
git clone https://github.com/GoogleCloudPlatform/point-of-sale

# build the Point of Sale application
cd point-of-sale || exit
./mvnw clean install
cd ..

# create the folders to host the runnable artifacts
sudo mkdir -p /pos/jars
sudo mkdir -p /pos/scripts

# copy the built artifacts to the /pos directory
sudo cp point-of-sale/src/api-server/target/api-server-0.1.0-SNAPSHOT.jar /pos/jars/api-server.jar
sudo cp point-of-sale/src/inventory/target/inventory-0.1.0-SNAPSHOT.jar /pos/jars/inventory.jar
sudo cp point-of-sale/src/payments/target/payments-0.1.0-SNAPSHOT.jar /pos/jars/payments.jar

# delete the repository and maven jars that were downloaded
# we do this to minimize the size of the VM disk
rm -rf point-of-sale
rm -rf ~/.m2/repository/*

# create the scripts that will be run by the systemd services
cat <<EOF | sudo tee -a /pos/scripts/api-server.sh -
#!/bin/sh
java -jar /pos/jars/api-server.jar --server.port=$API_SERVER_PORT
EOF

cat <<EOF | sudo tee -a /pos/scripts/inventory.sh -
#!/bin/sh
java -jar /pos/jars/inventory.jar --server.port=$INVENTORY_PORT
EOF

cat <<EOF | sudo tee -a /pos/scripts/payments.sh -
#!/bin/sh
java -jar /pos/jars/payments.jar --server.port=$PAYMENTS_PORT
EOF

# make the above scripts executable
sudo chmod +x /pos/scripts/api-server.sh
sudo chmod +x /pos/scripts/inventory.sh
sudo chmod +x /pos/scripts/payments.sh

# create the systemd service definitions
cat <<EOF | sudo tee -a /etc/systemd/system/pos.service -
[Unit]
Description=Point of Sale Application
[Service]
# The dummy root program to spawn the 3 services of the Point of Sale Application
# After api-server.service, inventory.service and payments.service are spawned
# this service will exit
Type=oneshot
ExecStart=/bin/true
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF

cat <<EOF | sudo tee -a /etc/systemd/system/pos_apiserver.service -
[Unit]
Description=API Server of the Point of Sale Application
PartOf=pos.service
After=pos.service
After=pos_inventory.service
After=pos_payments.service
[Service]
WorkingDirectory=/pos
Environment=API_SERVER_PORT=8081
Environment=INVENTORY_EP=http://localhost:8082
Environment=PAYMENTS_EP=http://localhost:8083
ExecStart=/pos/scripts/api-server.sh
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=pos.service
EOF

cat <<EOF | sudo tee -a /etc/systemd/system/pos_inventory.service -
[Unit]
Description=Inventory service of the Point of Sale Application
PartOf=pos.service
After=pos.service
[Service]
WorkingDirectory=/pos
Environment=INVENTORY_PORT=8082
Environment=MYSQL_HOST=mysql-db
Environment=SPRING_PROFILES_ACTIVE=database
Environment=ACTIVE_ITEM_TYPE=burgers
Environment=ITEMS="items:\n - name: "BigBurger"\n type: "burgers"\n price: 5.50\n imageUrl: "usr/lib/images/bigburger.png"\n quantity: 200\n labels: [ "retail", "restaurant", "food" ]\n - name: "DoubleBurger"\n type: "burgers"\n price: 7.20\n imageUrl: "usr/lib/images/burgers.png"\n quantity: 200\n labels: [ "retail", "restaurant", "food" ]\n - name: "Shirt"\n type: "textile"\n price: 15.50\n imageUrl: "usr/lib/images/shirt.png"\n quantity: 50\n labels: [ "retail", "textile", "clothing" ]\n - name: "Short"\n type: "textile"\n price: 17.20\n imageUrl: "usr/lib/images/short.png"\n quantity: 20\n labels: [ "retail", "textile", "clothing" ]"
ExecStart=/pos/scripts/inventory.sh
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=pos.service
EOF

cat <<EOF | sudo tee -a /etc/systemd/system/pos_payments.service -
[Unit]
Description=Payments service of the Point of Sale Application
PartOf=pos.service
After=pos.service
[Service]
WorkingDirectory=/pos
Environment=PAYMENTS_PORT=8083
Environment=MYSQL_HOST=mysql-db
Environment=SPRING_PROFILES_ACTIVE=database
ExecStart=/pos/scripts/payments.sh
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=pos.service
EOF

# reload the systemd service and ensure the new services are picked
sudo systemctl daemon-reload
sudo systemctl enable pos pos_inventory pos_payments pos_apiserver
sudo systemctl start pos
19 changes: 19 additions & 0 deletions k8-manifests/README.md
@@ -1,5 +1,24 @@
# Kubernetes manifests

#### 🚀 &nbsp; (TLDR) Where is the manifest I can apply to my cluster!
```sh
# generate the release kubernetes manifests
skaffold render -p release > pos-quickstart.yaml

# apply the yaml files to the cluster
kubectl apply -f pos-quickstart.yaml
```

#### 🤷 &nbsp; I don't have [skaffold](https://skaffold.dev/docs/install/) installed !
```sh
# apply all the manifests from the common/ folder except the 'springprofile-h2.yaml' file
find k8-manifests/common -type f -not '(' -name '*h2.yaml' ')' | xargs -n 1 -I '{}' kubectl apply -f {}

# apply the manifest for the PoS applications
kubectl apply -f release/
```
---

This directory holds the Kubernetes manifest files that can be used to deploy
the **Point-of-Sale** application. The manifests are seperated into categories
based on the deployment environment. You will notice multiple directories _(
Expand Down

0 comments on commit 8de826a

Please sign in to comment.