FINAL PROJECT

1. (5p) Create a new student<number> branch from the following Git repository: https://gitlab.sschool.ro.thales/oana/devops-ss-2022/-/tree/develop, starting from branch develop

2. (5p) Modify the Jenkinsfile and add a new stage that will execute the “ps -aux” command. Select your term-vm as the running node (also from the Jenkinsfile)

3. (5p) Filter out the output of the above command by searching for the Jenkins Java process and redirect it to a “process_details.txt” file

You can use a specific command to filter by “home\/jenkins”

4. (5p) Add a post block with “always” option, “archiveArtifacts” to select all the “*.txt” files

5. (5p) Create a new file in the repo root with the name “exam.sh”

      Add a shebang and print the following text: "I am <NAME> and I will get a nice grade!"
      Commit and push and check the Jenkins triggered job.

Hint: make sure the script has executable rights

6. (15p) Create a dockerfile starting from the “nexus.app.de.corp.thales:5000/thales/ee/oana/debugbox:latest” image, with the following steps:

      a) copy the "exam.sh" file in /opt/
      b) change your working directory to /opt/
	(using WORKDIR directive in Dockerfile)
      c) create a new user with the id "1000 + <student_number>"
	Exemplu comandă pentru adăugarea unui utilizator: useradd –create-home –shell /bin/bash –uid 1000 –user-group devops
      d) expose port 1234
	(using EXPOSE directive)

7. (15p) Update the Jenkinsfile with 2 new stages (name them as you like):

      ==> build the Docker image with the name "dockerimage-<student_number>"
      ==> start a container using the generated image that will execute the "exam.sh" script

The container should:

  • remove by itself after the run is finished
  • have port 1234 exposed

Hint: -it for running docker containers will block the terminal. Before you use it in Jenkins make sure if you actually need it.

8.

  • metadata ⇒ name: student<number>
  • start a container called “awesome_container” based on the nginx Docker image
  • expose port 80

9. (10p) Check the newly created pod and describe it

10. (10p) Show the logs for the running pod using kubectl commands and redirect the output to <student_no>_pod_logs.txt

11. (5p) Create a pull request to the “develop” branch

12. (5p) Complete feedback form, located here: https://forms.gle/Jwp9RoaBUHSYJ4uv5