-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
feat: Addition of Istio observability add-ons and enabling cross-zone loadbalancing on Ingress NLB #1735
Conversation
I tried this PR yesterday. In the previous code, the "istio-system" namespace is created by terraform with injection enabled, but after the proposed changes I see that neither Additionally, inspecting the target groups in the created load balancer show multiple unhealthy instances. I'm guessing this is because the ingress is deployed to a single node? This was also the case in the original code, and likely not introduced by this PR. However, while changes to this example are being proposed, is there any expected node selection logic or updates to the target groups that would avoid the unhealthy instances? |
It was intentional. The install documentation never actually suggested that
I deployed the full |
I have further update. The |
it does. thanks for the insight! |
|
||
exec { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the exec method is the method that is recommended by the Hashicorp providers (Kubernetes, Helm) - lets not change this
@@ -154,21 +157,19 @@ resource "helm_release" "istiod" { | |||
name = "istiod" | |||
namespace = helm_release.istio_base.metadata[0].namespace | |||
version = local.istio_chart_version | |||
wait = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
by default, our addons do not wait - instead, we rely on the normal Kubernetes contructs provided by the operators/controllers deployed by the charts to eventually reconcile their state. Lets revert this and remove the explicit depends on for other Istio resources
} | ||
} | ||
} | ||
) | ||
] | ||
depends_on = [helm_release.istiod, helm_release.istio_base] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lets remove this
content = each.value.response_body | ||
} | ||
|
||
resource "kubectl_manifest" "istio_addon" { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we want to minimize, and eventually remove, the use of this provider since has not been updated in some time and looks like it might be abandoned gavinbunney/terraform-provider-kubectl#247
Can we just add instructions in the document to do something like curl <your file url> | kubectl apply -f -
such as curl https://raw.githubusercontent.com/istio/istio/master/samples/addons/kiali.yaml | kubectl apply -f -
@@ -14,6 +14,14 @@ terraform { | |||
source = "hashicorp/kubernetes" | |||
version = ">= 2.20" | |||
} | |||
kubectl = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
with the changes above, we should be able to remove these two
Thanks @bryantbiggs the review was clear and extremely helpful. Though I know I can fix the same PR, I would rather issue a clean one based on the recommendations. |
Description
How was this change tested?
pre-commit run -a
with this PR