Skip to content
This repository was archived by the owner on Dec 21, 2023. It is now read-only.
This repository was archived by the owner on Dec 21, 2023. It is now read-only.

Quickstart doesn't work as expected #227

@alxy

Description

@alxy

Im following the quickstart tutorial and running k3d on Docker. Everything is working as expected until I try to run the Auto-remediation step. Once I do that, I get the following result:

bash-5.1# curl -SL https://raw.githubusercontent.com/keptn/examples/master/quickstart/automated-operations.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3686  100  3686    0     0  15343      0 --:--:-- --:--:-- --:--:-- 15358

---------------------------------------------------------------------
Preparation of Auto-remediation in Production
---------------------------------------------------------------------

Adding SLIs for Prometheus
Adding resource ./demo/prometheus/sli.yaml to service helloservice in stage production in project podtatohead
Resource has been uploaded.
Adding SLO definition file for the quality gate
Adding resource ./demo/slo.yaml to service helloservice in stage production in project podtatohead
Resource has been uploaded.
Adding Remediation Configuration
Adding resource ./demo/remediation.yaml to service helloservice in stage production in project podtatohead
Resource has been uploaded.

---------------------------------------------------------------------
Deploy Job Executor
---------------------------------------------------------------------

Warning: resource deployments/job-executor-service is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
Warning: resource services/job-executor-service is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
service/job-executor-service configured
Warning: resource serviceaccounts/job-executor-service is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
serviceaccount/job-executor-service configured
Warning: resource roles/job-executor-service is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
role.rbac.authorization.k8s.io/job-executor-service configured
role.rbac.authorization.k8s.io/job-executor created
Warning: resource rolebindings/job-executor-service is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
rolebinding.rbac.authorization.k8s.io/job-executor-service configured
rolebinding.rbac.authorization.k8s.io/job-executor-service-tmp created
The Deployment "job-executor-service" is invalid:
* spec.template.spec.containers[0].env[3].valueFrom: Invalid value: "": may not be specified when `value` is not empty
* spec.template.spec.containers[0].env[4].valueFrom: Invalid value: "": may not be specified when `value` is not empty
* spec.template.spec.containers[0].env[5].valueFrom: Invalid value: "": may not be specified when `value` is not empty
* spec.template.spec.containers[0].env[6].valueFrom: Invalid value: "": may not be specified when `value` is not empty
* spec.template.spec.containers[0].env[7].valueFrom: Invalid value: "": may not be specified when `value` is not empty
* spec.template.spec.containers[0].env[8].valueFrom: Invalid value: "": may not be specified when `value` is not empty
* spec.template.spec.containers[0].env[9].valueFrom: Invalid value: "": may not be specified when `value` is not empty
* spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"job-executor-service", "app.kubernetes.io/name":"job-executor-service", "run":"job-executor-service"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

I am on Windows using Docker with WSL2 backend, however, I don't think that is important here. It looks like one of the previous steps already creates the job-executor-service deployment, and this step cannot update one of the fields as it is immutable. Looks like that is an issue with synchronizing the different kubernetes manifest files in this repository.

The problem can be fixed manually by running kubectl delete deployment job-executor-service -n keptn before executing the bash script, however, this is not ideal for a quickstart where I expect things to "just work" ;)

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions