Files
substrate/hack/ate-dev-env.sh.example
T
Lior Lieberman b748aa2a5e graduate credential injection from experimental (#2101)
Graduates egress credential injection out of experimental: removes
`--experimental-egress-credential-injection` and
`ATE_CREDENTIAL_INJECTION_ENABLED`.

#### Breaking change

- `deploy ate-system` and `deploy atenet` now require
`--credential-provider` (or `ATE_CREDENTIAL_PROVIDER`). It's a JSON
value that replaces `--credential-provider-name` and
`--credential-provider-address`:
- `{"name":"k8s.io"}` deploys the bundled Kubernetes Secrets provider,
plus a NetworkPolicy that only lets atenet-egress connect. `address` is
optional.
  - `{"enabled":false}` turns injection off.
- `{"name":"<provider-name>","address":"<host>:<port>"}` uses a provider
you deploy yourself.

#### More
- Provider names are bare DNS names; credential URIs keep
`ate-secret://`.
- The gateway now fails closed (500) when a rule needs a credential but
no provider is configured.
- Added a network policy with the k8s secret provider to allow only
access from atenet-egress
- The agentgateway dataplane refuses a provider for now (@EItanya will
follow up).
- Docs and scripts use `{"name":"k8s.io"}`.
- Related to above, we took a deliberate decision to install k8s.io
credential provider deployment when k8s.io provider is specified. For
this provider, namespace-policy ConfigMap is created only when absent.


- [x] Tests pass
- [x] Appropriate changes to documentation are included in the PR
2026-10-02 23:04:51 +00:00

61 lines
2.6 KiB
Plaintext

# Copyright 2026 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Example environment variables for Substrate development.
# Copy this file to .ate-dev-env.sh and customize it for your environment.
export PROJECT_ID=${USER}-gke-dev
export PROJECT_NUMBER=$(gcloud projects describe ${PROJECT_ID} --format="value(projectNumber)")
export GCE_REGION=us-west1
export CLUSTER_LOCATION=us-west1-c
export NETWORK=default
export SUBNETWORK=default
export CLUSTER_NAME=substrate-poc
# Supported: 1.36 (needs the beta APIs enabled at cluster creation, which
# setup-gcp does) or 1.37+ (APIs served by default). Anything below 1.36 does
# not work. GKE retires patch versions over time — if cluster creation rejects
# this pin, pick a current one from:
# gcloud container get-server-config --zone ${CLUSTER_LOCATION} --format="value(defaultClusterVersion)"
# See tools/setup-gcp/README.md ("Create Cluster") for the full constraint.
export CLUSTER_VERSION=1.36.3-gke.1767000
export NODE_POOL_NAME=gvisor-pool
export NODE_POOL_VERSION=1.36.3-gke.1767000
export NODE_MACHINE_TYPE=c3-standard-4
# Enable nested virtualization (required for microVMs)
export ENABLE_NESTED_VIRTUALIZATION=true
# Boot disk customizations (optional; defaults to GKE's default boot disk)
# export BOOT_DISK_SIZE_GB=500
# export BOOT_DISK_TYPE=hyperdisk-balanced
# Set this if you are using an existing cluster with a different context name.
export KUBECTL_CONTEXT=
export BUCKET_NAME=snapshot-substrate-test-${PROJECT_ID}
export KO_DOCKER_REPO="gcr.io/${PROJECT_ID}/ate-images"
# Credential provider the egress gateway injects credentials from, as JSON; the
# install requires a choice. {"name":"k8s.io"} deploys the bundled Kubernetes
# Secrets provider, with a NetworkPolicy that admits only the egress gateway;
# {"enabled":false} turns egress credential injection off, and is the only choice
# on the agentgateway dataplane; {"name":"<provider>","address":"<host>:<port>"}
# uses a provider you deploy yourself. See docs/egress-credential-injection.md.
export ATE_CREDENTIAL_PROVIDER='{"name":"k8s.io"}'
# Set this if you want to override the default build platforms
export KO_DEFAULTPLATFORMS=linux/amd64