diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/tp4/kustomization.yaml b/tp4/kustomization.yaml new file mode 100644 index 0000000..d147de9 --- /dev/null +++ b/tp4/kustomization.yaml @@ -0,0 +1,4 @@ +namespace: tp4 +resources: + - sae5dc03-deployment.yaml + - sae5dc03-service.yaml \ No newline at end of file diff --git a/tp4/sae5dc03-deployment-blue.yaml b/tp4/sae5dc03-deployment-blue.yaml new file mode 100644 index 0000000..f70d1d0 --- /dev/null +++ b/tp4/sae5dc03-deployment-blue.yaml @@ -0,0 +1,42 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sae5dc03 + namespace: tp4 +spec: + selector: + matchLabels: + app: sae5dc03 + env: blue + replicas: 10 + strategy: + type: Recreate + + template: + metadata: + labels: + app: sae5dc03 + env: blue + version: v2 + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "5000" + prometheus.io/scheme: "http" + spec: + containers: + - name: sae5dc03 + image: iut1r-registry.univ-grenoble-alpes.fr/but/sae5dc03:v2 + imagePullPolicy: Always + + # La configuration readinessProbe permet de vérifier si l'application est prête à recevoir le traffic + # Ici, nous la configurons pour accéder à la route /readiness qui ne fait que renvoyer un code 200, + # mais qui n'est pas considéré dans les mesures de traffic dans Grafana + # le délai de 10s permet (en particulier dans le cas de la stratégie RollingUpdate) de temporiser la + # disponibilité de l'application. + readinessProbe: + httpGet: + path: /readiness + port: 5000 + initialDelaySeconds: 10 + periodSeconds: 5 + restartPolicy: Always diff --git a/tp4/sae5dc03-deployment-canary.yaml b/tp4/sae5dc03-deployment-canary.yaml new file mode 100644 index 0000000..c2afe28 --- /dev/null +++ b/tp4/sae5dc03-deployment-canary.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sae5dc03-canari + namespace: tp4 +spec: + selector: + matchLabels: + app: sae5dc03 + replicas: 1 + strategy: + type: Recreate + + template: + metadata: + labels: + app: sae5dc03 + version: v2 + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "5000" + prometheus.io/scheme: "http" + spec: + containers: + - name: sae5dc03 + image: iut1r-registry.univ-grenoble-alpes.fr/but/sae5dc03:v2 + imagePullPolicy: Always + + # La configuration readinessProbe permet de vérifier si l'application est prête à recevoir le traffic + # Ici, nous la configurons pour accéder à la route /readiness qui ne fait que renvoyer un code 200, + # mais qui n'est pas considéré dans les mesures de traffic dans Grafana + # le délai de 10s permet (en particulier dans le cas de la stratégie RollingUpdate) de temporiser la + # disponibilité de l'application. + readinessProbe: + httpGet: + path: /readiness + port: 5000 + initialDelaySeconds: 10 + periodSeconds: 5 + restartPolicy: Always diff --git a/tp4/sae5dc03-deployment-green.yaml b/tp4/sae5dc03-deployment-green.yaml new file mode 100644 index 0000000..3c26d21 --- /dev/null +++ b/tp4/sae5dc03-deployment-green.yaml @@ -0,0 +1,42 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sae5dc03-green + namespace: tp4 +spec: + selector: + matchLabels: + app: sae5dc03 + env: green + replicas: 10 + strategy: + type: Recreate + + template: + metadata: + labels: + app: sae5dc03 + env: green + version: v1 + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "5000" + prometheus.io/scheme: "http" + spec: + containers: + - name: sae5dc03 + image: iut1r-registry.univ-grenoble-alpes.fr/but/sae5dc03:v1 + imagePullPolicy: Always + + # La configuration readinessProbe permet de vérifier si l'application est prête à recevoir le traffic + # Ici, nous la configurons pour accéder à la route /readiness qui ne fait que renvoyer un code 200, + # mais qui n'est pas considéré dans les mesures de traffic dans Grafana + # le délai de 10s permet (en particulier dans le cas de la stratégie RollingUpdate) de temporiser la + # disponibilité de l'application. + readinessProbe: + httpGet: + path: /readiness + port: 5000 + initialDelaySeconds: 10 + periodSeconds: 5 + restartPolicy: Always diff --git a/tp4/sae5dc03-deployment-recreate.yaml b/tp4/sae5dc03-deployment-recreate.yaml new file mode 100644 index 0000000..3faf91c --- /dev/null +++ b/tp4/sae5dc03-deployment-recreate.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sae5dc03 + namespace: tp4 +spec: + selector: + matchLabels: + app: sae5dc03 + replicas: 10 + strategy: + type: Recreate + + template: + metadata: + labels: + app: sae5dc03 + version: v2 + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "5000" + prometheus.io/scheme: "http" + spec: + containers: + - name: sae5dc03 + image: iut1r-registry.univ-grenoble-alpes.fr/but/sae5dc03:v2 + imagePullPolicy: Always + + # La configuration readinessProbe permet de vérifier si l'application est prête à recevoir le traffic + # Ici, nous la configurons pour accéder à la route /readiness qui ne fait que renvoyer un code 200, + # mais qui n'est pas considéré dans les mesures de traffic dans Grafana + # le délai de 10s permet (en particulier dans le cas de la stratégie RollingUpdate) de temporiser la + # disponibilité de l'application. + readinessProbe: + httpGet: + path: /readiness + port: 5000 + initialDelaySeconds: 10 + periodSeconds: 5 + restartPolicy: Always diff --git a/tp4/sae5dc03-deployment-rollingupdate.yaml b/tp4/sae5dc03-deployment-rollingupdate.yaml new file mode 100644 index 0000000..18f21a0 --- /dev/null +++ b/tp4/sae5dc03-deployment-rollingupdate.yaml @@ -0,0 +1,43 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sae5dc03 + namespace: tp4 +spec: + selector: + matchLabels: + app: sae5dc03 + replicas: 10 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 + + template: + metadata: + labels: + app: sae5dc03 + version: v2 + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "5000" + prometheus.io/scheme: "http" + spec: + containers: + - name: sae5dc03 + image: iut1r-registry.univ-grenoble-alpes.fr/but/sae5dc03:v2 + imagePullPolicy: Always + + # La configuration readinessProbe permet de vérifier si l'application est prête à recevoir le traffic + # Ici, nous la configurons pour accéder à la route /readiness qui ne fait que renvoyer un code 200, + # mais qui n'est pas considéré dans les mesures de traffic dans Grafana + # le délai de 10s permet (en particulier dans le cas de la stratégie RollingUpdate) de temporiser la + # disponibilité de l'application. + readinessProbe: + httpGet: + path: /readiness + port: 5000 + initialDelaySeconds: 30 + periodSeconds: 5 + restartPolicy: Always diff --git a/tp4/sae5dc03-deployment.yaml b/tp4/sae5dc03-deployment.yaml new file mode 100644 index 0000000..2731f4e --- /dev/null +++ b/tp4/sae5dc03-deployment.yaml @@ -0,0 +1,40 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sae5dc03 + namespace: tp4 +spec: + selector: + matchLabels: + app: sae5dc03 + replicas: 10 + strategy: + type: Recreate + + template: + metadata: + labels: + app: sae5dc03 + version: v1 + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "5000" + prometheus.io/scheme: "http" + spec: + containers: + - name: sae5dc03 + image: iut1r-registry.univ-grenoble-alpes.fr/but/sae5dc03:v1 + imagePullPolicy: Always + + # La configuration readinessProbe permet de vérifier si l'application est prête à recevoir le traffic + # Ici, nous la configurons pour accéder à la route /readiness qui ne fait que renvoyer un code 200, + # mais qui n'est pas considéré dans les mesures de traffic dans Grafana + # le délai de 10s permet (en particulier dans le cas de la stratégie RollingUpdate) de temporiser la + # disponibilité de l'application. + readinessProbe: + httpGet: + path: /readiness + port: 5000 + initialDelaySeconds: 10 + periodSeconds: 5 + restartPolicy: Always diff --git a/tp4/sae5dc03-service-prod.yaml b/tp4/sae5dc03-service-prod.yaml new file mode 100644 index 0000000..fe2dadc --- /dev/null +++ b/tp4/sae5dc03-service-prod.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: sae5dc03 + namespace: tp4 +spec: + selector: + app: sae5dc03 + env: blue + type: NodePort + ports: + - name: http + port: 8080 + targetPort: 5000 + nodePort: 30480 diff --git a/tp4/sae5dc03-service-test.yaml b/tp4/sae5dc03-service-test.yaml new file mode 100644 index 0000000..79681bd --- /dev/null +++ b/tp4/sae5dc03-service-test.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: sae5dc03 + namespace: tp4 +spec: + selector: + app: sae5dc03 + env: blue + type: NodePort + ports: + - name: http + port: 8090 + targetPort: 5000 + nodePort: 30490 diff --git a/tp4/sae5dc03-service.yaml b/tp4/sae5dc03-service.yaml new file mode 100644 index 0000000..1983e33 --- /dev/null +++ b/tp4/sae5dc03-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: sae5dc03 + namespace: tp4 +spec: + selector: + app: sae5dc03 + type: NodePort + ports: + - name: http + port: 8080 + targetPort: 5000 + nodePort: 30480