diff --git a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/files/tekton-ct-camel-k.yml b/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/files/tekton-ct-camel-k.yml deleted file mode 100644 index 8fa3bbbe9e6..00000000000 --- a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/files/tekton-ct-camel-k.yml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: tekton.dev/v1beta1 -kind: ClusterTask -metadata: - name: kamel-run - labels: - app.kubernetes.io/version: "0.1" - annotations: - tekton.dev/categories: Deployment - tekton.dev/pipelines.minVersion: "0.17.0" - tekton.dev/tags: cli - tekton.dev/platforms: "linux/amd64" - tekton.dev/displayName: "kamel run" -spec: - description: |- - Run a Camel Integration. - Kamel-run task creates a Camel K Integration which will be taken and operated by Camel K operator. - params: - - default: 'docker.io/apache/camel-k:2.2.0' - description: The location of Camel K CLI image. - name: camel-k-image - type: string - - description: the Integration source we want to run - name: filename - type: string - - default: '' - description: the namespace where to run the integration - name: namespace - type: string - - default: '' - description: '-t traits' - name: traits - type: string - - default: '' - description: '-d dependencies' - name: dependencies - type: string - - default: '' - description: the custom container image to use (if the build was performed as part of previous tasks) - name: container-image - type: string - - default: 'false' - description: wait for the Integration to run before exiting the task - name: wait - type: string - results: - - description: The name of the integration created - name: integration-name - type: string - - description: The phase of the integration created (when used with input `wait` parameter) - name: integration-phase - type: string - steps: - - image: $(params.camel-k-image) - name: execute - resources: {} - script: |- - #!/usr/bin/env bash - - kamel version - - echo "Kamel command > kamel run $(params.dependencies) $(params.traits) $(params.filename) -n $(params.namespace) --wait" - - kamel_output=$(kamel run $(params.dependencies) $(params.traits) $(params.filename) -n $(params.namespace) --wait) - - echo "$kamel_output" - workingDir: $(workspaces.source.path) - workspaces: - - name: source \ No newline at end of file diff --git a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/install_apicurito.yml b/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/install_apicurito.yml deleted file mode 100644 index 2f6801467eb..00000000000 --- a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/install_apicurito.yml +++ /dev/null @@ -1,71 +0,0 @@ -- name: Evaluate namespace {{ shared_tools_ns }} - kubernetes.core.k8s: - validate_certs: '{{ verify_tls }}' - api_version: v1 - kind: Namespace - name: '{{ shared_tools_ns }}' - state: present - -- name: Evaluate Apicurito Operator Group - kubernetes.core.k8s: - validate_certs: '{{ verify_tls }}' - state: present - kind: OperatorGroup - api_version: operators.coreos.com/v1 - namespace: '{{ shared_tools_ns }}' - definition: - metadata: - name: '{{ shared_tools_ns }}-group' - spec: - targetNamespaces: - - '{{ shared_tools_ns }}' - -- name: Evaluate Apicurito Subscription - kubernetes.core.k8s: - validate_certs: '{{ verify_tls }}' - state: present - api_version: operators.coreos.com/v1alpha1 - kind: Subscription - definition: - metadata: - name: fuse-apicurito - namespace: '{{ shared_tools_ns }}' - spec: - channel: fuse-apicurito-7.12.x - installPlanApproval: Automatic - name: fuse-apicurito - source: redhat-operators - sourceNamespace: openshift-marketplace - -- name: Wait for Apicurito operator to install - kubernetes.core.k8s_info: - validate_certs: '{{ verify_tls }}' - api_version: apiextensions.k8s.io/v1 - kind: CustomResourceDefinition - name: apicuritoes.apicur.io - register: crd_apicurito - until: crd_apicurito.resources | list | length == 1 - retries: 10 - delay: 30 - -- name: Evaluate the Apicurito CR - kubernetes.core.k8s: - validate_certs: '{{ verify_tls }}' - api_version: apicur.io/v1alpha1 - kind: Apicurito - state: present - definition: - metadata: - name: apicurito - namespace: '{{ shared_tools_ns }}' - spec: - size: 1 - -- name: Wait for Apicurito to be running - ansible.builtin.uri: - url: https://apicurito-ui-{{ shared_tools_ns }}.{{ route_subdomain }} - status_code: '200' - register: result - until: result.status == 200 - retries: 90 - delay: 30 diff --git a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/install_camel_k.yml b/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/install_camel_k.yml deleted file mode 100644 index b3896b51f1b..00000000000 --- a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/install_camel_k.yml +++ /dev/null @@ -1,35 +0,0 @@ -- name: Evaluate Camel K Subscription - kubernetes.core.k8s: - validate_certs: '{{ verify_tls }}' - state: present - api_version: operators.coreos.com/v1alpha1 - kind: Subscription - definition: - metadata: - name: camel-k - namespace: '{{ user }}-{{ camel_ns_suffix }}' - spec: - channel: stable-v2 - installPlanApproval: Automatic - name: camel-k - source: community-operators - sourceNamespace: openshift-marketplace - loop: "{{ users }}" - loop_control: - loop_var: user - -- name: Check if IntegrationPlatform CRD exists - kubernetes.core.k8s_info: - kind: CustomResourceDefinition - api_version: apiextensions.k8s.io/v1 - name: integrationplatforms.camel.apache.org - register: crd_result - retries: 220 - delay: 10 - until: crd_result.resources | length > 0 - -- name: Evaluate IntegrationPlatform and Maven - kubernetes.core.k8s: - validate_certs: '{{ verify_tls }}' - state: present - resource_definition: "{{ lookup('template', 'integration-platform.yml.j2') }}" \ No newline at end of file diff --git a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/install_tekton.yml b/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/install_tekton.yml deleted file mode 100644 index 17059c2d2be..00000000000 --- a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/install_tekton.yml +++ /dev/null @@ -1,36 +0,0 @@ -- name: Wait Tekton Operator to be Up & Running - kubernetes.core.k8s_info: - validate_certs: '{{ verify_tls }}' - api_version: v1 - kind: Pod - namespace: openshift-operators - label_selectors: - - app = tekton-operator - field_selectors: - - status.phase=Running - register: r_tekton_pod - retries: 120 - delay: 10 - until: r_tekton_pod.resources | list | length == 1 - -- name: Check if Pipeline CRD exists - kubernetes.core.k8s_info: - kind: CustomResourceDefinition - api_version: apiextensions.k8s.io/v1 - name: pipelines.tekton.dev - register: crd_result - retries: 120 - delay: 10 - until: crd_result.resources | length > 0 - -- name: Evaluate Camel K ClusterTask - kubernetes.core.k8s: - validate_certs: false - state: present - resource_definition: "{{ lookup('file', 'tekton-ct-camel-k.yml') }}" - -- name: Evaluate Pipelines for Users - kubernetes.core.k8s: - validate_certs: false - state: present - resource_definition: "{{ lookup('template', 'tekton-pipelines.yml.j2') }}" \ No newline at end of file diff --git a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/workload.yml b/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/workload.yml index 91b05333c9c..612e49f77b5 100644 --- a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/workload.yml +++ b/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/tasks/workload.yml @@ -25,12 +25,6 @@ - name: Install AMQ Streams Console ansible.builtin.include_tasks: install_kafka-console.yml -- name: Install Apicurito - ansible.builtin.include_tasks: install_apicurito.yml - -- name: Install Camel K - ansible.builtin.include_tasks: install_camel_k.yml - - name: Install HawtIO ansible.builtin.include_tasks: install_hawtio.yml @@ -40,9 +34,6 @@ - name: Install Grafana ansible.builtin.include_tasks: install_grafana.yml -- name: Install Tekton - ansible.builtin.include_tasks: install_tekton.yml - - name: Install Keycloak ansible.builtin.include_tasks: install_keycloak.yml diff --git a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/templates/integration-platform.yml.j2 b/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/templates/integration-platform.yml.j2 deleted file mode 100644 index e46c117430a..00000000000 --- a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/templates/integration-platform.yml.j2 +++ /dev/null @@ -1,52 +0,0 @@ -{% for __user in users %} - ---- -apiVersion: v1 -data: - settings.xml: | - - - - - - - - - - - - mirror.default - central - Nexus Maven Mirror - http://nexus-sonatype-nexus-service.shared-maven-mirror.svc.cluster.local:8081/repository/maven-public - - - - - -kind: ConfigMap -metadata: - name: maven-settings - namespace: '{{ __user }}-{{ camel_ns_suffix }}' ---- -apiVersion: camel.apache.org/v1 -kind: IntegrationPlatform -metadata: - name: camel-k - namespace: '{{ __user }}-{{ camel_ns_suffix }}' -spec: - build: - maven: - settings: - configMapKeyRef: - key: settings.xml - name: maven-settings - settingsSecurity: {} - registry: {} - kamelet: {} - resources: {} - traits: {} - -{% endfor %} \ No newline at end of file diff --git a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/templates/tekton-pipelines.yml.j2 b/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/templates/tekton-pipelines.yml.j2 deleted file mode 100644 index daafad9f0dd..00000000000 --- a/ansible/roles_ocp_workloads/ocp4_workload_summit_2024_cloud_native_camel/templates/tekton-pipelines.yml.j2 +++ /dev/null @@ -1,272 +0,0 @@ -{% for __user in users %} ---- -apiVersion: tekton.dev/v1beta1 -kind: Pipeline -metadata: - name: camel-k-pipeline - namespace: '{{ __user }}-{{ camel_ns_suffix }}' -spec: - description: CICD pipeline for Camel K - params: - - description: The git repo URL to clone from. - name: repo-url - type: string - default: https://gitea.{{ route_subdomain }}/{{ __user }}/workshop_camel_workspace.git - - description: The git repo branch. - name: repo-branch - type: string - default: main - - description: The name of the integration file. - name: filename - type: string - - description: Camel K Traits - name: traits - type: string - default: -t prometheus.enabled=true -t prometheus.pod-monitor-labels='workshop=camel' -t jolokia.enabled=true - - description: Camel K dependencies - name: dependencies - type: string - default: " " - tasks: - - name: fetch-source - params: - - name: url - value: $(params.repo-url) - - name: revision - value: $(params.repo-branch) - taskRef: - kind: ClusterTask - name: git-clone - workspaces: - - name: output - workspace: shared-data - - name: kamel-run - params: - - name: filename - value: $(params.filename) - - name: namespace - value: {{ __user }}-{{ camel_ns_suffix }} - - name: dependencies - value: $(params.dependencies) - - name: traits - value: $(params.traits) - runAfter: - - fetch-source - taskRef: - kind: ClusterTask - name: kamel-run - workspaces: - - name: source - workspace: shared-data - workspaces: - - description: 'This workspace contains the cloned repo files, so they can be read by the next task.' - name: shared-data ---- -apiVersion: tekton.dev/v1beta1 -kind: Pipeline -metadata: - name: camel-java-pipeline - namespace: '{{ __user }}-{{ camel_ns_suffix }}' -spec: - params: - - name: git-url - default: https://gitea.{{ route_subdomain }}/{{ __user }}/workshop_camel_workspace.git - description: Your Git repo - type: string - - name: module-name - default: 'module-04' - description: 'Module directory Name (defaults to module-04)' - type: string - - name: service-name - default: 'customer-connector' - description: 'Service Name (maven project directory, one of: customer-service | customer-connector | order-connector)' - type: string - - name: registry-repo - default: '{{ __user }}-camel' - description: Registry Repository name (if using quay.io it should be your username, if using Openshift it should be the project/namespace name) - type: string - - name: maven-mirror-url - #default: https://repo1.maven.org/maven2/ - default: https://nexus-shared-maven-mirror.{{ route_subdomain }}/repository/maven-public/ - description: Maven Mirror Repo URL - type: string - - name: clone-subdir - default: code-repo - description: sub-directory where the repo will be cloned into - type: string - - name: git-revision - default: main - description: 'branch, tag, revision' - type: string - - name: registry-url - default: image-registry.openshift-image-registry.svc.cluster.local:5000 - description: Container Image Registry URL (default to Openshift internal registry) - type: string - tasks: - - name: git-clone - params: - - name: url - value: $(params.git-url) - - name: revision - value: $(params.git-revision) - - name: submodules - value: 'true' - - name: depth - value: '1' - - name: sslVerify - value: 'true' - - name: crtFileName - value: ca-bundle.crt - - name: subdirectory - value: $(params.clone-subdir) - - name: deleteExisting - value: 'true' - - name: verbose - value: 'true' - - name: userHome - value: /tekton/home - taskRef: - kind: ClusterTask - name: git-clone - workspaces: - - name: output - workspace: shared-workspace - - name: maven-package - params: - - name: MAVEN_IMAGE - value: >- - image-registry.openshift-image-registry.svc:5000/openshift/java:latest - - name: GOALS - value: - - clean - - package - - '-DskipTests' - - '-e' - - '-B' - - '-Dmaven.repo.local=$(workspaces.source.path)/.m2' - - '-Dquarkus.openshift.namespace={{ __user }}-camel' - - '-Dquarkus.openshift.name=$(params.service-name)' - - '-Dquarkus.container-image.tag=$(tasks.git-clone.results.commit)' - - '-Dquarkus.kubernetes.deploy=false' - - '-Dquarkus.container-image.build=false' - - '-Dquarkus.container-image.group={{ __user }}-camel' - - '-Dquarkus.container-image.builder=openshift' - - '-Dquarkus.openshift.deployment-kind=deployment' - - '-Dquarkus.openshift.replicas=1' - - '-Dquarkus.openshift.part-of=$(params.service-name)' - - '-Dquarkus.openshift.route.expose=true' - - '-Dquarkus.openshift.route.target-port=https' - - '-Dquarkus.openshift.route.tls.termination=passthrough' - - '-Dquarkus.openshift.route.tls.insecure-edge-termination-policy=None' - - '-Dquarkus.openshift.labels."app.openshift.io/runtime"=quarkus' - - '-Dquarkus.openshift.annotations."app.openshift.io/vcs-url"=$(params.git-url)' - - '-Dquarkus.openshift.annotations."app.openshift.io/vcs-ref"=main' - - '-Dquarkus.openshift.annotations."prometheus.io/scrape"="true"' - - '-Dquarkus.openshift.annotations."prometheus.io/path"=/q/metrics' - - '-Dquarkus.openshift.annotations."prometheus.io/port"="8080"' - - '-Dquarkus.openshift.annotations."prometheus.io/scheme"=http' - - '-Dquarkus.openshift.resources.requests.cpu=0.5' - - '-Dquarkus.openshift.resources.requests.memory=256Mi' - - '-Dquarkus.openshift.resources.limits.cpu=2' - - '-Dquarkus.openshift.resources.limits.memory=1Gi' - - name: CONTEXT_DIR - value: $(params.clone-subdir)/$(params.module-name)/$(params.service-name) - - name: MAVEN_MIRROR_URL - value: $(params.maven-mirror-url) - runAfter: - - git-clone - taskRef: - kind: ClusterTask - name: maven - workspaces: - - name: source - workspace: shared-workspace - - name: maven-settings - workspace: maven-settings - - name: image-build - params: - - name: IMAGE - value: >- - $(params.registry-url)/$(params.registry-repo)/$(params.service-name):$(tasks.git-clone.results.commit) - # - name: BUILDER_IMAGE - # value: >- - # registry.redhat.io/rhel8/buildah - - name: STORAGE_DRIVER - value: vfs - - name: DOCKERFILE - value: ./src/main/docker/Dockerfile.jvm - - name: CONTEXT - value: $(params.clone-subdir)/$(params.module-name)/$(params.service-name) - - name: TLSVERIFY - value: 'true' - - name: FORMAT - value: oci - - name: SKIP_PUSH - value: 'false' - runAfter: - - maven-package - taskRef: - kind: ClusterTask - name: buildah - workspaces: - - name: source - workspace: shared-workspace - - name: image-tag - params: - - name: srcImageURL - value: >- - docker://$(params.registry-url)/$(params.registry-repo)/$(params.service-name):$(tasks.git-clone.results.commit) - - name: destImageURL - value: >- - docker://$(params.registry-url)/$(params.registry-repo)/$(params.service-name):latest - runAfter: - - image-build - taskRef: - kind: ClusterTask - name: skopeo-copy - workspaces: - - name: images-url - workspace: image-urls-cm - - - name: deploy-app - params: - - name: SCRIPT - value: | - ls -la $(params.clone-subdir)/$(params.module-name)/$(params.service-name)/target/kubernetes/ - oc apply -f $(params.clone-subdir)/$(params.module-name)/$(params.service-name)/target/kubernetes/kubernetes.yml - - if ! oc get route $(params.service-name) 2> /dev/null; then - echo "creating service route for $(params.service-name)" - #oc expose svc $(params.service-name) - oc create route edge --service=$(params.service-name) - fi - runAfter: - - image-tag - taskRef: - kind: ClusterTask - name: openshift-client - workspaces: - - name: manifest-dir - workspace: shared-workspace - - workspaces: - - name: shared-workspace - - name: maven-settings - - name: image-urls-cm - ---- - -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: source-code - namespace: '{{ __user }}-{{ camel_ns_suffix }}' -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 1Gi - volumeMode: Filesystem - -{% endfor %} \ No newline at end of file