Skip to content

Commit

Permalink
Merge branch 'main' into AddGameServerStateDurationToGrafana
Browse files Browse the repository at this point in the history
  • Loading branch information
gongmax authored Nov 6, 2024
2 parents 91d68d4 + 65ed012 commit a0264ca
Show file tree
Hide file tree
Showing 82 changed files with 17,323 additions and 16,329 deletions.
46 changes: 45 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,50 @@
# Changelog

## [v1.43 .0](https://github.com/googleforgames/agones/tree/v1.43.0) (2024-08-27)
## [v1.44.0](https://github.com/googleforgames/agones/tree/v1.44.0) (2024-10-08)

[Full Changelog](https://github.com/googleforgames/agones/compare/v1.43.0...v1.44.0)

**Implemented enhancements:**
- Unreal SDK - Added counters to unreal sdk by @GloryOfNight in https://github.com/googleforgames/agones/pull/3935
- Unreal SDK - Add Support for GameServer Status Addresses by @KAllan357 in https://github.com/googleforgames/agones/pull/3932
- Updates upgrade test to install multiple versions of Agones on a cluster in succession by @igooch in https://github.com/googleforgames/agones/pull/3982
- Adds game server template with containerized sdk-client-test by @igooch in https://github.com/googleforgames/agones/pull/3987
- Adds clusters for the in place upgrades tests by @igooch in https://github.com/googleforgames/agones/pull/3990
- Test in place upgrades run tests by @igooch in https://github.com/googleforgames/agones/pull/3991
- Move Feature GKEAutopilotExtendedDurationPods To Beta by @kamaljeeti in https://github.com/googleforgames/agones/pull/4006
**Fixed bugs:**
- fix: remove bad character from metrics markdown by @code-eg in https://github.com/googleforgames/agones/pull/3981
- Updating UpdateList to update the values on a list by @chrisfoster121 in https://github.com/googleforgames/agones/pull/3899
- Cleanup Patch Sidecar Logging by @markmandel in https://github.com/googleforgames/agones/pull/3973
- Refactor metrics registry exporter by @kamaljeeti in https://github.com/googleforgames/agones/pull/3989
- Fix the build-e2e error by @gongmax in https://github.com/googleforgames/agones/pull/4009
- Add a flag to sdkserver to avoid a collision on port 8080 by @KAllan357 in https://github.com/googleforgames/agones/pull/4010
**Other:**
- Update the note at the top of the player tracking docs by @roberthbailey in https://github.com/googleforgames/agones/pull/3974
- Adds schedule and chain policy to fleetautoscaler documentation by @indexjoseph in https://github.com/googleforgames/agones/pull/3934
- Improve documentation to run performance script by @vicentefb in https://github.com/googleforgames/agones/pull/3948
- Preparation for Release v1.44.0 by @kamaljeeti in https://github.com/googleforgames/agones/pull/3975
- Add instructions for running Agones on Minikube with the Windows Docker driver by @brightestpixel in https://github.com/googleforgames/agones/pull/3965
- Use Markdown when use k8s-api-version variable by @peterzhongyi in https://github.com/googleforgames/agones/pull/3964
- Refactor Terraform by @kamaljeeti in https://github.com/googleforgames/agones/pull/3958
- Created performance cluster 1.29 by @ashutosji in https://github.com/googleforgames/agones/pull/3986
- Adding missing documentation about: add option for extensions components to use host network and configure ports by @Orza in https://github.com/googleforgames/agones/pull/3912
- fix: correct misspelled metric in docs by @antiphp in https://github.com/googleforgames/agones/pull/3999
- Add finalizer name change to create gameserver example by @indexjoseph in https://github.com/googleforgames/agones/pull/4005
- Formatting code with gofmt by @cuishuang in https://github.com/googleforgames/agones/pull/4000
- Add 'Trace' to LogLevel in GameServer.Spec.SdkServer by @0xaravindh in https://github.com/googleforgames/agones/pull/3995
- Upgrade to Golang Version 1.22.6 and Golangci lint version v1.61.0 by @0xaravindh in https://github.com/googleforgames/agones/pull/3988
- Update the go version upgrade template by @gongmax in https://github.com/googleforgames/agones/pull/4011

**New Contributors:**
- @GloryOfNight made their first contribution in https://github.com/googleforgames/agones/pull/3935
- @brightestpixel made their first contribution in https://github.com/googleforgames/agones/pull/3965
- @code-eg made their first contribution in https://github.com/googleforgames/agones/pull/3981
- @chrisfoster121 made their first contribution in https://github.com/googleforgames/agones/pull/3899
- @cuishuang made their first contribution in https://github.com/googleforgames/agones/pull/4000
- @0xaravindh made their first contribution in https://github.com/googleforgames/agones/pull/3995

## [v1.43.0](https://github.com/googleforgames/agones/tree/v1.43.0) (2024-08-27)

[Full Changelog](https://github.com/googleforgames/agones/compare/v1.42.0...v1.43.0)

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ the [Project Security Policy](.github/SECURITY.md)

Please read the [contributing](CONTRIBUTING.md) guide for directions on submitting Pull Requests to Agones, and community membership governance.

See the [Developing, Testing and Building Agones](build/README.md) documentation for developing, testing and building Agones from source.
See the [Developing, Testing and Building Agones](build/README.md) documentation for developing, testing and building Agones from source. For adding a new field to one of the Custom Resource Definitions refer to [Development Work on Agones Custom Resource Definitions (CRDs)](install/helm/agones/README.md).

For Agones client SDK development refer to [Developing, Testing, and Building Agones Client SDKs](sdks/README.md).

Expand Down
2 changes: 1 addition & 1 deletion build/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#

# base version target. This is usually the next release.
base_version = 1.44.0
base_version = 1.45.0

#
# All of the following can be overwritten with environment variables
Expand Down
9 changes: 2 additions & 7 deletions build/build-image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,7 @@ RUN go install golang.org/x/tools/cmd/goimports@latest && \
go install golang.org/x/pkgsite/cmd/pkgsite@latest

# the kubernetes version for the file
#
# When this is raised to 1.29: bump the code-generator version on line 66 to the v0.30 tag.
# When this is raised to >=1.30: delete line 66-67 and uncomment line 68 to stop pinning code-generator.
ENV KUBERNETES_VER 1.29.7
ENV KUBERNETES_VER 1.30.4

# overwrite kubectl as we want a specific version
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/v${KUBERNETES_VER}/bin/linux/amd64/kubectl && \
Expand All @@ -63,9 +60,7 @@ RUN echo "source <(kubectl completion bash)" >> /root/.bashrc

# install the release branch of the code generator tools
RUN mkdir -p /go/src/k8s.io && cd /go/src/k8s.io && \
git clone -b v0.30.0 --depth=3 https://github.com/kubernetes/code-generator.git
# We are pinning code-generator for now - kube_codegen.sh has substantial improvements in later releases.
# git clone -b kubernetes-${KUBERNETES_VER} --depth=3 https://github.com/kubernetes/code-generator.git
git clone -b kubernetes-${KUBERNETES_VER} --depth=3 https://github.com/kubernetes/code-generator.git

# install Helm package manager
ENV HELM_VER 3.10.3
Expand Down
2 changes: 1 addition & 1 deletion build/build-sdk-images/rust/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ RUN apt-get --allow-releaseinfo-change update && \
ENV RUSTUP_HOME=/usr/local/rustup \
CARGO_HOME=/usr/local/cargo \
PATH=/usr/local/cargo/bin:$PATH \
RUST_VERSION=1.71.0
RUST_VERSION=1.71.1
RUN wget -q https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init && \
chmod +x rustup-init && \
./rustup-init -y --no-modify-path --default-toolchain $RUST_VERSION && \
Expand Down
2 changes: 1 addition & 1 deletion build/e2e-image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ RUN wget -q https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz && \
ENV PATH /usr/local/go/bin:/go/bin:$PATH

# install kubectl without gcloud as we want the last version
ENV KUBECTL_VER 1.29.7
ENV KUBECTL_VER 1.30.4
RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VER}/bin/linux/amd64/kubectl && \
chmod go+rx ./kubectl && \
mv ./kubectl /usr/local/bin/kubectl
Expand Down
2 changes: 1 addition & 1 deletion build/includes/kind.mk
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ kind-test-cluster: DOCKER_RUN_ARGS+=--network=host
kind-test-cluster: $(ensure-build-image)
@if [ -z $$(kind get clusters | grep $(KIND_PROFILE)) ]; then\
echo "Could not find $(KIND_PROFILE) cluster. Creating...";\
kind create cluster --name $(KIND_PROFILE) --image kindest/node:v1.29.7 --wait 5m;\
kind create cluster --name $(KIND_PROFILE) --image kindest/node:v1.30.4 --wait 5m;\
fi

# deletes the kind agones cluster
Expand Down
2 changes: 1 addition & 1 deletion build/includes/minikube.mk
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ minikube_cert_mount := ~/.minikube:$(HOME)/.minikube
# of the right version.
minikube-test-cluster: DOCKER_RUN_ARGS+=--network=host -v $(minikube_cert_mount)
minikube-test-cluster: $(ensure-build-image)
$(MINIKUBE) start --kubernetes-version v1.29.7 -p $(MINIKUBE_PROFILE) --driver $(MINIKUBE_DRIVER)
$(MINIKUBE) start --kubernetes-version v1.30.4 -p $(MINIKUBE_PROFILE) --driver $(MINIKUBE_DRIVER)

# Connecting to minikube requires so enhanced permissions, so use this target
# instead of `make shell` to start an interactive shell for development on minikube.
Expand Down
2 changes: 1 addition & 1 deletion build/includes/sdk.mk
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
# \__, |_| \_\_| \____| |_|\___/ \___/|_|_|_| |_|\__, |
# |___/ |___/

grpc_release_tag = v1.58.3
grpc_release_tag = v1.65.0

build_sdk_base_version = $(call sha,$(build_path)/build-sdk-images/tool/base/Dockerfile)_$(grpc_release_tag)
build_sdk_base_tag = agones-build-sdk-base:$(build_sdk_base_version)
Expand Down
4 changes: 2 additions & 2 deletions build/terraform/e2e/module.tf
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ variable "kubernetes_versions" {
description = "Create e2e test clusters with these k8s versions in these regions"
type = map(list(string))
default = {
"1.28" = ["us-west1", "RAPID"]
"1.29" = ["europe-west1", "RAPID"]
"1.30" = ["asia-east1", "RAPID"]
// "1.31" = ["us-east1", "RAPID"]
"1.31" = ["us-east1", "RAPID"]
//1.32" = ["us-west1", "RAPID"]
//
// Before merge: When adding Kubernetes version 1.{N}, first uncomment the line above, extending
// the infrastructure to 4 versions temporarily. Come back to these instructions after the
Expand Down
2 changes: 1 addition & 1 deletion build/terraform/performance/module.tf
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ variable "kubernetes_versions" {
description = "Create performance test clusters with these k8s versions in these regions"
type = map(list(string))
default = {
"1.29" = ["us-central1", "RAPID"]
"1.30" = ["us-central1", "RAPID"]
}
}

Expand Down
2 changes: 1 addition & 1 deletion ci/perf-test-cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ steps:
- tag-build-image

substitutions:
_TEST_CLUSTER_NAME: standard-performance-test-cluster-1-29
_TEST_CLUSTER_NAME: standard-performance-test-cluster-1-30
_TEST_CLUSTER_LOCATION: us-central1
_REGISTRY: us-docker.pkg.dev/agones-images/ci
_TEST_PROJECT_ID: agones-images
Expand Down
4 changes: 2 additions & 2 deletions cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -271,14 +271,14 @@ steps:
set -o pipefail
pids=()
cloudProducts=("generic" "gke-autopilot")
declare -A versionsAndRegions=( [1.28]=us-west1 [1.29]=europe-west1 [1.30]=asia-east1 )
declare -A versionsAndRegions=( [1.29]=europe-west1 [1.30]=asia-east1 [1.31]=us-east1 )
# Keep in sync with (the inverse of) pkg/util/runtime/features.go:featureDefaults
featureWithGate="PlayerAllocationFilter=true&PlayerTracking=true&CountsAndLists=false&RollingUpdateFix=true&PortRanges=true&PortPolicyNone=true&ScheduledAutoscaler=true&DisableResyncOnSDKServer=false&AutopilotPassthroughPort=false&GKEAutopilotExtendedDurationPods=false&Example=true"
featureWithoutGate=""
# Use this if specific feature gates can only be supported on specific Kubernetes versions.
declare -A featureWithGateByVersion=( [1.28]="${featureWithGate}" [1.29]="${featureWithGate}" [1.30]="${featureWithGate}")
declare -A featureWithGateByVersion=( [1.29]="${featureWithGate}" [1.30]="${featureWithGate}" [1.31]="${featureWithGate}")
for cloudProduct in ${cloudProducts[@]}
do
Expand Down
2 changes: 1 addition & 1 deletion examples/cpp-simple/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ RUN apt-get update && apt-get install -y \
WORKDIR /project

# Install gRPC and dependencies
RUN git clone --recurse-submodules -b v1.58.3 --depth 1 --shallow-submodules https://github.com/grpc/grpc /var/local/git/grpc && \
RUN git clone --recurse-submodules -b v1.65.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc /var/local/git/grpc && \
cd /var/local/git/grpc && \
mkdir -p cmake/build && \
cd cmake/build && \
Expand Down
2 changes: 1 addition & 1 deletion examples/cpp-simple/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ PROD_REPO ?= us-docker.pkg.dev/agones-images/examples
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
project_path := $(dir $(mkfile_path))
root_path = $(realpath $(project_path)/../..)
version := 0.18
version := 0.19
ifeq ($(REPOSITORY),)
server_tag := cpp-simple-server:$(version)
else
Expand Down
130 changes: 130 additions & 0 deletions examples/terraform-submodules/oke/module.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
// Copyright 2024 Google LLC All Rights Reserved.
//
// 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.


// Run:
// terraform apply [-var agones_version="1.17.0"]

terraform {
required_version = ">= 1.2.0"
required_providers {
oci = {
source = "oracle/oci"
version = ">= 5.28.0"
}
}
}

module "oke_cluster" {
source = "oracle-terraform-modules/oke/oci"
version = ">= 5.1.8"

region = var.region
home_region = var.home_region
tenancy_id = var.tenancy_id
user_id = var.user_id

providers = {
oci = oci
oci.home = oci.home
}

# general oci parameters
compartment_id = var.compartment_id

# ssh keys
ssh_private_key_path = var.ssh_private_key_path
ssh_public_key_path = var.ssh_public_key_path

# Resource creation
assign_dns = true
create_vcn = true
create_bastion = true
create_cluster = true
create_operator = true
create_iam_resources = true

# oke cluster options
cluster_name = var.cluster_name
cluster_type = var.cluster_type
cni_type = var.preferred_cni
control_plane_is_public = var.oke_control_plane == "public"
kubernetes_version = var.kubernetes_version

# node pools
worker_pools = {
node_pool_1 = {
shape = "VM.Standard.E4.Flex",
ocpus = 2,
memory = 32,
size = var.node_count,
boot_volume_size = 150,
}
}

# security
bastion_allowed_cidrs = ["0.0.0.0/0"]
control_plane_allowed_cidrs = ["0.0.0.0/0"]
allow_worker_ssh_access = true
assign_public_ip_to_control_plane = true
}

data "oci_containerengine_cluster_kube_config" "oke_cluster_kubeconfig" {
cluster_id = module.oke_cluster.cluster_id
}

resource "local_file" "kubeconfig" {
content = data.oci_containerengine_cluster_kube_config.oke_cluster_kubeconfig.content
filename = "${path.module}/generated/kubeconfig"
file_permission = "0600"
}

resource "oci_core_network_security_group_security_rule" "worker_ingress_rule" {
network_security_group_id = module.oke_cluster.worker_nsg_id
direction = "INGRESS"
protocol = "17"
source = "0.0.0.0/0"
source_type = "CIDR_BLOCK"

udp_options {
destination_port_range {
#Required
max = 8000
min = 7000
}
}
}

resource "oci_core_network_security_group_security_rule" "worker_egress_rule" {
network_security_group_id = module.oke_cluster.worker_nsg_id
direction = "EGRESS"
protocol = "all"
destination = "0.0.0.0/0"
destination_type = "CIDR_BLOCK"
}

module "helm_agones" {
// ***************************************************************************************************
// Update ?ref= to the agones release you are installing. For example, ?ref=release-1.17.0 corresponds
// to Agones version 1.17.0
// ***************************************************************************************************
source = "git::https://github.com/googleforgames/agones.git//install/terraform/modules/oke-helm3/?ref=main"

udp_expose = "false"
agones_version = var.agones_version
values_file = ""
feature_gates = var.feature_gates
log_level = var.log_level
cluster_kebuconfig = data.oci_containerengine_cluster_kube_config.oke_cluster_kubeconfig.content
}
48 changes: 48 additions & 0 deletions examples/terraform-submodules/oke/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
// Copyright 2024 Google LLC All Rights Reserved.
//
// 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.

output "cluster_endpoints" {
description = "Endpoints for the OKE cluster"
value = module.oke_cluster.cluster_endpoints
}

output "cluster_kubeconfig" {
description = "OKE kebuconfig"
value = module.oke_cluster.cluster_kubeconfig
}

output "cluster_ca_cert" {
description = "OKE cluster CA certificate"
value = module.oke_cluster.cluster_ca_cert
}

output "bastion_public_ip" {
description = "Public IP address of bastion host"
value = module.oke_cluster.bastion_public_ip
}

output "operator_private_ip" {
description = "Private IP address of operator host"
value = module.oke_cluster.operator_private_ip
}

output "ssh_to_bastion" {
description = "SSH command for bastion host"
value = module.oke_cluster.ssh_to_bastion
}

output "ssh_to_operator" {
description = "SSH command for operator host"
value = module.oke_cluster.ssh_to_operator
}
Loading

0 comments on commit a0264ca

Please sign in to comment.