• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

350
Views
Ejecutando el script de mongo shell usando el trabajo de kubernetes

Necesito crear un trabajo de kubernetes que se ejecutará debajo del script en mongo shell:

 var operations = []; db.product.find().forEach(function(doc) { var documentLink = doc.documentLink; var operation = { updateMany :{ "filter" : {"_id" : doc._id}, "update" : {$set:{"documentLinkMap.en":documentLink,"documentLinkMap.de":""}, $unset: {documentLink:"","descriptionMap.tr":"","news.tr":"","descriptionInternal.tr":"","salesDescription.tr":"","salesInternal.tr":"","deliveryDescription.tr":"","deliveryInternal.tr":"","productRoadMapDescription.tr":"","productRoadMapInternal.tr":"","technicalsAndIntegration.tr":"","technicalsAndIntegrationInternal.tr":"","versions.$[].descriptionMap.tr":"","versions.$[].releaseNoteMap.tr":"","versions.$[].artifacts.$[].descriptionMap.tr":"","versions.$[].artifacts.$[].artifactNotes.tr":""}}}}; operations.push(operation); }); operations.push( { ordered: true, writeConcern: { w: "majority", wtimeout: 5000 } }); db.product.bulkWrite(operations);

Necesitaré una muestra de cómo se verá ese trabajo. ¿Debo crear un volumen persistente y reclamarlo o existe la posibilidad de ejecutar este trabajo sin un volumen persistente? Necesito ejecutar esto una vez y luego eliminarlo.

about 3 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede resolverlo mucho más fácilmente con configMap y luego montar el configMap como un volumen que se resolverá en un archivo.

A continuación se muestra un ejemplo de cómo proceder (¡Nota! Deberá usar una imagen adecuada para ello, así como algunos otros cambios en el funcionamiento de mongo shell):

  1. Cree un configMap desde un archivo. Se puede hacer ejecutando este comando:

     $ kubectl create cm mongoscript-cm --from-file=mongoscript.js configmap/mongoscript-cm created

    Puede verificar que su archivo esté almacenado adentro ejecutando:

     $ kubectl describe cm mongoscript-cm
  2. Cree un trabajo con montaje de volumen desde el mapa de configuración ( la plantilla de especificaciones es la misma que se usa en los pods ):

     apiVersion: batch/v1 kind: Job metadata: name: mongojob spec: template: spec: containers: - name: mongojob image: ubuntu # for testing purposes, you need to use appropriate one command: ['bin/bash', '-c', 'echo STARTED ; cat /opt/mongoscript.js ; sleep 120 ; echo FINISHED'] # same for command, that's for demo purposes volumeMounts: - name: mongoscript mountPath: /opt # where to mount the file volumes: - name: mongoscript configMap: name: mongoscript-cm # reference to previously created configmap restartPolicy: OnFailure # required for jobs
  3. Comprobando cómo se ve dentro de la cápsula

    Conéctese a la cápsula:

     $ kubectl exec -it mongojob--1-8w4ml -- /bin/bash

    Se presenta el archivo de verificación:

     # ls /opt mongoscript.js

    Consulta su contenido:

     # cat /opt/mongoscript.js var operations = []; db.product.find().forEach(function(doc) { var documentLink = doc.documentLink; var operation = { updateMany :{ "filter" : {"_id" : doc._id}, "update" : {$set {"documentLinkMap.en":documentLink,"documentLinkMap.de":""}, $unset: {documentLink:"","descriptionMap.tr":"","news.tr":"","descriptionInternal.tr":"","salesDescription.tr":"","salesInternal.tr":"","deliveryDescription.tr":"","deliveryInternal.tr":"","productRoadMapDescription.tr":"","productRoadMapInternal.tr":"","technicalsAndIntegration.tr":"","technicalsAndIntegrationInternal.tr":"","versions.$[].descriptionMap.tr":"","versions.$[].releaseNoteMap.tr":"","versions.$[].artifacts.$[].descriptionMap.tr":"","versions.$[].artifacts.$[].artifactNotes.tr":""}}}}; operations.push(operation); }); operations.push( { ordered: true, writeConcern: { w: "majority", wtimeout: 5000 } }); db.product.bulkWrite(operations);
about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error