Skip to content
This repository has been archived by the owner on Feb 22, 2022. It is now read-only.

SQL Server 2017 Linux HELM Chart #3246

Merged
merged 16 commits into from
Feb 2, 2018
Merged

SQL Server 2017 Linux HELM Chart #3246

merged 16 commits into from
Feb 2, 2018

Conversation

thomasliddledba
Copy link
Collaborator

Adding a SQL Server 2017 Linux HELM Chart to the incubator.

@k8s-ci-robot k8s-ci-robot added needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Jan 5, 2018
@thomasliddledba
Copy link
Collaborator Author

/assign @foxish

@thomasliddledba
Copy link
Collaborator Author

/approve

@thomasliddledba
Copy link
Collaborator Author

Note - I read through issues #1085 and #1733. I'm hoping for another review. With GA now for SQL Server 2017 on Linux, this charts Prerequisites to change the EULA value, and the charts default to Express, there would be another review and acceptance. I believe there is value in a chart for SQL Server 2017 for the community.

@thomasliddledba
Copy link
Collaborator Author

Any update on this PR?

@thomasliddledba thomasliddledba changed the title Create SQL Server 2017 Linux HELM Chart SQL Server 2017 Linux HELM Chart Jan 10, 2018
Copy link
Member

@foxish foxish left a comment

Choose a reason for hiding this comment

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

Some initial feedback.
/cc @lachie83

$ echo -n "<MyNewStrongSaPassword>"| base64
$ <base 64 output>
```
3. Copy the Base64 output in step 2 into the templates/secret.yaml in the `password` field
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
Collaborator Author

Choose a reason for hiding this comment

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

This was a great idea. I added this to the commit.

# HELM Chart for Microsoft SQL Server 2017 on Linux

## Prerequisites
* This chart requires Docker Engine 1.8+ in any of their supported platforms.
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 a bit atypical - why does it have a docker engine version dependency?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

There was a prerequisite in the SQL Server documentation for 1.8 or higher. I updated the README file with a link to the documentation.

```

## Values
The configuration parameters in this section control the resources requested and utilized by the ZooKeeper ensemble.
Copy link
Member

Choose a reason for hiding this comment

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

Zookeeper?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Fixed.

| type | Service Type | ClusterIP |
| externalPort | External Port | 1433 |
| internalPort | Internal Port | 1433 |
| livenessprobe | | |
Copy link
Member

Choose a reason for hiding this comment

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

Either liveness and readiness probes should be separate tables, or the parameters should be described as livenessprobe.initialDelaySeconds and so on.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Fixed. I put this in it's own table(s)

| periodSeconds | Field specifies that the kubelet should perform a liveness probe every XX second(s) | 10 |

## Resources
Typically don't recommend specifying default resources and to leave this as a conscious
Copy link
Member

Choose a reason for hiding this comment

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

Please rephrase this - if it's intended towards the user, it can be "You don't typically need to specify..."

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

fixed

lines, adjust them as necessary, and remove the curly braces after 'resources:'.

The defaults are set for local development purposes.
```yaml
Copy link
Member

Choose a reason for hiding this comment

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

Why not template this also?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Can you elaborate on what to put as a template? It's not clear on the comment. Thanks.

@k8s-ci-robot k8s-ci-robot requested a review from lachie83 January 11, 2018 13:38
@foxish
Copy link
Member

foxish commented Jan 11, 2018

/ok-to-test

@k8s-ci-robot k8s-ci-robot removed the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Jan 11, 2018
@thomasliddledba
Copy link
Collaborator Author

@lachie83 - I'm sure your busy but would you be able to review this PR for approval?

@@ -0,0 +1,49 @@
apiVersion: extensions/v1beta1
Copy link
Member

Choose a reason for hiding this comment

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

apps/v1beta2

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks for the review. Fixed

heritage: {{ .Release.Service }}
type: Opaque
data:
password: {{ randAlphaNum 15 | b64enc | quote }}
Copy link
Member

Choose a reason for hiding this comment

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

Please provide an option to explicitly set the password and only auto-generate it if not set.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks for the review. Added

chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
Copy link
Member

Choose a reason for hiding this comment

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

Add spec.selector.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks for the review. Fixed

@unguiculus unguiculus self-assigned this Jan 15, 2018
@thomasliddledba
Copy link
Collaborator Author

@unguiculus - Thanks for the review. The updates have been made.
@lachie83 - If your not too busy I would appreciate a review.

Thanks everyone!

@foxish foxish assigned lachie83 and unassigned foxish Jan 24, 2018
@thomasliddledba
Copy link
Collaborator Author

thomasliddledba commented Jan 24, 2018

@unguiculus & @lachie83 any chance for a review?

@thomasliddledba
Copy link
Collaborator Author

@foxish is there anything else I can provide you based on your last review?

Copy link
Member

@unguiculus unguiculus left a comment

Choose a reason for hiding this comment

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

A few more things. If you like you can directly move it to stable.

You can specify the resource limits for this chart in the values.yaml file.
Example:
```yaml
resources:
Copy link
Member

Choose a reason for hiding this comment

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

Fix indentation

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks. Fixed

name: {{ template "mssql.fullname" . }}-secret
key: sapassword
ports:
- containerPort: {{ .Values.service.internalPort }}
Copy link
Member

Choose a reason for hiding this comment

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

You should probably hard-code the port. Changing the port will break the chart. Give it a name and use that to reference it from service and probes.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks. Fixed

@@ -0,0 +1,29 @@
ACCEPT_EULA:
Copy link
Member

Choose a reason for hiding this comment

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

Values should be camel case and start with a lower case letter.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks. Fixed

# sapassword: "MyStrongPassword1234"
image:
repository: microsoft/mssql-server-linux
tag: latest
Copy link
Member

Choose a reason for hiding this comment

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

Use a release version.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks. Fixed

@thomasliddledba
Copy link
Collaborator Author

@unguiculus - Thanks for the review. I've corrected those fixes. Any other suggestions would be great. Thanks again.

@thomasliddledba
Copy link
Collaborator Author

/assign @lachie83

Copy link
Member

@unguiculus unguiculus left a comment

Choose a reason for hiding this comment

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

Looks pretty good. Just a few more things. I'd suggest you move it to stable before we merge it.

- port: 1433
targetPort: 1433
protocol: TCP
name: {{ .Values.service.name }}
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 not the service name, it's the port name. It probably doesn't make sense to make it configurable. I'd just hardcode it.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I went ahead and removed this all together.

name: {{ template "mssql.fullname" . }}-secret
key: sapassword
ports:
- containerPort: 1433
Copy link
Member

Choose a reason for hiding this comment

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

Give the port a name and reference it for configuring probes.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks. I've updated the port with a name and referenced it in the probes.

type: {{ .Values.service.type }}
ports:
- port: 1433
targetPort: 1433
Copy link
Member

Choose a reason for hiding this comment

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

Reference the target port via name (see above).

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Done. Thanks

@unguiculus
Copy link
Member

/ok-to-test

@thomasliddledba
Copy link
Collaborator Author

@unguiculus - Thanks again - also moved to stable.

@@ -15,8 +15,8 @@
## Installing the Chart
You can install the chart with the release name `mymssql` as below.
```console
$ helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
$ helm install --name mymssql incubator/mssql-linux --set acceptEula.value=Y --set edition.value=Developer
$ helm repo add stable https://kubernetes-charts.storage.googleapis.com/
Copy link
Member

Choose a reason for hiding this comment

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

No need to add the stable repo.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Fixed. Thanks

@unguiculus
Copy link
Member

/retest

@unguiculus
Copy link
Member

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Feb 2, 2018
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: thomasliddledba, unguiculus

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these OWNERS Files:

You can indicate your approval by writing /approve in a comment
You can cancel your approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 2, 2018
@k8s-ci-robot k8s-ci-robot merged commit 0c1830e into helm:master Feb 2, 2018
@thomasliddledba thomasliddledba deleted the mssqldevelop branch February 2, 2018 16:27
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm Indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants