Skip to content

Latest commit

 

History

History
127 lines (101 loc) · 4.07 KB

File metadata and controls

127 lines (101 loc) · 4.07 KB

Scripts and samples of import data

This folder is a place to keep sample data and scripts to help developers with creating/importing various pieces of data.

Adding a base set of data to an empty instance

For creating a base set of data in a tackle-hub instance, a good place to start is tackle-hub's hack folder. If you have the Konveyor operator running on minikube without authentication, a basic set of data can be added to the instance by:

git clone https://github.com/konveyor/tackle2-hub.git
cd tackle2-hub/hack
HOST=http://$(minikube ip)/hub ./add/all.sh

Useful commands

List all of the "tackle-" pods, what container image they're using, and the image's manifest digest:

minikube kubectl -- \
    get pods -n konveyor-tackle -o=json \
    | jq '
        .items[] | select(.metadata.name | test("tackle-")) |
        {
          name:.metadata.name,
          image:.status.containerStatuses[0].image,
          imageID:.status.containerStatuses[0].imageID
        }
      '

Example output:

{
  "name": "tackle-hub-57b4f5b87c-5cdds",
  "image": "quay.io/konveyor/tackle2-hub:latest",
  "imageID": "docker-pullable://quay.io/konveyor/tackle2-hub@sha256:f19ab51cc9f23ee30225dd1c15ca545c2b767be7d7e1ed5cd83df47a40e5d324"
}
{
  "name": "tackle-operator-597f9755fb-84jg7",
  "image": "quay.io/konveyor/tackle2-operator:latest",
  "imageID": "docker-pullable://quay.io/konveyor/tackle2-operator@sha256:4110d23743087ee9ed97827aa22c1e31b066a0e5c25db90196c5dfb4dbf9c65b"
}
{
  "name": "tackle-ui-5ccd495897-vsj5x",
  "image": "quay.io/konveyor/tackle2-ui:latest",
  "imageID": "docker-pullable://quay.io/konveyor/tackle2-ui@sha256:541484a8919d9129bed5b95a2776a84ef35989ca271753147185ddb395cc8781"
}

List the current ":latest" tag's manifest digest from quay for a single image (tackle2-hub in this example):

curl https://quay.io/api/v1/repository/konveyor/tackle2-hub/tag/\?onlyActiveTags\=true\&specificTag\=latest | jq '.'

Example output:

{
  "tags": [
    {
      "name": "latest",
      "reversion": false,
      "start_ts": 1718406240,
      "manifest_digest": "sha256:f19ab51cc9f23ee30225dd1c15ca545c2b767be7d7e1ed5cd83df47a40e5d324",
      "is_manifest_list": true,
      "size": null,
      "last_modified": "Fri, 14 Jun 2024 23:04:00 -0000"
    }
  ],
  "page": 1,
  "has_additional": false
}

Bounce a deployment to update to the current image with a tag

The ":latest" image tag usually move frequently. Using the previous two commands, the sha256 for the tackle2-hub image match between the kubectl output and the quay.io output. This comparison is an easy way to make sure the container image in your environment is actually the current version.

If the digests do not match, the easy way to update is to "bounce" the deployment (the tackle-hub in this example):

minikube kubectl -- scale -n konveyor-tackle deployment tackle-hub --replicas=0
minikube kubectl -- scale -n konveyor-tackle deployment tackle-hub --replicas=1

Assuming the default image_pull_policy=Always, after the bounce the deployment and pod will be using the current image.

Patch your Tackle CR to use a custom container

First, build and push the container with your dev/custom work (quay.io or ttl.sh container registries can both work here):

export UI_IMAGE=quay.io/<username>/tackle2-ui:test1
cd <repo_root>
podman build --pull -t ${UI_IMAGE} .
podman login -u='<quay push robot account>' -p='<encrypted password>' quay.io
podman push ${UI_IMAGE}

Second patch the Tackle CR so the UI image uses the one just created:

export UI_IMAGE=quay.io/<username>/tackle2-ui:test1
kubectl patch -n konveyor-tackle tackle tackle --type=merge --patch-file=/dev/stdin <<-EOF
spec:
  image_pull_policy: IfNotPresent
  ui_image_fqin: ${UI_IMAGE}
EOF

Note: This process can work with any of the images that can be set via Tackle CR's spec params.

Pull the Keycloak SSO admin login secret

kubectl get secrets -n konveyor-tackle tackle-keycloak-sso -o=json \
  | jq ".data|map_values(@base64d)"