diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e8a81fb264476201fd5ca118b13f8b93a1a7e0ee..7328d7b66303441798fd19ca1147b5b86d9214a6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,11 +25,16 @@ build_master: deploy_master: stage: deploy tags: - - deploy-alpha + - ns-cpd-p01-syn only: - master + before_script: + - NAMESPACE=ns-cpd-p01-syn + - export KUBECONFIG=$KUBE_CONFIG_CPD_PROD script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - - docker-compose pull - - docker-compose up -d self_data_docs - - docker rmi $(docker images 'registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/self-data-technical-doc' -f "dangling=true" -q) + - oc create secret -n $NAMESPACE docker-registry forge-secret --docker-server=$CI_REGISTRY --docker-username=forge-secret --docker-password=$READ_REGISTRY_TOKEN --dry-run=client -o yaml | oc apply -f - + - oc apply -f k8s/deployment.yml + - oc apply -f k8s/service.yml + - oc apply -f k8s/route.yml + - oc delete pod -l app=self-data-doc + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 284ebc0336703cbfd1454203a45010a0c35c95fc..2740467cb4db6d55402fbad03fe1e0cb73db25a4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,10 +18,10 @@ RUN apk add --no-cache --virtual .build gcc musl-dev && pip install -r ./require RUN mkdocs build # Expose MkDocs development server port -FROM nginx - +FROM nginxinc/nginx-unprivileged:1.25 +RUN rm -rf /etc/nginx/html/* COPY --from=builder /app/site /usr/share/nginx/html RUN ls -l /usr/share/nginx/html -EXPOSE 80 +EXPOSE 8080 CMD ["nginx", "-g", "daemon off;"] diff --git a/k8s/deployment.yml b/k8s/deployment.yml new file mode 100644 index 0000000000000000000000000000000000000000..8d134da606d76c3c3b77caf429cfc887cac31eb8 --- /dev/null +++ b/k8s/deployment.yml @@ -0,0 +1,27 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: self-data-doc + namespace: ns-cpd-p01-syn +spec: + replicas: 1 + selector: + matchLabels: + app: self-data-doc + template: + metadata: + labels: + app: self-data-doc + spec: + containers: + - name: self-data-doc + image: registry.forge.grandlyon.com/web-et-numerique/factory/llle_project/self-data-technical-doc:latest + imagePullPolicy: Always + ports: + - containerPort: 8080 + protocol: TCP + nodeSelector: + node-role.kubernetes.io/worker: '' + imagePullSecrets: + - name: forge-secret diff --git a/k8s/route.yml b/k8s/route.yml new file mode 100644 index 0000000000000000000000000000000000000000..d322463ebe9bb8190c95c787fd58a87e877bd820 --- /dev/null +++ b/k8s/route.yml @@ -0,0 +1,148 @@ +kind: Route +apiVersion: route.openshift.io/v1 +metadata: + name: self-data-doc-route + namespace: ns-cpd-p01-syn +spec: + host: doc.self-data.apps.grandlyon.com + to: + kind: Service + name: self-data-doc-service + weight: 100 + port: + targetPort: 8080 + tls: + termination: edge + insecureEdgeTerminationPolicy: Redirect + certificate: >- + -----BEGIN CERTIFICATE----- + + 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 + + RNiMJUTOfECQrfJvLhg= + + -----END CERTIFICATE----- + + -----BEGIN CERTIFICATE----- + + MIIF6TCCA9GgAwIBAgIQBeTcO5Q4qzuFl8umoZhQ4zANBgkqhkiG9w0BAQwFADCB + + iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl + + cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV + + BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQw + + OTEyMDAwMDAwWhcNMjQwOTExMjM1OTU5WjBfMQswCQYDVQQGEwJGUjEOMAwGA1UE + + CBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMQ4wDAYDVQQKEwVHYW5kaTEgMB4GA1UE + + AxMXR2FuZGkgU3RhbmRhcmQgU1NMIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IB + + DwAwggEKAoIBAQCUBC2meZV0/9UAPPWu2JSxKXzAjwsLibmCg5duNyj1ohrP0pIL + + m6jTh5RzhBCf3DXLwi2SrCG5yzv8QMHBgyHwv/j2nPqcghDA0I5O5Q1MsJFckLSk + + QFEW2uSEEi0FXKEfFxkkUap66uEHG4aNAXLy59SDIzme4OFMH2sio7QQZrDtgpbX + + bmq08j+1QvzdirWrui0dOnWbMdw+naxb00ENbLAb9Tr1eeohovj0M1JLJC0epJmx + + bUi8uBL+cnB89/sCdfSN3tbawKAyGlLfOGsuRTg/PwSWAP2h9KK71RfWJ3wbWFmV + + XooS/ZyrgT5SKEhRhWvzkbKGPym1bgNi7tYFAgMBAAGjggF1MIIBcTAfBgNVHSME + + GDAWgBRTeb9aqitKz1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQUs5Cn2MmvTs1hPJ98 + + rV1/Qf1pMOowDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD + + VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMCIGA1UdIAQbMBkwDQYLKwYBBAGy + + MQECAhowCAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl + + cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy + + bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy + + dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ + + aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAWGf9 + + crJq13xhlhl+2UNG0SZ9yFP6ZrBrLafTqlb3OojQO3LJUP33WbKqaPWMcwO7lWUX + + zi8c3ZgTopHJ7qFAbjyY1lzzsiI8Le4bpOHeICQW8owRc5E69vrOJAKHypPstLbI + + FhfFcvwnQPYT/pOmnVHvPCvYd1ebjGU6NSU2t7WKY28HJ5OxYI2A25bUeo8tqxyI + + yW5+1mUfr13KFj8oRtygNeX56eXVlogMT8a3d2dIhCe2H7Bo26y/d7CQuKLJHDJd + + ArolQ4FCR7vY4Y8MDEZf7kYzawMUgtN+zY+vkNaOJH1AQrRqahfGlZfh8jjNp+20 + + J0CT33KpuMZmYzc4ZCIwojvxuch7yPspOqsactIGEk72gtQjbz7Dk+XYtsDe3CMW + + 1hMwt6CaDixVBgBwAc/qOR2A24j3pSC4W/0xJmmPLQphgzpHphNULB7j7UTKvGof + + KA5R2d4On3XNDgOVyvnFqSot/kGkoUeuDcL5OWYzSlvhhChZbH2UF3bkRYKtcCD9 + + 0m9jqNf6oDP6N8v3smWe2lBvP+Sn845dWDKXcCMu5/3EFZucJ48y7RetWIExKREa + + m9T8bJUox04FB6b9HbwZ4ui3uRGKLXASUoWNjDNKD/yZkuBjcNqllEdjB+dYxzFf + + BT02Vf6Dsuimrdfp5gJ0iHRc2jTbkNJtUQoj1iM= + + -----END CERTIFICATE----- + key: "-----BEGIN PRIVATE KEY-----\r\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDgji/xEssQW7YW\r\nJYFvmZP1kwP0HZ97VHDhFIzIrJBidQIidEvG4aGEvIDE0+99pKpItlYo19ZNaPZO\r\nY1uSN8F37pBY5u1qXHpgR1oTLPjCtqa4Lnjzy6ulmXQfva+L40diVuVl7LlWn5Qy\r\nMtGTDuAZkUjX8Bx+j6i0mXXakI0vxSc25hWL16qAt6cg+Js+jXL7Z/PThG6pw1Rd\r\nLIEqYihaFf7q4yEddkQvAivnDODvUAliFKL4JfSMjGFMbUY6o0DORiHqilYgdHxn\r\nN9YQ0JSN9tRYqpz7gAIgFzaRJk6ga32yFYiPDmQY/e0Xfe1vEhx4HTn//ATM8NtK\r\ndLQfiT1DAgMBAAECggEAUkzallTodszeHhzN5SyY9VrWCpzmzClFG8FP3eadHnC7\r\nAQy1jyU38PGzkjAI6Pg2buLhDiQZB5MOHum8cIkdz8pwPh0Y67AMLAhKo5eKbrbJ\r\nwNxLeTLu7Iki7dU0JyV8DrdBaUtLHEvtYT6N4AOGL+i3FWmLz/jwAIz0DFCJZnWA\r\nTARvjkgJA+Y4egu218KNwy99tlfN4O6R+dGl940hL6h4Z3qKk3R875T0wxTpSh+A\r\ngw0kC1bKfSa+U4i4FxbHbok8VlpteC8hlM9Ti+NBpTLSDc4FGfGlMSa4GK+u21uN\r\nd65FZqpQRjF6M7OjPQQbceQQH+fxb6gcFZlbmOm6JQKBgQD43v1JfLMoEWxLRFtO\r\n28eRMNAFtlQ4twZ9cAenv3mrhZtfHeEc6PqKKqKiHgyJ8khGjg+IBITu1ZsV7Gfe\r\n5eE7Kfe1uYfNkqA1irI5AQWQ8jsQbal+HNZUr/c1nB7cj3CTV7mHQV9KfWImon+W\r\nX2mfwPSTZ8OLvXDrzNccfSG0lwKBgQDm/OMzbGunZF9rJHwUHKDfMDLqJUsm3VZA\r\nfANhThk5YhBJ4xz4Ti3YKveMufNLt5nX9QaymBFcC4sYVLfCPDraBUQJqZzy0Yh6\r\nxDu6ebr6kMRIn/SKMOL+q49yURRN0saQr0ZHIqkgehNixVBgGlQWOmQIHEGwPGl/\r\ncjesTCE2NQKBgQDyF7k8q1l8OLan4S8RXyqbSmiRpfP319MwYrKPs+uftrCVrnM1\r\ntE1D6oWaPrDj4BP+zmK9ZegKjS/3+6hvZB/ddc3JsVkx2NiQPQNyAFRx07ExIfwm\r\n+dZlO2e3ds9urvpL2qJXuHgB9kZsXtbOaLJO/Vztp5rJbNdUCkeXJwKKsQKBgDaX\r\ndBcWO8c/GLIY2F5kebzmBlKCZ+WSkC0DYkUgESQXwiPEUnd4+qrJVOJknFS72tdI\r\naMHS4N9xNvmUJC360Cnw7qid9qMI1Im3USp8VK2dg1Zqv3/dl/h6kZeCBBt0gkt1\r\nsVVkorYzQ9unKJzd/BuYx0WHcBr33DMrym6lO4A1AoGAY0ZDglX4ZeZmK2ppsy30\r\nG9/Q3elGQkAs6S/PWq/GkDJ0J+31wDy82L1rseL9P2v483g8Dwdrjt8vA8JkyZE6\r\nIy1y1z5PYfKK+WABSyYUhNP21USFfLxSI0Scw8Z/75022CNUImUZ4H637p6DKecr\r\nk3bY438tjaRkHjmdYI0TSZk=\r\n-----END PRIVATE KEY-----\r\n" + wildcardPolicy: None diff --git a/k8s/service.yml b/k8s/service.yml new file mode 100644 index 0000000000000000000000000000000000000000..c908c1c4479bf065b44ebb836487778adae6f661 --- /dev/null +++ b/k8s/service.yml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: self-data-doc-service + namespace: ns-cpd-p01-syn +spec: + selector: + app: self-data-doc + ports: + - protocol: TCP + port: 80 + targetPort: 8080