yaml文件如下:
kind: Deployment
apiVersion: apps/v1
metadata:
name: $app_name
namespace: public-dev
labels:
app: $app_name
annotations:
deployment.kubernetes.io/revision: $BUILD_NUMBER
kubesphere.io/creator: admin
kubesphere.io/relatedHPA: $app_name
spec:
replicas: $replicas
selector:
matchLabels:
app: $app_name
template:
metadata:
#creationTimestamp: null
labels:
app: $app_name
annotations:
kubesphere.io/containerSecrets: '{"container-twhkn7":"public-harbor-secret"}'
spec:
volumes:
- name: host-time
hostPath:
path: /etc/localtime
type: ''
containers:
- name: container-twhkn7
image: $regestry/$project/$app_name:${BUILD_NUMBER}
ports:
- name: http-$app_name
containerPort: 80
protocol: TCP
resources:
limits:
cpu: '1'
memory: 1000Mi
requests:
cpu: 500m
memory: 500Mi
volumeMounts:
- name: host-time
readOnly: true
mountPath: /etc/localtime
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
imagePullPolicy: IfNotPresent
restartPolicy: Always
terminationGracePeriodSeconds: 30
dnsPolicy: ClusterFirst
serviceAccountName: default
serviceAccount: default
securityContext: {}
imagePullSecrets:
- name: public-harbor-secret
affinity: {}
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 25%
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
kind: Service
apiVersion: v1
metadata:
name: $app_name
namespace: public-dev
labels:
app: $app_name
annotations:
kubesphere.io/creator: admin
spec:
ports:
- name: http-$app_name
protocol: TCP
port: 80
targetPort: 80
selector:
app: $app_name
sessionAffinity: None
externalTrafficPolicy: Cluster
devops最后一步出错
Deploy to Kubernetes12.90 s失败
Starting Kubernetes deployment
Loading configuration: /home/jenkins/agent/workspace/publiccxh2w/bi/bi.public-dev.deployment.yaml
ERROR: ERROR: java.lang.RuntimeException: io.kubernetes.client.openapi.ApiException: Unprocessable Entity
hudson.remoting.ProxyException: java.lang.RuntimeException: io.kubernetes.client.openapi.ApiException: Unprocessable Entity
at com.microsoft.jenkins.kubernetes.wrapper.ResourceManager.handleApiException(ResourceManager.java:193)
at com.microsoft.jenkins.kubernetes.wrapper.V1ResourceManager$ServiceUpdater.createResource(V1ResourceManager.java:461)
at com.microsoft.jenkins.kubernetes.wrapper.V1ResourceManager$ServiceUpdater.createResource(V1ResourceManager.java:379)
at com.microsoft.jenkins.kubernetes.wrapper.ResourceManager$ResourceUpdater.createOrApply(ResourceManager.java:100)
at com.microsoft.jenkins.kubernetes.wrapper.KubernetesClientWrapper.handleResource(KubernetesClientWrapper.java:289)
at com.microsoft.jenkins.kubernetes.wrapper.KubernetesClientWrapper.apply(KubernetesClientWrapper.java:256)
at com.microsoft.jenkins.kubernetes.command.DeploymentCommand$DeploymentTask.doCall(DeploymentCommand.java:172)
at com.microsoft.jenkins.kubernetes.command.DeploymentCommand$DeploymentTask.call(DeploymentCommand.java:124)
at com.microsoft.jenkins.kubernetes.command.DeploymentCommand$DeploymentTask.call(DeploymentCommand.java:106)
at hudson.remoting.UserRequest.perform(UserRequest.java:212)
at hudson.remoting.UserRequest.perform(UserRequest.java:54)
at hudson.remoting.Request$2.run(Request.java:369)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:93)
at java.lang.Thread.run(Thread.java:748)
Suppressed: hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from 192.168.8.77/192.168.8.77:59250
at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1800)
at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:357)
at hudson.remoting.Channel.call(Channel.java:1001)
at hudson.FilePath.act(FilePath.java:1160)
at com.microsoft.jenkins.kubernetes.command.DeploymentCommand.execute(DeploymentCommand.java:68)
at com.microsoft.jenkins.kubernetes.command.DeploymentCommand.execute(DeploymentCommand.java:45)
at com.microsoft.jenkins.azurecommons.command.CommandService.runCommand(CommandService.java:88)
at com.microsoft.jenkins.azurecommons.command.CommandService.execute(CommandService.java:96)
at com.microsoft.jenkins.azurecommons.command.CommandService.executeCommands(CommandService.java:75)
at com.microsoft.jenkins.azurecommons.command.BaseCommandContext.executeCommands(BaseCommandContext.java:77)
at com.microsoft.jenkins.kubernetes.KubernetesDeploy.perform(KubernetesDeploy.java:42)
at com.microsoft.jenkins.azurecommons.command.SimpleBuildStepExecution.run(SimpleBuildStepExecution.java:54)
at com.microsoft.jenkins.azurecommons.command.SimpleBuildStepExecution.run(SimpleBuildStepExecution.java:35)
at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
… 1 more
Caused by: hudson.remoting.ProxyException: io.kubernetes.client.openapi.ApiException: Unprocessable Entity
at io.kubernetes.client.openapi.ApiClient.handleResponse(ApiClient.java:979)
at io.kubernetes.client.openapi.ApiClient.execute(ApiClient.java:895)
at io.kubernetes.client.openapi.apis.CoreV1Api.createNamespacedServiceWithHttpInfo(CoreV1Api.java:9012)
at io.kubernetes.client.openapi.apis.CoreV1Api.createNamespacedService(CoreV1Api.java:8986)
at com.microsoft.jenkins.kubernetes.wrapper.V1ResourceManager$ServiceUpdater.createResource(V1ResourceManager.java:458)
… 16 more
Api call failed with code 422, detailed message: {
“kind”: “Status”,
“apiVersion”: “v1”,
“metadata”: {
},
“status”: “Failure”,
“message”: “Service \”$app_name\“ is invalid: [metadata.name: Invalid value: \”$app_name\“: a DNS-1035 label must consist of lower case alphanumeric characters or ‘-’, start with an alphabetic character, and end with an alphanumeric character (e.g. ‘my-name’, or ‘abc-123’, regex used for validation is ‘a-z?’), metadata.labels: Invalid value: \”$app_name\": a valid label must be an empty string or consist of alphanumeric characters, ‘-’, ‘’ or ‘.’, and must start and end with an alphanumeric character (e.g. ‘MyValue’, or ‘my_value’, or ‘12345’, regex used for validation is ‘(([A-Za-z0-9][-A-Za-z0-9.])?[A-Za-z0-9])?’), spec.ports[0].name: Invalid value: \“http-$app_name\”: a DNS-1123 label must consist of lower case alphanumeric characters or ‘-’, and must start and end with an alphanumeric character (e.g. ‘my-name’, or ‘123-abc’, regex used for validation is ‘a-z0-9?’), spec.selector: Invalid value: \“$app_name\”: a valid label must be an empty string or consist of alphanumeric characters, ‘-’, ‘’ or ‘.’, and must start and end with an alphanumeric character (e.g. ‘MyValue’, or ‘my_value’, or ‘12345’, regex used for validation is ‘(([A-Za-z0-9][-A-Za-z0-9.])?[A-Za-z0-9])?’)]",
“reason”: “Invalid”,
“details”: {
“name”: “$app_name”,
“kind”: “Service”,
“causes”: [
{
“reason”: “FieldValueInvalid”,
“message”: “Invalid value: \”$app_name\“: a DNS-1035 label must consist of lower case alphanumeric characters or ‘-’, start with an alphabetic character, and end with an alphanumeric character (e.g. ‘my-name’, or ‘abc-123’, regex used for validation is ‘a-z?’)”,
“field”: “metadata.name”
},
{
“reason”: “FieldValueInvalid”,
“message”: “Invalid value: \”$app_name\“: a valid label must be an empty string or consist of alphanumeric characters, ‘-’, ‘’ or ‘.’, and must start and end with an alphanumeric character (e.g. ‘MyValue’, or ‘my_value’, or ‘12345’, regex used for validation is ‘(([A-Za-z0-9][-A-Za-z0-9.])?[A-Za-z0-9])?’)”,
“field”: “metadata.labels”
},
{
“reason”: “FieldValueInvalid”,
“message”: "Invalid value: \“http-$app_name\”: a DNS-1123 label must consist of lower case alphanumeric characters or ‘-’, and must start and end with an alphanumeric character (e.g. ‘my-name’, or ‘123-abc’, regex used for validation is ‘a-z0-9?’)",
“field”: “spec.ports[0].name”
},
{
“reason”: “FieldValueInvalid”,
“message”: “Invalid value: \”$app_name\“: a valid label must be an empty string or consist of alphanumeric characters, ‘-’, ‘’ or ‘.’, and must start and end with an alphanumeric character (e.g. ‘MyValue’, or ‘my_value’, or ‘12345’, regex used for validation is ‘(([A-Za-z0-9][-A-Za-z0-9.])?[A-Za-z0-9])?’)”,
“field”: “spec.selector”
}
]
},
“code”: 422
}
Kubernetes deployment ended with HasError
请帮忙看看变量引用格式有问题吗?还是什么其他问题