Agility
Document Manager
release 2 0 1 informações da release considerações aplicação document manager nome da versão 2 0 1 data de publicação 12/10/2024 cards relacionados (informar título do card) imagens da versão (central it nexus centralit io 9091/hyper document manager 2 0 1 correções remoção da dependência do keycloak, pois estão sendo usados os usuários do agility remoção temporária das notificações por e mail orientações para deploy as orientações para deploy estão na documentação é necessário rodar as migrações release 2 0 0 informações da release considerações aplicação document manager nome da versão 2 0 0 data de publicação 02/09/2024 cards relacionados (informar título do card) imagens da versão (central it nexus centralit io 9091/hyper document manager 2 0 0 melhorias/ novas funcionalidades mudança do framework para next js conclusão do escopo inicial, com gestão de documento, envio de email, criação de templates e auditoria orientações para deploy implantação dependências criação do database e usuário próprio as informações serão passadas por variável de ambiente para o container, portanto, o nome não tem um valor obrigatório rodar as migrations dentro do container, rode o comando /usr/local/bin/auditum migrate garanta que as portas 8080 e 9090 estejam expostas e que o container do document manager tenha acesso exemplo de docker compose do auditum \<span id="lc1" class="line" lang="yaml">\<span class="na">auditum\</span>\<span class="pi"> \</span>\</span> \<span id="lc2" class="line" lang="yaml"> \<span class="na">image\</span>\<span class="pi"> \</span> \<span class="s">auditumio/auditum 0 3 0\</span>\</span> \<span id="lc3" class="line" lang="yaml"> \<span class="na">environment\</span>\<span class="pi"> \</span>\</span> \<span id="lc4" class="line" lang="yaml"> \<span class="na">auditum store type\</span>\<span class="pi"> \</span> \<span class="s">postgres\</span>\</span> \<span id="lc5" class="line" lang="yaml"> \<span class="na">auditum store postgres host\</span>\<span class="pi"> \</span> \<span class="s">postgres\</span>\</span> \<span id="lc6" class="line" lang="yaml"> \<span class="na">auditum store postgres port\</span>\<span class="pi"> \</span> \<span class="m">5432\</span>\</span> \<span id="lc7" class="line" lang="yaml"> \<span class="na">auditum store postgres database\</span>\<span class="pi"> \</span> \<span class="s">auditum\</span> \<span class="c1">#(criar banco)\</span>\</span> \<span id="lc8" class="line" lang="yaml"> \<span class="na">auditum store postgres username\</span>\<span class="pi"> \</span> \<span class="s2">"\</span>\<span class="s">auditum"\</span>\</span> \<span id="lc9" class="line" lang="yaml"> \<span class="na">auditum store postgres password\</span>\<span class="pi"> \</span> \<span class="s2">"\</span>\<span class="s">auditum"\</span>\</span> \<span id="lc10" class="line" lang="yaml"> \<span class="na">auditum store postgres sslmode\</span>\<span class="pi"> \</span> \<span class="s">disable\</span>\</span> \<span id="lc11" class="line" lang="yaml"> \<span class="na">auditum store postgres logqueries\</span>\<span class="pi"> \</span> \<span class="no">true\</span> \<span class="c1">#(opcional)\</span>\</span> \<span id="lc12" class="line" lang="yaml"> \<span class="na">entrypoint\</span>\<span class="pi"> \</span> \<span class="s">/bin/sh\</span>\</span> \<span id="lc13" class="line" lang="yaml"> \<span class="na">command\</span>\<span class="pi"> \</span> \<span class="s"> c "/usr/local/bin/auditum migrate && /usr/local/bin/auditum serve"\</span> \<span class="c1">#(roda as migrations)\</span>\</span> \<span id="lc14" class="line" lang="yaml"> \<span class="na">depends on\</span>\<span class="pi"> \</span>\</span> \<span id="lc15" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="s">postgres\</span>\</span> \<span id="lc16" class="line" lang="yaml"> \<span class="na">ports\</span>\<span class="pi"> \</span>\</span> \<span id="lc17" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="s">8000 8080\</span>\</span> \<span id="lc18" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="s">9000 9090\</span>\</span> configurações de deploy keycloak é necessário criar um grupo com role no keycloack e preencher as variáveis de ambiente role dm user e group dm users, para que o usuário tenha acesso ao sistema caso as variáveis não sejam informadas, os valores default serão role dm user e document manager users migrations para rodar as migrações execute o comando dentro do container npm run db\ migrate kubernets exemplo de configuração de deploy para kubernetes configmap template yml \<span id="lc1" class="line" lang="yaml">\<span class="na">apiversion\</span>\<span class="pi"> \</span> \<span class="s">v1\</span>\</span> \<span id="lc2" class="line" lang="yaml">\<span class="na">kind\</span>\<span class="pi"> \</span> \<span class="s">configmap\</span>\</span> \<span id="lc3" class="line" lang="yaml">\<span class="na">metadata\</span>\<span class="pi"> \</span>\</span> \<span id="lc4" class="line" lang="yaml"> \<span class="na">name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc5" class="line" lang="yaml"> \<span class="na">labels\</span>\<span class="pi"> \</span>\</span> \<span id="lc6" class="line" lang="yaml"> \<span class="na">app\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc7" class="line" lang="yaml"> \<span class="na">app kubernetes io/name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc8" class="line" lang="yaml"> \<span class="na">app kubernetes io/version\</span>\<span class="pi"> \</span> \<span class="s">${k8s app version}\</span>\</span> \<span id="lc9" class="line" lang="yaml"> \<span class="na">app kubernetes io/component\</span>\<span class="pi"> \</span> \<span class="s">frontend\</span>\</span> \<span id="lc10" class="line" lang="yaml"> \<span class="na">app kubernetes io/part of\</span>\<span class="pi"> \</span> \<span class="s">frontmanager\</span>\</span> \<span id="lc11" class="line" lang="yaml">\<span class="na">data\</span>\<span class="pi"> \</span>\</span> \<span id="lc12" class="line" lang="yaml"> \<span class="na">audit service url\</span>\<span class="pi"> \</span> \<span class="s">auditum frontmanager dev eveo 9000\</span>\</span> \<span id="lc13" class="line" lang="yaml"> \<span class="na">database url\</span>\<span class="pi"> \</span> \<span class="s">postgresql //postgres\ postgres\@host docker internal 5432/document manager\</span>\</span> \<span id="lc14" class="line" lang="yaml"> \<span class="na">email service url\</span>\<span class="pi"> \</span> \<span class="s">http //lowcode frontmanager dev eveo/integrations/disparo de email/faas\</span>\</span> \<span id="lc15" class="line" lang="yaml"> \<span class="na">kanban api url\</span>\<span class="pi"> \</span> \<span class="s">http //hyper kanban api frontmanager dev eveo/api\</span>\</span> \<span id="lc16" class="line" lang="yaml"> \<span class="na">keycloak base url\</span>\<span class="pi"> \</span> \<span class="s">http //keycloak eveo keycloak/auth\</span>\</span> \<span id="lc17" class="line" lang="yaml"> \<span class="na">keycloak client id\</span>\<span class="pi"> \</span> \<span class="s">admin cli\</span>\</span> \<span id="lc18" class="line" lang="yaml"> \<span class="na">keycloak password\</span>\<span class="pi"> \</span> \<span class="s">admin\</span>\</span> \<span id="lc19" class="line" lang="yaml"> \<span class="na">keycloak username\</span>\<span class="pi"> \</span> \<span class="s">admin\</span>\</span> \<span id="lc20" class="line" lang="yaml"> \<span class="na">next public base name\</span>\<span class="pi"> \</span> \<span class="s">/${k8s app name}\</span>\</span> \<span id="lc21" class="line" lang="yaml"> \<span class="na">role dm user\</span>\<span class="pi"> \</span> \<span class="s">role dm user\</span>\</span> \<span id="lc22" class="line" lang="yaml"> \<span class="na">group dm users\</span>\<span class="pi"> \</span> \<span class="s">document manager users\</span>\</span> \<span id="lc23" class="line" lang="yaml"> \<span class="na">theme\</span>\<span class="pi"> \</span> \<span class="s1">'\</span>\<span class="s">{\</span>\<span class="nv"> \</span>\<span class="s">"colorprimary" \</span>\<span class="nv"> \</span>\<span class="s">"#0f7bc2"\</span>\<span class="nv"> \</span>\<span class="s">}'\</span>\</span> \<span id="lc24" class="line" lang="yaml">\</span> \<span id="lc25" class="line" lang="yaml"> \<span class="na">agility service name\</span>\<span class="pi"> \</span> \<span class="s">kanban (campo opcional, caso não preenchido o default é "kanban")\</span>\</span> deployment template yml \<span id="lc1" class="line" lang="yaml">\<span class="na">apiversion\</span>\<span class="pi"> \</span> \<span class="s">apps/v1\</span>\</span> \<span id="lc2" class="line" lang="yaml">\<span class="na">kind\</span>\<span class="pi"> \</span> \<span class="s">deployment\</span>\</span> \<span id="lc3" class="line" lang="yaml">\<span class="na">metadata\</span>\<span class="pi"> \</span>\</span> \<span id="lc4" class="line" lang="yaml"> \<span class="na">name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc5" class="line" lang="yaml"> \<span class="na">labels\</span>\<span class="pi"> \</span>\</span> \<span id="lc6" class="line" lang="yaml"> \<span class="na">app\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc7" class="line" lang="yaml"> \<span class="na">app kubernetes io/name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc8" class="line" lang="yaml"> \<span class="na">app kubernetes io/version\</span>\<span class="pi"> \</span> \<span class="s">${k8s app version}\</span>\</span> \<span id="lc9" class="line" lang="yaml"> \<span class="na">app kubernetes io/component\</span>\<span class="pi"> \</span> \<span class="s">frontend\</span>\</span> \<span id="lc10" class="line" lang="yaml"> \<span class="na">app kubernetes io/part of\</span>\<span class="pi"> \</span> \<span class="s">frontmanager\</span>\</span> \<span id="lc11" class="line" lang="yaml">\<span class="na">spec\</span>\<span class="pi"> \</span>\</span> \<span id="lc12" class="line" lang="yaml"> \<span class="na">selector\</span>\<span class="pi"> \</span>\</span> \<span id="lc13" class="line" lang="yaml"> \<span class="na">matchlabels\</span>\<span class="pi"> \</span>\</span> \<span id="lc14" class="line" lang="yaml"> \<span class="na">app\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc15" class="line" lang="yaml"> \<span class="na">template\</span>\<span class="pi"> \</span>\</span> \<span id="lc16" class="line" lang="yaml"> \<span class="na">metadata\</span>\<span class="pi"> \</span>\</span> \<span id="lc17" class="line" lang="yaml"> \<span class="na">labels\</span>\<span class="pi"> \</span>\</span> \<span id="lc18" class="line" lang="yaml"> \<span class="na">app\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc19" class="line" lang="yaml"> \<span class="na">app kubernetes io/name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc20" class="line" lang="yaml"> \<span class="na">app kubernetes io/version\</span>\<span class="pi"> \</span> \<span class="s">${k8s app version}\</span>\</span> \<span id="lc21" class="line" lang="yaml"> \<span class="na">app kubernetes io/component\</span>\<span class="pi"> \</span> \<span class="s">frontend\</span>\</span> \<span id="lc22" class="line" lang="yaml"> \<span class="na">app kubernetes io/part of\</span>\<span class="pi"> \</span> \<span class="s">frontmanager\</span>\</span> \<span id="lc23" class="line" lang="yaml"> \<span class="na">spec\</span>\<span class="pi"> \</span>\</span> \<span id="lc24" class="line" lang="yaml"> \<span class="na">containers\</span>\<span class="pi"> \</span>\</span> \<span id="lc25" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">envfrom\</span>\<span class="pi"> \</span>\</span> \<span id="lc26" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">configmapref\</span>\<span class="pi"> \</span>\</span> \<span id="lc27" class="line" lang="yaml"> \<span class="na">name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc28" class="line" lang="yaml"> \<span class="na">image\</span>\<span class="pi"> \</span> \<span class="s">${k8s app image}\</span>\</span> \<span id="lc29" class="line" lang="yaml"> \<span class="na">imagepullpolicy\</span>\<span class="pi"> \</span> \<span class="s">ifnotpresent\</span>\</span> \<span id="lc30" class="line" lang="yaml"> \<span class="na">name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc31" class="line" lang="yaml"> \<span class="na">ports\</span>\<span class="pi"> \</span>\</span> \<span id="lc32" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">containerport\</span>\<span class="pi"> \</span> \<span class="m">8080\</span>\</span> \<span id="lc33" class="line" lang="yaml"> \<span class="na">protocol\</span>\<span class="pi"> \</span> \<span class="s">tcp\</span>\</span> \<span id="lc34" class="line" lang="yaml"> \<span class="na">imagepullsecrets\</span>\<span class="pi"> \</span>\</span> \<span id="lc35" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">name\</span>\<span class="pi"> \</span> \<span class="s">4biz automacao cdi\</span>\</span> ingress kong template yml \<span id="lc1" class="line" lang="yaml">\<span class="na">apiversion\</span>\<span class="pi"> \</span> \<span class="s">networking k8s io/v1\</span>\</span> \<span id="lc2" class="line" lang="yaml">\<span class="na">kind\</span>\<span class="pi"> \</span> \<span class="s">ingress\</span>\</span> \<span id="lc3" class="line" lang="yaml">\<span class="na">metadata\</span>\<span class="pi"> \</span>\</span> \<span id="lc4" class="line" lang="yaml"> \<span class="na">name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc5" class="line" lang="yaml"> \<span class="na">labels\</span>\<span class="pi"> \</span>\</span> \<span id="lc6" class="line" lang="yaml"> \<span class="na">app\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc7" class="line" lang="yaml"> \<span class="na">app kubernetes io/name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc8" class="line" lang="yaml"> \<span class="na">app kubernetes io/version\</span>\<span class="pi"> \</span> \<span class="s">${k8s app version}\</span>\</span> \<span id="lc9" class="line" lang="yaml"> \<span class="na">app kubernetes io/component\</span>\<span class="pi"> \</span> \<span class="s">frontend\</span>\</span> \<span id="lc10" class="line" lang="yaml"> \<span class="na">app kubernetes io/part of\</span>\<span class="pi"> \</span> \<span class="s">frontmanager\</span>\</span> \<span id="lc11" class="line" lang="yaml">\<span class="na">spec\</span>\<span class="pi"> \</span>\</span> \<span id="lc12" class="line" lang="yaml"> \<span class="na">ingressclassname\</span>\<span class="pi"> \</span> \<span class="s">nginx\</span>\</span> \<span id="lc13" class="line" lang="yaml"> \<span class="na">tls\</span>\<span class="pi"> \</span>\</span> \<span id="lc14" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">hosts\</span>\<span class="pi"> \</span>\</span> \<span id="lc15" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="s2">"\</span>\<span class="s"> cloud4biz com"\</span>\</span> \<span id="lc16" class="line" lang="yaml"> \<span class="na">secretname\</span>\<span class="pi"> \</span> \<span class="s">cloud4biz tls\</span>\</span> \<span id="lc17" class="line" lang="yaml"> \<span class="na">rules\</span>\<span class="pi"> \</span>\</span> \<span id="lc18" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">host\</span>\<span class="pi"> \</span> \<span class="s2">"\</span>\<span class="s"> cloud4biz com"\</span>\</span> \<span id="lc19" class="line" lang="yaml"> \<span class="na">http</span>\<span class="pi"> \</span>\</span> \<span id="lc20" class="line" lang="yaml"> \<span class="na">paths\</span>\<span class="pi"> \</span>\</span> \<span id="lc21" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">path\</span>\<span class="pi"> \</span> \<span class="s">/${k8s app name}\</span>\</span> \<span id="lc22" class="line" lang="yaml"> \<span class="na">pathtype\</span>\<span class="pi"> \</span> \<span class="s">implementationspecific\</span>\</span> \<span id="lc23" class="line" lang="yaml"> \<span class="na">backend\</span>\<span class="pi"> \</span>\</span> \<span id="lc24" class="line" lang="yaml"> \<span class="na">service\</span>\<span class="pi"> \</span>\</span> \<span id="lc25" class="line" lang="yaml"> \<span class="na">name\</span>\<span class="pi"> \</span> \<span class="s">kong eveo kong proxy\</span>\</span> \<span id="lc26" class="line" lang="yaml"> \<span class="na">port\</span>\<span class="pi"> \</span>\</span> \<span id="lc27" class="line" lang="yaml"> \<span class="na">number\</span>\<span class="pi"> \</span> \<span class="s">80\</span>\</span> ingress template yml \<span id="lc1" class="line" lang="yaml">\<span class="na">apiversion\</span>\<span class="pi"> \</span> \<span class="s">networking k8s io/v1\</span>\</span> \<span id="lc2" class="line" lang="yaml">\<span class="na">kind\</span>\<span class="pi"> \</span> \<span class="s">ingress\</span>\</span> \<span id="lc3" class="line" lang="yaml">\<span class="na">metadata\</span>\<span class="pi"> \</span>\</span> \<span id="lc4" class="line" lang="yaml"> \<span class="na">name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc5" class="line" lang="yaml"> \<span class="na">annotations\</span>\<span class="pi"> \</span>\</span> \<span id="lc6" class="line" lang="yaml"> \<span class="na">konghq com/plugins\</span>\<span class="pi"> \</span> \<span class="s">jwt\</span>\</span> \<span id="lc7" class="line" lang="yaml"> \<span class="na">labels\</span>\<span class="pi"> \</span>\</span> \<span id="lc8" class="line" lang="yaml"> \<span class="na">app\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc9" class="line" lang="yaml"> \<span class="na">app kubernetes io/name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc10" class="line" lang="yaml"> \<span class="na">app kubernetes io/version\</span>\<span class="pi"> \</span> \<span class="s">${k8s app version}\</span>\</span> \<span id="lc11" class="line" lang="yaml"> \<span class="na">app kubernetes io/component\</span>\<span class="pi"> \</span> \<span class="s">frontend\</span>\</span> \<span id="lc12" class="line" lang="yaml"> \<span class="na">app kubernetes io/part of\</span>\<span class="pi"> \</span> \<span class="s">frontmanager\</span>\</span> \<span id="lc13" class="line" lang="yaml">\<span class="na">spec\</span>\<span class="pi"> \</span>\</span> \<span id="lc14" class="line" lang="yaml"> \<span class="na">ingressclassname\</span>\<span class="pi"> \</span> \<span class="s">kong\</span>\</span> \<span id="lc15" class="line" lang="yaml"> \<span class="na">tls\</span>\<span class="pi"> \</span>\</span> \<span id="lc16" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">hosts\</span>\<span class="pi"> \</span>\</span> \<span id="lc17" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="s2">"\</span>\<span class="s"> cloud4biz com"\</span>\</span> \<span id="lc18" class="line" lang="yaml"> \<span class="na">secretname\</span>\<span class="pi"> \</span> \<span class="s">cloud4biz tls\</span>\</span> \<span id="lc19" class="line" lang="yaml"> \<span class="na">rules\</span>\<span class="pi"> \</span>\</span> \<span id="lc20" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">host\</span>\<span class="pi"> \</span> \<span class="s2">"\</span>\<span class="s"> cloud4biz com"\</span>\</span> \<span id="lc21" class="line" lang="yaml"> \<span class="na">http</span>\<span class="pi"> \</span>\</span> \<span id="lc22" class="line" lang="yaml"> \<span class="na">paths\</span>\<span class="pi"> \</span>\</span> \<span id="lc23" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">path\</span>\<span class="pi"> \</span> \<span class="s">/${k8s app name}\</span>\</span> \<span id="lc24" class="line" lang="yaml"> \<span class="na">pathtype\</span>\<span class="pi"> \</span> \<span class="s">implementationspecific\</span>\</span> \<span id="lc25" class="line" lang="yaml"> \<span class="na">backend\</span>\<span class="pi"> \</span>\</span> \<span id="lc26" class="line" lang="yaml"> \<span class="na">service\</span>\<span class="pi"> \</span>\</span> \<span id="lc27" class="line" lang="yaml"> \<span class="na">name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc28" class="line" lang="yaml"> \<span class="na">port\</span>\<span class="pi"> \</span>\</span> \<span id="lc29" class="line" lang="yaml"> \<span class="na">number\</span>\<span class="pi"> \</span> \<span class="s">80\</span>\</span> service template yml \<span id="lc1" class="line" lang="yaml">\<span class="na">apiversion\</span>\<span class="pi"> \</span> \<span class="s">v1\</span>\</span> \<span id="lc2" class="line" lang="yaml">\<span class="na">kind\</span>\<span class="pi"> \</span> \<span class="s">service\</span>\</span> \<span id="lc3" class="line" lang="yaml">\<span class="na">metadata\</span>\<span class="pi"> \</span>\</span> \<span id="lc4" class="line" lang="yaml"> \<span class="na">name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc5" class="line" lang="yaml"> \<span class="na">labels\</span>\<span class="pi"> \</span>\</span> \<span id="lc6" class="line" lang="yaml"> \<span class="na">app\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc7" class="line" lang="yaml"> \<span class="na">app kubernetes io/name\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span> \<span id="lc8" class="line" lang="yaml"> \<span class="na">app kubernetes io/version\</span>\<span class="pi"> \</span> \<span class="s">${k8s app version}\</span>\</span> \<span id="lc9" class="line" lang="yaml"> \<span class="na">app kubernetes io/component\</span>\<span class="pi"> \</span> \<span class="s">frontend\</span>\</span> \<span id="lc10" class="line" lang="yaml"> \<span class="na">app kubernetes io/part of\</span>\<span class="pi"> \</span> \<span class="s">frontmanager\</span>\</span> \<span id="lc11" class="line" lang="yaml">\<span class="na">spec\</span>\<span class="pi"> \</span>\</span> \<span id="lc12" class="line" lang="yaml"> \<span class="na">ports\</span>\<span class="pi"> \</span>\</span> \<span id="lc13" class="line" lang="yaml"> \<span class="pi"> \</span> \<span class="na">port\</span>\<span class="pi"> \</span> \<span class="m">80\</span>\</span> \<span id="lc14" class="line" lang="yaml"> \<span class="na">protocol\</span>\<span class="pi"> \</span> \<span class="s">tcp\</span>\</span> \<span id="lc15" class="line" lang="yaml"> \<span class="na">targetport\</span>\<span class="pi"> \</span> \<span class="m">8080\</span>\</span> \<span id="lc16" class="line" lang="yaml"> \<span class="na">selector\</span>\<span class="pi"> \</span>\</span> \<span id="lc17" class="line" lang="yaml"> \<span class="na">app\</span>\<span class="pi"> \</span> \<span class="s">${k8s app name}\</span>\</span>