Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

camel-k doesn't create a service #2810

Closed
41lx opened this issue Dec 2, 2021 · 2 comments
Closed

camel-k doesn't create a service #2810

41lx opened this issue Dec 2, 2021 · 2 comments

Comments

@41lx
Copy link

41lx commented Dec 2, 2021

Hi, after some playing around I have found out that camel-k doesn't create service on very simple use-case .. However I can create the service object manually but this suppose to be done out-of-box by the operator..
This is happening on company's k8s v1.18 cluster and I believe that it's related to some permissions but I'm unable to find any error, any relevant log or record. Any idea or tip what should I do here to find out what's going on?

Thanks,
-Alex

$ kamel version --operator
Camel K Operator 1.7.0
$ kamel version
Camel K Client 1.7.0
$ k describe it rest-dsl
Name:         rest-dsl
Namespace:    camel-system
Labels:       <none>
Annotations:  <none>
API Version:  camel.apache.org/v1
Kind:         Integration
Metadata:
  Creation Timestamp:  2021-12-02T21:41:20Z
  Generation:          1
  Managed Fields:
    API Version:  camel.apache.org/v1
    Fields Type:  FieldsV1
    fieldsV1:
      f:spec:
        .:
        f:sources:
        f:traits:
          .:
          f:logging:
            .:
            f:configuration:
              .:
              f:enabled:
          f:service:
            .:
            f:configuration:
              .:
              f:auto:
              f:enabled:
              f:nodePort:
      f:status:
        .:
        f:capabilities:
        f:conditions:
        f:dependencies:
        f:digest:
        f:image:
        f:integrationKit:
          .:
          f:name:
          f:namespace:
        f:lastInitTimestamp:
        f:phase:
        f:platform:
        f:replicas:
        f:runtimeProvider:
        f:runtimeVersion:
        f:selector:
        f:version:
    Manager:         kamel
    Operation:       Update
    Time:            2021-12-02T21:41:59Z
  Resource Version:  42531004
  Self Link:         /apis/camel.apache.org/v1/namespaces/camel-system/integrations/rest-dsl
  UID:               bab51b6f-45b6-4c76-bc51-4ee2481b10cb
Spec:
  Sources:
    Content:  
// camel-k: language=java trait=logging.enabled=true trait=service.enabled=true trait=service.auto=true trait=service.node-port=true
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;

public class RestDSL extends org.apache.camel.builder.RouteBuilder {
    @Override
    public void configure() throws Exception {
        rest()
            .get("/hello")
                .to("direct:hello");

        from("direct:hello")
            .setHeader(Exchange.CONTENT_TYPE, constant("text/plain"))
            .log("Hello World")
            .log(String.valueOf(simple("headers:${headers}")))
            .process(new Processor(){
                @Override
                public void process(Exchange exchange) throws Exception {
                    CamelContext ctx = exchange.getContext();
                    System.out.println("can be breakpoint on this line :" + ctx.getName());
                }
            })
            .transform().simple("Hello World");
    }
}

    Name:  RestDSL.java
  Traits:
    Logging:
      Configuration:
        Enabled:  true
    Service:
      Configuration:
        Auto:       true
        Enabled:    true
        Node Port:  true
Status:
  Capabilities:
    rest
  Conditions:
    First Truthy Time:     2021-12-02T21:41:20Z
    Last Transition Time:  2021-12-02T21:41:20Z
    Last Update Time:      2021-12-02T21:41:20Z
    Message:               camel-system/camel-k
    Reason:                IntegrationPlatformAvailable
    Status:                True
    Type:                  IntegrationPlatformAvailable
    First Truthy Time:     2021-12-02T21:41:49Z
    Last Transition Time:  2021-12-02T21:41:49Z
    Last Update Time:      2021-12-02T21:41:49Z
    Message:               kit-c6kjr0200nf56t743uqg
    Reason:                IntegrationKitAvailable
    Status:                True
    Type:                  IntegrationKitAvailable
    Last Transition Time:  2021-12-02T21:41:49Z
    Last Update Time:      2021-12-02T21:41:49Z
    Message:               different controller strategy used (deployment)
    Reason:                CronJobNotAvailableReason
    Status:                False
    Type:                  CronJobAvailable
    First Truthy Time:     2021-12-02T21:41:49Z
    Last Transition Time:  2021-12-02T21:41:49Z
    Last Update Time:      2021-12-02T21:41:49Z
    Message:               deployment name is rest-dsl
    Reason:                DeploymentAvailable
    Status:                True
    Type:                  DeploymentAvailable
    First Truthy Time:     2021-12-02T21:41:59Z
    Last Transition Time:  2021-12-02T21:41:59Z
    Last Update Time:      2021-12-02T21:41:59Z
    Message:               1/1 ready replicas
    Reason:                DeploymentReady
    Status:                True
    Type:                  Ready
  Dependencies:
    camel:direct
    mvn:org.apache.camel.k:camel-k-runtime
    mvn:org.apache.camel.quarkus:camel-quarkus-java-joor-dsl
    mvn:org.apache.camel.quarkus:camel-quarkus-platform-http
    mvn:org.apache.camel.quarkus:camel-quarkus-rest
  Digest:  vu01G5QnmdFAZbxtPCTMlU8BsfJDkuPXMjHdj1yaMSFw
  Image:   dockerhub/camel-k-kit-c6kjr0200nf56t743uqg@sha256:64c49fa077395c6519a6efbecba8b0913db31d29a2e69abc1b40ae7d9c357efb
  Integration Kit:
    Name:               kit-c6kjr0200nf56t743uqg
    Namespace:          camel-system
  Last Init Timestamp:  2021-12-02T21:41:20Z
  Phase:                Running
  Platform:             camel-k
  Replicas:             1
  Runtime Provider:     quarkus
  Runtime Version:      1.10.0
  Selector:             camel.apache.org/integration=rest-dsl
  Version:              1.7.0
Events:
  Type    Reason                       Age                    From                                Message
  ----    ------                       ----                   ----                                -------
  Normal  IntegrationConditionChanged  6m17s                  camel-k-integration-controller      Condition "IntegrationPlatformAvailable" is "True" for Integration rest-dsl: camel-system/camel-k
  Normal  IntegrationPhaseUpdated      6m17s                  camel-k-integration-controller      Integration "rest-dsl" in phase "Initialization"
  Normal  IntegrationPhaseUpdated      6m17s                  camel-k-integration-controller      Integration "rest-dsl" in phase "Building Kit"
  Normal  IntegrationConditionChanged  6m17s                  camel-k-integration-controller      Condition "IntegrationKitAvailable" is "False" for Integration rest-dsl: creating a new integration kit
  Normal  ReasonRelatedObjectChanged   6m17s                  camel-k-integration-kit-controller  Integration Kit "kit-c6kjr0200nf56t743uqg", created by Integration "rest-dsl", changed phase to "Build Submitted"
  Normal  ReasonRelatedObjectChanged   6m17s                  camel-k-build-controller            Build "kit-c6kjr0200nf56t743uqg", created by Integration "rest-dsl", changed phase to "Scheduling"
  Normal  ReasonRelatedObjectChanged   6m17s                  camel-k-build-controller            Build "kit-c6kjr0200nf56t743uqg", created by Integration "rest-dsl", changed phase to "Pending"
  Normal  ReasonRelatedObjectChanged   6m17s                  camel-k-build-controller            Build "kit-c6kjr0200nf56t743uqg", created by Integration "rest-dsl", changed phase to "Running"
  Normal  ReasonRelatedObjectChanged   6m17s                  camel-k-integration-kit-controller  Integration Kit "kit-c6kjr0200nf56t743uqg", created by Integration "rest-dsl", changed phase to "Build Running"
  Normal  IntegrationConditionChanged  5m48s                  camel-k-integration-controller      Condition "Ready" is "False" for Integration rest-dsl: 0/1 updated replicas
  Normal  ReasonRelatedObjectChanged   5m48s                  camel-k-integration-kit-controller  Integration Kit "kit-c6kjr0200nf56t743uqg", created by Integration "rest-dsl", changed phase to "Ready"
  Normal  IntegrationConditionChanged  5m48s                  camel-k-integration-controller      Condition "IntegrationKitAvailable" is "True" for Integration rest-dsl: kit-c6kjr0200nf56t743uqg
  Normal  IntegrationPhaseUpdated      5m48s                  camel-k-integration-controller      Integration "rest-dsl" in phase "Deploying"
  Normal  ReasonRelatedObjectChanged   5m48s                  camel-k-build-controller            Build "kit-c6kjr0200nf56t743uqg", created by Integration "rest-dsl", changed phase to "Succeeded"
  Normal  IntegrationConditionChanged  5m47s (x2 over 5m48s)  camel-k-integration-controller      Condition "DeploymentAvailable" is "True" for Integration rest-dsl: deployment name is rest-dsl
  Normal  IntegrationConditionChanged  5m47s (x2 over 5m48s)  camel-k-integration-controller      Condition "CronJobAvailable" is "False" for Integration rest-dsl: different controller strategy used (deployment)
  Normal  IntegrationPhaseUpdated      5m47s (x2 over 5m48s)  camel-k-integration-controller      Integration "rest-dsl" in phase "Running"
  Normal  IntegrationConditionChanged  5m47s (x2 over 5m47s)  camel-k-integration-controller      Condition "Ready" is "False" for Integration rest-dsl: 0/1 ready replicas
  Normal  IntegrationConditionChanged  5m38s (x2 over 5m38s)  camel-k-integration-controller      Condition "Ready" is "True" for Integration rest-dsl: 1/1 ready replicas
@squakez
Copy link
Contributor

squakez commented Dec 27, 2021

When you describe the integration, you should have some Event like:

  Normal  IntegrationConditionChanged  10s                camel-k-integration-controller  Condition "ServiceAvailable" is "True" for Integration rest-dsl: rest-dsl(http/80) -> integration(http/8080)
  Normal  IntegrationConditionChanged  10s                camel-k-integration-controller  Condition "ExposureAvailable" is "False" for Integration rest-dsl: no host or service defined

The same can be recovered via kamel describe, ie:

$ kamel describe integration rest-dsl
Name:	rest-dsl
Namespace:	default
...
  DeploymentAvailable	True	DeploymentAvailable	deployment name is rest-dsl
  ServiceAvailable	True	ServiceAvailable	rest-dsl(http/80) -> integration(http/8080)
  ExposureAvailable	False	IngressNotAvailable	no host or service defined
  Ready	True	DeploymentReady	1/1 ready replicas

Also, you can check the output of:

$ k get service
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
...
rest-dsl     NodePort    10.109.244.147   <none>        80:31846/TCP   110s

Finally, you can have a look at the operator log. If there is some permission error like you're suspecting, I think there will be some useful trace. After all, the Service trait is in charge to create a Service resource and apply to the cluster.

@github-actions
Copy link
Contributor

This issue has been automatically marked as stale due to 90 days of inactivity.
It will be closed if no further activity occurs within 15 days.
If you think that’s incorrect or the issue should never stale, please simply write any comment.
Thanks for your contributions!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants