Update helm charts, Readme bash scripts (#22)
- Refactor the helm charts to only have one shared chart, updating this chart to be resilient to handle all APIs - Update the deploy readme to be accurate and more condensed - Fix the APIs to actually use the mongo_conn and expose_port ENV variables - Add .dockerignore file to speed up local docker builds where node_modules is present from the mongodb npm package - Fix the web client to have the proper internal API addresses for the k8s cluster
This commit is contained in:
Родитель
8a4961acdc
Коммит
5fd475314c
|
@ -0,0 +1 @@
|
|||
node_modules
|
|
@ -26,4 +26,8 @@ bin/
|
|||
EventLogs/
|
||||
obj/
|
||||
*.sln
|
||||
restore.dg
|
||||
restore.dg
|
||||
|
||||
# Node.JS code
|
||||
node_modules
|
||||
package-lock.json
|
|
@ -1,11 +1,11 @@
|
|||
#Server and management port config
|
||||
server.port=50001
|
||||
server.port=${expose_port}
|
||||
#management.port: 8081
|
||||
spring.application.name=catalog-catalogservice
|
||||
|
||||
# Default MongoDB configuration parameters
|
||||
#spring.data.mongodb.repositories.enabled=true
|
||||
spring.data.mongodb.uri=mongodb://localhost:27017/ordering
|
||||
spring.data.mongodb.uri=${mongo_conn}
|
||||
|
||||
#Control if spring banner should be displayed
|
||||
spring.main.banner-mode=off
|
||||
|
|
|
@ -20,10 +20,10 @@ namespace DealerApi.Controllers
|
|||
_log = log;
|
||||
log.LogInformation("--------------------------------------------------");
|
||||
log.LogInformation("---debug----Creating instance Dealer");
|
||||
log.LogInformation(Environment.GetEnvironmentVariable("mongo_connection"));
|
||||
log.LogInformation(Environment.GetEnvironmentVariable("mongo_conn"));
|
||||
log.LogInformation(Environment.GetEnvironmentVariable("mongo_database"));
|
||||
log.LogInformation("--------------------------------------------------");
|
||||
objds = new MongoDealersRepository(Environment.GetEnvironmentVariable("mongo_connection"));
|
||||
objds = new MongoDealersRepository(Environment.GetEnvironmentVariable("mongo_conn"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#Server and management port config
|
||||
server.port:50003
|
||||
server.port:${expose_port}
|
||||
#management.port: 8081
|
||||
spring.application.name=order-orderservice
|
||||
|
||||
# Default MongoDB configuration parameters
|
||||
spring.data.mongodb.uri=mongodb://localhost:27017/ordering
|
||||
spring.data.mongodb.uri=${mongo_conn}
|
||||
|
||||
#Control if spring banner should be displayed
|
||||
spring.main.banner-mode=off
|
||||
|
@ -12,7 +12,7 @@ spring.main.banner-mode=off
|
|||
#exposing SBA to prometheus
|
||||
management.security.enabled=false
|
||||
|
||||
#zinpin configurations
|
||||
#zipkin configurations
|
||||
zipkin.mrpservice.uri=http://zipkin-zipkin:9411/api/v1/spans
|
||||
|
||||
#Hystrix command properties
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
#Server and management port config
|
||||
server.port=50002
|
||||
server.port=${expose_port}
|
||||
spring.application.name=quote-quoteservice
|
||||
|
||||
# Default MongoDB configuration parameters
|
||||
spring.data.mongodb.uri=mongodb://localhost:27017/ordering
|
||||
|
||||
spring.data.mongodb.uri=${mongo_conn}
|
||||
|
||||
#Control if spring banner should be displayed
|
||||
spring.main.banner-mode=off
|
||||
|
|
|
@ -19,4 +19,4 @@ zuul.routes.shipment-service.path=/api/shipments/**
|
|||
zuul.routes.shipment-service.url=http://shipment-shipmentservice/api/shipments/
|
||||
|
||||
ribbon.eureka.enabled=false
|
||||
server.port=9020
|
||||
server.port=${expose_port}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#Server and management port config
|
||||
server.port=50004
|
||||
server.port=${expose_port}
|
||||
#management.port: 8081
|
||||
|
||||
spring.application.name=shipment-shipmentservice
|
||||
# Default MongoDB configuration parameters
|
||||
#spring.data.mongodb.repositories.enabled=true
|
||||
spring.data.mongodb.uri=mongodb://localhost:27017/ordering
|
||||
spring.data.mongodb.uri=${mongo_conn}
|
||||
|
||||
#Control if spring banner should be displayed
|
||||
spring.main.banner-mode=off
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
server.port=8080
|
||||
server.port=${expose_port}
|
||||
|
||||
spring.application.name=mrp_client
|
||||
|
||||
|
@ -20,11 +20,11 @@ logging.file=${catalina.home}/logs/mrp_client.log
|
|||
#logging.file=/logs/mrp_client.log
|
||||
|
||||
#Micro-Services Endpoint details
|
||||
service.catalog.uri=http://api-partsunlimitedmrp:9020/api/catalog
|
||||
service.quote.uri=http://api-partsunlimitedmrp:9020/api/quotes
|
||||
service.order.uri=http://api-partsunlimitedmrp:9020/api/orders
|
||||
service.dealer.uri=http://api-partsunlimitedmrp:9020/api/dealers
|
||||
service.shipment.uri=http://api-partsunlimitedmrp:9020/api/shipments
|
||||
service.catalog.uri=http://pumrp-catalog-svc/api/catalog
|
||||
service.quote.uri=http://pumrp-quote-svc/api/quotes
|
||||
service.order.uri=http://pumrp-order-svc/api/orders
|
||||
service.dealer.uri=http://pumrp-dealer-svc/api/Dealer
|
||||
service.shipment.uri=http://pumrp-shipment-svc/api/shipments
|
||||
|
||||
|
||||
#Hystrix command properties
|
||||
|
|
242
deploy/README.md
242
deploy/README.md
|
@ -10,27 +10,54 @@ If you want to learn on how you can automate the deployment using DevOps practic
|
|||
|
||||
```bash
|
||||
# Variables
|
||||
export READY_RG=readywinter18
|
||||
export READY_LOCATION=eastus
|
||||
export READY_PATH=~/temp/ready
|
||||
export READY_RG=pumrpmicro
|
||||
export READY_LOCATION=eastus2
|
||||
export READY_PATH=~/temp/pumrpmicro
|
||||
|
||||
# Folder
|
||||
rm -rf $READY_PATH
|
||||
mkdir $READY_PATH
|
||||
cd $READY_PATH
|
||||
mkdir -p $READY_PATH
|
||||
|
||||
# Clone the code locally
|
||||
git clone git@github.com:Microsoft/PartsUnlimitedMRPmicro.git
|
||||
cd PartsUnlimitedMRPmicro
|
||||
|
||||
# SSH Keys
|
||||
ssh-keygen -f readywint18 -t rsa -N ''
|
||||
ssh-keygen -f $READY_PATH/pumrpmicro -t rsa -N ''
|
||||
|
||||
# Resource Group on Azure
|
||||
az group create -n $READY_RG -l $READY_LOCATION
|
||||
```
|
||||
|
||||
### AKS - K8s Cluster
|
||||
### ACR & AKS
|
||||
|
||||
```bash
|
||||
# Create the AKS cluster using your AZURE_CLIENT_SECRET and AZURE_CLIENT_ID variables (You should set it before to run this script)
|
||||
az aks create -g $READY_RG -n $READY_RG --ssh-key-value $READY_PATH/readywint18.pub --node-count 3 --client-secret $AZURE_CLIENT_SECRET --service-principal $AZURE_CLIENT_ID -l $READY_LOCATION
|
||||
az acr create -n ${READY_RG}acr -g $READY_RG --sku Basic --admin-enabled -l $READY_LOCATION
|
||||
|
||||
az acr login -n ${READY_RG}acr -g $READY_RG
|
||||
|
||||
echo "Creating ServicePrincipal for AKS Cluster.."
|
||||
export SP_JSON=`az ad sp create-for-rbac --role="Contributor"`
|
||||
export SP_NAME=`echo $SP_JSON | jq -r '.name'`
|
||||
export SP_PASS=`echo $SP_JSON | jq -r '.password'`
|
||||
export SP_ID=`echo $SP_JSON | jq -r '.appId'`
|
||||
echo "Service Principal Name: " $SP_NAME
|
||||
echo "Service Principal Password: " $SP_PASS
|
||||
echo "Service Principal Id: " $SP_ID
|
||||
|
||||
echo "Retrieving Registry ID..."
|
||||
|
||||
ACR_ID="$(az acr show -n ${READY_RG}acr -g $READY_RG --query "id" --output tsv)"
|
||||
|
||||
echo "Registry Id:"$ACR_ID
|
||||
|
||||
echo "Granting Service Princpal " $SP_NAME " access to ACR..."
|
||||
(
|
||||
set -x
|
||||
az role assignment create --assignee $SP_ID --role Reader --scope $ACR_ID
|
||||
)
|
||||
|
||||
az aks create -g $READY_RG -n $READY_RG --ssh-key-value $READY_PATH/pumrpmicro.pub --node-count 3 -k 1.11.5 --client-secret $SP_PASS --service-principal $SP_ID -l $READY_LOCATION
|
||||
|
||||
az aks get-credentials -g $READY_RG -n $READY_RG
|
||||
|
||||
|
@ -42,191 +69,168 @@ az aks get-credentials -g $READY_RG -n $READY_RG
|
|||
### MongoDB Backend using CosmosDB
|
||||
|
||||
```bash
|
||||
az cosmosdb create -n ${READY_RG}db -g $READY_RG --kind MongoDB
|
||||
READY_COSMOSDB_NAME=${READY_RG}db
|
||||
az cosmosdb create -n $READY_COSMOSDB_NAME -g $READY_RG --kind MongoDB
|
||||
|
||||
READY_COSMOSDB_TEMP=$(az cosmosdb list-connection-strings -n ${READY_RG}db -g ${READY_RG} -o tsv --query 'connectionStrings[0].[connectionString]')
|
||||
|
||||
READY_COSMOSDB=$(echo ${READY_COSMOSDB_TEMP/?ssl=true/pumrp?ssl=true})
|
||||
READY_COSMOSDB_PASS=$(az cosmosdb list-keys -n $READY_COSMOSDB_NAME -g ${READY_RG} -o tsv --query 'primaryMasterKey')
|
||||
|
||||
READY_COSMOSDB="mongodb://${READY_COSMOSDB_NAME}:${READY_COSMOSDB_PASS}@${READY_COSMOSDB_NAME}.documents.azure.com:10255/${READY_COSMOSDB_NAME}?ssl=true&replicaSet=globaldb"
|
||||
```
|
||||
|
||||
Edit `load_mock_data.js` with your DB information and run it to load your database with mock data:
|
||||
```
|
||||
$ node load_mock_data.js
|
||||
(node:82192) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
|
||||
Install the node.js mongodb npm package.
|
||||
`npm install mongodb`
|
||||
|
||||
Execute `load_mock_data.js` with your DB information and run it to load your database with mock data:
|
||||
|
||||
```shell
|
||||
$ node ./deploy/load_mock_data.js $READY_COSMOSDB_NAME $READY_COSMOSDB_PASS
|
||||
Connected successfully to server
|
||||
Records Imported
|
||||
```
|
||||
|
||||
### ACR - Private Registry
|
||||
|
||||
az acr create -n ${READY_RG}acr -g $READY_RG --sku Basic --admin-enabled -l $READY_LOCATION
|
||||
|
||||
az acr login -n ${READY_RG}acr -g $READY_RG
|
||||
|
||||
### Prerequisites in the K8s cluster
|
||||
|
||||
```bash
|
||||
# Add the secrets to be authenticated in the cluster
|
||||
kubectl create secret docker-registry puregistrykey --docker-server=https://${READY_RG}acr.azurecr.io --docker-username=${READY_RG}acr --docker-password=$READY_ACR_PASSWORD --docker-email=$READY_RG@contoso.com
|
||||
|
||||
# Install / Upgrade Helm
|
||||
helm init --upgrade
|
||||
|
||||
# Store the ACR Password locally
|
||||
READY_ACR_PASSWORD=$(az acr credential show -n ${READY_RG}acr -g ${READY_RG} -o tsv --query 'passwords[0].value')
|
||||
|
||||
# Clone the code locally
|
||||
git clone git@github.com:Microsoft/PartsUnlimitedMRPmicro.git
|
||||
kubectl create secret docker-registry puregistrykey --docker-server=https://${READY_RG}acr.azurecr.io --docker-username=${READY_RG}acr --docker-password=$READY_ACR_PASSWORD --docker-email=$READY_RG@contoso.com
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
# Add the kubernetes CosmosDB secret for APIs to connect
|
||||
kubectl create secret generic cosmosdb --from-literal=connection=$READY_COSMOSDB --from-literal=database=${READY_COSMOSDB_NAME}
|
||||
|
||||
# Install / Upgrade Helm
|
||||
kubectl create serviceaccount --namespace kube-system tillersa
|
||||
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tillersa
|
||||
helm init --upgrade --service-account tillersa
|
||||
```
|
||||
|
||||
## Application
|
||||
|
||||
### Prometheus and Grafana
|
||||
|
||||
```bash
|
||||
cd $READY_PATH
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
|
||||
helm install ./deploy/helm/individual/prometheus --name=prometheus
|
||||
|
||||
helm install --name grafana stable/grafana --set server.service.type=LoadBalancer
|
||||
```
|
||||
|
||||
### Cassandra
|
||||
|
||||
```bash
|
||||
cd $READY_PATH
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
|
||||
helm install ./deploy/helm/cassandra --name=cassandradbs
|
||||
```
|
||||
|
||||
### Zipkin
|
||||
|
||||
```bash
|
||||
cd $READY_PATH
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
|
||||
docker run --rm -v $PWD/ZipkinServer:/project -w /project --name gradle gradle:3.4.1-jdk8-alpine gradle build
|
||||
|
||||
docker build -f ./ZipkinServer/Dockerfile --build-arg port=9411 -t ${READY_RG}acr.azurecr.io/zipkin:v1.0 .
|
||||
|
||||
docker push ${READY_RG}acr.azurecr.io/zipkin:v1.0
|
||||
|
||||
helm install ./deploy/helm/individual/zipkinserver --name=zipkin --set image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/zipkin
|
||||
```
|
||||
|
||||
### API Gateway
|
||||
|
||||
```bash
|
||||
cd $READY_PATH
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
|
||||
docker run --rm -v $PWD/RestAPIGateway:/project -w /project --name gradle gradle:3.4.1-jdk8-alpine gradle build -x test
|
||||
|
||||
docker build -f ./RestAPIGateway/Dockerfile --build-arg port=9020 -t ${READY_RG}acr.azurecr.io/apigateway:v1.0 .
|
||||
|
||||
docker push ${READY_RG}acr.azurecr.io/apigateway:v1.0
|
||||
|
||||
helm install ./deploy/helm/individual/apigateway --name=api --set image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/apigateway
|
||||
```
|
||||
These are the required steps to get the application and all microservices running.
|
||||
|
||||
### FrontEnd - Client
|
||||
|
||||
To simply deploy the latest tagged image from Docker hub:
|
||||
|
||||
```bash
|
||||
cd $READY_PATH
|
||||
helm install ./deploy/helm/pumrpmicro --name=web --set service.type=LoadBalancer,image.name=pumrp-web,image.repository=microsoft
|
||||
```
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
**OR**
|
||||
To build the image, push to ACR, and deploy the image from ACR:
|
||||
|
||||
```bash
|
||||
docker run --rm -v $PWD/Web:/project -w /project --name gradle gradle:3.4.1-jdk8-alpine gradle build
|
||||
|
||||
docker build -f ./Web/Dockerfile --build-arg port=8080 -t ${READY_RG}acr.azurecr.io/puclient:v1.0 .
|
||||
docker build -f ./Web/Dockerfile --build-arg port=8080 -t ${READY_RG}acr.azurecr.io/pumrp/pumrp-web:v1.0 .
|
||||
|
||||
docker push ${READY_RG}acr.azurecr.io/puclient:v1.0
|
||||
docker push ${READY_RG}acr.azurecr.io/pumrp/pumrp-web:v1.0
|
||||
|
||||
helm install ./deploy/helm/individual/partsunlimitedmrp --name=client --set image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/puclient
|
||||
helm install ./deploy/helm/pumrpmicro --name=client --set labels.tier=frontend,service.type=LoadBalancer,image.name=pumrp-web,image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/pumrp
|
||||
```
|
||||
|
||||
> Note: The client is served on the `/mrp_client/` path.
|
||||
|
||||
### Backend - Order Service
|
||||
|
||||
To simply deploy the latest tagged image from Docker hub:
|
||||
|
||||
```bash
|
||||
cd $READY_PATH
|
||||
helm install ./deploy/helm/pumrpmicro --name=order --set image.name=pumrp-order,image.repository=microsoft
|
||||
```
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
**OR**
|
||||
To build the image, push to ACR, and deploy the image from ACR:
|
||||
|
||||
```bash
|
||||
docker run --rm -v $PWD/OrderSrvc:/project -w /project --name gradle gradle:3.4.1-jdk8-alpine gradle build
|
||||
|
||||
docker build -f ./OrderSrvc/Dockerfile --build-arg port=8080 --build-arg mongo_connection=$READY_COSMOSDB -t ${READY_RG}acr.azurecr.io/puorder:v1.0 .
|
||||
docker build -f ./OrderSrvc/Dockerfile --build-arg port=8080 --build-arg mongo_connection=$READY_COSMOSDB -t ${READY_RG}acr.azurecr.io/pumrp/pumrp-order:v1.0 .
|
||||
|
||||
docker push ${READY_RG}acr.azurecr.io/puorder:v1.0
|
||||
docker push ${READY_RG}acr.azurecr.io/pumrp/pumrp-order:v1.0
|
||||
|
||||
helm install ./deploy/helm/individual/orderservice --name=order --set image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/puorder
|
||||
helm install ./deploy/helm/pumrpmicro --name=order --set image.name=pumrp-order,image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/pumrp
|
||||
```
|
||||
|
||||
### Backend - Catalog Service
|
||||
|
||||
To simply deploy the latest tagged image from Docker hub:
|
||||
|
||||
```bash
|
||||
cd $READY_PATH
|
||||
helm install ./deploy/helm/pumrpmicro --name=catalog --set image.name=pumrp-catalog,image.repository=microsoft
|
||||
```
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
**OR**
|
||||
To build the image, push to ACR, and deploy the image from ACR:
|
||||
|
||||
```bash
|
||||
docker run --rm -v $PWD/CatalogSrvc:/project -w /project --name gradle gradle:3.4.1-jdk8-alpine gradle build
|
||||
|
||||
docker build -f ./CatalogSrvc/Dockerfile --build-arg port=8080 --build-arg mongo_connection=$READY_COSMOSDB -t ${READY_RG}acr.azurecr.io/pucatalog:v1.0 .
|
||||
docker build -f ./CatalogSrvc/Dockerfile --build-arg port=8080 --build-arg mongo_connection=$READY_COSMOSDB -t ${READY_RG}acr.azurecr.io/pumrp/pumrp-catalog:v1.0 .
|
||||
|
||||
docker push ${READY_RG}acr.azurecr.io/pucatalog:v1.0
|
||||
docker push ${READY_RG}acr.azurecr.io/pumrp/pumrp-catalog:v1.0
|
||||
|
||||
helm install ./deploy/helm/individual/catalogservice --name=catalog --set image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/pucatalog
|
||||
helm install ./deploy/helm/pumrpmicro --name=catalog --set image.name=pumrp-catalog,image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/pumrp
|
||||
```
|
||||
|
||||
### Backend - Shipment Service
|
||||
|
||||
To simply deploy the latest tagged image from Docker hub:
|
||||
|
||||
```bash
|
||||
cd $READY_PATH
|
||||
helm install ./deploy/helm/pumrpmicro --name=shipment --set image.name=pumrp-shipment,image.repository=microsoft
|
||||
```
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
**OR**
|
||||
To build the image, push to ACR, and deploy the image from ACR:
|
||||
|
||||
```bash
|
||||
docker run --rm -v $PWD/ShipmentSrvc:/project -w /project --name gradle gradle:3.4.1-jdk8-alpine gradle build
|
||||
|
||||
docker build -f ./ShipmentSrvc/Dockerfile --build-arg port=8080 --build-arg mongo_connection=$READY_COSMOSDB -t ${READY_RG}acr.azurecr.io/pushipment:v1.0 .
|
||||
docker build -f ./ShipmentSrvc/Dockerfile --build-arg port=8080 --build-arg mongo_connection=$READY_COSMOSDB -t ${READY_RG}acr.azurecr.io/pumrp/pumrp-shipment:v1.0 .
|
||||
|
||||
docker push ${READY_RG}acr.azurecr.io/pushipment:v1.0
|
||||
docker push ${READY_RG}acr.azurecr.io/pumrp/pumrp-shipment:v1.0
|
||||
|
||||
helm install ./deploy/helm/individual/shipmentservice --name=shipment --set image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/pushipment
|
||||
helm install ./deploy/helm/pumrpmicro --name=shipment --set image.name=pumrp-shipment,image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/pumrp
|
||||
```
|
||||
|
||||
### Backend - Quote Service
|
||||
|
||||
To simply deploy the latest tagged image from Docker hub:
|
||||
|
||||
```bash
|
||||
cd $READY_PATH
|
||||
helm install ./deploy/helm/pumrpmicro --name=quote --set image.name=pumrp-quote,image.repository=microsoft
|
||||
```
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
**OR**
|
||||
To build the image, push to ACR, and deploy the image from ACR:
|
||||
|
||||
```bash
|
||||
docker run --rm -v $PWD/QuoteSrvc:/project -w /project --name gradle gradle:3.4.1-jdk8-alpine gradle build
|
||||
|
||||
docker build -f ./QuoteSrvc/Dockerfile --build-arg port=8080 --build-arg mongo_connection=$READY_COSMOSDB -t ${READY_RG}acr.azurecr.io/puquote:v1.0 .
|
||||
docker build -f ./QuoteSrvc/Dockerfile --build-arg port=8080 --build-arg mongo_connection=$READY_COSMOSDB -t ${READY_RG}acr.azurecr.io/pumrp/pumrp-quote:v1.0 .
|
||||
|
||||
docker push ${READY_RG}acr.azurecr.io/puquote:v1.0
|
||||
docker push ${READY_RG}acr.azurecr.io/pumrp/pumrp-quote:v1.0
|
||||
|
||||
helm install ./deploy/helm/individual/quoteservice --name=quote --set image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/puquote
|
||||
helm install ./deploy/helm/pumrpmicro --name=quote --set image.name=pumrp-quote,image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/pumrp
|
||||
```
|
||||
|
||||
### Backend - Dealer Service
|
||||
|
||||
To simply deploy the latest tagged image from Docker hub:
|
||||
|
||||
```bash
|
||||
cd $READY_PATH
|
||||
|
||||
cd PartsUnlimitedMRPmicro
|
||||
|
||||
docker build --build-arg mongo_connection=$READY_COSMOSDB --build-arg mongo_database=purmp -f DealerService/Dockerfile -t ${READY_RG}acr.azurecr.io/pudealer:v1.0 .
|
||||
|
||||
docker push ${READY_RG}acr.azurecr.io/pudealer:v1.0
|
||||
|
||||
helm install ./deploy/helm/individual/dealerservice --name=dealer --set image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/pudealer
|
||||
helm install ./deploy/helm/pumrpmicro --name=quote --set image.name=pumrp-dealer,image.repository=microsoft
|
||||
```
|
||||
|
||||
**OR**
|
||||
To build the image, push to ACR, and deploy the image from ACR:
|
||||
|
||||
```bash
|
||||
docker build --build-arg mongo_connection=$READY_COSMOSDB -f DealerService/Dockerfile -t ${READY_RG}acr.azurecr.io/pumrp/pumrp-dealer:v1.0 .
|
||||
|
||||
docker push ${READY_RG}acr.azurecr.io/pumrp/pumrp-dealer:v1.0
|
||||
|
||||
helm install ./deploy/helm/pumrpmicro --name=dealer --set image.name=pumrp-dealer,image.tag=v1.0,image.repository=${READY_RG}acr.azurecr.io/pumrp
|
||||
```
|
||||
|
|
|
@ -1,117 +0,0 @@
|
|||
//db = conn.getDB("ordering");
|
||||
db.catalog.insert(
|
||||
[
|
||||
{"skuNumber" : "LIG-0001", "description" : "Helogen Headlights (2 Pack)", "price" : 38.99, "inventory" : 10, "leadTime" : 3},
|
||||
{"skuNumber" : "LIG-0002", "description" : "Bugeye Headlights (2 Pack)", "price" : 48.99, "inventory" : 7, "leadTime" : 3},
|
||||
{"skuNumber" : "LIG-0003", "description" : "Turn Signal Light Bulb", "price" : 6.49, "inventory" : 18, "leadTime" : 3},
|
||||
{"skuNumber" : "WHE-0001", "description" : "Matte Finish Rim", "price" : 75.99, "inventory" : 4, "leadTime" : 5},
|
||||
{"skuNumber" : "WHE-0002", "description" : "Blue Performance Alloy Rim", "price" : 88.99, "inventory" : 8, "leadTime" : 5},
|
||||
{"skuNumber" : "WHE-0003", "description" : "High Performance Rim", "price" : 99.99, "inventory" : 3, "leadTime" : 5},
|
||||
{"skuNumber" : "WHE-0004", "description" : "Wheel Tire Combo", "price" : 72.49, "inventory" : 0, "leadTime" : 4},
|
||||
{"skuNumber" : "WHE-0005", "description" : "Chrome Rim Tire Combo", "price" : 129.99, "inventory" : 1, "leadTime" : 4},
|
||||
{"skuNumber" : "WHE-0006", "description" : "Wheel Tire Combo (4 Pack)", "price" : 219.99, "inventory" : 3, "leadTime" : 6},
|
||||
{"skuNumber" : "BRA-0001", "description" : "Disk and Pad Combo", "price" : 25.99, "inventory" : 0, "leadTime" : 6},
|
||||
{"skuNumber" : "BRA-0002", "description" : "Brake Rotor", "price" : 18.99, "inventory" : 4, "leadTime" : 4},
|
||||
{"skuNumber" : "BRA-0003", "description" : "Brake Disk and Calipers", "price" : 43.99, "inventory" : 2, "leadTime" : 8},
|
||||
{"skuNumber" : "BAT-0001", "description" : "12-Volt Calcium Battery", "price" : 129.99, "inventory" : 9, "leadTime" : 8},
|
||||
{"skuNumber" : "BAT-0002", "description" : "Spiral Coil Battery", "price" : 154.99, "inventory" : 3, "leadTime" : 10},
|
||||
{"skuNumber" : "BAT-0003", "description" : "Jumper Leads", "price" : 16.99, "inventory" : 6, "leadTime" : 3},
|
||||
{"skuNumber" : "OIL-0001", "description" : "Filter Set", "price" : 28.99, "inventory" : 3, "leadTime" : 4},
|
||||
{"skuNumber" : "OIL-0002", "description" : "Oil and Filter Combo", "price" : 34.49, "inventory" : 5, "leadTime" : 4},
|
||||
{"skuNumber" : "OIL-0003", "description" : "Synthetic Engine Oil", "price" : 39.99, "inventory" : 11, "leadTime" : 4}
|
||||
])
|
||||
|
||||
db.dealers.insert({ "name" : "Terry Adams", "address" : "17760 Northeast 67th Court, Redmond, WA 98052", "email" : "terry@adams.com", "phone" : "425-885-6217" })
|
||||
|
||||
db.quotes.insert([{
|
||||
"quoteId" : "0",
|
||||
"validUntil" : "2015-05-01T00:00:00+0000",
|
||||
"customerName" : "Walter Harp",
|
||||
"dealerName" : "Terry Adams",
|
||||
"city" : "Seattle",
|
||||
"totalCost" : "51.97",
|
||||
"discount" : "0.0",
|
||||
"state" : "WA",
|
||||
"postalCode" : "98023",
|
||||
"quoteItems" : [
|
||||
{"skuNumber":"LIG-0001", "amount":1 },
|
||||
{"skuNumber":"LIG-0003", "amount":2 }]
|
||||
},
|
||||
{
|
||||
"quoteId" : "1",
|
||||
"validUntil" : "2015-01-01T00:00:00+0000",
|
||||
"customerName" : "Jerry Morrison",
|
||||
"dealerName" : "Terry Adams",
|
||||
"city" : "Seattle",
|
||||
"totalCost" : "25.99",
|
||||
"state" : "WA",
|
||||
"postalCode" : "98089",
|
||||
"quoteItems" : [
|
||||
{ "skuNumber" : "BRA-0001", "amount" : 1}
|
||||
]
|
||||
},
|
||||
{
|
||||
"quoteId" : "2",
|
||||
"validUntil" : "2015-02-01T00:00:00+0000",
|
||||
"customerName" : "Harrison Hall",
|
||||
"dealerName" : "Terry Adams",
|
||||
"city" : "Seattle",
|
||||
"totalCost" : "600.90",
|
||||
"discount" : "0.0",
|
||||
"state" : "WA",
|
||||
"postalCode" : "98027",
|
||||
"quoteItems" : [
|
||||
{ "skuNumber" : "WHE-0002", "amount" : 4},
|
||||
{ "skuNumber" : "BRA-0003", "amount" : 4},
|
||||
{ "skuNumber" : "OIL-0001", "amount" : 1},
|
||||
{ "skuNumber" : "OIL-0001", "amount" : 1}
|
||||
]
|
||||
}
|
||||
])
|
||||
|
||||
db.orders.insert([{
|
||||
"orderId" : "0",
|
||||
"quoteId" : "0",
|
||||
"orderDate" : "2015-03-02T20:43:37+0000",
|
||||
"status" : "Created",
|
||||
"events" : []
|
||||
},
|
||||
{"orderId" : "1",
|
||||
"quoteId" : "2",
|
||||
"orderDate" : "2015-03-02T20:43:37+0000",
|
||||
"status" : "DeliveryConfirmed",
|
||||
"events" : []
|
||||
}])
|
||||
|
||||
db.shipments.insert([{
|
||||
"orderId" : "0",
|
||||
"contactName" : "Walter Harp",
|
||||
"primaryContactPhone" : {
|
||||
"phoneNumber" : "435-783-2378",
|
||||
"kind" : "Mobile"
|
||||
},
|
||||
"deliveryAddress" : {
|
||||
"street" : "34 Sheridan Street",
|
||||
"city" : "Seattle",
|
||||
"state" : "WA",
|
||||
"postalCode" : "98023",
|
||||
"specialInstructions" : ""
|
||||
},
|
||||
"events" : []
|
||||
},
|
||||
{
|
||||
"orderId" : "2",
|
||||
"contactName" : "Harrison Hall",
|
||||
"primaryContactPhone" : {
|
||||
"phoneNumber" : "435-712-7234",
|
||||
"kind" : "Mobile"
|
||||
},
|
||||
"deliveryAddress" : {
|
||||
"street" : "84 Queen Street",
|
||||
"city" : "Seattle",
|
||||
"state" : "WA",
|
||||
"postalCode" : "98027",
|
||||
"specialInstructions" : "Leave around by the back door."
|
||||
},
|
||||
"events" : []
|
||||
}])
|
|
@ -1,8 +0,0 @@
|
|||
version: "2"
|
||||
|
||||
services:
|
||||
pucatalog:
|
||||
build: .
|
||||
image: puregistry-on.azurecr.io/pucatalog
|
||||
ports:
|
||||
- "8080"
|
|
@ -1,8 +0,0 @@
|
|||
version: "2"
|
||||
|
||||
services:
|
||||
puclient:
|
||||
build: .
|
||||
image: puregistry-on.azurecr.io/puclient:latest
|
||||
ports:
|
||||
- "80"
|
|
@ -1,41 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pumrpclientservice
|
||||
labels:
|
||||
version: PartsUnlimitedMrp
|
||||
spec:
|
||||
selector:
|
||||
app: PartsUnlimitedMrp
|
||||
tier: FrontendService
|
||||
link: PartsUnlimitedMrp
|
||||
type: LoadBalancer
|
||||
sessionAffinity: None
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pumrpclientdeployment
|
||||
spec:
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: PartsUnlimitedMrp
|
||||
tier: FrontendDeployment
|
||||
link: PartsUnlimitedMrp
|
||||
spec:
|
||||
containers:
|
||||
- name: partsunlimitedmrp
|
||||
image: puregistry-on.azurecr.io/puclient:latest
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
imagePullSecrets:
|
||||
- name: puregistrykey
|
|
@ -1,8 +0,0 @@
|
|||
version: "2"
|
||||
|
||||
services:
|
||||
pudealer:
|
||||
build: .
|
||||
image: puregistry-on.azurecr.io/pudealer:latest
|
||||
ports:
|
||||
- "8080"
|
|
@ -1,8 +0,0 @@
|
|||
version: "2"
|
||||
|
||||
services:
|
||||
puorder:
|
||||
build: .
|
||||
image: puregistry-on.azurecr.io/puorder:latest
|
||||
ports:
|
||||
- "8080"
|
|
@ -1,41 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: pumrporderservice
|
||||
labels:
|
||||
version: PartsUnlimitedMrp
|
||||
spec:
|
||||
selector:
|
||||
app: PartsUnlimitedMrp
|
||||
tier: OrderService
|
||||
link: PartsUnlimitedMrp
|
||||
type: ClusterIP
|
||||
sessionAffinity: None
|
||||
ports:
|
||||
- port: 8080
|
||||
targetPort: http
|
||||
protocol: TCP
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: pumrporderdeployment
|
||||
spec:
|
||||
replicas: 1
|
||||
strategy:
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: PartsUnlimitedMrp
|
||||
tier: OrderDeployment
|
||||
link: PartsUnlimitedMrp
|
||||
spec:
|
||||
containers:
|
||||
- name: partsunlimitedmrp
|
||||
image: puregistry-on.azurecr.io/puorder:latest
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
imagePullSecrets:
|
||||
- name: puregistrykey
|
Двоичные данные
deploy/docker/Order/orderservicemsa-0.9.1.jar
Двоичные данные
deploy/docker/Order/orderservicemsa-0.9.1.jar
Двоичный файл не отображается.
|
@ -1,8 +0,0 @@
|
|||
version: "2"
|
||||
|
||||
services:
|
||||
puorder:
|
||||
build: .
|
||||
image: puregistry-on.azurecr.io/puquote:latest
|
||||
ports:
|
||||
- "8080"
|
|
@ -1,8 +0,0 @@
|
|||
version: "2"
|
||||
|
||||
services:
|
||||
pushipment:
|
||||
build: .
|
||||
image: puregistry-on.azurecr.io/pushipment:latest
|
||||
ports:
|
||||
- "8080"
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,3 +0,0 @@
|
|||
apiVersion: v1
|
||||
entries: {}
|
||||
generated: 2017-03-10T12:31:05.4896309+05:30
|
|
@ -1,15 +0,0 @@
|
|||
apiVersion: v1
|
||||
generated: 2017-03-10T12:31:04.5110303+05:30
|
||||
repositories:
|
||||
- caFile: ""
|
||||
cache: .helm\repository\cache\stable-index.yaml
|
||||
certFile: ""
|
||||
keyFile: ""
|
||||
name: stable
|
||||
url: https://kubernetes-charts.storage.googleapis.com
|
||||
- caFile: ""
|
||||
cache: .helm\repository\cache\local-index.yaml
|
||||
certFile: ""
|
||||
keyFile: ""
|
||||
name: local
|
||||
url: http://127.0.0.1:8879/charts
|
|
@ -1,23 +0,0 @@
|
|||
apiVersion: extensions/v1beta1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- containerPort: {{ .Values.service.internalPort }}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.service.imagePullSecrets }}
|
|
@ -1,17 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.internalPort }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.name }}
|
||||
selector:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
|
@ -1,25 +0,0 @@
|
|||
# Default values for PartsUnlimitedMrp.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
replicaCount: 1
|
||||
image:
|
||||
repository: puregistry-on.azurecr.io/apigateway
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
tier: backend
|
||||
link: PartsUnlimitedMrp
|
||||
service:
|
||||
name: apigateway-service
|
||||
type: ClusterIP
|
||||
externalPort: 9020
|
||||
internalPort: 9020
|
||||
imagePullSecrets: puregistrykey
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
apiVersion: v1
|
||||
description: A Helm chart for Catalog Service
|
||||
name: catalogservice
|
||||
version: 0.1.0
|
||||
sources:
|
||||
- https://dxdevop.visualstudio.com/mrpmicro/_git/code
|
||||
maintainers:
|
||||
- name: Parts Unlimited MRP GitHub Team
|
||||
engine: gotpl
|
|
@ -1,24 +0,0 @@
|
|||
apiVersion: {{ .Values.apiversion.deployment }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: {{ .Values.service.portName }}
|
||||
containerPort: {{ .Values.service.internalPort }}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.service.imagePullSecrets }}
|
|
@ -1,29 +0,0 @@
|
|||
# Default values for orderservice.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
replicaCount: 1
|
||||
apiversion:
|
||||
deployment: apps/v1beta1 # for versions 1.8+ use apps/v1beta2
|
||||
image:
|
||||
repository: mypumrpmicro.azurecr.io/pumrp
|
||||
name: pumrp-catalog
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
labels:
|
||||
tier: backend
|
||||
link: PartsUnlimitedMrp
|
||||
service:
|
||||
name: catalog-service
|
||||
type: ClusterIP
|
||||
portName: http
|
||||
externalPort: 80
|
||||
internalPort: 8080
|
||||
imagePullSecrets: puregistrykey
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
apiVersion: v1
|
||||
description: A Helm chart for Dealer Service
|
||||
name: dealerservice
|
||||
version: 0.1.0
|
||||
sources:
|
||||
- https://dxdevop.visualstudio.com/mrpmicro/_git/code
|
||||
maintainers:
|
||||
- name: Parts Unlimited MRP GitHub Team
|
||||
engine: gotpl
|
|
@ -1,15 +0,0 @@
|
|||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT/login
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
|
||||
{{- end }}
|
|
@ -1,17 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.portName }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.name }}
|
||||
selector:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
|
@ -1,29 +0,0 @@
|
|||
# Default values for orderservice.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
replicaCount: 1
|
||||
apiversion:
|
||||
deployment: apps/v1beta1 # for versions 1.8+ use apps/v1beta2
|
||||
image:
|
||||
repository: mypumrpmicro.azurecr.io/pumrp
|
||||
name: pumrp-dealer
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
labels:
|
||||
tier: backend
|
||||
link: PartsUnlimitedMrp
|
||||
service:
|
||||
name: dealer-service
|
||||
type: ClusterIP
|
||||
portName: http
|
||||
externalPort: 80
|
||||
internalPort: 8080
|
||||
imagePullSecrets: puregistrykey
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -1,9 +0,0 @@
|
|||
apiVersion: v1
|
||||
description: A Helm chart for Order Service
|
||||
name: orderservice
|
||||
version: 0.1.0
|
||||
sources:
|
||||
- https://dxdevop.visualstudio.com/mrpmicro/_git/code
|
||||
maintainers:
|
||||
- name: Parts Unlimited MRP GitHub Team
|
||||
engine: gotpl
|
|
@ -1,15 +0,0 @@
|
|||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT/login
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
|
||||
{{- end }}
|
|
@ -1,16 +0,0 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -1,24 +0,0 @@
|
|||
apiVersion: {{ .Values.apiversion.deployment }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: {{ .Values.service.portName }}
|
||||
containerPort: {{ .Values.service.internalPort }}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.service.imagePullSecrets }}
|
|
@ -1,17 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.portName }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.name }}
|
||||
selector:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
|
@ -1,29 +0,0 @@
|
|||
# Default values for orderservice.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
replicaCount: 1
|
||||
apiversion:
|
||||
deployment: apps/v1beta1 # for versions 1.8+ use apps/v1beta2
|
||||
image:
|
||||
repository: mypumrpmicro.azurecr.io/pumrp
|
||||
name: pumrp-order
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
labels:
|
||||
tier: backend
|
||||
link: PartsUnlimitedMrp
|
||||
service:
|
||||
name: order-service
|
||||
type: ClusterIP
|
||||
portName: http
|
||||
externalPort: 80
|
||||
internalPort: 8080
|
||||
imagePullSecrets: puregistrykey
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -1,9 +0,0 @@
|
|||
apiVersion: v1
|
||||
description: A Helm chart for Parts Unlimited Mrp
|
||||
name: partsunlimitedmrp
|
||||
version: 0.1.0
|
||||
sources:
|
||||
- https://dxdevop.visualstudio.com/mrpmicro/_git/code
|
||||
maintainers:
|
||||
- name: Parts Unlimited MRP GitHub Team
|
||||
engine: gotpl
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,3 +0,0 @@
|
|||
apiVersion: v1
|
||||
entries: {}
|
||||
generated: 2017-03-10T12:31:05.4896309+05:30
|
|
@ -1,15 +0,0 @@
|
|||
apiVersion: v1
|
||||
generated: 2017-03-10T12:31:04.5110303+05:30
|
||||
repositories:
|
||||
- caFile: ""
|
||||
cache: .helm\repository\cache\stable-index.yaml
|
||||
certFile: ""
|
||||
keyFile: ""
|
||||
name: stable
|
||||
url: https://kubernetes-charts.storage.googleapis.com
|
||||
- caFile: ""
|
||||
cache: .helm\repository\cache\local-index.yaml
|
||||
certFile: ""
|
||||
keyFile: ""
|
||||
name: local
|
||||
url: http://127.0.0.1:8879/charts
|
|
@ -1,15 +0,0 @@
|
|||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT/login
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
|
||||
{{- end }}
|
|
@ -1,16 +0,0 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -1,24 +0,0 @@
|
|||
apiVersion: {{ .Values.apiversion.deployment }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: {{ .Values.service.portName }}
|
||||
containerPort: {{ .Values.service.internalPort }}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.service.imagePullSecrets }}
|
|
@ -1,17 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.internalPort }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.name }}
|
||||
selector:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
|
@ -1,21 +0,0 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -1,16 +0,0 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -1,21 +0,0 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -1,9 +0,0 @@
|
|||
apiVersion: v1
|
||||
description: A Helm chart for Quotes Service
|
||||
name: quoteservice
|
||||
version: 0.1.0
|
||||
sources:
|
||||
- https://dxdevop.visualstudio.com/mrpmicro/_git/code
|
||||
maintainers:
|
||||
- name: Parts Unlimited MRP GitHub Team
|
||||
engine: gotpl
|
|
@ -1,15 +0,0 @@
|
|||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT/login
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
|
||||
{{- end }}
|
|
@ -1,16 +0,0 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -1,24 +0,0 @@
|
|||
apiVersion: {{ .Values.apiversion.deployment }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: {{ .Values.service.portName }}
|
||||
containerPort: {{ .Values.service.internalPort }}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.service.imagePullSecrets }}
|
|
@ -1,17 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.portName }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.name }}
|
||||
selector:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
|
@ -1,29 +0,0 @@
|
|||
# Default values for orderservice.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
replicaCount: 1
|
||||
apiversion:
|
||||
deployment: apps/v1beta1 # for versions 1.8+ use apps/v1beta2
|
||||
image:
|
||||
repository: mypumrpmicro.azurecr.io/pumrp
|
||||
name: pumrp-quote
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
labels:
|
||||
tier: backend
|
||||
link: PartsUnlimitedMrp
|
||||
service:
|
||||
name: quote-service
|
||||
type: ClusterIP
|
||||
portName: http
|
||||
externalPort: 80
|
||||
internalPort: 8080
|
||||
imagePullSecrets: puregistrykey
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -1,9 +0,0 @@
|
|||
apiVersion: v1
|
||||
description: A Helm chart for Shipment Service
|
||||
name: shipmentservice
|
||||
version: 0.1.0
|
||||
sources:
|
||||
- https://dxdevop.visualstudio.com/mrpmicro/_git/code
|
||||
maintainers:
|
||||
- name: Parts Unlimited MRP GitHub Team
|
||||
engine: gotpl
|
|
@ -1,15 +0,0 @@
|
|||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT/login
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
|
||||
{{- end }}
|
|
@ -1,16 +0,0 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -1,24 +0,0 @@
|
|||
apiVersion: {{ .Values.apiversion.deployment }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: {{ .Values.service.portName }}
|
||||
containerPort: {{ .Values.service.internalPort }}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.service.imagePullSecrets }}
|
|
@ -1,17 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.portName }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.name }}
|
||||
selector:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
|
@ -1,29 +0,0 @@
|
|||
# Default values for orderservice.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
replicaCount: 1
|
||||
apiversion:
|
||||
deployment: apps/v1beta1 # for versions 1.8+ use apps/v1beta2
|
||||
image:
|
||||
repository: mypumrpmicro.azurecr.io/pumrp
|
||||
name: pumrp-shipment
|
||||
tag: latest
|
||||
pullPolicy: Always
|
||||
labels:
|
||||
tier: backend
|
||||
link: PartsUnlimitedMrp
|
||||
service:
|
||||
name: shipment-service
|
||||
type: ClusterIP
|
||||
portName: http
|
||||
externalPort: 80
|
||||
internalPort: 8080
|
||||
imagePullSecrets: puregistrykey
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -1,15 +0,0 @@
|
|||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT/login
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:{{ .Values.service.externalPort }}
|
||||
{{- end }}
|
|
@ -1,16 +0,0 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -1,17 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.portName }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.name }}
|
||||
selector:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
|
@ -1,21 +0,0 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -1,9 +0,0 @@
|
|||
apiVersion: v1
|
||||
description: A Helm chart for the entire Parts Unlimited Mrp application suite
|
||||
name: partsunlimitedmrp
|
||||
version: 0.1.1
|
||||
sources:
|
||||
- https://github.com/Microsoft/PartsUnlimitedMRPmicro
|
||||
maintainers:
|
||||
- name: Parts Unlimited MRP GitHub Team
|
||||
engine: gotpl
|
|
@ -1,21 +0,0 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -1,9 +0,0 @@
|
|||
apiVersion: v1
|
||||
description: A Helm chart for Catalog Service
|
||||
name: catalogservice
|
||||
version: 0.1.1
|
||||
sources:
|
||||
- https://dxdevop.visualstudio.com/mrpmicro/_git/code
|
||||
maintainers:
|
||||
- name: Parts Unlimited MRP GitHub Team
|
||||
engine: gotpl
|
|
@ -1,15 +0,0 @@
|
|||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT/login
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
|
||||
{{- end }}
|
|
@ -1,16 +0,0 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -1,24 +0,0 @@
|
|||
apiVersion: {{ .Values.global.apiversion.deployment }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: {{ .Values.service.portName }}
|
||||
containerPort: {{ .Values.service.internalPort }}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.service.imagePullSecrets }}
|
|
@ -1,17 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.portName }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.name }}
|
||||
selector:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
|
@ -1,25 +0,0 @@
|
|||
# Default values for orderservice.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
replicaCount: 1
|
||||
image:
|
||||
name: pumrp-catalog
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
tier: backend
|
||||
link: PartsUnlimitedMrp
|
||||
service:
|
||||
name: catalog-service
|
||||
type: ClusterIP
|
||||
portName: http
|
||||
externalPort: 80
|
||||
internalPort: 8080
|
||||
imagePullSecrets: puregistrykey
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
|
@ -1,21 +0,0 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
|
@ -1,9 +0,0 @@
|
|||
apiVersion: v1
|
||||
description: A Helm chart for Dealer Service
|
||||
name: dealerservice
|
||||
version: 0.1.1
|
||||
sources:
|
||||
- https://dxdevop.visualstudio.com/mrpmicro/_git/code
|
||||
maintainers:
|
||||
- name: Parts Unlimited MRP GitHub Team
|
||||
engine: gotpl
|
|
@ -1,15 +0,0 @@
|
|||
1. Get the application URL by running these commands:
|
||||
{{- if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT/login
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get svc -w {{ template "fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
|
||||
echo http://$SERVICE_IP:{{ .Values.service.externalPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl port-forward $POD_NAME 8080:{{ .Values.service.internalPort }}
|
||||
{{- end }}
|
|
@ -1,16 +0,0 @@
|
|||
{{/* vim: set filetype=mustache: */}}
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
*/}}
|
||||
{{- define "fullname" -}}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||
{{- end -}}
|
|
@ -1,24 +0,0 @@
|
|||
apiVersion: {{ .Values.global.apiversion.deployment }}
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.global.repository }}/{{ .Values.image.name }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
ports:
|
||||
- name: {{ .Values.service.portName }}
|
||||
containerPort: {{ .Values.service.internalPort }}
|
||||
imagePullSecrets:
|
||||
- name: {{ .Values.service.imagePullSecrets }}
|
|
@ -1,17 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ template "fullname" . }}
|
||||
labels:
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.portName }}
|
||||
protocol: TCP
|
||||
name: {{ .Values.service.name }}
|
||||
selector:
|
||||
app: {{ template "fullname" . }}
|
||||
tier: {{ .Values.labels.tier }}
|
||||
link: {{ .Values.labels.link }}
|
|
@ -1,26 +0,0 @@
|
|||
# Default values for orderservice.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
replicaCount: 1
|
||||
image:
|
||||
name: pumrp-dealer
|
||||
tag: latest
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
tier: backend
|
||||
link: PartsUnlimitedMrp
|
||||
service:
|
||||
name: dealer-service
|
||||
type: ClusterIP
|
||||
portName: http
|
||||
externalPort: 80
|
||||
internalPort: 8080
|
||||
imagePullSecrets: puregistrykey
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче