Compare commits
4 Commits
production
...
main
| Author | SHA1 | Date |
|---|---|---|
|
|
a1229aa28c | |
|
|
549d3c404e | |
|
|
83fd61830f | |
|
|
d616ce8018 |
Binary file not shown.
|
|
@ -1,66 +0,0 @@
|
||||||
apiVersion: v2
|
|
||||||
actions:
|
|
||||||
- name: "Deploy using helm"
|
|
||||||
events:
|
|
||||||
- name: "sh.keptn.event.deployment.triggered"
|
|
||||||
tasks:
|
|
||||||
- name: "Run helm"
|
|
||||||
files:
|
|
||||||
- /charts
|
|
||||||
env:
|
|
||||||
- name: IMAGE
|
|
||||||
value: "$.data.configurationChange.values.image"
|
|
||||||
valueFrom: event
|
|
||||||
image: "alpine/helm:3.7.2"
|
|
||||||
serviceAccount: "jes-deploy-using-helm"
|
|
||||||
cmd: ["helm"]
|
|
||||||
args: ["upgrade", "--force", "--create-namespace", "--install", "-n", "$(KEPTN_PROJECT)-$(KEPTN_STAGE)", "$(KEPTN_SERVICE)", "/keptn/charts/$(KEPTN_SERVICE).tgz", "--set", "image=$(IMAGE)", "--set", "keptn.service=$(KEPTN_SERVICE)", "--set", "keptn.deployment=$(KEPTN_STAGE)", "--set", "keptn.project=$(KEPTN_PROJECT)","--set", "keptn.stage=$(KEPTN_STAGE)", "--wait"]
|
|
||||||
- name: "Uninstall"
|
|
||||||
events:
|
|
||||||
- name: "sh.keptn.event.uninstall.triggered"
|
|
||||||
tasks:
|
|
||||||
- name: "Run helm uninstall"
|
|
||||||
serviceAccount: "jes-deploy-using-helm"
|
|
||||||
image: "alpine/helm:3.7.2"
|
|
||||||
cmd: ["helm"]
|
|
||||||
args: ["uninstall", "-n", "$(KEPTN_PROJECT)-$(KEPTN_STAGE)", "$(KEPTN_SERVICE)", "--wait"]
|
|
||||||
|
|
||||||
# - name: "Rollback using helm"
|
|
||||||
# events:
|
|
||||||
# - name: "sh.keptn.event.rollback.triggered"
|
|
||||||
# tasks:
|
|
||||||
# - name: "Run helm"
|
|
||||||
# serviceAccount: "jes-deploy-using-helm"
|
|
||||||
# image: "alpine/helm:3.7.2"
|
|
||||||
# cmd: ["helm"]
|
|
||||||
# args: ["rollback", "-n", "$(KEPTN_PROJECT)-$(KEPTN_STAGE)", "$(KEPTN_SERVICE)", "--wait"]
|
|
||||||
|
|
||||||
# - name: "Scale using kubectl"
|
|
||||||
# events:
|
|
||||||
# - name: "sh.keptn.event.action.triggered"
|
|
||||||
# jsonpath:
|
|
||||||
# property: "$.data.action.action"
|
|
||||||
# match: "scaling"
|
|
||||||
# tasks:
|
|
||||||
# - name: "Run kubectl"
|
|
||||||
# serviceAccount: "jes-deploy-using-helm"
|
|
||||||
# env:
|
|
||||||
# - name: SCALING
|
|
||||||
# value: $.data.action.value
|
|
||||||
# valueFrom: event
|
|
||||||
# image: "alpine/k8s:1.20.15"
|
|
||||||
# cmd: ["sh"]
|
|
||||||
# # Note: Hardcoded kubernetes namespace & KEPTN_SERVICE does most likely not match the deployment name
|
|
||||||
# args: ["-c", "REPLICAS=$(kubectl -n ${KEPTN_PROJECT}-${KEPTN_STAGE} get deployment/${KEPTN_SERVICE} -o go-template='{{.spec.replicas}}');DESIRED=$((${SCALING}+${REPLICAS}));echo Scaling deployment to ${DESIRED} && kubectl -n ${KEPTN_PROJECT}-${KEPTN_STAGE} scale --replicas=${DESIRED} deployment/${KEPTN_SERVICE}"]
|
|
||||||
|
|
||||||
# - name: "Run tests using locust"
|
|
||||||
# events:
|
|
||||||
# - name: "sh.keptn.event.test.triggered"
|
|
||||||
# tasks:
|
|
||||||
# - name: "Run locust"
|
|
||||||
# files:
|
|
||||||
# - locust/basic.py
|
|
||||||
# - locust/locust.conf
|
|
||||||
# image: "locustio/locust:2.8.6"
|
|
||||||
# cmd: ["locust"]
|
|
||||||
# args: ["--config", "/keptn/locust/locust.conf", "-f", "/keptn/locust/basic.py", "--host", "http://$(KEPTN_SERVICE)-$(KEPTN_STAGE).nttdata-xlabs.com", "--only-summary"]
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
servicename: carts-db
|
|
||||||
creationtimestamp: 2025-01-21 14:08:56.552225682 +0000 UTC
|
|
||||||
Binary file not shown.
|
|
@ -1,2 +0,0 @@
|
||||||
spec_version: '0.1.0'
|
|
||||||
dtCreds: dynatrace-service
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
---
|
|
||||||
spec_version: '1.0'
|
|
||||||
indicators:
|
|
||||||
throughput: "metricSelector=builtin:service.requestCount.total:merge(\"dt.entity.service\"):sum&entitySelector=type(SERVICE),tag(keptn_project:$PROJECT),tag(keptn_stage:$STAGE),tag(keptn_service:$SERVICE)"
|
|
||||||
error_rate: "metricSelector=builtin:service.errors.total.count:merge(\"dt.entity.service\"):avg&entitySelector=type(SERVICE),tag(keptn_project:$PROJECT),tag(keptn_stage:$STAGE),tag(keptn_service:$SERVICE)"
|
|
||||||
response_time_p50: "metricSelector=builtin:service.response.time:merge(\"dt.entity.service\"):percentile(50)&entitySelector=type(SERVICE),tag(keptn_project:$PROJECT),tag(keptn_stage:$STAGE),tag(keptn_service:$SERVICE)"
|
|
||||||
response_time_p90: "metricSelector=builtin:service.response.time:merge(\"dt.entity.service\"):percentile(90)&entitySelector=type(SERVICE),tag(keptn_project:$PROJECT),tag(keptn_stage:$STAGE),tag(keptn_service:$SERVICE)"
|
|
||||||
response_time_p95: "metricSelector=builtin:service.response.time:merge(\"dt.entity.service\"):percentile(95)&entitySelector=type(SERVICE),tag(keptn_project:$PROJECT),tag(keptn_stage:$STAGE),tag(keptn_service:$SERVICE)"
|
|
||||||
#rt_addToCart: "metricSelector=calc:service.itemscontroller.qg:filter(eq(url,addToCart)):merge(0):percentile(95)&entitySelector=tag(keptn_project:$PROJECT),tag(keptn_stage:$STAGE),tag(keptn_service:$SERVICE),type(SERVICE)"
|
|
||||||
pg_heap_suspension: "metricSelector=builtin:tech.jvm.memory.gc.suspensionTime:merge(\"dt.entity.process_group_instance\"):max&entitySelector=tag(keptn_project:$PROJECT),tag(keptn_stage:$STAGE),tag(keptn_service:$SERVICE),type(PROCESS_GROUP_INSTANCE)"
|
|
||||||
pg_cpu_usage: "metricSelector=builtin:tech.generic.cpu.usage:merge(\"dt.entity.process_group_instance\"):max&entitySelector=tag(keptn_project:$PROJECT),tag(keptn_stage:$STAGE),tag(keptn_service:$SERVICE),type(PROCESS_GROUP_INSTANCE)"
|
|
||||||
response_time_avg: "metricSelector=builtin:service.response.time:merge(\"dt.entity.service\"):avg&entitySelector=type(SERVICE),tag(keptn_project:$PROJECT),tag(keptn_stage:$STAGE),tag(keptn_service:$SERVICE)"
|
|
||||||
|
|
@ -1,77 +0,0 @@
|
||||||
apiVersion: v2
|
|
||||||
actions:
|
|
||||||
- name: "Deploy using helm"
|
|
||||||
events:
|
|
||||||
- name: "sh.keptn.event.deployment.triggered"
|
|
||||||
tasks:
|
|
||||||
# - name: "Create Namespace"
|
|
||||||
# serviceAccount: "jes-deploy-using-helm"
|
|
||||||
# # env:
|
|
||||||
# # - name: SCALING
|
|
||||||
# # value: $.data.action.value
|
|
||||||
# # valueFrom: event
|
|
||||||
# image: "alpine/k8s:1.20.15"
|
|
||||||
# cmd: ["sh"]
|
|
||||||
# # Note: Hardcoded kubernetes namespace & KEPTN_SERVICE does most likely not match the deployment name
|
|
||||||
# args: ["-c", "REPLICAS=$(kubectl -n ${KEPTN_PROJECT}-${KEPTN_STAGE} get deployment/${KEPTN_SERVICE} -o go-template='{{.spec.replicas}}');DESIRED=$((${SCALING}+${REPLICAS}));echo Scaling deployment to ${DESIRED} && kubectl -n ${KEPTN_PROJECT}-${KEPTN_STAGE} scale --replicas=${DESIRED} deployment/${KEPTN_SERVICE}"]
|
|
||||||
- name: "Run helm"
|
|
||||||
files:
|
|
||||||
- /charts
|
|
||||||
env:
|
|
||||||
- name: IMAGE
|
|
||||||
value: "$.data.configurationChange.values.image"
|
|
||||||
valueFrom: event
|
|
||||||
image: "alpine/helm:3.7.2"
|
|
||||||
serviceAccount: "jes-deploy-using-helm"
|
|
||||||
cmd: ["helm"]
|
|
||||||
#args: ["upgrade", "--force", "--create-namespace", "--install", "-n", "$(KEPTN_PROJECT)-$(KEPTN_STAGE)", "$(KEPTN_SERVICE)", "/keptn/charts/$(KEPTN_SERVICE).tgz", "--set", "image=$(IMAGE)", "--set", "keptn.service=$(KEPTN_SERVICE)", "--set", "keptn.deployment=$(KEPTN_STAGE)", "--set", "keptn.project=$(KEPTN_PROJECT)","--set", "keptn.stage=$(KEPTN_STAGE)", "--wait"]
|
|
||||||
args: ["upgrade", "--force", "--install", "-n", "$(KEPTN_PROJECT)-$(KEPTN_STAGE)", "$(KEPTN_SERVICE)", "/keptn/charts/$(KEPTN_SERVICE).tgz", "--set", "image=$(IMAGE)", "--set", "keptn.service=$(KEPTN_SERVICE)", "--set", "keptn.deployment=$(KEPTN_STAGE)", "--set", "keptn.project=$(KEPTN_PROJECT)","--set", "keptn.stage=$(KEPTN_STAGE)", "--wait"]
|
|
||||||
- name: "Uninstall"
|
|
||||||
events:
|
|
||||||
- name: "sh.keptn.event.uninstall.triggered"
|
|
||||||
tasks:
|
|
||||||
- name: "Run helm uninstall"
|
|
||||||
serviceAccount: "jes-deploy-using-helm"
|
|
||||||
image: "alpine/helm:3.7.2"
|
|
||||||
cmd: ["helm"]
|
|
||||||
args: ["uninstall", "-n", "$(KEPTN_PROJECT)-$(KEPTN_STAGE)", "$(KEPTN_SERVICE)", "--wait"]
|
|
||||||
- name: "Rollback using helm"
|
|
||||||
events:
|
|
||||||
- name: "sh.keptn.event.rollback.triggered"
|
|
||||||
tasks:
|
|
||||||
- name: "Run helm"
|
|
||||||
serviceAccount: "jes-deploy-using-helm"
|
|
||||||
image: "alpine/helm:3.7.2"
|
|
||||||
cmd: ["helm"]
|
|
||||||
args: ["rollback", "-n", "$(KEPTN_PROJECT)-$(KEPTN_STAGE)", "$(KEPTN_SERVICE)", "--wait"]
|
|
||||||
|
|
||||||
- name: "Scale using kubectl"
|
|
||||||
events:
|
|
||||||
- name: "sh.keptn.event.action.triggered"
|
|
||||||
jsonpath:
|
|
||||||
property: "$.data.action.action"
|
|
||||||
match: "scaling"
|
|
||||||
tasks:
|
|
||||||
- name: "Run kubectl"
|
|
||||||
serviceAccount: "jes-deploy-using-helm"
|
|
||||||
env:
|
|
||||||
- name: SCALING
|
|
||||||
value: $.data.action.value
|
|
||||||
valueFrom: event
|
|
||||||
image: "alpine/k8s:1.20.15"
|
|
||||||
cmd: ["sh"]
|
|
||||||
# Note: Hardcoded kubernetes namespace & KEPTN_SERVICE does most likely not match the deployment name
|
|
||||||
args: ["-c", "REPLICAS=$(kubectl -n ${KEPTN_PROJECT}-${KEPTN_STAGE} get deployment/${KEPTN_SERVICE} -o go-template='{{.spec.replicas}}');DESIRED=$((${SCALING}+${REPLICAS}));echo Scaling deployment to ${DESIRED} && kubectl -n ${KEPTN_PROJECT}-${KEPTN_STAGE} scale --replicas=${DESIRED} deployment/${KEPTN_SERVICE}"]
|
|
||||||
|
|
||||||
- name: "Run tests using locust"
|
|
||||||
events:
|
|
||||||
- name: "sh.keptn.event.test.triggered"
|
|
||||||
tasks:
|
|
||||||
- name: "Run locust"
|
|
||||||
files:
|
|
||||||
- locust/basic.py
|
|
||||||
- locust/locust.conf
|
|
||||||
|
|
||||||
image: "locustio/locust:2.8.6"
|
|
||||||
cmd: ["locust"]
|
|
||||||
args: ["--config", "/keptn/locust/locust.conf", "-f", "/keptn/locust/basic.py", "--host", "http://$(KEPTN_SERVICE)-$(KEPTN_STAGE).nttdata-xlabs.com", "--only-summary"]
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
from locust import HttpUser, between, task
|
|
||||||
|
|
||||||
class WebsiteUser(HttpUser):
|
|
||||||
#wait_time = between(5, 15)
|
|
||||||
|
|
||||||
@task
|
|
||||||
def index(self):
|
|
||||||
self.client.post("/carts/1/items", json= {"itemId":"03fef6ac-1896-4ce8-bd69-b798f85c6e0b","unitPrice":"99.99"}, headers={"x-dynatrace-test": "LSN=Test;"})
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
locustfile = /locust/locust.py
|
|
||||||
headless = true
|
|
||||||
users = 5
|
|
||||||
run-time = 1m
|
|
||||||
exit-code-on-error=0
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
servicename: carts
|
|
||||||
creationtimestamp: 2025-01-21 14:08:54.119940294 +0000 UTC
|
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
apiVersion: "spec.keptn.sh/0.2.0"
|
||||||
|
kind: "Shipyard"
|
||||||
|
metadata:
|
||||||
|
name: "shipyard-sockshop"
|
||||||
|
spec:
|
||||||
|
stages:
|
||||||
|
- name: "dev"
|
||||||
|
sequences:
|
||||||
|
- name: "delivery"
|
||||||
|
tasks:
|
||||||
|
- name: "deployment"
|
||||||
|
properties:
|
||||||
|
deploymentstrategy: "direct"
|
||||||
|
# - name: "test"
|
||||||
|
# properties:
|
||||||
|
# teststrategy: "functional"
|
||||||
|
# - name: "evaluation"
|
||||||
|
|
||||||
|
- name: "delivery-direct"
|
||||||
|
tasks:
|
||||||
|
- name: "deployment"
|
||||||
|
properties:
|
||||||
|
deploymentstrategy: "direct"
|
||||||
|
#- name: "release"
|
||||||
|
# - name: "rollback"
|
||||||
|
# tasks:
|
||||||
|
# - name: "rollback"
|
||||||
|
# - name: "only-test"
|
||||||
|
# tasks:
|
||||||
|
# - name: "test"
|
||||||
|
# properties:
|
||||||
|
# teststrategy: "functional"
|
||||||
|
- name: "remove"
|
||||||
|
tasks:
|
||||||
|
- name: "uninstall"
|
||||||
|
- name: "staging"
|
||||||
|
sequences:
|
||||||
|
- name: "delivery"
|
||||||
|
triggeredOn:
|
||||||
|
- event: "dev.delivery.finished"
|
||||||
|
tasks:
|
||||||
|
- name: "deployment"
|
||||||
|
properties:
|
||||||
|
deploymentstrategy: "blue_green_service"
|
||||||
|
- name: "test"
|
||||||
|
properties:
|
||||||
|
teststrategy: "performance"
|
||||||
|
- name: "evaluation"
|
||||||
|
#- name: "release"
|
||||||
|
- name: "rollback"
|
||||||
|
triggeredOn:
|
||||||
|
- event: "staging.delivery.finished"
|
||||||
|
selector:
|
||||||
|
match:
|
||||||
|
result: "fail"
|
||||||
|
tasks:
|
||||||
|
- name: "rollback"
|
||||||
|
- name: "delivery-direct"
|
||||||
|
triggeredOn:
|
||||||
|
- event: "dev.delivery-direct.finished"
|
||||||
|
tasks:
|
||||||
|
- name: "deployment"
|
||||||
|
properties:
|
||||||
|
deploymentstrategy: "direct"
|
||||||
|
#- name: "release"
|
||||||
|
- name: "remove"
|
||||||
|
triggeredOn:
|
||||||
|
- event: "dev.remove.finished"
|
||||||
|
tasks:
|
||||||
|
- name: "uninstall"
|
||||||
|
- name: "production"
|
||||||
|
sequences:
|
||||||
|
- name: "delivery"
|
||||||
|
triggeredOn:
|
||||||
|
- event: "staging.delivery.finished"
|
||||||
|
tasks:
|
||||||
|
- name: "deployment"
|
||||||
|
properties:
|
||||||
|
deploymentstrategy: "blue_green_service"
|
||||||
|
#- name: "release"
|
||||||
|
- name: "rollback"
|
||||||
|
triggeredOn:
|
||||||
|
- event: "production.delivery.finished"
|
||||||
|
selector:
|
||||||
|
match:
|
||||||
|
result: "fail"
|
||||||
|
tasks:
|
||||||
|
- name: "rollback"
|
||||||
|
- name: "delivery-direct"
|
||||||
|
triggeredOn:
|
||||||
|
- event: "staging.delivery-direct.finished"
|
||||||
|
tasks:
|
||||||
|
- name: "deployment"
|
||||||
|
properties:
|
||||||
|
deploymentstrategy: "direct"
|
||||||
|
#- name: "release"
|
||||||
|
- name: "remove"
|
||||||
|
triggeredOn:
|
||||||
|
- event: "staging.remove.finished"
|
||||||
|
tasks:
|
||||||
|
- name: "uninstall"
|
||||||
|
- name: "remediation"
|
||||||
|
triggeredOn:
|
||||||
|
- event: "production.remediation.finished"
|
||||||
|
selector:
|
||||||
|
match:
|
||||||
|
evaluation.result: "fail"
|
||||||
|
tasks:
|
||||||
|
- name: "get-action"
|
||||||
|
- name: "action"
|
||||||
|
- name: "evaluation"
|
||||||
|
triggeredAfter: "15m"
|
||||||
|
properties:
|
||||||
|
timeframe: "15m"
|
||||||
Loading…
Reference in New Issue