diff --git a/triage-party/release-team/OWNERS b/apps/triageparty-release/OWNERS similarity index 100% rename from triage-party/release-team/OWNERS rename to apps/triageparty-release/OWNERS diff --git a/triage-party/release-team/README.md b/apps/triageparty-release/README.md similarity index 91% rename from triage-party/release-team/README.md rename to apps/triageparty-release/README.md index 15deb0db11d..e9182fdc98d 100644 --- a/triage-party/release-team/README.md +++ b/apps/triageparty-release/README.md @@ -14,8 +14,8 @@ The GitHub token is stored in Secret Manager in the `kubernetes-public` project, - Have [access](https://github.com/kubernetes/k8s.io/blob/main/running-in-community-clusters.md) to the GKE cluster `aaa`. -- From the `triage-party` directory run: +- From the `triageparty-release` directory run: -```console -kubectl apply -f release-team/ +```shell +./deploy.sh ``` diff --git a/triage-party/release-team/certificate.yaml b/apps/triageparty-release/certificate.yaml similarity index 84% rename from triage-party/release-team/certificate.yaml rename to apps/triageparty-release/certificate.yaml index df767b076e4..cf74ad8fac9 100644 --- a/triage-party/release-team/certificate.yaml +++ b/apps/triageparty-release/certificate.yaml @@ -3,6 +3,8 @@ kind: ManagedCertificate metadata: name: release-triage-k8s-io namespace: triageparty-release + labels: + app: triage-party spec: domains: - release.triage.k8s.io diff --git a/triage-party/release-team/configmap.yaml b/apps/triageparty-release/configmap.yaml similarity index 99% rename from triage-party/release-team/configmap.yaml rename to apps/triageparty-release/configmap.yaml index 406b1eb336d..bba21ffdfad 100644 --- a/triage-party/release-team/configmap.yaml +++ b/apps/triageparty-release/configmap.yaml @@ -3,6 +3,8 @@ kind: ConfigMap metadata: name: triage-party-config-release namespace: triageparty-release + labels: + app: triage-party data: # The contents of config/config.yaml config.yaml: | diff --git a/apps/triageparty-release/deploy.sh b/apps/triageparty-release/deploy.sh new file mode 100755 index 00000000000..55ea9960a6b --- /dev/null +++ b/apps/triageparty-release/deploy.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +# Copyright 2021 The Kubernetes Authors. +# +# 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. + +# Deploys this app to the aaa cluster, or whatever cluster is pointed to +# by KUBECTL_CONTEXT if set. Assumes the app's namespace already exists. +# +# Members of k8s-infra-rbac-${app}@kubernetes.io can run this. + +set -o errexit +set -o nounset +set -o pipefail + +SCRIPT_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P) + +app=$(basename "${SCRIPT_ROOT}") + +# coordinates to locate the target cluster in gke +cluster_name="aaa" +cluster_project="kubernetes-public" +cluster_region="us-central1" + +# coordinates to locate the app on the target cluster +namespace="${app}" + +# well known name set by `gcloud container clusters get-credentials` +gke_context="gke_${cluster_project}_${cluster_region}_${cluster_name}" +context="${KUBECTL_CONTEXT:-${gke_context}}" + +# ensure we have a context to talk to the target cluster +if ! kubectl config get-contexts "${context}" >/dev/null 2>&1; then + gcloud container clusters get-credentials "${cluster_name}" --project="${cluster_project}" --region="${cluster_region}" + context="${gke_context}" +fi + +# deploy kubernetes resources +pushd "${SCRIPT_ROOT}" >/dev/null +kubectl --context="${context}" --namespace="${namespace}" apply --dry-run=client -f . \ No newline at end of file diff --git a/triage-party/release-team/deployment.yaml b/apps/triageparty-release/deployment.yaml similarity index 100% rename from triage-party/release-team/deployment.yaml rename to apps/triageparty-release/deployment.yaml diff --git a/triage-party/release-team/ingress.yaml b/apps/triageparty-release/ingress.yaml similarity index 100% rename from triage-party/release-team/ingress.yaml rename to apps/triageparty-release/ingress.yaml index c845d9f125b..fb830e503dd 100644 --- a/triage-party/release-team/ingress.yaml +++ b/apps/triageparty-release/ingress.yaml @@ -3,13 +3,13 @@ kind: Ingress metadata: name: triage-party-release namespace: triageparty-release + labels: + app: triage-party annotations: kubernetes.io/ingress.allow-http: "false" kubernetes.io/ingress.class: "gce" kubernetes.io/ingress.global-static-ip-name: "triage-party-release-ingress-prod" networking.gke.io/managed-certificates: "release-triage-k8s-io" - labels: - app: triage-party spec: backend: serviceName: triage-party-release diff --git a/triage-party/release-team/secret.yaml b/apps/triageparty-release/secret.yaml similarity index 90% rename from triage-party/release-team/secret.yaml rename to apps/triageparty-release/secret.yaml index 753a08dda06..d94c8e721b6 100644 --- a/triage-party/release-team/secret.yaml +++ b/apps/triageparty-release/secret.yaml @@ -3,6 +3,8 @@ kind: ExternalSecret metadata: name: github-token namespace: triageparty-release + labels: + app: triage-party spec: backendType: gcpSecretsManager projectId: kubernetes-public diff --git a/triage-party/release-team/service.yaml b/apps/triageparty-release/service.yaml similarity index 87% rename from triage-party/release-team/service.yaml rename to apps/triageparty-release/service.yaml index 2a12ea6cf6a..74b2605c8cd 100644 --- a/triage-party/release-team/service.yaml +++ b/apps/triageparty-release/service.yaml @@ -3,6 +3,8 @@ kind: Service metadata: name: triage-party-release namespace: triageparty-release + labels: + app: triage-party spec: type: NodePort ports: diff --git a/triage-party/release-team/storage.yaml b/apps/triageparty-release/storage.yaml similarity index 100% rename from triage-party/release-team/storage.yaml rename to apps/triageparty-release/storage.yaml