diff --git a/README.md b/README.md index 2e0a34a..5703ed1 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,31 @@ -# Valence +# Valence 🚀🤖 +## Introduction Valence is a cost and performance management operator for Kubernetes for right sizing and autoscaling containers intelligently to meet performance objectives. It learns how applications behave and optimizes resources according to defined Service Level Objectives manifests. Valence acts as a bidirectional pod autoscaling solution and/or intelligent right sizing solution in order to ensure maximum utility of your cluster without performance degredation. -Valence is based on the notion of Declarative Performance. We believe you should be able to declare performance objectives and have an operator, Valence, figures out how to autoscale, right size, and pack your Kubernetes resources. In contrast, current Kubernetes scaling and performance management tools are largely imperative requiring overhead to determine right size, autoscaling metrics, related configuration. Since code, traffic, and node utilization changes - we believe this should be managed automatically by an operator, rather than by manual calculation and intervention. We also think the right unit of scaling isn't utilization or metrics thresholds but based, dynamically, on how applications behavour (utilization) responds to its use(such as HTTP Requests). +## How it works +Valence is based on the notion of Declarative Performance. We believe you should be able to declare performance objectives and have an operator (Valence) which figures out how to autoscale, right size, and pack your Kubernetes resources. In contrast, current Kubernetes scaling and performance management tools are largely imperative requiring overhead to determine right size, autoscaling metrics, related configuration. Since code, traffic, and node utilization changes - we believe this should be managed automatically by an operator, rather than by manual calculation and intervention. We also think the right unit of scaling isn't utilization or metrics thresholds but based, dynamically, on how applications behavour (utilization) responds to its use(such as HTTP Requests). -1) [Suggested On-boarding](#suggested-on-boarding) +## TOC +1) [How to get started](#how-to-get-started) 2) [Installation](#installation) 3) [Using Valence](#using-valence) 4) [Testing Valence with Example Workloads](#example-workloads) -Want to get started quickly with example workloads? +## Want to get started quickly with example workloads? - start on a fresh cluster such as docker-for-desktop - if your cluster already has metrics-server remove `./metrics-server` from `./example/tooling/kustomization.yaml` and recompile `make example-workloads` -- `kubectly apply -f valence.yaml -f example-workloads.yaml` +- `kubectly apply -f valence.yaml` +- `kubectl apply -f example-workloads.yaml` - `kubectl proxy svc/grafana -n valence-system &` - `open http://localhost:8001/api/v1/namespaces/valence-system/services/grafana/proxy` - Recommendations for Replicas, Requests and Limits, and live changes to those should start coming in 5-20 minutes. -## Suggested On-boarding -In order to get the most of out Valence, we recommend starting with Valence in recommendation mode. This will allow you to gain a comfortable level and understanding of the configuration options of Valence, before going into Live mode where Valence takes control of your deployments resourcing and scaling on your behalf. +## How to get started +In order to get the most of out Valence, we recommend starting with Valence in recommendation mode. This will help you understand the configuration options of Valence, before going into Live mode where Valence takes control of your deployments resourcing and scaling on your behalf. **Step 1 - Installation:** -Follow the installation instructions below (full support from the Valence team will be available) +Follow the installation instructions below (full support from the Valence team will be available @ dom@valence.net) **Step 2 - Recommendation Mode:** Pick a few deployments you’d like to see recommendations being made on and write SLO manifests for them. @@ -240,12 +244,8 @@ If you want to test out valence on example workloads we have provided examples m The workloads for testing are: - todo-backend-django (this is a control workload not using valence) - todo-backend-django-valence -- todo-backend-express -- todo-backend-golang -- todo-backend-java -They will use two different SLO manifests: -- slo-microservices +They will use the following SLO manifests: - slo-webapps Want to get started quickly with example workloads? diff --git a/example-workloads.yaml b/example-workloads.yaml index 7cc5062..1ed7771 100644 --- a/example-workloads.yaml +++ b/example-workloads.yaml @@ -228,22 +228,6 @@ spec: --- apiVersion: v1 kind: Service -metadata: - labels: - app: postgres - service: postgres - name: postgres -spec: - ports: - - name: "5432" - port: 5432 - targetPort: 5432 - selector: - app: postgres - service: postgres ---- -apiVersion: v1 -kind: Service metadata: labels: app: todo-backend-django-valence @@ -280,63 +264,6 @@ spec: app: todo-backend-django type: NodePort --- -apiVersion: v1 -kind: Service -metadata: - labels: - app: todo-backend-express - app.kubernetes.io/managed-by: valence - name: todo-backend-express -spec: - ports: - - name: headless - port: 80 - targetPort: 8081 - - name: prometheus - port: 8181 - targetPort: 8181 - selector: - app: todo-backend-express - type: NodePort ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: todo-backend-golang - app.kubernetes.io/managed-by: valence - name: todo-backend-golang -spec: - ports: - - name: headless - port: 80 - targetPort: 8081 - - name: prometheus - port: 8181 - targetPort: 8181 - selector: - app: todo-backend-golang - type: NodePort ---- -apiVersion: v1 -kind: Service -metadata: - labels: - app: todo-backend-java - app.kubernetes.io/managed-by: valence - name: todo-backend-java -spec: - ports: - - name: headless - port: 80 - targetPort: 8081 - - name: prometheus - port: 8181 - targetPort: 8181 - selector: - app: todo-backend-java - type: NodePort ---- apiVersion: extensions/v1beta1 kind: Deployment metadata: @@ -405,52 +332,6 @@ spec: --- apiVersion: extensions/v1beta1 kind: Deployment -metadata: - labels: - app: postgres - service: postgres - name: postgres -spec: - replicas: 1 - selector: - matchLabels: - app: postgres - strategy: - type: Recreate - template: - metadata: - creationTimestamp: null - labels: - app: postgres - service: postgres - spec: - containers: - - env: - - name: PGDATA - value: /var/lib/postgresql/data/pgdata - - name: POSTGRES_USER - value: postgres - - name: POSTGRES_DB - value: todos - image: postgres:9.6-alpine - name: postgres - ports: - - containerPort: 5432 - name: http - protocol: TCP - resources: {} - volumeMounts: - - mountPath: /var/lib/postgresql/data/pgdata - name: postgres-data - subPath: postgres - restartPolicy: Always - volumes: - - name: postgres-data - persistentVolumeClaim: - claimName: postgres-data ---- -apiVersion: extensions/v1beta1 -kind: Deployment metadata: annotations: valence.io/optimizer.configure: "true" @@ -570,195 +451,6 @@ spec: memory: 250M restartPolicy: Always --- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - annotations: - valence.io/optimizer.configure: "true" - labels: - app: todo-backend-express - slo: slo-webapps - name: todo-backend-express -spec: - replicas: 1 - revisionHistoryLimit: 1 - selector: - matchLabels: - app: todo-backend-express - strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - template: - metadata: - labels: - app: todo-backend-express - slo: slo-webapps - spec: - containers: - - args: - - start - image: valencenet/prometheus-proxy:0.2.0 - imagePullPolicy: IfNotPresent - name: prometheus-proxy - resources: - requests: - cpu: 100m - - args: - - -c - - sleep 60; node node_modules/db-migrate/bin/db-migrate up; node server.js - command: - - /bin/sh - env: - - name: PORT - value: "8080" - - name: DATABASE_URL - value: postgres://postgres@postgres.default:5432 - image: manifoldco/todo-backend-express:latest - imagePullPolicy: IfNotPresent - name: todo-backend-express - ports: - - containerPort: 8080 - name: http - protocol: TCP - readinessProbe: - failureThreshold: 30 - httpGet: - path: / - port: 8080 - initialDelaySeconds: 90 - periodSeconds: 60 - timeoutSeconds: 30 - resources: - limits: - cpu: 500m - memory: 500M - requests: - cpu: 250m - memory: 250M ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - annotations: - valence.io/optimizer.configure: "true" - labels: - app: todo-backend-golang - prometheus: valence - slo: slo-microservices - name: todo-backend-golang -spec: - revisionHistoryLimit: 1 - selector: - matchLabels: - app: todo-backend-golang - strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - template: - metadata: - labels: - app: todo-backend-golang - slo: slo-microservices - spec: - containers: - - args: - - start - image: valencenet/prometheus-proxy:0.2.0 - imagePullPolicy: IfNotPresent - name: prometheus-proxy - resources: - requests: - cpu: 100m - - env: - - name: PORT - value: "8080" - image: manifoldco/todo-backend-golang:latest - imagePullPolicy: IfNotPresent - name: todo-backend-golang - ports: - - containerPort: 8080 - name: http - protocol: TCP - readinessProbe: - failureThreshold: 30 - httpGet: - path: /todos - port: 8080 - initialDelaySeconds: 5 - periodSeconds: 60 - timeoutSeconds: 30 - resources: - limits: - cpu: 500m - memory: 500M - requests: - cpu: 250m - memory: 250M ---- -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - annotations: - valence.io/optimizer.configure: "true" - labels: - app: todo-backend-java - slo: slo-webapps - name: todo-backend-java -spec: - revisionHistoryLimit: 1 - selector: - matchLabels: - app: todo-backend-java - strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - template: - metadata: - labels: - app: todo-backend-java - slo: slo-webapps - spec: - containers: - - args: - - start - env: - - name: TARGET_ADDRESS - value: http://127.0.0.1:80 - image: valencenet/prometheus-proxy:0.2.0 - imagePullPolicy: IfNotPresent - name: prometheus-proxy - resources: - requests: - cpu: 100m - - env: - - name: PORT - value: "80" - image: manifoldco/todo-backend-java:latest - imagePullPolicy: IfNotPresent - name: todo-backend-java - ports: - - containerPort: 80 - name: http - protocol: TCP - readinessProbe: - failureThreshold: 30 - httpGet: - path: /todos - port: 80 - initialDelaySeconds: 5 - periodSeconds: 60 - timeoutSeconds: 30 - resources: - limits: - cpu: 500m - memory: 500M - requests: - cpu: 250m - memory: 250M ---- apiVersion: apiregistration.k8s.io/v1beta1 kind: APIService metadata: @@ -849,150 +541,6 @@ spec: name: majin restartPolicy: OnFailure --- -apiVersion: batch/v1 -kind: Job -metadata: - labels: - app: todo-backend-express - name: majin-todo-backend-express -spec: - template: - metadata: - labels: - app: todo-backend-express - spec: - containers: - - args: - - attack - - --random - - "true" - - --base-load - - "50" - - --period - - "3600" - - --noise - - "100" - - --duration - - "3600" - - --burst-frequency - - "100" - - --burst-index - - "10" - - --burst-duration - - "600" - env: - - name: TARGET - value: http://todo-backend-express.default/ - image: valencenet/majin:0.2.0 - name: majin - restartPolicy: OnFailure ---- -apiVersion: batch/v1 -kind: Job -metadata: - labels: - app: todo-backend-golang - name: majin-todo-backend-golang -spec: - template: - metadata: - labels: - app: todo-backend-golang - spec: - containers: - - args: - - attack - - --random - - "true" - - --base-load - - "50" - - --period - - "3600" - - --noise - - "100" - - --duration - - "3600" - - --burst-frequency - - "100" - - --burst-index - - "10" - - --burst-duration - - "600" - env: - - name: TARGET - value: http://todo-backend-golang.default/todos - image: valencenet/majin:0.2.0 - name: majin - restartPolicy: OnFailure ---- -apiVersion: batch/v1 -kind: Job -metadata: - labels: - app: todo-backend-java - name: majin-todo-backend-java -spec: - template: - metadata: - labels: - app: todo-backend-java - spec: - containers: - - args: - - attack - - --random - - "true" - - --base-load - - "50" - - --period - - "3600" - - --noise - - "100" - - --duration - - "3600" - - --burst-frequency - - "100" - - --burst-index - - "10" - - --burst-duration - - "600" - env: - - name: TARGET - value: http://todo-backend-java.default/todos - image: valencenet/majin:0.2.0 - name: majin - restartPolicy: OnFailure ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - labels: - app: postgres - service: postgres-data - name: postgres-data -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi -status: {} ---- -apiVersion: optimizer.valence.io/v1alpha1 -kind: ServiceLevelObjective -metadata: - name: slo-microservices -spec: - objectives: - - http: - latency: - percentile: 95 - responseTime: 500ms - throughput: 500 - type: HTTP - selector: - slo: slo-microservices ---- apiVersion: optimizer.valence.io/v1alpha1 kind: ServiceLevelObjective metadata: diff --git a/example/workloads/kustomization.yaml b/example/workloads/kustomization.yaml index e25c4ed..7c2b81e 100644 --- a/example/workloads/kustomization.yaml +++ b/example/workloads/kustomization.yaml @@ -1,10 +1,5 @@ bases: - ./todo-backend-django - ./todo-backend-django-valence - - ./todo-backend-express - - ./postgres - - ./todo-backend-golang - - ./todo-backend-java resources: - - ./slo-microservices.yaml - ./slo-webapps.yaml \ No newline at end of file diff --git a/example/workloads/postgres/deployment.yaml b/example/workloads/postgres/deployment.yaml deleted file mode 100644 index a272563..0000000 --- a/example/workloads/postgres/deployment.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - labels: - app: postgres - service: postgres - name: postgres -spec: - replicas: 1 - strategy: - type: Recreate - template: - metadata: - creationTimestamp: null - labels: - service: postgres - spec: - containers: - - env: - - name: PGDATA - value: /var/lib/postgresql/data/pgdata - - name: POSTGRES_USER - value: postgres - - name: POSTGRES_DB - value: todos - image: postgres:9.6-alpine - name: postgres - ports: - - containerPort: 5432 - name: http - protocol: TCP - resources: {} - volumeMounts: - - mountPath: /var/lib/postgresql/data/pgdata - name: postgres-data - subPath: postgres - restartPolicy: Always - volumes: - - name: postgres-data - persistentVolumeClaim: - claimName: postgres-data diff --git a/example/workloads/postgres/kustomization.yaml b/example/workloads/postgres/kustomization.yaml deleted file mode 100644 index 7a45c9a..0000000 --- a/example/workloads/postgres/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -commonLabels: - app: postgres -resources: - - deployment.yaml - - service.yaml - - persistantVolume.yaml \ No newline at end of file diff --git a/example/workloads/postgres/persistantVolume.yaml b/example/workloads/postgres/persistantVolume.yaml deleted file mode 100644 index e2e33e1..0000000 --- a/example/workloads/postgres/persistantVolume.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - labels: - service: postgres-data - name: postgres-data -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi -status: {} diff --git a/example/workloads/postgres/service.yaml b/example/workloads/postgres/service.yaml deleted file mode 100644 index f964e38..0000000 --- a/example/workloads/postgres/service.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - labels: - service: postgres - name: postgres -spec: - ports: - - name: "5432" - port: 5432 - targetPort: 5432 - selector: - service: postgres diff --git a/example/workloads/slo-microservices.yaml b/example/workloads/slo-microservices.yaml deleted file mode 100644 index 5619ad7..0000000 --- a/example/workloads/slo-microservices.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: optimizer.valence.io/v1alpha1 -kind: ServiceLevelObjective -metadata: - name: slo-microservices -spec: - selector: - slo: slo-microservices - objectives: - - type: HTTP - http: - latency: - percentile: 95 - responseTime: 500ms - throughput: 500 diff --git a/example/workloads/todo-backend-express/deployment.yaml b/example/workloads/todo-backend-express/deployment.yaml deleted file mode 100644 index 1868f2a..0000000 --- a/example/workloads/todo-backend-express/deployment.yaml +++ /dev/null @@ -1,60 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: todo-backend-express - labels: - app: todo-backend-express - slo: slo-webapps - annotations: - valence.io/optimizer.configure: "true" -spec: - revisionHistoryLimit: 1 - replicas: 1 - strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - template: - metadata: - labels: - app: todo-backend-express - slo: slo-webapps - spec: - containers: - - name: prometheus-proxy - image: valencenet/prometheus-proxy:0.2.0 - imagePullPolicy: IfNotPresent - args: - - start - resources: - requests: - cpu: 100m - - image: manifoldco/todo-backend-express:latest - imagePullPolicy: IfNotPresent - name: todo-backend-express - command: ["/bin/sh"] - args: ["-c", "sleep 60; node node_modules/db-migrate/bin/db-migrate up; node server.js"] - resources: - limits: - cpu: 500m - memory: 500M - requests: - cpu: 250m - memory: 250M - env: - - name: PORT - value: "8080" - - name: DATABASE_URL - value: postgres://postgres@postgres.default:5432 - ports: - - containerPort: 8080 - name: http - protocol: TCP - readinessProbe: - httpGet: - path: / - port: 8080 - initialDelaySeconds: 90 - periodSeconds: 60 - timeoutSeconds: 30 - failureThreshold: 30 diff --git a/example/workloads/todo-backend-express/kustomization.yaml b/example/workloads/todo-backend-express/kustomization.yaml deleted file mode 100644 index 327ba93..0000000 --- a/example/workloads/todo-backend-express/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -commonLabels: - app: todo-backend-express -resources: - - deployment.yaml - - service.yaml - - workload.yaml \ No newline at end of file diff --git a/example/workloads/todo-backend-express/service.yaml b/example/workloads/todo-backend-express/service.yaml deleted file mode 100644 index e1e3661..0000000 --- a/example/workloads/todo-backend-express/service.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: todo-backend-express - labels: - app.kubernetes.io/managed-by: valence -spec: - type: NodePort - ports: - - name: headless - port: 80 - targetPort: 8081 - - name: prometheus - port: 8181 - targetPort: 8181 - selector: - app: todo-backend-express \ No newline at end of file diff --git a/example/workloads/todo-backend-express/workload.yaml b/example/workloads/todo-backend-express/workload.yaml deleted file mode 100644 index d1d1d06..0000000 --- a/example/workloads/todo-backend-express/workload.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: majin-todo-backend-express -spec: - template: - spec: - containers: - - name: majin - image: valencenet/majin:0.2.0 - args: - - attack - - --random - - "true" - - --base-load - - "50" - - --period - - "3600" - - --noise - - "100" - - --duration - - "3600" - - --burst-frequency - - "100" - - --burst-index - - "10" - - --burst-duration - - "600" - env: - - name: TARGET - value: http://todo-backend-express.default/ - restartPolicy: OnFailure diff --git a/example/workloads/todo-backend-golang/deployment.yaml b/example/workloads/todo-backend-golang/deployment.yaml deleted file mode 100644 index 41b5d05..0000000 --- a/example/workloads/todo-backend-golang/deployment.yaml +++ /dev/null @@ -1,56 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: todo-backend-golang - labels: - app: todo-backend-golang - slo: slo-microservices - prometheus: valence - annotations: - valence.io/optimizer.configure: "true" -spec: - revisionHistoryLimit: 1 - strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - template: - metadata: - labels: - app: todo-backend-golang - slo: slo-microservices - spec: - containers: - - name: prometheus-proxy - image: valencenet/prometheus-proxy:0.2.0 - imagePullPolicy: IfNotPresent - args: - - start - resources: - requests: - cpu: 100m - - image: manifoldco/todo-backend-golang:latest - imagePullPolicy: IfNotPresent - name: todo-backend-golang - resources: - limits: - cpu: 500m - memory: 500M - requests: - cpu: 250m - memory: 250M - env: - - name: PORT - value: "8080" - ports: - - containerPort: 8080 - name: http - protocol: TCP - readinessProbe: - httpGet: - path: /todos - port: 8080 - initialDelaySeconds: 5 - periodSeconds: 60 - timeoutSeconds: 30 - failureThreshold: 30 \ No newline at end of file diff --git a/example/workloads/todo-backend-golang/kustomization.yaml b/example/workloads/todo-backend-golang/kustomization.yaml deleted file mode 100644 index f6b7d90..0000000 --- a/example/workloads/todo-backend-golang/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -commonLabels: - app: todo-backend-golang -resources: - - deployment.yaml - - service.yaml - - workload.yaml \ No newline at end of file diff --git a/example/workloads/todo-backend-golang/service.yaml b/example/workloads/todo-backend-golang/service.yaml deleted file mode 100644 index 6eb4f3a..0000000 --- a/example/workloads/todo-backend-golang/service.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: todo-backend-golang - labels: - app.kubernetes.io/managed-by: valence -spec: - type: NodePort - ports: - - name: headless - port: 80 - targetPort: 8081 - - name: prometheus - port: 8181 - targetPort: 8181 - selector: - app: todo-backend-golang \ No newline at end of file diff --git a/example/workloads/todo-backend-golang/workload.yaml b/example/workloads/todo-backend-golang/workload.yaml deleted file mode 100644 index 996a667..0000000 --- a/example/workloads/todo-backend-golang/workload.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: majin-todo-backend-golang -spec: - template: - spec: - containers: - - name: majin - image: valencenet/majin:0.2.0 - args: - - attack - - --random - - "true" - - --base-load - - "50" - - --period - - "3600" - - --noise - - "100" - - --duration - - "3600" - - --burst-frequency - - "100" - - --burst-index - - "10" - - --burst-duration - - "600" - env: - - name: TARGET - value: http://todo-backend-golang.default/todos - restartPolicy: OnFailure diff --git a/example/workloads/todo-backend-java/deployment.yaml b/example/workloads/todo-backend-java/deployment.yaml deleted file mode 100644 index 3f68c19..0000000 --- a/example/workloads/todo-backend-java/deployment.yaml +++ /dev/null @@ -1,58 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: todo-backend-java - labels: - app: todo-backend-java - slo: slo-webapps - annotations: - valence.io/optimizer.configure: "true" -spec: - revisionHistoryLimit: 1 - strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 0 - template: - metadata: - labels: - app: todo-backend-java - slo: slo-webapps - spec: - containers: - - name: prometheus-proxy - image: valencenet/prometheus-proxy:0.2.0 - imagePullPolicy: IfNotPresent - env: - - name: TARGET_ADDRESS - value: "http://127.0.0.1:80" - args: - - start - resources: - requests: - cpu: 100m - - image: manifoldco/todo-backend-java:latest - imagePullPolicy: IfNotPresent - name: todo-backend-java - resources: - limits: - cpu: 500m - memory: 500M - requests: - cpu: 250m - memory: 250M - env: - - name: PORT - value: "80" - ports: - - containerPort: 80 - name: http - protocol: TCP - readinessProbe: - httpGet: - path: /todos - port: 80 - initialDelaySeconds: 5 - periodSeconds: 60 - timeoutSeconds: 30 - failureThreshold: 30 diff --git a/example/workloads/todo-backend-java/kustomization.yaml b/example/workloads/todo-backend-java/kustomization.yaml deleted file mode 100644 index 73a4ec0..0000000 --- a/example/workloads/todo-backend-java/kustomization.yaml +++ /dev/null @@ -1,6 +0,0 @@ -commonLabels: - app: todo-backend-java -resources: - - deployment.yaml - - service.yaml - - workload.yaml \ No newline at end of file diff --git a/example/workloads/todo-backend-java/service.yaml b/example/workloads/todo-backend-java/service.yaml deleted file mode 100644 index 4065629..0000000 --- a/example/workloads/todo-backend-java/service.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: todo-backend-java - labels: - app.kubernetes.io/managed-by: valence -spec: - type: NodePort - ports: - - name: headless - port: 80 - targetPort: 8081 - - name: prometheus - port: 8181 - targetPort: 8181 - selector: - app: todo-backend-java \ No newline at end of file diff --git a/example/workloads/todo-backend-java/workload.yaml b/example/workloads/todo-backend-java/workload.yaml deleted file mode 100644 index 2465f87..0000000 --- a/example/workloads/todo-backend-java/workload.yaml +++ /dev/null @@ -1,32 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: majin-todo-backend-java -spec: - template: - spec: - containers: - - name: majin - image: valencenet/majin:0.2.0 - args: - - attack - - --random - - "true" - - --base-load - - "50" - - --period - - "3600" - - --noise - - "100" - - --duration - - "3600" - - --burst-frequency - - "100" - - --burst-index - - "10" - - --burst-duration - - "600" - env: - - name: TARGET - value: http://todo-backend-java.default/todos - restartPolicy: OnFailure