Olá, Vitória.
Tudo bem?
Pelo erro que você mencionou ("ERROR: special characters are not allowed"), parece que o Jenkins está encontrando algum caractere especial que não é permitido. Mesmo que você já tenha verificado os arquivos, pode ser que o problema esteja em outro lugar. Aqui estão algumas sugestões para investigar e resolver o problema:
Verifique as Credenciais no Jenkins:
- Certifique-se de que as credenciais
kubeconfig
no Jenkins estão corretas e não contêm caracteres especiais que possam estar causando o problema.
Verifique o Jenkinsfile:
- Certifique-se de que não há caracteres especiais ou espaços em branco invisíveis no Jenkinsfile. Às vezes, caracteres invisíveis podem causar problemas.
Verifique o Arquivo deployment.yaml:
- Embora você já tenha verificado, tente abrir o arquivo
deployment.yaml
em um editor de texto que mostre caracteres invisíveis para garantir que não há caracteres especiais.
Atualize o Minikube:
- Certifique-se de que o Minikube está atualizado para a versão mais recente. Às vezes, problemas de compatibilidade podem causar erros inesperados.
Teste Localmente:
- Tente executar o comando
kubectl apply -f ./api/k8s/deployment.yaml
localmente no seu terminal para verificar se o problema ocorre fora do Jenkins.
Logs do Jenkins:
- Verifique os logs do Jenkins para obter mais detalhes sobre o erro. Pode haver mais informações que possam ajudar a identificar o problema.
Espaços e Quebras de Linha:
- Certifique-se de que não há quebras de linha ou espaços extras no Jenkinsfile, especialmente no bloco
withKubeConfig
.
Aqui está um exemplo de como o seu Jenkinsfile deve estar formatado:
pipeline {
stages {
stage ('Build Image') {
steps {
script {
docker.withRegistry('https://registry.hub.docker.com', 'dockerhub') {
dockerapp.push('latest')
dockerapp.push("${env.BUILD_ID}")
}
}
}
}
stage ('Push Image') {
steps {
script {
docker.withRegistry('https://registry.hub.docker.com', 'dockerhub') {
dockerapp.push('latest')
dockerapp.push("${env.BUILD_ID}")
}
}
}
}
stage ('Deploy Kubernetes') {
steps {
withKubeConfig([credentialsId: 'kubeconfig']) {
sh 'kubectl apply -f ./api/k8s/deployment.yaml'
}
}
}
}
}
Qualquer coisa compartilha os códigos desses arquivos para ajudarmos na análise. Você pode colar eles completos aqui mesmo, sem ser print.
Espero ter ajudado e bons estudos!