Compare commits
	
		
			1 Commits
		
	
	
		
			a1256ee331
			...
			chart
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0bdf93f8b7 | 
							
								
								
									
										41
									
								
								arch/diagrams/src/oc-scheduler.puml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								arch/diagrams/src/oc-scheduler.puml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					@startuml
 | 
				
			||||||
 | 
					skinparam componentStyle rectangle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					node "Kubernetes Cluster" {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cloud "Service: oc-scheduler" as oc_scheduler_service {
 | 
				
			||||||
 | 
					    oc_scheduler_service : Type: NodePort
 | 
				
			||||||
 | 
					    oc_scheduler_service : External NodePort: 8090  # Exposed NodePort for external access
 | 
				
			||||||
 | 
					    oc_scheduler_service : Internal TargetPort: 8080
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ' Deployment for oc-scheduler managing the pods
 | 
				
			||||||
 | 
					  node "Deployment: oc-scheduler" as oc_scheduler_deployment {
 | 
				
			||||||
 | 
					    oc_scheduler_deployment : Replicas: {{ .Values.replicaCount }}
 | 
				
			||||||
 | 
					    oc_scheduler_deployment : Image: registry.dev.svc.cluster.local:5000/oc-scheduler:latest
 | 
				
			||||||
 | 
					    oc_scheduler_deployment : PullPolicy: IfNotPresent
 | 
				
			||||||
 | 
					    oc_scheduler_deployment : TargetPort: 8080
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    node "Pod: oc-scheduler-1" as scheduler_1 {
 | 
				
			||||||
 | 
					      component "Container: oc-scheduler" as oc_scheduler_container1 {
 | 
				
			||||||
 | 
					        oc_scheduler_container1 : Internal Port: 8080
 | 
				
			||||||
 | 
					        oc_scheduler_container1 : MONGO_DATABASE=DC_myDC
 | 
				
			||||||
 | 
					        oc_scheduler_container1 : MONGO_URI=mongodb://mongo:27017
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  oc_scheduler_service --> oc_scheduler_deployment : Routes traffic to Deployment
 | 
				
			||||||
 | 
					  oc_scheduler_deployment --> scheduler_1 : Manages Pods
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ' MongoDB service and statefulset
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cloud "Service: mongo" as mongo_service {
 | 
				
			||||||
 | 
					    mongo_service : Type: ClusterIP
 | 
				
			||||||
 | 
					    mongo_service : Internal Port: 27017
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  scheduler_1 --> mongo_service : Connects to MongoDB
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					@enduml
 | 
				
			||||||
							
								
								
									
										5
									
								
								helm/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								helm/Chart.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					apiVersion: v2
 | 
				
			||||||
 | 
					name: oc-scheduler
 | 
				
			||||||
 | 
					description: A Helm chart for deploying the oc-scheduler service
 | 
				
			||||||
 | 
					version: 0.1.0
 | 
				
			||||||
 | 
					appVersion: "1.0"
 | 
				
			||||||
							
								
								
									
										67
									
								
								helm/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								helm/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
				
			|||||||
 | 
					# README.md - `oc-scheduler` Helm Chart
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This document describes the different tags found in the `values.yml` file used in the Helm chart for the `oc-scheduler` component.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Tags in the `values.yml` file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `replicaCount`
 | 
				
			||||||
 | 
					- **Description**: Defines the number of replicas for the deployment. A replica represents an instance of the application that will be deployed.
 | 
				
			||||||
 | 
					- **Example**: `1` means a single instance of the `oc-scheduler` service will be deployed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `image.repository`
 | 
				
			||||||
 | 
					- **Description**: Specifies the URL of the Docker image registry where the `oc-scheduler` component image is stored.
 | 
				
			||||||
 | 
					- **Example**: `registry.dev.svc.cluster.local:5000/oc-scheduler` refers to a local registry hosted within the `cluster.local` network.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `image.tag`
 | 
				
			||||||
 | 
					- **Description**: Indicates the tag of the Docker image to use. Typically, this could be a specific version or `latest` to always pull the latest version.
 | 
				
			||||||
 | 
					- **Example**: `latest` means the most recent version of the image will be used.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `image.pullPolicy`
 | 
				
			||||||
 | 
					- **Description**: Defines the image pull policy. The possible options are:
 | 
				
			||||||
 | 
					  - `Always`: Always pull the image.
 | 
				
			||||||
 | 
					  - `IfNotPresent`: Pull the image only if it is not already present on the node.
 | 
				
			||||||
 | 
					  - `Never`: Never pull the image.
 | 
				
			||||||
 | 
					- **Example**: `IfNotPresent` means the image will only be pulled if it is not already present on the node.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `env.mongoDatabase`
 | 
				
			||||||
 | 
					- **Description**: Defines the name of the MongoDB database the application will connect to.
 | 
				
			||||||
 | 
					- **Example**: `DC_myDC` refers to the MongoDB database used by the application.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `env.mongoUrl`
 | 
				
			||||||
 | 
					- **Description**: Specifies the connection URL for MongoDB used by the application.
 | 
				
			||||||
 | 
					- **Example**: `mongodb://toto:27017` indicates that the application will connect to the MongoDB instance hosted at `toto` on port `27017`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `service.type`
 | 
				
			||||||
 | 
					- **Description**: Defines the type of Kubernetes service. Possible types include:
 | 
				
			||||||
 | 
					  - `ClusterIP`: The service is only accessible within the cluster.
 | 
				
			||||||
 | 
					  - `NodePort`: The service is accessible via a specific port on all cluster nodes.
 | 
				
			||||||
 | 
					  - `LoadBalancer`: The service is exposed via an external Load Balancer.
 | 
				
			||||||
 | 
					- **Example**: `ClusterIP` means the service will only be accessible within the Kubernetes cluster.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `service.port`
 | 
				
			||||||
 | 
					- **Description**: Specifies the port on which the service will be exposed within the cluster.
 | 
				
			||||||
 | 
					- **Example**: `8090` means the service will be accessible on port `8090`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `service.targetPort`
 | 
				
			||||||
 | 
					- **Description**: Defines the port on which the application listens inside the container.
 | 
				
			||||||
 | 
					- **Example**: `8080` means the application listens on port `8080` within the container.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `resources.limits.cpu`
 | 
				
			||||||
 | 
					- **Description**: Specifies the maximum amount of CPU (in millicores) allocated to the container.
 | 
				
			||||||
 | 
					- **Example**: `500m` means the container can use up to 0.5 CPU (or 50% of a full CPU core).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `resources.limits.memory`
 | 
				
			||||||
 | 
					- **Description**: Specifies the maximum amount of memory (in MiB) allocated to the container.
 | 
				
			||||||
 | 
					- **Example**: `512Mi` means the container can use up to 512 MiB of memory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `resources.requests.cpu`
 | 
				
			||||||
 | 
					- **Description**: Defines the guaranteed amount of CPU (in millicores) for the container. Kubernetes will ensure this amount is always available.
 | 
				
			||||||
 | 
					- **Example**: `250m` means the container will have at least 0.25 CPU (or 25% of a full CPU core).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### `resources.requests.memory`
 | 
				
			||||||
 | 
					- **Description**: Defines the guaranteed amount of memory (in MiB) for the container. Kubernetes will reserve this memory for the container.
 | 
				
			||||||
 | 
					- **Example**: `256Mi` means the container will have at least 256 MiB of memory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Conclusion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This `values.yml` file allows configuring the deployment settings for the `oc-scheduler` component. Each tag plays a specific role in defining the Docker image, service configuration, and resource allocation for the container within the Kubernetes cluster.
 | 
				
			||||||
							
								
								
									
										7
									
								
								helm/templates/configmap.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								helm/templates/configmap.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					apiVersion: v1
 | 
				
			||||||
 | 
					kind: ConfigMap
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  name: oc-scheduler-configmap
 | 
				
			||||||
 | 
					data:
 | 
				
			||||||
 | 
					  MONGO_DATABASE: "{{ .Values.env.mongoDatabase }}"
 | 
				
			||||||
 | 
					  OCSHARED_MONGOURL: "{{ .Values.env.mongoUrl }}"
 | 
				
			||||||
							
								
								
									
										31
									
								
								helm/templates/deployment.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								helm/templates/deployment.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					apiVersion: apps/v1
 | 
				
			||||||
 | 
					kind: Deployment
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  name: oc-scheduler
 | 
				
			||||||
 | 
					  labels:
 | 
				
			||||||
 | 
					    app: oc-scheduler
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  replicas: 1
 | 
				
			||||||
 | 
					  selector:
 | 
				
			||||||
 | 
					    matchLabels:
 | 
				
			||||||
 | 
					      app: oc-scheduler
 | 
				
			||||||
 | 
					  template:
 | 
				
			||||||
 | 
					    metadata:
 | 
				
			||||||
 | 
					      labels:
 | 
				
			||||||
 | 
					        app: oc-scheduler
 | 
				
			||||||
 | 
					    spec:
 | 
				
			||||||
 | 
					      containers:
 | 
				
			||||||
 | 
					        - name: oc-scheduler
 | 
				
			||||||
 | 
					          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
 | 
				
			||||||
 | 
					          ports:
 | 
				
			||||||
 | 
					            - containerPort: {{ .Values.service.targetPort }}
 | 
				
			||||||
 | 
					          envFrom:
 | 
				
			||||||
 | 
					            - configMapRef:
 | 
				
			||||||
 | 
					                name: oc-scheduler-configmap
 | 
				
			||||||
 | 
					          resources:
 | 
				
			||||||
 | 
					            limits:
 | 
				
			||||||
 | 
					              cpu: "{{ .Values.resources.limits.cpu }}"
 | 
				
			||||||
 | 
					              memory: "{{ .Values.resources.limits.memory }}"
 | 
				
			||||||
 | 
					            requests:
 | 
				
			||||||
 | 
					              cpu: "{{ .Values.resources.requests.cpu }}"
 | 
				
			||||||
 | 
					              memory: "{{ .Values.resources.requests.memory }}"
 | 
				
			||||||
							
								
								
									
										16
									
								
								helm/templates/service.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								helm/templates/service.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					apiVersion: v1
 | 
				
			||||||
 | 
					kind: Service
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  name: oc-scheduler
 | 
				
			||||||
 | 
					  labels:
 | 
				
			||||||
 | 
					    app: oc-scheduler
 | 
				
			||||||
 | 
					    release: {{ .Release.Name }}
 | 
				
			||||||
 | 
					spec:
 | 
				
			||||||
 | 
					  type: {{ .Values.service.type }}  # Utilisation du type de service configuré (ClusterIP, NodePort, LoadBalancer)
 | 
				
			||||||
 | 
					  selector:
 | 
				
			||||||
 | 
					    app: oc-catalog
 | 
				
			||||||
 | 
					    release: {{ .Release.Name }}
 | 
				
			||||||
 | 
					  ports:
 | 
				
			||||||
 | 
					    - protocol: TCP
 | 
				
			||||||
 | 
					      port: {{ .Values.service.port }}  # Port exposé (8091 par défaut)
 | 
				
			||||||
 | 
					      targetPort: {{ .Values.service.targetPort }}  # Port du conteneur interne (8080 par défaut)
 | 
				
			||||||
							
								
								
									
										23
									
								
								helm/values.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								helm/values.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					replicaCount: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					image:
 | 
				
			||||||
 | 
					  repository: registry.dev.svc.cluster.local:5000/oc-scheduler
 | 
				
			||||||
 | 
					  tag: latest
 | 
				
			||||||
 | 
					  pullPolicy: IfNotPresent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					env:
 | 
				
			||||||
 | 
					  mongoDatabase: DC_myDC
 | 
				
			||||||
 | 
					  mongoUrl: mongodb://toto:27017
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					service:
 | 
				
			||||||
 | 
					  type: ClusterIP
 | 
				
			||||||
 | 
					  port: 8090
 | 
				
			||||||
 | 
					  targetPort: 8080
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					resources:
 | 
				
			||||||
 | 
					  limits:
 | 
				
			||||||
 | 
					    cpu: "500m"
 | 
				
			||||||
 | 
					    memory: "512Mi"
 | 
				
			||||||
 | 
					  requests:
 | 
				
			||||||
 | 
					    cpu: "250m"
 | 
				
			||||||
 | 
					    memory: "256Mi"
 | 
				
			||||||
		Reference in New Issue
	
	Block a user