Skip to content
Snippets Groups Projects
  1. Aug 28, 2018
  2. Aug 26, 2018
    • Mark Mandel's avatar
      Ability to pass `GameServer` yaml/json to local sdk server · 383bd224
      Mark Mandel authored
      To be able to work locally, you need to be able to specify your
      local `GameServer` configuration, as it likely will have application specific
      configuration in it -- or maybe you want to specify what state it's in.
      
      This commit allow you to specify the local resource as either yaml/json
      through a `-f` or `--file` flag.
      
      Closes #296
      383bd224
    • Mark Mandel's avatar
      Move Status > Address & Ports population to `Creating` state processing · f8bfe386
      Mark Mandel authored
      Previously the IP and Ports of the GameServer were populated only when
      the GameServer is set to Ready.
      
      This information may be needed by the GameServer process before the
      process actually wants to mark itself as Ready.
      
      Therefore, port and address population has been moved to the `Creating` state
      processing, as that is where the Pod is created, and therefore we have both
      address and port information.
      
      `GameServer` events now look like this:
      
      ```
      Events:
        Type    Reason          Age   From                   Message
        ----    ------          ----  ----                   -------
        Normal  PortAllocation  17s   gameserver-controller  Port allocated
        Normal  Creating        16s   gameserver-controller  Pod simple-udp-fcf44 created
        Normal  Starting        16s   gameserver-controller  Address and Port populated
        Normal  Ready           15s   gameserver-controller  SDK.Ready() executed
      ```
      
      Closes #293
      f8bfe386
    • Mark Mandel's avatar
      Implement SDK SetLabel and SetAnnotation functionality · 9ff84ac2
      Mark Mandel authored
      This implements new functions in the SDK:
      
      - SetLabel(key, value) - that lets you set a label on the backing `GameServer`
      - SetAnnotation(key, value) - that lets you set an annotation on the backing
      `GameServer`
      
      All keys are prefixed with "stable.agones.dev/sdk-" to maintain isolation.
      
      Closes #279
      9ff84ac2
  3. Aug 24, 2018
  4. Aug 23, 2018
    • Mark Mandel's avatar
      Fleet Allocation via REST was failing · 6d0ac2c3
      Mark Mandel authored
      The REST api wasn't populating the metadata.namespace
      whereas the kubectl command will when sending yaml - which
      caused an issue when attempting to Fleet Allocate via REST.
      
      We now pull the namespace from the AdmissionReview, which
      solves this problem.
      
      Also documented the workaround as well.
      
      Closes #324
      6d0ac2c3
  5. Aug 22, 2018
  6. Aug 19, 2018
  7. Aug 16, 2018
    • Cyril TOVENA's avatar
      adds the first e2e test · 6ee96ae3
      Cyril TOVENA authored
      This test creates a gameserver and connect to it
      
      update vendor with required lib for e2e
      Adds the gcloud builder step to test it in a special e2e cluster
      Updates build documentations with e2e instructions
      Adds minikube e2e target
      6ee96ae3
  8. Aug 14, 2018
  9. Aug 10, 2018
  10. Aug 01, 2018
  11. Jul 31, 2018
  12. Jul 30, 2018
  13. Jul 26, 2018
  14. Jul 19, 2018
    • Mark Mandel's avatar
      Missing `watch` permission in rbac for agones-sdk · 9dc9109b
      Mark Mandel authored
      Getting the following error in the logs.
      `{"level":"error","msg":"agones.dev/agones/pkg/client/informers/externalversions/factory.go:74: Failed to watch *v1alpha1.GameServer: unknown (get gameservers.stable.agones.dev)","time":"2018-07-19T21:52:23Z"}`
      
      Needed the `watch` permission to make it go away.
      
      We aren't watching for events right now, so it's just noise,
      but it's better with it gone.
      9dc9109b
  15. Jul 18, 2018
  16. Jul 17, 2018
  17. Jul 16, 2018
  18. Jul 11, 2018
    • Borislav Kosharov's avatar
      fix yaml install link · f85fa1af
      Borislav Kosharov authored
      f85fa1af
    • Mark Mandel's avatar
      [Breaking Change] Multiple port support for `GameServer` · 180c6c94
      Mark Mandel authored
      This allows the `GameServer` (and anything that uses it as a template,  such
      as `Fleets`), to provide configuration and assignment of multiple ports to the
      game server container.
      
      For example:
      
      ```yaml
      apiVersion: "stable.agones.dev/v1alpha1"
      kind: GameServer
      metadata:
        name: "simple-udp"
      spec:
        ports:
        - name: default
          portPolicy: "dynamic"
          containerPort: 7654
        template:
          spec:
            containers:
            - name: simple-udp
              image: gcr.io/agones-images/udp-server:0.1
      ```
      
      This also includes update to documentation - but in a separate bottom section
      of each document, to allow for moving into the live version at release time.
      (This is becoming a mess - a website can't come soon enough).
      
      This also adjusts the `GameServer > Status`, to be able to handle multiple
      ports. It now looks like this:
      
      ```
      Status:
        Address:    192.168.99.100
        Node Name:  agones
        Ports:
          Name:  default
          Port:  7502
        State:   Ready
      ```
      
      While this a breaking change (due to the change in `GameServer > status`, the
      previous legacy configuration of still works (even thought it's no longer
      documented), as it is automatically converted to the new version.
      
      Plans are to remove this legacy conversion functionality in 0.4.0, since being
      in alpha, we have a very low commitment to backward compatibility.
      
      As an aside - versioning for CRDs is coming soon, so this will also solve this
      type of problem long term.
      180c6c94
    • Cyril TOVENA's avatar
  19. Jul 09, 2018
    • Mark Mandel's avatar
      Fix bug with hung GameServer resource on Kubernetes 1.10 · d3e9d7ee
      Mark Mandel authored
      It looks like the `foregroundDeletion` finalizer that gets added to the
      GameServer when a deletion with foreground propogation is requested -
      when it gets removed, by the Kubernetes system, the ResourceVersion/Generation
      doesn't get incremented.
      
      This means when we do an `Update` it will go through (usually it fails if the
      ResourceVersion/Generation has changed since the last update), rather than
      failing and going back to re-sync.
      
      This can cause a race condition where the `Update` can basically put back
      the `foregroundDeletion` finalizer, if it gets removed between retrieving the
      `GameServer` object and doing the `Update()` operation.
      
      We actually don't need the `foregroundDeletion` propogation on `Delete()`, as
      we only want to keep the `GameServer` around until the backing `Pod` is gone,
      so we can actually just turn this off instead in the code.
      
      As a note - also explored using a `Patch()` operation to try and solve this
      problem. AFAIK, a patch (and specifically a JSONPatch - other patch types
      didn't seem better), can only do index based removal from a list of items.
      
      This could just present other types of race conditions, as finalizers could
      be added/removed by other systems at the same time as well, changing the index
      to the finalizer we want at the same time.
      
      Not sure if this is a bug in the Kubernetes system, or working as intended,
      but this solves the issue.
      d3e9d7ee
  20. Jul 04, 2018
  21. Jul 03, 2018
  22. Jun 25, 2018
  23. Jun 21, 2018
    • Mark Mandel's avatar
      Remove line · e6cdac05
      Mark Mandel authored
      Found a line here that makes no sense.
      e6cdac05
    • Mark Mandel's avatar
      Update minikube instructions to 0.28.0 · 68d83080
      Mark Mandel authored
      Have working instructions for running Kubernetes 1.10 on top of
      minikube 0.28.0 - including a workaround for non default profiles.
      
      Since Agones works fine on k8s 1.10, figured it was worth making the move.
      68d83080
  24. Jun 19, 2018
  25. Jun 18, 2018
Loading