Compare commits
42 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
842112359a | |
|
|
5183cac7fa | |
|
|
9238c74a21 | |
|
|
0e0f644421 | |
|
|
ee726fc674 | |
|
|
919f734f3b | |
|
|
8aae6a5153 | |
|
|
4660ea8377 | |
|
|
ff8c119779 | |
|
|
bdcc64166f | |
|
|
087e594b07 | |
|
|
9ab9604298 | |
|
|
762248fd55 | |
|
|
eef4e696af | |
|
|
c838c74bce | |
|
|
bd7bfc1494 | |
|
|
5aa9529113 | |
|
|
75deb16e43 | |
|
|
e944e5b014 | |
|
|
732d126c73 | |
|
|
5c6c1f6ebd | |
|
|
30d2f18396 | |
|
|
6f82fad6e4 | |
|
|
30a423c197 | |
|
|
f1447d8d6f | |
|
|
6326a80cca | |
|
|
a943fa2274 | |
|
|
933b93cffd | |
|
|
96f34f8e90 | |
|
|
4bd9f78e27 | |
|
|
1b8ce5ee12 | |
|
|
8b148c21da | |
|
|
d5a57af78f | |
|
|
b57c4f3ff8 | |
|
|
72ac3739b6 | |
|
|
af5e784234 | |
|
|
7bd2262ad6 | |
|
|
559229aede | |
|
|
ed7f24d1bd | |
|
|
522d814150 | |
|
|
ad6bd6b18e | |
|
|
cf18992b3a |
|
|
@ -1,34 +0,0 @@
|
|||
# Local .terraform directories
|
||||
**/.terraform/*
|
||||
|
||||
# .tfstate files
|
||||
*.tfstate
|
||||
*.tfstate.*
|
||||
*.tfplan
|
||||
|
||||
# Crash log files
|
||||
crash.log
|
||||
|
||||
# Exclude all .tfvars files, which are likely to contain sentitive data, such as
|
||||
# password, private keys, and other secrets. These should not be part of version
|
||||
# control as they are data points which are potentially sensitive and subject
|
||||
# to change depending on the environment.
|
||||
*.tfvars
|
||||
|
||||
# Ignore override files as they are usually used to override resources locally and so
|
||||
# are not checked in
|
||||
override.tf
|
||||
override.tf.json
|
||||
*_override.tf
|
||||
*_override.tf.json
|
||||
|
||||
# Ignore CLI configuration files
|
||||
.terraformrc
|
||||
terraform.rc
|
||||
|
||||
.env
|
||||
*.env
|
||||
|
||||
venv
|
||||
|
||||
.helm
|
||||
BIN
carts-BAK2.tgz
BIN
carts-BAK2.tgz
Binary file not shown.
Binary file not shown.
BIN
carts-db.tgz
BIN
carts-db.tgz
Binary file not shown.
|
|
@ -1,4 +0,0 @@
|
|||
apiVersion: v1
|
||||
description: A Helm chart for service carts-db
|
||||
name: carts-db
|
||||
version: 0.1.0
|
||||
Binary file not shown.
|
|
@ -0,0 +1,58 @@
|
|||
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", "--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)", "--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_PROJECT)-$(KEPTN_STAGE)", "--only-summary"]
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
servicename: carts-db
|
||||
creationtimestamp: 2023-11-14 16:06:46.781502681 +0000 UTC
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: carts-db-mongodata
|
||||
spec:
|
||||
{% comment %} storageClassName: region1storageclass {% endcomment %}
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
status: {}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: carts-db
|
||||
labels:
|
||||
app: carts-db
|
||||
spec:
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
app: carts-db
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: carts-db
|
||||
deployment: carts-db
|
||||
app.kubernetes.io/name: {{ .Values.keptn.service }}
|
||||
app.kubernetes.io/instance: "{{ .Values.keptn.service }}-{{ .Values.keptn.deployment }}"
|
||||
app.kubernetes.io/component: database
|
||||
app.kubernetes.io/part-of: "{{ .Values.keptn.project }}"
|
||||
app.kubernetes.io/managed-by: Keptn
|
||||
app.kubernetes.io/version: {{ (split ":" .Values.image)._1 | default "latest" }}
|
||||
spec:
|
||||
containers:
|
||||
- name: carts-db
|
||||
image: {{ .Values.image }}
|
||||
imagePullPolicy: IfNotPresent
|
||||
ports:
|
||||
- containerPort: 27017
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /data/db
|
||||
name: carts-db-mongodata
|
||||
restartPolicy: Always
|
||||
volumes:
|
||||
- name: carts-db-mongodata
|
||||
persistentVolumeClaim:
|
||||
claimName: carts-db-mongodata
|
||||
{% comment %} nodeSelector:
|
||||
role: "group2" {% endcomment %}
|
||||
{% comment %} tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "group2"
|
||||
effect: "NoSchedule" {% endcomment %}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: carts-db
|
||||
spec:
|
||||
ports:
|
||||
- name: {{ .Values.service.name }}
|
||||
port: {{ .Values.service.externalPort }}
|
||||
targetPort: {{ .Values.service.internalPort }}
|
||||
selector:
|
||||
app: carts-db
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
image: mongo
|
||||
service:
|
||||
externalPort: 27017
|
||||
internalPort: 27017
|
||||
name: carts-db
|
||||
replicaCount: 1
|
||||
BIN
carts-db_BAK.tgz
BIN
carts-db_BAK.tgz
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.2.1">
|
||||
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.1.1 r1855137">
|
||||
<hashTree>
|
||||
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
|
||||
<stringProp name="TestPlan.comments"></stringProp>
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
<collectionProp name="Arguments.arguments">
|
||||
<elementProp name="SERVER_URL" elementType="Argument">
|
||||
<stringProp name="Argument.name">SERVER_URL</stringProp>
|
||||
<stringProp name="Argument.value">carts-staging.nttdata-xlabs.com</stringProp>
|
||||
<stringProp name="Argument.value">carts-dev.nttdata-xlabs.com</stringProp>
|
||||
<stringProp name="Argument.metadata">=</stringProp>
|
||||
</elementProp>
|
||||
<elementProp name="DefaultThinkTime" elementType="Argument">
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
</elementProp>
|
||||
<elementProp name="LoopCount" elementType="Argument">
|
||||
<stringProp name="Argument.name">LoopCount</stringProp>
|
||||
<stringProp name="Argument.value">1000</stringProp>
|
||||
<stringProp name="Argument.value">1</stringProp>
|
||||
<stringProp name="Argument.metadata">=</stringProp>
|
||||
</elementProp>
|
||||
</collectionProp>
|
||||
|
|
@ -60,13 +60,11 @@
|
|||
<boolProp name="ThreadGroup.scheduler">false</boolProp>
|
||||
<stringProp name="ThreadGroup.duration"></stringProp>
|
||||
<stringProp name="ThreadGroup.delay"></stringProp>
|
||||
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
|
||||
</ThreadGroup>
|
||||
<hashTree>
|
||||
<CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
|
||||
<collectionProp name="CookieManager.cookies"/>
|
||||
<boolProp name="CookieManager.clearEachIteration">false</boolProp>
|
||||
<boolProp name="CookieManager.controlledByThreadGroup">false</boolProp>
|
||||
</CookieManager>
|
||||
<hashTree/>
|
||||
<HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
|
||||
|
|
@ -4,16 +4,6 @@ actions:
|
|||
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
|
||||
|
|
@ -24,17 +14,8 @@ actions:
|
|||
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"]
|
||||
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: "Rollback using helm"
|
||||
events:
|
||||
- name: "sh.keptn.event.rollback.triggered"
|
||||
Binary file not shown.
|
|
@ -30,8 +30,8 @@ objectives:
|
|||
- sli: "error_rate"
|
||||
pass:
|
||||
- criteria:
|
||||
- "<=+50%"
|
||||
- "<5"
|
||||
- "<=+15%"
|
||||
- "<2"
|
||||
warning:
|
||||
- criteria:
|
||||
- "<10"
|
||||
|
|
@ -75,11 +75,3 @@ spec:
|
|||
requests:
|
||||
cpu: 500m
|
||||
memory: 1024Mi
|
||||
{% comment %} nodeSelector:
|
||||
role: "group2"
|
||||
tolerations:
|
||||
- key: "dedicated"
|
||||
operator: "Equal"
|
||||
value: "group2"
|
||||
effect: "NoSchedule" {% endcomment %}
|
||||
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: carts
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
tls:
|
||||
- hosts:
|
||||
- "carts-{{ .Values.keptn.deployment }}.nttdata-xlabs.com"
|
||||
secretName: letsencrypt-prod
|
||||
rules:
|
||||
- host: "carts-{{ .Values.keptn.deployment }}.nttdata-xlabs.com"
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: carts
|
||||
port:
|
||||
number: 80
|
||||
|
|
@ -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)"
|
||||
BIN
integration.JPG
BIN
integration.JPG
Binary file not shown.
|
Before Width: | Height: | Size: 124 KiB |
139
jenkinsfile
139
jenkinsfile
|
|
@ -1,139 +0,0 @@
|
|||
pipeline {
|
||||
agent {
|
||||
label 'terraform-slave'
|
||||
}
|
||||
|
||||
parameters {
|
||||
choice(name: 'mode', choices: ['apply', 'destroy'], description: '')
|
||||
choice(name: 'destroy_keptn', choices: ['no', 'yes'], description: '')
|
||||
}
|
||||
|
||||
stages {
|
||||
// stage('Refresh properties') {
|
||||
// steps {
|
||||
// script {
|
||||
// if (Refresh) {
|
||||
// currentBuild.result = 'ABORTED'
|
||||
// error('Stopping early…')
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
stage('deploy Keptn') {
|
||||
steps {
|
||||
container('terraform') {
|
||||
script {
|
||||
def b = build job: 'shared/keptn deployment' , wait: true, parameters: [string(name: 'mode', value: "apply")]
|
||||
//build job: 'ANOTHER_JOB_NAME', wait: false, parameters: [string(name: 'HELLO', value: String.valueOf(PARAMETER01))]
|
||||
env.keptn_api_token = b.getBuildVariables()["KEPTN_API_TOKEN"]
|
||||
env.TF_VAR_KEPTN_API_TOKEN = b.getBuildVariables()["KEPTN_API_TOKEN"]
|
||||
env.keptn_bridge_url = b.getBuildVariables()["KEPTN_BRIDGE_URL"]
|
||||
env.TF_VAR_KEPTN_BRIDGE_URL = b.getBuildVariables()["KEPTN_BRIDGE_URL"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Download & Install Keptn CLI') {
|
||||
steps {
|
||||
container('terraform') {
|
||||
sh "apk add --no-cache curl"
|
||||
sh "apk add --no-cache bash"
|
||||
sh "apk add --no-cache gawk"
|
||||
sh 'wget https://github.com/keptn/keptn/releases/download/1.4.0/keptn-1.4.0-linux-amd64.tar.gz'
|
||||
sh 'tar -xvf keptn-1.4.0-linux-amd64.tar.gz'
|
||||
sh 'mv keptn-1.4.0-linux-amd64 /usr/local/bin/keptn'
|
||||
// sh 'curl -sL https://get.keptn.sh/ | bash'
|
||||
sh 'keptn set config AutomaticVersionCheck false'
|
||||
sh 'keptn set config KubeContextCheck false'
|
||||
sh 'keptn version'
|
||||
sh "keptn auth --endpoint=${keptn_bridge_url}/api --api-token=${keptn_api_token}"
|
||||
}
|
||||
}
|
||||
}
|
||||
// stage('terraform init') {
|
||||
// steps {
|
||||
// container('terraform') {
|
||||
// dir("terraform") {
|
||||
// withCredentials([[
|
||||
// $class: 'AmazonWebServicesCredentialsBinding',
|
||||
// credentialsId: "f89b3f7d-23ec-42b9-9687-e4acf01d7507",
|
||||
// accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
// secretKeyVariable: 'AWS_SECRET_ACCESS_KEY']]) {
|
||||
// sh 'terraform init -backend-config="key=keptn-sockshop-demo"'
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
stage('Create Keptn Project') {
|
||||
when {
|
||||
expression {
|
||||
return params.mode == 'apply'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
container('terraform') {
|
||||
dir("terraform") {
|
||||
withCredentials([[
|
||||
$class: 'AmazonWebServicesCredentialsBinding',
|
||||
credentialsId: "f89b3f7d-23ec-42b9-9687-e4acf01d7507",
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY'],
|
||||
string(credentialsId: 'gitea_demo_api_token', variable: 'TF_VAR_GITEA_TOKEN')]) {
|
||||
sh 'terraform init -backend-config="key=keptn-sockshop-demo"'
|
||||
sh 'terraform apply --target kubernetes_namespace.carts-dev -auto-approve'
|
||||
sh 'terraform apply --target kubernetes_namespace.carts-staging -auto-approve'
|
||||
sh 'terraform apply --target kubernetes_namespace.carts-production -auto-approve'
|
||||
sh 'terraform apply -auto-approve'
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
stage('Destroy Keptn Project') {
|
||||
when {
|
||||
expression {
|
||||
return params.mode == 'destroy'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
container('terraform') {
|
||||
sh "keptn auth --endpoint=${keptn_bridge_url}/api --api-token=${keptn_api_token}"
|
||||
dir("terraform") {
|
||||
withCredentials([[
|
||||
$class: 'AmazonWebServicesCredentialsBinding',
|
||||
credentialsId: "f89b3f7d-23ec-42b9-9687-e4acf01d7507",
|
||||
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
|
||||
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY'],
|
||||
string(credentialsId: 'gitea_demo_api_token', variable: 'TF_VAR_GITEA_TOKEN')]) {
|
||||
sh 'terraform init -backend-config="key=keptn-sockshop-demo"'
|
||||
sh 'terraform destroy --target null_resource.seed-unix-destroy -auto-approve'
|
||||
sh 'terraform destroy --target gitea_repository.demo-repo -auto-approve'
|
||||
}
|
||||
}
|
||||
//build job: 'shared/keptn deployment' , wait: true, parameters: [string(name: 'mode', value: "destroy")]
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
stage('Destroy Keptn ') {
|
||||
when {
|
||||
expression {
|
||||
return params.mode == 'destroy' && params.destroy_keptn == 'yes'
|
||||
}
|
||||
}
|
||||
steps {
|
||||
container('terraform') {
|
||||
|
||||
//build job: 'shared/keptn deployment' , wait: true, parameters: [string(name: 'mode', value: "destroy")]
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -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"]
|
||||
Binary file not shown.
|
|
@ -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
|
||||
27
readme
27
readme
|
|
@ -1,27 +0,0 @@
|
|||
dynatrace-service must be deployed (credentials must be created)
|
||||
jobexecuter service must be deployed
|
||||
|
||||
project erzeugen mit cli
|
||||
dynatrace config mit cli durchführen
|
||||
|
||||
keptn add-resource --project=sockshop --service=carts --all-stages --resource=carts.tgz --resourceUri=charts/carts.tgz
|
||||
keptn add-resource --project=sockshop --service=carts --all-stages --resource=./job-executer/job.yaml --resourceUri=job/config.yaml
|
||||
|
||||
keptn add-resource --project=sockshop --service=carts --stage=staging --resource=./locust/basic.py
|
||||
keptn add-resource --project=sockshop --service=carts --stage=staging --resource=./locust/locust.conf
|
||||
|
||||
|
||||
keptn add-resource --project=sockshop --stage=staging --service=carts --resource=slo.yaml --resourceUri=slo.yaml
|
||||
keptn add-resource --project=sockshop --resource=dynatrace/sli.yaml --resourceUri=dynatrace/sli.yaml
|
||||
|
||||
|
||||
keptn trigger delivery --project=sockshop --service=carts --image="docker.io/keptnexamples/carts:0.13.1" --labels=image="keptnexamples/carts:0.13.1",version="0.13.1"
|
||||
keptn trigger delivery --project=sockshop --service=carts-db --image="mongo:4.2.2" --labels=image="keptnexamples/carts-db:4.2.2",version="4.2.2"
|
||||
|
||||
|
||||
keptn trigger delivery --project=sockshop --service=carts --image="docker.io/keptnexamples/carts:0.13.1" --labels=image="keptnexamples/carts:0.13.1",version="0.13.1" --stage=staging
|
||||
keptn trigger delivery --project=sockshop --service=carts --image="docker.io/keptnexamples/carts:0.13.2" --labels=image="keptnexamples/carts:0.13.2",version="0.13.2" --stage=staging
|
||||
|
||||
|
||||
|
||||
keptn trigger delivery --project=carts --service=carts-db --image="mongo:4.2.2" --labels=image="keptnexamples/carts-db:4.2.2",version="4.2.2" --sequence=delivery-direct
|
||||
114
shipyard.yaml
114
shipyard.yaml
|
|
@ -1,114 +0,0 @@
|
|||
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"
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: region1storageclass
|
||||
provisioner: kubernetes.io/aws-ebs
|
||||
parameters:
|
||||
type: gp2
|
||||
fsType: ext4 # Set to "true" if encryption is required
|
||||
zone: us-west-2b
|
||||
volumeBindingMode: WaitForFirstConsumer
|
||||
# allowedTopologies:
|
||||
# - matchLabelExpressions:
|
||||
# - key: failure-domain.beta.kubernetes.io/zone
|
||||
# values:
|
||||
# - us-west-2c
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
# This file is maintained automatically by "terraform init".
|
||||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.terraform.io/lerentis/gitea" {
|
||||
version = "0.16.0"
|
||||
constraints = "0.16.0"
|
||||
hashes = [
|
||||
"h1:AAczXkCnaTGYRoMRp+A9y/S4YXbsmTWgRiEJj16Rik8=",
|
||||
"zh:195b3288b1f8d9fffc3083a42d4e1a7c5b73399c47049a9d00674e4cd6e4d17e",
|
||||
"zh:1c7f1213d45df525aae9963567fc77ed099c68ad7418b98cf317c4f8b3b2113c",
|
||||
"zh:309ed896eec2854c61cbab131e8445da2ff599309ba804b8850a4b29a32a47e8",
|
||||
"zh:34ec1a7f985f2a78dae58e040941b37d19827fc98941d6071c10f64c64c19de0",
|
||||
"zh:45092d54ed8cdc53984e8638eb0db4512ab2be6f259c9ee5f6597607fae1440b",
|
||||
"zh:4a82f10f958c112a5fc58e023f26d610a42dfb0bdddd849b6c06ef601d2e1e5f",
|
||||
"zh:4ff3d423c1758d627e9c6a1c10209472670938c87ae8a0b9f0c3389dad75f944",
|
||||
"zh:544e9ff610fadcfde7467871e519d88b5729fbf9d262751ba9f91e357e6ffa8b",
|
||||
"zh:5cb4a4f6c6475c50e0bbc222501f0239e9a883036a34e4627783c6a5aa1fe7e0",
|
||||
"zh:5d1e97243727b6e6ec6ca16069d9375cf02a4f266a293b1160220ee10ad84878",
|
||||
"zh:615c36b8b0411068f8879c727639ea16666aa8767d0aee9014b408d17ef6d64d",
|
||||
"zh:640d95dd0aae76a2a11bd5a083908d0349c28707f7643e09c0be75d5583f7068",
|
||||
"zh:717d7c93f0b98d4447824a3b3a1da96250b1e1b85b4aec062c36243d07a6401d",
|
||||
"zh:7398a21b8bbb30896a43b738de6a5c71067a58e7b932b497c70553bc46eb92bf",
|
||||
"zh:76858d67e783a6a8c6dc143ee7ed6a3a501806fe93700fb0541b6223d4b51907",
|
||||
"zh:77a978ecbe9c57c0a2548d159953e4c7faa7d5a365a76493c8d82199233eb58c",
|
||||
"zh:791531ef14467b96cc65aef44ad0f93e0cfeefbd82b6e7229ff70fb0a3eda04d",
|
||||
"zh:946e42bc059bc887674a2ffc42c21fe00fbab078321d378b1c437cc3dd9460e9",
|
||||
"zh:988aeffc00f2baeace26c7d57dc73f73464bb228ceeb3eb0bb9b526b864be6bd",
|
||||
"zh:c71c8c628f2344be5433116ef9ff76a2402cc388acd4e23c7d434a8251925f63",
|
||||
"zh:db975a80d2fa0b389e9ea5852c6804e3ef6ee17332e8bd5c233d03d8456dfcc4",
|
||||
"zh:ea04c117c126fc755c86e2616c2c055801002e14c34842b7b3ba607d95c7d1e0",
|
||||
"zh:ec9a0669f4ed744823dc1721b9cd53460936e8f772e1aa726e9380686320b9dc",
|
||||
"zh:ef7339a987c362fd855f5796c8dc1ada55dafb083b2a10538a4de11c0fe12569",
|
||||
"zh:f0ec89e0c4f2f4b5b6c9880186a306d191801195a28593bc6e223da8b8dd76e7",
|
||||
"zh:f1382abc5fa8140d4af81b5634581bedd108b5862ce74e994ff9ed5a6fecf8d3",
|
||||
"zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c",
|
||||
"zh:f772a40fb23b2fa885d73ff62ef0a2e1742f536d3d889054bb7b20e5e9d17309",
|
||||
"zh:fffdfbc809ace7bd2a7618b674893ac0f87c51aa27167b6223c884313450ea53",
|
||||
]
|
||||
}
|
||||
|
||||
provider "registry.terraform.io/magodo/restful" {
|
||||
version = "0.17.0"
|
||||
hashes = [
|
||||
"h1:u+Zq+FUlHpmsxNbeYnRIwGt8coU7B5iemzxmZCP9G00=",
|
||||
"zh:137965c194987d45f3a6bb1b3b81952f0e614e32014644dee74949ffefee1651",
|
||||
"zh:1da3d0ca1cdd39fbc2808286a68a307a70bbaaa95ba080c29eef1b21c0cd1648",
|
||||
"zh:1e5c704ba584d756031e4d35be41bd445b942ab72d3737a3594abe6a89ce09ef",
|
||||
"zh:35527164ca7080dba08bc42c943e148a442f5d7b598293cd0830c75c953d3ea8",
|
||||
"zh:3ecce6264d45b4919ecef7ca118109917ac40e9b7226ea3867d11832084fe3ca",
|
||||
"zh:437013a757e4a6ca30f68e23baadcc7fb4e4cd5150eebb506a4521c6f12cc8b2",
|
||||
"zh:49d5e4f69a7f4f86e80ee633ee5c9a81432a33b42cc8b09f09dd217cbe5b23c3",
|
||||
"zh:5018db0d71ca4e9e00839b2e40f042da310fd5586c737ee2051b16cf66ecb261",
|
||||
"zh:68f1683e17cfab300566816de34c6f3c46db1519e4bf1e3f6d4b27ad28b60c93",
|
||||
"zh:72570943de264ec0e533b5dddd282ecd23c8fab13748239b7068dc98c0de3699",
|
||||
"zh:86061d47fe64c257b5c562758c632d8fd7774b06ff8b837c4ccb963f5b569136",
|
||||
"zh:bff242d978a9f4591d130e1744eb6bf8d819df8ce6a0af95ce0129d998f22607",
|
||||
"zh:c575cf5af509211289280656c424b40c0c8fca8b981495cd43abe4811d033dcd",
|
||||
"zh:c5f89aee0419d2565ce8b167e8ee5efff3bacce8c76a20da97304d85a4cc20a3",
|
||||
"zh:f809ab383cca0a5f83072981c64208cbd7fa67e986a86ee02dd2c82333221e32",
|
||||
]
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
@echo off
|
||||
keptn trigger delivery --project=carts --service=carts-db --image="" --sequence=remove
|
||||
keptn trigger delivery --project=carts --service=carts --image="" --sequence=remove
|
||||
|
||||
keptn delete project carts
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
keptn trigger delivery --project=carts --service=carts-db --image="" --sequence=remove
|
||||
exit_code=$?
|
||||
|
||||
if [ $exit_code -ne 0 ]; then
|
||||
echo "An error occurred."
|
||||
fi
|
||||
|
||||
keptn trigger delivery --project=carts --service=carts --image="" --sequence=remove
|
||||
exit_code=$?
|
||||
if [ $exit_code -ne 0 ]; then
|
||||
echo "An error occurred."
|
||||
fi
|
||||
|
||||
sleep 90
|
||||
keptn delete project carts
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
@echo off
|
||||
set GIT_REPO=%1
|
||||
set GIT_USER=%2
|
||||
set GIT_TOKEN=%3
|
||||
keptn create project carts --shipyard ..\shipyard.yaml --git-remote-url %GIT_REPO% --git-user %GIT_USER% --git-token %GIT_TOKEN%
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
GIT_REPO=$1
|
||||
GIT_USER=$2
|
||||
GIT_TOKEN=$3
|
||||
#wget https://github.com/keptn/keptn/releases/download/1.4.0/keptn-1.4.0-linux-amd64.tar.gz
|
||||
#tar -xvf keptn-1.4.0-linux-amd64.tar.gz
|
||||
pwd
|
||||
ls -la
|
||||
keptn create project carts --shipyard ../shipyard.yaml --git-remote-url $GIT_REPO --git-user $GIT_USER --git-token $GIT_TOKEN
|
||||
keptn create service carts --project=carts
|
||||
keptn create service carts-db --project=carts
|
||||
keptn add-resource --project=carts --service=carts --all-stages --resource=../carts.tgz --resourceUri=charts/carts.tgz
|
||||
keptn add-resource --project=carts --service=carts-db --all-stages --resource=../carts-db.tgz --resourceUri=charts/carts-db.tgz
|
||||
|
||||
keptn add-resource --project=carts --service=carts --all-stages --resource=../job-executer/job-cart.yaml --resourceUri=job/config.yaml
|
||||
keptn add-resource --project=carts --service=carts-db --all-stages --resource=../job-executer/job-cart-db.yaml --resourceUri=job/config.yaml
|
||||
|
||||
keptn add-resource --project=carts --service=carts --all-stages --resource=../locust/basic.py --resourceUri=locust/basic.py
|
||||
keptn add-resource --project=carts --service=carts --all-stages --resource=../locust/locust.conf --resourceUri=locust/locust.conf
|
||||
|
||||
|
||||
#Execute deployment
|
||||
keptn trigger delivery --project=carts --service=carts-db --image="mongo:4.2.2" --labels=image="keptnexamples/carts-db:4.2.2",version="4.2.2" --sequence=delivery-direct
|
||||
keptn trigger delivery --project=carts --service=carts --image="docker.io/keptnexamples/carts:0.13.1" --labels=image="keptnexamples/carts:0.13.1",version="0.13.1"
|
||||
|
|
@ -1,186 +0,0 @@
|
|||
locals {
|
||||
is_linux = length(regexall("/home/", lower(abspath(path.root)))) > 0
|
||||
}
|
||||
|
||||
resource "gitea_repository" "demo-repo" {
|
||||
username = var.GITEA_USER
|
||||
name = "sockshop-demo-test"
|
||||
private = false
|
||||
issue_labels = "Default"
|
||||
license = "MIT"
|
||||
}
|
||||
|
||||
resource "null_resource" "seed-win-apply" {
|
||||
count = local.is_linux ? 0 : 1
|
||||
# program = ["cmd","/c","${abspath(path.module)}/bin/keptn-seed-project.bat",gitea_repository.demo-repo.clone_url, var.GITEA_USER, var.GITEA_TOKEN]
|
||||
triggers = {
|
||||
mode = "apply"
|
||||
repo = gitea_repository.demo-repo.clone_url
|
||||
user = var.GITEA_USER
|
||||
token = var.GITEA_TOKEN
|
||||
}
|
||||
provisioner "local-exec" {
|
||||
when = create
|
||||
#interpreter = ["Powershell", "-Command"]
|
||||
# environment = {
|
||||
# mode = "apply"
|
||||
# repo = gitea_repository.demo-repo.clone_url
|
||||
# user = var.GITEA_USER
|
||||
# token = var.GITEA_TOKEN
|
||||
# }
|
||||
command = "cmd /c ${abspath(path.module)}/bin/keptn-seed-project.bat ${self.triggers.repo} ${self.triggers.user} ${self.triggers.token}"
|
||||
#interpreter = ["cmd","/c","${abspath(path.module)}/bin/keptn-seed-project.bat",, var.GITEA_USER, var.GITEA_TOKEN]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
resource "null_resource" "seed-unix-apply" {
|
||||
count = local.is_linux ? 1 : 0
|
||||
# program = ["cmd","/c","${abspath(path.module)}/bin/keptn-seed-project.bat",gitea_repository.demo-repo.clone_url, var.GITEA_USER, var.GITEA_TOKEN]
|
||||
triggers = {
|
||||
mode = "apply"
|
||||
repo = gitea_repository.demo-repo.clone_url
|
||||
user = var.GITEA_USER
|
||||
token = var.GITEA_TOKEN
|
||||
}
|
||||
provisioner "local-exec" {
|
||||
when = create
|
||||
#interpreter = ["Powershell", "-Command"]
|
||||
# environment = {
|
||||
# mode = "apply"
|
||||
# repo = gitea_repository.demo-repo.clone_url
|
||||
# user = var.GITEA_USER
|
||||
# token = var.GITEA_TOKEN
|
||||
# }
|
||||
command = "/bin/bash ${abspath(path.module)}/bin/keptn-seed-project.sh ${self.triggers.repo} ${self.triggers.user} ${self.triggers.token}"
|
||||
#interpreter = ["cmd","/c","${abspath(path.module)}/bin/keptn-seed-project.bat",, var.GITEA_USER, var.GITEA_TOKEN]
|
||||
}
|
||||
|
||||
depends_on = [kubernetes_namespace.carts-dev, kubernetes_namespace.carts-staging, kubernetes_namespace.carts-prod]
|
||||
|
||||
}
|
||||
|
||||
|
||||
resource "null_resource" "seed-win-destroy" {
|
||||
count = local.is_linux ? 0 : 1
|
||||
# program = ["cmd","/c","${abspath(path.module)}/bin/keptn-seed-project.bat",gitea_repository.demo-repo.clone_url, var.GITEA_USER, var.GITEA_TOKEN]
|
||||
|
||||
triggers = {
|
||||
mode = "destroy"
|
||||
repo = gitea_repository.demo-repo.clone_url
|
||||
user = var.GITEA_USER
|
||||
token = var.GITEA_TOKEN
|
||||
}
|
||||
|
||||
provisioner "local-exec" {
|
||||
when = destroy
|
||||
#interpreter = ["Powershell", "-Command"]
|
||||
# environment = {
|
||||
# mode = "destroy"
|
||||
# repo = gitea_repository.demo-repo.clone_url
|
||||
# user = var.GITEA_USER
|
||||
# token = var.GITEA_TOKEN
|
||||
# }
|
||||
command = "cmd /c ${abspath(path.module)}/bin/keptn-destroy-project.bat"
|
||||
#interpreter = ["cmd","/c","${abspath(path.module)}/bin/keptn-seed-project.bat",, var.GITEA_USER, var.GITEA_TOKEN]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
resource "null_resource" "seed-unix-destroy" {
|
||||
count = local.is_linux ? 1 : 0
|
||||
# program = ["cmd","/c","${abspath(path.module)}/bin/keptn-seed-project.bat",gitea_repository.demo-repo.clone_url, var.GITEA_USER, var.GITEA_TOKEN]
|
||||
|
||||
triggers = {
|
||||
mode = "destroy"
|
||||
repo = gitea_repository.demo-repo.clone_url
|
||||
user = var.GITEA_USER
|
||||
token = var.GITEA_TOKEN
|
||||
}
|
||||
|
||||
provisioner "local-exec" {
|
||||
when = destroy
|
||||
#interpreter = ["Powershell", "-Command"]
|
||||
# environment = {
|
||||
# mode = "destroy"
|
||||
# repo = gitea_repository.demo-repo.clone_url
|
||||
# user = var.GITEA_USER
|
||||
# token = var.GITEA_TOKEN
|
||||
# }
|
||||
command = "/bin/bash ${abspath(path.module)}/bin/keptn-destroy-project.sh"
|
||||
#interpreter = ["cmd","/c","${abspath(path.module)}/bin/keptn-seed-project.bat",, var.GITEA_USER, var.GITEA_TOKEN]
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
data "restful_resource" "ExecutorId" {
|
||||
id = "/api/controlPlane/v1/uniform/registration"
|
||||
method = "GET"
|
||||
query = {
|
||||
name=["job-executor-service"]
|
||||
}
|
||||
#selector = "0.id" data.restful_resource.ExecutorId.output[0].id
|
||||
}
|
||||
|
||||
|
||||
resource "restful_operation" "add_subscription" {
|
||||
path = "/api/controlPlane/v1/uniform/registration/${data.restful_resource.ExecutorId.output[0].id}/subscription"
|
||||
#delete_path = "/api/controlPlane/v1/uniform/registration/${data.restful_resource.ExecutorId.output[0].id}/subscription/${data.restful_resource.Subscriptions.output[0].id}"
|
||||
method = "POST"
|
||||
#delete_method = "DELETE"
|
||||
|
||||
#precheck_delete = local.subid_precheck
|
||||
body = {
|
||||
|
||||
"event": "sh.keptn.event.uninstall.triggered",
|
||||
"filter": {
|
||||
"projects": ["carts"],
|
||||
"stages": null,
|
||||
"services": ["carts","carts-db"]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
depends_on = [ null_resource.seed-unix-apply ]
|
||||
|
||||
}
|
||||
|
||||
|
||||
resource "kubernetes_namespace" "carts-dev" {
|
||||
metadata {
|
||||
name = "carts-dev"
|
||||
labels = {"monitor":"dynatrace"}
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_namespace" "carts-staging" {
|
||||
metadata {
|
||||
name = "carts-staging"
|
||||
labels = {"monitor":"dynatrace"}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
resource "kubernetes_namespace" "carts-prod" {
|
||||
metadata {
|
||||
name = "carts-production"
|
||||
labels = {"monitor":"dynatrace"}
|
||||
}
|
||||
}
|
||||
|
||||
# resource "seed" "win" {
|
||||
# count = local.is_linux ? 0 : 1
|
||||
|
||||
# provisioner "local-exec" {
|
||||
# command = "echo $FOO $BAR $BAZ >> env_vars.txt"
|
||||
|
||||
# environment = {
|
||||
# FOO = var.gitea_repository.demo-repo.clone_url
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
terraform init -backend-config="key=keptn-sockshop-demo"
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
# Copyright (c) HashiCorp, Inc.
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
terraform {
|
||||
|
||||
backend "s3" {
|
||||
bucket = "terraform-xops-demos"
|
||||
region = "us-west-2"
|
||||
dynamodb_table = "terraform-xops-lock-state"
|
||||
encrypt = true
|
||||
}
|
||||
|
||||
required_providers {
|
||||
gitea = {
|
||||
source = "Lerentis/gitea"
|
||||
version = "0.16.0"
|
||||
}
|
||||
|
||||
|
||||
restful = {
|
||||
source = "magodo/restful"
|
||||
}
|
||||
|
||||
kubernetes = {
|
||||
source = "hashicorp/kubernetes"
|
||||
version = ">= 2.0.0"
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
required_version = "~> 1.3"
|
||||
}
|
||||
|
||||
provider "gitea" {
|
||||
# Configuration options
|
||||
|
||||
base_url = var.GITEA_URL # optionally use GITEA_BASE_URL env var
|
||||
token = var.GITEA_TOKEN # optionally use GITEA_TOKEN env var
|
||||
#username = var.GITEA_USER
|
||||
# password = var.GITEA_PASSWORD
|
||||
}
|
||||
|
||||
|
||||
|
||||
provider "restful" {
|
||||
base_url = "https://keptn.nttdata-xlabs.com"
|
||||
client = {
|
||||
tls_insecure_skip_verify=true
|
||||
}
|
||||
|
||||
security = {
|
||||
apikey = [
|
||||
{
|
||||
in = "header"
|
||||
name = "x-token"
|
||||
value = var.KEPTN_API_TOKEN
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
variable "GITEA_USER" {
|
||||
type = string
|
||||
description = "gitea User"
|
||||
default = "demo"
|
||||
}
|
||||
|
||||
|
||||
variable "GITEA_URL" {
|
||||
type = string
|
||||
description = "url to gitea"
|
||||
default = "https://gitea.nttdata-xlabs.com"
|
||||
}
|
||||
|
||||
# variable "GITEA_PASSWORD" {
|
||||
# type = string
|
||||
# description = "url to gitea"
|
||||
# }
|
||||
|
||||
variable "GITEA_TOKEN" {
|
||||
type = string
|
||||
description = ""
|
||||
}
|
||||
|
||||
variable "KEPTN_BRIDGE_URL" {
|
||||
type = string
|
||||
description = ""
|
||||
}
|
||||
|
||||
variable "KEPTN_API_TOKEN" {
|
||||
type = string
|
||||
description = ""
|
||||
}
|
||||
Loading…
Reference in New Issue