armadaproject / armada-operator

Apache License 2.0
13 stars 10 forks source link

Run ` armadactl create queue example` rpc error: code = DeadlineExceeded desc = context deadline exceeded #321

Open zjzjwang opened 3 months ago

zjzjwang commented 3 months ago

I want to try armada on my local ubuntu20.04 machine, I install armada with the following commands:

git clone https://github.com/armadaproject/armada-operator.git && cd armada-operator   
git checkout v0.3.0   
make kind-all  

then I run armadactl create queue example, it failed with the following output:

Error: [armadactl.CreateQueue] error creating queue example: create queue request failed: rpc error: code = DeadlineExceeded desc = context deadline exceeded
Usage:
  armadactl create queue <queue-name> [flags]

Flags:
      --group-owners strings    Comma separated list of queue group owners, defaults to empty list.
  -h, --help                    help for queue
      --owners strings          Comma separated list of queue owners, defaults to current user.
      --priority-factor float   Set queue priority factor - lower number makes queue more important, must be > 0. (default 1)

Global Flags:
      --armadaUrl string   specify armada server url (default "localhost:50051")
      --config string      config file (default is $HOME/.armadactl.yaml)
  -c, --context string     specify armada context, as defined in armadactl config

Could you give me some guidance to resolve this error? Thank you for your excellent work.

some additional info:

image

all pods: image

all service: image

machine info: image

output of make kind-all

โžœ  armada-operator git:(v0.3.0) make kind-all
test -s /tmp/armada-operator/bin/tooling/kind || GOBIN=/tmp/armada-operator/bin/tooling go install sigs.k8s.io/kind@v0.23.0
/tmp/armada-operator/bin/tooling/kind create cluster --config hack/kind-config.yaml --name armada
Creating cluster "armada" ...
 โœ“ Ensuring node image (kindest/node:v1.30.0) ๐Ÿ–ผ
 โœ“ Preparing nodes ๐Ÿ“ฆ ๐Ÿ“ฆ
 โœ“ Writing configuration ๐Ÿ“œ
 โœ“ Starting control-plane ๐Ÿ•น๏ธ
 โœ“ Installing CNI ๐Ÿ”Œ
 โœ“ Installing StorageClass ๐Ÿ’พ
 โœ“ Joining worker nodes ๐Ÿšœ
Set kubectl context to "kind-armada"
You can now use your cluster with:

kubectl cluster-info --context kind-armada

Thanks for using kind! ๐Ÿ˜Š
kubectl apply -f "https://github.com/cert-manager/cert-manager/releases/download/v1.14.5/cert-manager.yaml"
namespace/cert-manager created
customresourcedefinition.apiextensions.k8s.io/certificaterequests.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/certificates.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/challenges.acme.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/clusterissuers.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/issuers.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/orders.acme.cert-manager.io created
serviceaccount/cert-manager-cainjector created
serviceaccount/cert-manager created
serviceaccount/cert-manager-webhook created
clusterrole.rbac.authorization.k8s.io/cert-manager-cainjector created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-issuers created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-clusterissuers created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-certificates created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-orders created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-challenges created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-ingress-shim created
clusterrole.rbac.authorization.k8s.io/cert-manager-cluster-view created
clusterrole.rbac.authorization.k8s.io/cert-manager-view created
clusterrole.rbac.authorization.k8s.io/cert-manager-edit created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-approve:cert-manager-io created
clusterrole.rbac.authorization.k8s.io/cert-manager-controller-certificatesigningrequests created
clusterrole.rbac.authorization.k8s.io/cert-manager-webhook:subjectaccessreviews created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-cainjector created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-issuers created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-clusterissuers created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-certificates created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-orders created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-challenges created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-ingress-shim created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-approve:cert-manager-io created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-controller-certificatesigningrequests created
clusterrolebinding.rbac.authorization.k8s.io/cert-manager-webhook:subjectaccessreviews created
role.rbac.authorization.k8s.io/cert-manager-cainjector:leaderelection created
role.rbac.authorization.k8s.io/cert-manager:leaderelection created
role.rbac.authorization.k8s.io/cert-manager-webhook:dynamic-serving created
rolebinding.rbac.authorization.k8s.io/cert-manager-cainjector:leaderelection created
rolebinding.rbac.authorization.k8s.io/cert-manager:leaderelection created
rolebinding.rbac.authorization.k8s.io/cert-manager-webhook:dynamic-serving created
service/cert-manager created
service/cert-manager-webhook created
deployment.apps/cert-manager-cainjector created
deployment.apps/cert-manager created
deployment.apps/cert-manager-webhook created
mutatingwebhookconfiguration.admissionregistration.k8s.io/cert-manager-webhook created
validatingwebhookconfiguration.admissionregistration.k8s.io/cert-manager-webhook created
kubectl wait --for=condition=Available --timeout=600s -n cert-manager deployments --all
deployment.apps/cert-manager condition met
deployment.apps/cert-manager-cainjector condition met
deployment.apps/cert-manager-webhook condition met
helm repo add jetstack https://charts.jetstack.io
"jetstack" already exists with the same configuration, skipping
helm repo add bitnami https://charts.bitnami.com/bitnami
"bitnami" already exists with the same configuration, skipping
helm repo add apache https://pulsar.apache.org/charts
"apache" already exists with the same configuration, skipping
helm repo add dandydev https://dandydeveloper.github.io/charts
"dandydev" already exists with the same configuration, skipping
helm repo add gresearch https://g-research.github.io/charts
"gresearch" already exists with the same configuration, skipping
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
"prometheus-community" already exists with the same configuration, skipping
helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "jetstack" chart repository
...Successfully got an update from the "apache" chart repository
...Successfully got an update from the "gresearch" chart repository
...Successfully got an update from the "prometheus-community" chart repository
...Successfully got an update from the "dandydev" chart repository
...Successfully got an update from the "dagster" chart repository
...Successfully got an update from the "bitnami" chart repository
Update Complete. โŽˆHappy Helming!โŽˆ
helm upgrade --install armada-operator gresearch/armada-operator --create-namespace --namespace armada-system
Release "armada-operator" does not exist. Installing it now.
NAME: armada-operator
LAST DEPLOYED: Thu Aug  8 17:42:01 2024
NAMESPACE: armada-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
helm upgrade --install kube-prometheus-stack prometheus-community/kube-prometheus-stack --create-namespace --namespace monitoring
Release "kube-prometheus-stack" does not exist. Installing it now.
NAME: kube-prometheus-stack
LAST DEPLOYED: Thu Aug  8 17:42:07 2024
NAMESPACE: monitoring
STATUS: deployed
REVISION: 1
NOTES:
kube-prometheus-stack has been installed. Check its status by running:
  kubectl --namespace monitoring get pods -l "release=kube-prometheus-stack"

Visit https://github.com/prometheus-operator/kube-prometheus for instructions on how to create & configure Alertmanager and Prometheus instances using the Operator.
helm upgrade --install postgresql bitnami/postgresql --values dev/quickstart/postgres.values.yaml --create-namespace --namespace data
Release "postgresql" does not exist. Installing it now.
NAME: postgresql
LAST DEPLOYED: Thu Aug  8 17:42:33 2024
NAMESPACE: data
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: postgresql
CHART VERSION: 15.5.20
APP VERSION: 16.3.0

** Please be patient while the chart is being deployed **

PostgreSQL can be accessed via port 5432 on the following DNS names from within your cluster:

    postgresql.data.svc.cluster.local - Read/Write connection

To get the password for "postgres" run:

    export POSTGRES_PASSWORD=$(kubectl get secret --namespace data postgresql -o jsonpath="{.data.postgres-password}" | base64 -d)

To connect to your database run the following command:

    kubectl run postgresql-client --rm --tty -i --restart='Never' --namespace data --image docker.io/bitnami/postgresql:16.3.0-debian-12-r23 --env="PGPASSWORD=$POSTGRES_PASSWORD" \
      --command -- psql --host postgresql -U postgres -d postgres -p 5432

    > NOTE: If you access the container using bash, make sure that you execute "/opt/bitnami/scripts/postgresql/entrypoint.sh /bin/bash" in order to avoid the error "psql: local user with ID 1001} does not exist"

To connect to your database from outside the cluster execute the following commands:

    kubectl port-forward --namespace data svc/postgresql 5432:5432 &
    PGPASSWORD="$POSTGRES_PASSWORD" psql --host 127.0.0.1 -U postgres -d postgres -p 5432

WARNING: The configured password will be ignored on new installation in case when previous PostgreSQL release was deleted through the helm command. In that case, old PVC will have an old password, and setting it through helm won't take effect. Deleting persistent volumes (PVs) will solve the issue.

WARNING: There are "resources" sections in the chart not set. Using "resourcesPreset" is not recommended for production. For production installations, please set the following values according to your workload needs:
  - primary.resources
  - readReplicas.resources
+info https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
helm upgrade --install pulsar apache/pulsar --values dev/quickstart/pulsar.values.yaml --create-namespace --namespace data
Release "pulsar" does not exist. Installing it now.
NAME: pulsar
LAST DEPLOYED: Thu Aug  8 17:42:36 2024
NAMESPACE: data
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thank you for installing Apache Pulsar Helm chart version 3.5.0.

!! WARNING !!

Important Security Disclaimer for Apache Pulsar Helm Chart Usage:

This Helm chart is provided with a default configuration that does not
meet the security requirements for production environments or sensitive
data handling. Users are strongly advised to thoroughly review and
customize the security settings to ensure a secure deployment that
aligns with their specific operational and security policies.

Go to https://github.com/apache/pulsar-helm-chart for more details.

Ask usage questions at https://github.com/apache/pulsar/discussions/categories/q-a
Report issues to https://github.com/apache/pulsar-helm-chart/issues
Please contribute improvements to https://github.com/apache/pulsar-helm-chart
helm upgrade --install redis-ha dandydev/redis-ha --values dev/quickstart/redis.values.yaml --create-namespace --namespace data
Release "redis-ha" does not exist. Installing it now.
NAME: redis-ha
LAST DEPLOYED: Thu Aug  8 17:42:39 2024
NAMESPACE: data
STATUS: deployed
REVISION: 1
NOTES:
Redis can be accessed via port 6379   and Sentinel can be accessed via port 26379    on the following DNS name from within your cluster:
redis-ha.data.svc.cluster.local

To connect to your Redis server:
1. Run a Redis pod that you can use as a client:

   kubectl exec -it redis-ha-server-0 -n data -c redis -- sh

2. Connect using the Redis CLI:

  redis-cli -h redis-ha.data.svc.cluster.local
hack/wait-for-deps.sh
Checking StatefulSet postgresql...
StatefulSet postgresql does not have at least 1 ready replicas:
Waiting for StatefulSets to be ready... (elapsed time: 0 seconds)
Checking StatefulSet postgresql...
StatefulSet postgresql does not have at least 1 ready replicas:
Waiting for StatefulSets to be ready... (elapsed time: 10 seconds)
...
Waiting for StatefulSets to be ready... (elapsed time: 384 seconds)
Checking StatefulSet postgresql...
Checking StatefulSet pulsar-bookie...
Checking StatefulSet pulsar-broker...
Checking StatefulSet pulsar-proxy...
StatefulSet pulsar-proxy does not have at least 1 ready replicas:
Waiting for StatefulSets to be ready... (elapsed time: 395 seconds)
Checking StatefulSet postgresql...
Checking StatefulSet pulsar-bookie...
Checking StatefulSet pulsar-broker...
Checking StatefulSet pulsar-proxy...
Checking StatefulSet pulsar-recovery...
Checking StatefulSet pulsar-toolset...
Checking StatefulSet pulsar-zookeeper...
Checking StatefulSet redis-ha-server...
All StatefulSets have at least 1 ready replicas.
kubectl create namespace armada || true
namespace/armada created
kubectl apply -f dev/quickstart/armada-crs.yaml
armadaserver.install.armadaproject.io/armada-server created
executor.install.armadaproject.io/armada-executor created
lookout.install.armadaproject.io/armada-lookout-v2 created
lookoutingester.install.armadaproject.io/armada-lookout-ingester-v2 created
scheduler.install.armadaproject.io/armada-scheduler created
scheduleringester.install.armadaproject.io/armada-scheduler-ingester created
eventingester.install.armadaproject.io/armada-event-ingester created
kubectl apply --filename dev/quickstart/priority-class.yaml
priorityclass.scheduling.k8s.io/armada-default created
curl -o /tmp/armada-operator/bin/app/get-armadactl.sh https://raw.githubusercontent.com/armadaproject/armada/master/scripts/get-armadactl.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1917  100  1917    0     0   3773      0 --:--:-- --:--:-- --:--:--  3773
bash -c "cd bin/app && bash get-armadactl.sh"
Downloading armadactl v0.8.2 for linux/amd64
armadactl downloaded successfully
armadactl copied to /home/wangzj/bin/armadactl
armadactl is now available on your PATH
rm bin/app/get-armadactl.sh
Sovietaced commented 3 months ago

My guess is that armadactl is not able to reach the Armada server..

zjzjwang commented 3 months ago

My guess is that armadactl is not able to reach the Armada server..

But why can I visit lookout webpage but cannot reach the armada server? image

zjzjwang commented 3 months ago

My guess is that armadactl is not able to reach the Armada server..

Thank you for your advice. I manully forward the armara-server pod๏ผŒ and change armadaUrl in ~/.armadactl.yaml to this port, and everything is OK.

kubectl port-forward pod/armada-server-6d56f6bd6f-clxf6 30012:50051 --namespace=armada
# then 
vim ~/.armadactl.yaml
# change to armadaUrl: localhost:30012
dejanzele commented 1 month ago

Hi @zjzjwang,

Can you try the latest Quickstart guide defined in this repo and see does the error persist?