Skip to content
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

Helm integration #149

Merged
merged 6 commits into from
Apr 6, 2018
Merged

Helm integration #149

merged 6 commits into from
Apr 6, 2018

Conversation

fooock
Copy link
Contributor

@fooock fooock commented Mar 21, 2018

Related to #101

@googlebot
Copy link

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here (e.g. I signed it!) and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers
  • Your company has a Point of Contact who decides which employees are authorized to participate. Ask your POC to be added to the group of authorized contributors. If you don't know who your Point of Contact is, direct the project maintainer to go/cla#troubleshoot.
  • The email used to register you as an authorized contributor must be the email used for the Git commit. Check your existing CLA data and verify that your email is set on your git commits.
  • The email used to register you as an authorized contributor must also be attached to your GitHub account.

1 similar comment
@googlebot
Copy link

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here (e.g. I signed it!) and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers
  • Your company has a Point of Contact who decides which employees are authorized to participate. Ask your POC to be added to the group of authorized contributors. If you don't know who your Point of Contact is, direct the project maintainer to go/cla#troubleshoot.
  • The email used to register you as an authorized contributor must be the email used for the Git commit. Check your existing CLA data and verify that your email is set on your git commits.
  • The email used to register you as an authorized contributor must also be attached to your GitHub account.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 6d8f744c-575c-4088-ac6a-9e536c60d27f

The following development artifacts have been built, and will exist for the next 30 days:

@fooock
Copy link
Contributor Author

fooock commented Mar 21, 2018

I signed it!

@googlebot
Copy link

So there's good news and bad news.

👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there.

😕 The bad news is that it appears that one or more commits were authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request.

Note to project maintainer: This is a terminal state, meaning the cla/google commit status will not change from this state. It's up to you to confirm consent of the commit author(s) and merge this pull request when appropriate.

1 similar comment
@googlebot
Copy link

So there's good news and bad news.

👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there.

😕 The bad news is that it appears that one or more commits were authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request.

Note to project maintainer: This is a terminal state, meaning the cla/google commit status will not change from this state. It's up to you to confirm consent of the commit author(s) and merge this pull request when appropriate.

@markmandel
Copy link
Member

This looks cool!!!

I'll do a proper review after GDC this week. In the meantime, would be great to get this rebased down to a single commit (or you can do it post review, up to you)

@fooock
Copy link
Contributor Author

fooock commented Mar 22, 2018

@markmandel fixed to a single commit

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: a5fffbde-91ba-4a0c-8c93-8b9e147a3a59

The following development artifacts have been built, and will exist for the next 30 days:

@agadelshin
Copy link

agadelshin commented Mar 26, 2018

@markmandel could you please setup integration with Travis CI or smth? Next step for Helm integration is create chart repository (I believe we can use github pages to publish charts or google cloud storage) and automate building process using CI.

@fooock what do you think?

Copy link
Member

@markmandel markmandel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm really excited for this - looks great. I've yet to run it, but put down my initial thoughts on some feedback.

Question as well - so we're on the same page, what's the scope of this PR? I noticed there hasn't been any change to the root README.md and the build tooling also hasn't been adjusted, but the install.yaml has been removed from the root directory.

All this is fine, but it would be good to have a design on how this will roll out. Maybe in #101 or explicit description in the PR + Commit. WDYT?

RUN curl -L ${HELM_URL} > /tmp/helm.tar.gz \
&& tar -zxvf /tmp/helm.tar.gz -C /tmp \
&& mv /tmp/linux-amd64/helm /usr/local/bin/helm \
&& chmod go+rx /usr/local/bin/helm
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor thing - would be nice to delete the downloaded files after moving the helm - just to keep the build image layers nice and clean.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 I'll fix it

@@ -0,0 +1,20 @@
apiVersion: v1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Curious - what's the canonical directory naming here - chart or install?

Looks like Istio uses install. Was trying to find some more examples, but couldn't find anything else also working with helm in a monorepo.


- Kubernetes 1.9+
- Role-based access controls (RBAC) activated
- MutatingAdmissionWebhook admission controller activated, see [recommendation](https://kubernetes.io/docs/admin/admission-controllers/#is-there-a-recommended-set-of-admission-controllers-to-use)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would Helm be a prerequisite now as well?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

only for the Chart usage yes !

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we planning on having another install option other than the Helm chart? (I didn't think so, but wanted to check)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@markmandel I will add more content in the prerequisite section.

Maybe another install option can be Terraform. It has a Kubernetes provider and support installation, upgrade and rollback operations. Another thing, Terraform doesn't install anything inside Kubernetes, whereas Helm need to install Tiller. WDYT?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not so sure about Terraform, but I would definitively add a line for helm prerequisites

To install the chart with the release name `my-release`:

```bash
$ helm install --name my-release agones
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What directory does this command need to be run from? Do I need to run it from within install ?
(I haven't tried it yet, but it would be good to be explicit)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The helm install command need to be run from install/ directory:

cd install/
helm install --name my-release agones

I will submit a patch to indicate it


## Configuration

The following tables lists the configurable parameters of the MySQL chart and their default values.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is so cool! 👍

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MySQL chart though my bad :/

@@ -0,0 +1,113 @@
apiVersion: apiextensions.k8s.io/v1beta1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we're going to be making several more CRDs, shall we call this gameserver.yaml or maybe gameserver.yaml in a crds directory? WDYT?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's a good idea.

@@ -0,0 +1,72 @@
apiVersion: v1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we do subdirectories - have a serviceaccounts folder rather than prefixes?

I just feel like that would be more scalable as we get more code. WDYT?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure thing

@@ -0,0 +1,29 @@
# Default values for agones.
# This is a YAML-formatted file.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this comment redundant? 😆 since it is a yaml file 😄

@fooock
Copy link
Contributor Author

fooock commented Mar 27, 2018

I will rebase down to a single commit when the review is finished

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 72768ff4-2fb7-471a-9949-05a33eab9bbf

The following development artifacts have been built, and will exist for the next 30 days:

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 347fbb76-76fd-4b11-b163-3b9fabea48b6

The following development artifacts have been built, and will exist for the next 30 days:

@cyriltovena cyriltovena mentioned this pull request Mar 27, 2018
@cyriltovena
Copy link
Collaborator

Can we also update the page docs/installing_agones.md:

  • to change the link of the install.yaml
  • add a small section about helm
  • link install/agones/ if users wants more details.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 7c7a484c-86f9-4186-947d-204100878d01

The following development artifacts have been built, and will exist for the next 30 days:

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: bd98c231-d751-424c-b990-93e8c32d2a60

The following development artifacts have been built, and will exist for the next 30 days:

Copy link
Member

@markmandel markmandel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Took this for a spin, found some more feedback, and got an error - details in the next comment.

Another small thins - when installing, I saw the following at the bottom:

==> MISSING
KIND       NAME
secrets    agones-controller-secret
secrets    agones-sdk-secret

Any idea what is causing that?

@@ -17,6 +17,8 @@ In this quickstart, we will create a Kubernetes cluster, and populate it with th
1. [Starting Minikube](#starting-minikube)
1. [Enabling creation of RBAC resources](#enabling-creation-of-rbac-resources)
1. [Installing Agones](#installing-agones)
1. [Install with file](#install-with-file)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Install with yaml" ? rather than "file" - feels a bit weird?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, I will change it

Finally, we install Agones to the cluster.
This will install Agones in your cluster.

## Install with file
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Install with YAML" ?


This chart install the Agones application and defines deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.

## Prerequisites
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This feel redundant - should we not just move the Helm dependency as "optional" in the install document? Also it means that the copy paste could be wrong.

Also, we should be explicit in what version(s) we are supporting.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It makes sense to me. The document installing_agones.md points to this file if the user wants to install Agones using Helm.

You're right about the supported version. Currently I am doing this functionality using version 2.8.2 on the client and server. I will put this version in the document, but it would be good to try other versions, wdyt?


To begin working with Helm, run the command:
```bash
$ helm init
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this the command to install helm?

I feel like this should be something more like:

If you don't have Helm installed locally, or Tiller installed in your Kubernetes cluster, read the Using Helm documentation to get started.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this command initialize Helm cli and install Tiller on the cluster, but you're right, I will change it

@@ -0,0 +1,20 @@
apiVersion: v1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the directory have to be /install/agones or could it be /install/chart ? (Not sure if helm needs it to be "agones" so we can do helm install agones)

/install/agones/ feels kinda redundant to me, and doesn't actually explain what is contained within.

Since we have 2 install paths (yaml and chart), should it be /install/yaml' (with the install.yaml in it) and '/install/chart ?

Alternative option: rather than /install/chart /install/helm` - that's also quite explicit.

WDYT?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we want to execute the command helm install agones, the Chart.yaml file needs to live in the agones directory. In this case this folder is in install/.

I feel you're right, install/agones sound redundant, and doesn't explain what is contained in.

For me is a good idea to create 2 paths:

  • For the yaml file: install/yaml, and move the install.yaml file to it
  • For the chart: For me is a good idea name it install/helm, and put inside it the README.md that actually is inside the Agones folder. The result can be:
agones/
├── install/
│   ├── yaml/
|   |   ├── install.yaml
|   ├── helm
|   |   ├── README.md
|   |   ├── agones/
|   |   |   ├── Chart.yaml
|   |   |   ├── values.yaml
|   |   |   ├── ...

Using this directory structure, to install Agones:

$ cd install/helm
$ helm install agones

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this a lot. SGTM! 👍

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like it too

$ helm install --name my-release -f values.yaml agones
```

> **Tip**: You can use the default [values.yaml](values.yaml)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At the end of the documentation, should we redirect them back to the "## Confirming Agones started successfully" section of docs/installing_agones.md ? otherwise they may not catch the "what to do next" section? WDYT?

$ helm init
```

To install the chart with the release name `my-release`:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need a section on updating releases? Or not for this PR?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there is enough work on this PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SGTM

&& mv /tmp/linux-amd64/helm /usr/local/bin/helm \
&& chmod go+rx /usr/local/bin/helm \
&& rm /tmp/helm.tar.gz && rm -rf /tmp/linux-amd64

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should add helm completion to the shell:

RUN echo "source <(helm completion bash)" >> /root/.bashrc

@@ -17,6 +17,8 @@ In this quickstart, we will create a Kubernetes cluster, and populate it with th
1. [Starting Minikube](#starting-minikube)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thought: should docs/installing_agones.md be the README.md in /install ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i don't think it's good idea move this file to install directory. With the new directory structure proposed above, it would not be necessary, but is my opinion, open to changes

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My thought is that (a) it would be contextual - i.e. the install folder has a README, and the content for the README, would be the contents of docs/intaling_agones.md

It will also (b) make release a tad cleaned - we can zip up the install dir and it has the docs, and the yaml and the chart and we are good to go for both pathways.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also think it's a good idea, though it would required to update the docs/intaling_agones.md to fit it new destination. Should we create a new issue for it ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this - let's create a separate issue for this, and track it in a seperate PR 😄 follow my own advice for smaller PRs

@@ -0,0 +1,20 @@
apiVersion: v1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the make do-release will need to be changed so that it zips up the install dir and grabs both the install.yaml and the helm chart.

@markmandel
Copy link
Member

So took this for a spin, and my GameServer couldn't transition from Started to Ready. Looking at the logs for the sdk sidecar, I see the following:

{
    "error": "could not retrieve GameServer default/cpp-simple-hlqhp: gameservers.stable.agones.dev \"cpp-simple-hlqhp\" is forbidden: User \"system:serviceaccount:default:agones-sdk\" cannot get gameservers.stable.agones.dev in the namespace \"default\"",
    "level": "error",
    "msg": "",
    "obj": "RequestReady",
    "queue": "stable.agones.dev.default.cpp-simple-hlqhp",
    "source": "*gameservers.SDKServer",
    "time": "2018-03-29T01:40:48Z"
}
{
    "level": "error",
    "msg": "could not retrieve GameServer default/cpp-simple-hlqhp: gameservers.stable.agones.dev \"cpp-simple-hlqhp\" is forbidden: User \"system:serviceaccount:default:agones-sdk\" cannot get gameservers.stable.agones.dev in the namespace \"default\"",
    "stack": [
        "agones.dev/agones/pkg/gameservers.(*SDKServer).updateState\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:166",
        "agones.dev/agones/pkg/gameservers.NewSDKServer.func3\n\t/go/src/agones.dev/agones/pkg/gameservers/sdkserver.go:119",
        "agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).processNextWorkItem\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:97",
        "agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).runWorker\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:73",
        "agones.dev/agones/pkg/util/workerqueue.(*WorkerQueue).(agones.dev/agones/pkg/util/workerqueue.runWorker)-fm\n\t/go/src/agones.dev/agones/pkg/util/workerqueue/workerqueue.go:115",
        "agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133",
        "agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134",
        "agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/go/src/agones.dev/agones/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88",
        "runtime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:2337"
    ],
    "time": "2018-03-29T01:40:48Z"
}

Looks like there is a RBAC misconfiguration somewhere.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: c8c47279-9f22-49fc-b005-ea2379556bc5

The following development artifacts have been built, and will exist for the next 30 days:

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 4d9e177f-2635-44b9-a0ad-a6a769f5449c

The following development artifacts have been built, and will exist for the next 30 days:

@fooock
Copy link
Contributor Author

fooock commented Mar 30, 2018

Scope of this PR

Add the ability to install Agones using the Helm package manager. For it, is necessary to maintain installation compatibility also through yaml, which is the currently supported mode.

It would be a good option to keep the two forms of installation, since not everything people uses Helm, apart from the fact that the use of Helm adds a series of prerequisites to the installation of Agones (like install Tiller in the cluster). Also keep in mind that maintaining two versions can be a nightmare and potentially prone to errors.

Why we need this?

The install.yaml file is big, supports multiple configurations and It can grow over time. It would be interesting to be able to extract variables like names of services, namespace, port range etc. It is also interesting to be able to divide the install.yaml file into multiple parts, so that its edition is more simple.

Pros of using Helm

  • Template system that will do variable substitution
  • Template system that does includes. We can make folders for serviceaccounts, crds...
  • Support plugin development
  • Manage install, updates, upgrade and test operations
  • Manage dependencies through requirements.yaml
  • Chart versioning
  • Hooks

Cons of using Helm

  • Need to install the Helm tools
  • Need to install Tiller in the cluster
  • Keep two versions in sync can be a pain and potentially prone to error
  • Maintain support for old Helm versions
  • More?

Things to consider

Apart from completing the documentation, we need to complete a series of requirements to complete this functionality. Before ship this we need to verify it (missing things?).

Build tools

We need to modify the CI system to be able to

  • Create a chart
  • Package the chart
  • Lint the chart to help find issues
  • Upload the chart to a repo

For this process, we can make a Helm plugin (WDYT?). Also, we need to modify the make do-release task, to zips up the install dir and grabs both the install.yaml and the helm chart.

Testing Helm charts

It would be necessary to carry out a series of e2e tests to verify that the changes do not affect the performance of Agones when installed using Helm. An idea for this process would be to create a Vagrantfile that installs minikube and Helm, and perform a series of checks such as:

  • GameServer status is Ready
  • Install simple-udp program and expect the ACK response usign nc
  • Chart tests
  • More?

Add char to repository

It has been talked about in issue #153. At first, a good option would be to use Kubernetes charts repo, since It is the site that is normally used. To be able to upload the chart to this repository we must meet a series of technical requirements indicated in the following url:

Conclusion

When this functionality is finished, the user will be able to install Agones in two different ways

  • YAML file
  • Helm

We provide a complete documentation of installing Agones with any of the two available methods. We will have an automatic e2e test system. The continuous integration system will be able to package the necessary files to be able to install Agones in any of the two ways, and have the same behavior. We will have a repository to upload the chart(s).

Surely I forget something, opinions?

@markmandel
Copy link
Member

So this feels like a lot of work for one PR - I think this is great scope for ALL of the packaging, but can we break this out into several PRs to be easier to test, integrate, review and work on in parallel?

(I have thoughts on a few of the design above - and maybe that should be moved into #101 as the overarching ticket for all the PRs), but here is a breakdown of separate PR work that I think would make sense, rather than trying do it all in one go. Happily take opinions.

  1. Create a helm chart that can be installed and used on a cluster, with documentation
  2. Migrate the build/ tooling to use Helm rather than sed templating
  3. Write some form of make helm-test target (implementation details to be discussed)
  4. Discuss chart repository options and potentially implement (depending on if we decide we need one at this stage - I don't think we should be pushing this to the k8s repo until we are 1.0, but we should discuss)
  5. Update release process to include the above.

WDYT? Smaller pieces of work makes things easier.

Mark

@cyriltovena
Copy link
Collaborator

I'm all in for smaller pieces.

@markmandel
Copy link
Member

If it makes organisation easier, feel free to create a Task List on #101 (Yaml Packaging) to help track each of the things that needs doing.

I've done that over on #70 (Fleets) for exactly the same thing - so I can break down a full feature into multiple PRs.

@fooock
Copy link
Contributor Author

fooock commented Apr 3, 2018

@markmandel perfect, really good idea, divide and conquer. I will submit a comment to issue #101 with a task list

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: d3dfa054-ff56-47e7-9759-d60e1c1bd973

The following development artifacts have been built, and will exist for the next 30 days:

@fooock fooock mentioned this pull request Apr 3, 2018
@markmandel markmandel added area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. area/user-experience Pertaining to developers trying to use Agones, e.g. SDK, installation, etc and removed area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. labels Apr 4, 2018
@markmandel markmandel added this to the 0.2 milestone Apr 4, 2018
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 646bf13a-d43c-46f8-a53b-697dc14943af

The following development artifacts have been built, and will exist for the next 30 days:

Copy link
Member

@markmandel markmandel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still see this section when I install:

==> MISSING
KIND       NAME
secrets    agones-controller-secret
secrets    agones-sdk-secret

Should I be concerned?

Full installation output:
root@markmandel2:/go/src/agones.dev/agones/install/helm# helm install --name agones ./agones/
NAME:   agones
LAST DEPLOYED: Fri Apr  6 17:21:07 2018
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1beta1/CustomResourceDefinition
NAME                           AGE
gameservers.stable.agones.dev  0s

==> v1/ClusterRole
agones-controller  0s
agones-sdk         0s

==> v1/ClusterRoleBinding
NAME                      AGE
agones-controller-access  0s
agones-sdk-access         0s

==> v1/Service
NAME                       TYPE       CLUSTER-IP     EXTERNAL-IP  PORT(S)  AGE
agones-controller-service  ClusterIP  10.110.29.227  <none>       443/TCP  0s

==> v1/Namespace
NAME           STATUS  AGE
agones-system  Active  0s

==> v1beta1/Deployment
NAME               DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
agones-controller  1        1        1           0          0s

==> v1beta1/MutatingWebhookConfiguration
NAME                     AGE
agones-mutation-webhook  0s

==> v1/Pod(related)
NAME                                READY  STATUS             RESTARTS  AGE
agones-controller-6675c6b57d-fh8wz  0/1    ContainerCreating  0         0s

==> v1/ServiceAccount
NAME               SECRETS  AGE
agones-controller  2        0s
agones-sdk         2        0s

==> MISSING
KIND       NAME
secrets    agones-controller-secret
secrets    agones-sdk-secret

And I'm still hitting the same issue as I had previously unfortunately.

@@ -0,0 +1,80 @@
# Install Agones using Helm
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost a meta question: Do we want a standard header when we write documentation for features that are only currently available in development (which would then be removed when its time for release)? Or do we not care while we are pre-1.0? @Kuqd @enocom @dzlier-gcp WDYT?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like appending an UNRELEASED or DEV ONLY in parentheses?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(ONLY AVAILABLE IN THE DEVELOPMENT BRANCH)

Or whatever. I don't actually mind what it is.


## Confirm Agones is running

To confirm Agones is up and running, [go to the next section](../../docs/installing_agones#confirming-agones-started-successfully)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! 👍

To install the chart with the release name `my-release`:

```bash
$ cd install/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be cd instal/helm - since we moved things.

@@ -42,6 +42,16 @@ ENV PATH /usr/local/go/bin:/go/bin:/opt/google-cloud-sdk/bin:$PATH
RUN gcloud components update && gcloud components install kubectl
RUN echo "source <(kubectl completion bash)" >> /root/.bashrc

# install Helm package manager
ENV HELM_VER 2.8.0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be updated to 2.8.2

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -0,0 +1,29 @@
apiVersion: admissionregistration.k8s.io/v1beta1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, we don't right now. I lie - we can do this when we integrate into the build tooling.

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 827f3161-0622-4fbc-bdd1-ee542d7e1163

The following development artifacts have been built, and will exist for the next 30 days:

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 914ce56a-b3c4-4f68-ae89-4275eefa84b5

The following development artifacts have been built, and will exist for the next 30 days:

Now you can deploy agones using
```bash
helm install --name my-release agones
```
Note that the build-image Dockerfile was
modified to download Helm and add it to the path

For more info see the documentation located
at `install/helm/README.md`
@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 3acb8527-01ec-47df-a9dc-a469532eaaca

The following development artifacts have been built, and will exist for the next 30 days:

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 91f99f29-d9a5-46e6-b82c-ab4e7124e082

The following development artifacts have been built, and will exist for the next 30 days:

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: f906c34a-d7b9-4907-8bd7-641a3998e518

The following development artifacts have been built, and will exist for the next 30 days:

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: 758323fe-ca4b-43b8-bcea-d25b310aa242

The following development artifacts have been built, and will exist for the next 30 days:

Copy link
Member

@markmandel markmandel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@agones-bot
Copy link
Collaborator

Build Succeeded 👏

Build Id: cabefac0-4e4d-4e55-a19d-394db4e21c22

The following development artifacts have been built, and will exist for the next 30 days:

@markmandel markmandel merged commit b2c5d58 into googleforgames:master Apr 6, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/user-experience Pertaining to developers trying to use Agones, e.g. SDK, installation, etc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants