Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1.  Setup EPICS_CA_ADDR_LIST if needed,
  2. Phoebus environ if needed


Python SoftIOC workflow

Setup a target container

For this kind of IOC it's recommended to use the docker image: baltig.infn.it:4567/epics-containers/epics-py-base since it contains the required packages and will be also the image that will be used to run this kind of softioc.

...

https://baltig.infn.it/infn-epics/py-ioc-collector


Follow development guidelines

SOFT IOC Development SoftIOC in a Linux-like environment

Deploy on the target ECS

Once your IOC/application is tested and ready to be published on the target ECS.

Follow this steps:

  1.  Identify your target ECS information page (i.e Sparc ECS ) retrieving "GIT Control Source" URL, clone it:
    Code Block
    languagebash
    titleFull CS
    git clone https://baltig.infn.it/lnf-da-control/<BEAMLINE>-k8s-ecs.git --recurse-submodules
  2. go in deploy/templates
  3.  create a manifest yaml for your application like this:
    Code Block
    languageyml
    titleApplication yaml
    apiVersion: argoproj.io/v1alpha1
    kind: Application
    metadata:
      name: <myapplicationname>-ioc
      namespace: argocd
      labels:
        rootapp: {{ .Chart.Name }}
        rootappver: {{ .Chart.Version | quote }}
        beamline: {{ .Values.beamline | quote }}
    spec:
      project: default
      source:
        repoURL: 'https://baltig.infn.it/epics-containers/ioc-chart.git'
        path: .
        targetRevision: HEAD
        helm:
          values: |
              image: baltig.infn.it:4567/epics-containers/epics-py-base
              beamline: {{ .Values.beamline | quote }}
              replicaCount: {{ .Values.consoleReplica }}
              configCA:
                existingConfigMap: {{ .Values.configCA.configName | quote}}
                address_list: {{ .Values.configCA.gatewayName }} ## override with gateway
        
              gitRepoConfig:
                url: 'http://<your repo url>'
                path: '<path to reach your app and conf... usually just .>'
                branch: 'main'
                init: 'true'
              start: '/epics/ioc/config/start.sh'
              
            
      destination:
        server: 'https://kubernetes.default.svc'
        namespace: {{ .Values.namespace | quote }}
      syncPolicy:
        automated:
          prune: true  # Optional: Automatically remove resources not specified in Helm chart
          selfHeal: true
  4. (i.e Sparc ECS )