User Tools

Site Tools


editing_profile_resources

This is an old revision of the document!


Editing Profile Resources

Oct 2021


Introduction


This article is really only applicable in PoD per Service deployments

IPHE encoding profiles (except the one just called 'encoding') have a CPU limit that is defined in the yaml code. Each encoding profile type has a different value. However this value may not be very optimised for all servers, depending on the CPU / RAM configuration a server has.

For this reason we will probably want to change the default values for a particular server to optimise the number of vCPUs that are allocated to an encoding PoD.


Download an existing encoding profile


Open the MDT application (https://ipaddress:30443) and login using mdt-admin / changeme.



Now look for an appropriate encoding profile to download (I normally take encoding-hd) and select the 'export profile' button.



The encoding profile (a .yaml file) will now download.


Editing the encoding profile


Open the .yaml file (preferably in an editor that properly supports .yaml file formats (not notepad)) and save it to a new filename.

The part of the encoding profile that we are interested in starts with resources: If the file you downloaded does not have this section, download a difference default encoding profile (encoding-hd for example).

      resources:
        requests:
          cpu: 9



Adding the new encoding profile to MDT


Once you have created your new encoding profiles, you can upload them to MDT. To do this use the 'Import Profile' button at the top right of the MDT web UI (ensure you are in profile view).


Now select your profile



Once uploaded you will see a confirmation panel.



Click okay. Your new encoding profile will be at the bottom of the MDT profile page.



To make it active, edit the profile, add some nodes and deploy it.


Edited encoding profile


Below is the edited file that was used in this process.

mdt-kinds:
  - kind: profile
    name: encoding-sky-hd-01
    version: ''
    packages:
      - deploy-package: encoding-live-worker-sky-hd-01
        version: 25.14.76+4.0.19
  - kind: deploy-package
    deploy-package:
      name: encoding-live-worker-sky-hd-01
      version: 25.14.76+4.0.19
    chart:
      name: encoding-live-worker
      version: 25.14.76
    namespace: '{{ products_var.namespace }}'
    deploy_list:
      - sky-01
    options:
      mdt:
        deployment_stage: 5
        upgrade:
          policy: immediate
      helm:
        wait: false
        timeout: 300
    values:
      image:
        serverdaemon:
          repository: '{{ products_var.docker_registry }}/mediakind/server-daemon'
          tag: '{{ products_var.server_daemon.tag }}'
        worker:
          repository: '{{ products_var.docker_registry }}/mediakind/encoding-live-worker'
        redis:
          repository: '{{ products_var.docker_registry }}/redis'
          tag: '{{ products_var.redis.tag }}'
        alarmProxy:
          repository: '{{ products_var.docker_registry }}/mediakind/alarm-proxy'
          tag: '{{ products_var.alarm_proxy.tag }}'
        initcontainer:
          repository: '{{ products_var.docker_registry }}/busybox'
          tag: 1.30.1
      alarmsViaRedisInWorkerPod: '{{ products_var.features.alarmsViaRedisInWorkerPod }}'
      el_worker:
        server_mngt_nic: '{{ products_var.server_mngt_nic }}'
        mpeg4cfg: |
          perChannelLicensing=true
      qsv:
        enable: false
      mongo:
        name: '{{ products_var.mongo.name }}'
        database: '{{ products_var.mongo.replicasetname }}'
        replica: '{{ products_var.mongo.replica }}'
      muhook:
        enable: '{{ products_var.features.muconv }}'
        interface: '{{ products_var.server_mngt_nic }}'
        process_name: '*liveTranscoder'
        log_level: 4
        log_output: stderr
      unified_ui:
        name: api-gateway
      rabbitmq:
        name: '{{ products_var.rabbitmq.name }}'
      etcd_mu:
        name: '{{ products_var.etcd.name }}'
        port: '{{ products_var.etcd.port }}'
      redis:
        name: '{{ products_var.redis.name }}'
      volumes:
        log:
          enable: '{{ products_var.log_volume }}'
      license_server_addr: '{{ products_var.license_server }}'
      server_processing_name: LiveEncoder
      nodeSelector: '{{ mdt.current_profile.profile_name_label }}'
      resources:
        requests:
          cpu: 7
          memory: 4Gi
        limits:
          cpu: 15
          memory: 10Gi
      privilegedInitContainer:
        enabled: true
        command:
          - sysctl
          - '-w'
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - topologyKey: kubernetes.io/hostname
              labelSelector:
                matchLabels:
                  app: encoding-live-worker
editing_profile_resources.1632234752.txt.gz · Last modified: 2023/03/09 22:35 (external edit)