From 7e8681c76f5b4537d90264dad3ee8998e046d0b1 Mon Sep 17 00:00:00 2001 From: Steve Wilkerson Date: Tue, 24 Jan 2017 15:37:52 -0600 Subject: [PATCH 01/11] Add templates for pull requests and issues To establish standards for working on the project going forward, this pull request adds basic templates for both pull requests and reported issues for openstack-helm. These templates will enable automatic labelling and reporting at a later time --- .github/ISSUE_TEMPLATE.md | 33 ++++++++++++++++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 14 ++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..86ccad97 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,33 @@ + + +**Is this a bug report or feature request?** (choose one): + + + +**Kubernetes Version** (output of `kubectl version`): + +**Helm Client and Tiller Versions** (output of `helm version`): + +**Development or Deployment Environment?**: + +**Release Tag or Master**: + +**Expected Behavior**: + +**What Actually Happened**: + +**How to Reproduce the Issue** (as minimally as possible): + +**Any Additional Comments**: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..b1395ce0 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,14 @@ + + +**What is the purpose of this pull request?**: + +**What issue does this pull request address?**: Fixes # + +**Notes for reviewers to consider**: + +**Specific reviewers for pull request**: From 0eeb1fbf9cd8893fea294c7ffbaec1be7aba6f1e Mon Sep 17 00:00:00 2001 From: root Date: Mon, 23 Jan 2017 21:33:56 +0000 Subject: [PATCH 02/11] Change the ceph images from the custom ATT to the ceph-docker upstream. It seems work. --- ceph/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ceph/values.yaml b/ceph/values.yaml index b88644a6..6dc5f18a 100644 --- a/ceph/values.yaml +++ b/ceph/values.yaml @@ -17,7 +17,7 @@ service: name: ceph-mon images: - daemon: quay.io/attcomdev/ceph-daemon:latest + daemon: ceph/daemon:latest pull_policy: IfNotPresent labels: From f4e3d82888f4eb31ec87190b04fda99804123477 Mon Sep 17 00:00:00 2001 From: "Brandon B. Jozsa" Date: Sun, 29 Jan 2017 13:43:10 -0500 Subject: [PATCH 03/11] make minikube tldr section easier to copy/paste (#151) * make minikube tldr section easier to copy/paste * adding additional label for ovs * small mods to dev and gs guides in docs --- docs/developer/minikube.md | 37 ++++++++++++++-------------- docs/installation/getting-started.md | 8 +++++- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/docs/developer/minikube.md b/docs/developer/minikube.md index 0e6ece18..7833ceb7 100644 --- a/docs/developer/minikube.md +++ b/docs/developer/minikube.md @@ -27,20 +27,19 @@ If your environment meets all of the prerequisites above, you can simply use the ``` # Clone the project: -$ git clone https://github.com/att-comdev/openstack-helm.git && cd openstack-helm +git clone https://github.com/att-comdev/openstack-helm.git && cd openstack-helm # Get a list of the current tags: -$ git tag -l -0.1.0 +git tag -l # Checkout the tag you want to work with (if desired, or use master for development): -$ git checkout 0.1.0 +git checkout 0.1.0 # Start a local Helm Server: -$ helm serve & +helm serve & # You may need to change these params for your environment. Look up use of --iso-url if needed: -$ minikube start \ +minikube start \ --network-plugin=cni \ --kubernetes-version v1.5.1 \ --disk-size 40g \ @@ -53,25 +52,25 @@ $ minikube start \ kubectl create -f http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/calico.yaml # Initialize Helm/Deploy Tiller: -$ helm init +helm init # Package the Openstack-Helm Charts, and push them to your local Helm repository: -$ make +make # Label the Minikube as an Openstack Control Plane node: -$ kubectl label nodes openstack-control-plane=enabled --all --namespace=openstack +kubectl label nodes openstack-control-plane=enabled --all --namespace=openstack # Deploy each chart: -$ helm install --name mariadb --set development.enabled=true local/mariadb --namespace=openstack -$ helm install --name=memcached local/memcached --namespace=openstack -$ helm install --name=rabbitmq local/rabbitmq --namespace=openstack -$ helm install --name=keystone local/keystone --namespace=openstack -$ helm install --name=cinder local/cinder --namespace=openstack -$ helm install --name=glance local/glance --namespace=openstack -$ helm install --name=heat local/heat --namespace=openstack -$ helm install --name=nova local/nova --namespace=openstack -$ helm install --name=neutron local/neutron --namespace=openstack -$ helm install --name=horizon local/horizon --namespace=openstack +helm install --name mariadb --set development.enabled=true local/mariadb --namespace=openstack +helm install --name=memcached local/memcached --namespace=openstack +helm install --name=rabbitmq local/rabbitmq --namespace=openstack +helm install --name=keystone local/keystone --namespace=openstack +helm install --name=cinder local/cinder --namespace=openstack +helm install --name=glance local/glance --namespace=openstack +helm install --name=heat local/heat --namespace=openstack +helm install --name=nova local/nova --namespace=openstack +helm install --name=neutron local/neutron --namespace=openstack +helm install --name=horizon local/horizon --namespace=openstack ``` # Getting Started diff --git a/docs/installation/getting-started.md b/docs/installation/getting-started.md index 230fad3e..7ee83f80 100644 --- a/docs/installation/getting-started.md +++ b/docs/installation/getting-started.md @@ -190,11 +190,17 @@ Please ensure that you have verified and completed the steps above to prevent is Although Ceph is mentioned throughout this guide, our deployment is flexible to allow you the option of bringing any type of persistent storage. Although most of these verification steps are the same, if not very similar, we will use Ceph as our example throughout this guide. ## Node Labels -First, we must label our nodes according to their role. Although we are labeling `all` nodes, you are free to label only the nodes you wish. You must have at least one, although a minimum of three are recommended. +First, we must label our nodes according to their role. Although we are labeling `all` nodes, you are free to label only the nodes you wish. You must have at least one, although a minimum of three are recommended. Nodes are labeled according to their Openstack roles: + +**Storage Nodes:** `ceph-storage` +**Control Plane:** `openstack-control-plane` +**Compute Nodes:** `openvswitch`, `openstack-compute-node` ``` admin@kubenode01:~$ kubectl label nodes openstack-control-plane=enabled --all admin@kubenode01:~$ kubectl label nodes ceph-storage=enabled --all +admin@kubenode01:~$ kubectl label nodes openvswitch=enabled --all +admin@kubenode01:~$ kubectl label nodes openstack-compute-node=enabled --all ``` ## Obtaining the Project From 0cf9463c8a31486d2b4a9cc447fcbff6a8b42747 Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Sun, 29 Jan 2017 12:46:52 -0600 Subject: [PATCH 04/11] Update ceph ansible with some changes for the upstream. (#155) 1. fix a container name 2. Fix mds networking parameters. 3. Make rgw not a host network container. --- ceph/templates/deployment-mds.yaml | 2 +- ceph/templates/deployment-moncheck.yaml | 6 +++--- ceph/templates/deployment-rgw.yaml | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ceph/templates/deployment-mds.yaml b/ceph/templates/deployment-mds.yaml index 0485c5e7..e2f71811 100644 --- a/ceph/templates/deployment-mds.yaml +++ b/ceph/templates/deployment-mds.yaml @@ -32,7 +32,7 @@ spec: secret: secretName: ceph-bootstrap-rgw-keyring containers: - - name: ceph-mon + - name: ceph-mds image: {{ .Values.images.daemon }} imagePullPolicy: {{ .Values.images.pull_policy }} ports: diff --git a/ceph/templates/deployment-moncheck.yaml b/ceph/templates/deployment-moncheck.yaml index 459074f0..d2d93333 100644 --- a/ceph/templates/deployment-moncheck.yaml +++ b/ceph/templates/deployment-moncheck.yaml @@ -42,8 +42,8 @@ spec: value: MON_HEALTH - name: KV_TYPE value: k8s - - name: NETWORK_AUTO_DETECT - value: "4" + - name: MON_IP_AUTO_DETECT + value: "1" - name: CLUSTER value: ceph volumeMounts: @@ -61,4 +61,4 @@ spec: cpu: {{ .Values.resources.mon_check.requests.cpu | quote }} limits: memory: {{ .Values.resources.mon_check.limits.memory | quote }} - cpu: {{ .Values.resources.mon_check.limits.cpu | quote }} \ No newline at end of file + cpu: {{ .Values.resources.mon_check.limits.cpu | quote }} diff --git a/ceph/templates/deployment-rgw.yaml b/ceph/templates/deployment-rgw.yaml index 57ba1c95..72069d43 100644 --- a/ceph/templates/deployment-rgw.yaml +++ b/ceph/templates/deployment-rgw.yaml @@ -16,7 +16,6 @@ spec: app: ceph daemon: rgw spec: - hostNetwork: true nodeSelector: {{ .Values.labels.node_selector_key }}: {{ .Values.labels.node_selector_value }} serviceAccount: default From d18f333bbf6da5862c98a446e7e8f84a67a206c8 Mon Sep 17 00:00:00 2001 From: Darla Date: Sun, 29 Jan 2017 13:27:36 -0600 Subject: [PATCH 05/11] Rename JoinListWithColon to JoinListWithComma --- cinder/templates/etc/_cinder.conf.tpl | 2 +- common/templates/_funcs.tpl | 2 +- common/templates/snippets/_k8s_init_dep_check.tpl | 6 +++--- neutron/templates/etc/_ml2-conf.ini.tpl | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cinder/templates/etc/_cinder.conf.tpl b/cinder/templates/etc/_cinder.conf.tpl index a576fe1f..1c8c1052 100644 --- a/cinder/templates/etc/_cinder.conf.tpl +++ b/cinder/templates/etc/_cinder.conf.tpl @@ -15,7 +15,7 @@ api_paste_config = /etc/cinder/api-paste.ini glance_api_servers = "{{ .Values.glance.proto }}://{{ .Values.glance.host }}:{{ .Values.glance.port }}" glance_api_version = {{ .Values.glance.version }} -enabled_backends = {{ include "joinListWithColon" .Values.backends.enabled }} +enabled_backends = {{ include "joinListWithComma" .Values.backends.enabled }} auth_strategy = keystone os_region_name = {{ .Values.keystone.cinder_region_name }} diff --git a/common/templates/_funcs.tpl b/common/templates/_funcs.tpl index fe6c9a67..d3a25177 100644 --- a/common/templates/_funcs.tpl +++ b/common/templates/_funcs.tpl @@ -1,4 +1,4 @@ -{{- define "joinListWithColon" -}} +{{- define "joinListWithComma" -}} {{ range $k, $v := . }}{{ if $k }},{{ end }}{{ $v }}{{ end }} {{- end -}} diff --git a/common/templates/snippets/_k8s_init_dep_check.tpl b/common/templates/snippets/_k8s_init_dep_check.tpl index d55e0bc6..4deb1b76 100644 --- a/common/templates/snippets/_k8s_init_dep_check.tpl +++ b/common/templates/snippets/_k8s_init_dep_check.tpl @@ -30,15 +30,15 @@ }, { "name": "DEPENDENCY_SERVICE", - "value": "{{ include "joinListWithColon" $deps.service }}" + "value": "{{ include "joinListWithComma" $deps.service }}" }, { "name": "DEPENDENCY_JOBS", - "value": "{{ include "joinListWithColon" $deps.jobs }}" + "value": "{{ include "joinListWithComma" $deps.jobs }}" }, { "name": "DEPENDENCY_DAEMONSET", - "value": "{{ include "joinListWithColon" $deps.daemonset }}" + "value": "{{ include "joinListWithComma" $deps.daemonset }}" }, { "name": "COMMAND", diff --git a/neutron/templates/etc/_ml2-conf.ini.tpl b/neutron/templates/etc/_ml2-conf.ini.tpl index 8a903a17..7219aa7f 100644 --- a/neutron/templates/etc/_ml2-conf.ini.tpl +++ b/neutron/templates/etc/_ml2-conf.ini.tpl @@ -1,11 +1,11 @@ [ml2] # Changing type_drivers after bootstrap can lead to database inconsistencies -type_drivers = {{ include "joinListWithColon" .Values.ml2.type_drivers }} +type_drivers = {{ include "joinListWithComma" .Values.ml2.type_drivers }} tenant_network_types = {{ .Values.ml2.tenant_network_types }} -mechanism_drivers = {{ include "joinListWithColon" .Values.ml2.mechanism_drivers }} +mechanism_drivers = {{ include "joinListWithComma" .Values.ml2.mechanism_drivers }} [ml2_type_flat] -flat_networks = {{ include "joinListWithColon" .Values.ml2.ml2_type_flat.flat_networks }} +flat_networks = {{ include "joinListWithComma" .Values.ml2.ml2_type_flat.flat_networks }} [ml2_type_gre] # (ListOpt) Comma-separated list of : tuples enumerating ranges @@ -35,7 +35,7 @@ arp_responder = false {{- end }} [ovs] -bridge_mappings = {{ include "joinListWithColon" .Values.ml2.ovs.bridge_mappings }} +bridge_mappings = {{ include "joinListWithComma" .Values.ml2.ovs.bridge_mappings }} tenant_network_type = {{ .Values.ml2.agent.tunnel_types }} [vxlan] From c0203624654d69731d97eaff44005777f2a39a8c Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Mon, 30 Jan 2017 10:14:09 -0600 Subject: [PATCH 06/11] Lock version down to a tagged version. --- ceph/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ceph/values.yaml b/ceph/values.yaml index 6dc5f18a..2b9a94ab 100644 --- a/ceph/values.yaml +++ b/ceph/values.yaml @@ -17,7 +17,7 @@ service: name: ceph-mon images: - daemon: ceph/daemon:latest + daemon: docker.io/library/ceph/daemon:tag-build-master-jewel-ubuntu-16.04 pull_policy: IfNotPresent labels: From 12001f52eb1c269aadecdb9e089708f370d71389 Mon Sep 17 00:00:00 2001 From: "Brandon B. Jozsa" Date: Mon, 30 Jan 2017 17:26:33 -0500 Subject: [PATCH 07/11] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8c8bcae0..43ed53a6 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ Join us on [freenode](https://freenode.net/): `#openstack-helm` +Community Meetings: [Every other Tuesday @ 3PM UTC](https://calendar.google.com/calendar/embed?src=rnd4tpeoncig91pvs05il4p29o%40group.calendar.google.com&ctz=America/New_York) (Provided by [Zoom](https://zoom.us/j/562328746)) + Openstack-Helm is a fully self-contained Helm-based OpenStack deployment on Kubernetes. It will provide baremetal provisioning, persistent storage, full-stack resiliency, full-stack scalability, performance monitoring and tracing, and an optional development pipeline (using Jenkins). This project, along with the tools used within are community-based and open sourced. # Mission From 5b67145c3d575b8ee2be1e9b2900270e2488adc1 Mon Sep 17 00:00:00 2001 From: "Brandon B. Jozsa" Date: Mon, 30 Jan 2017 17:57:36 -0500 Subject: [PATCH 08/11] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 43ed53a6..c239a5a5 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ # Openstack-Helm -Join us on [freenode](https://freenode.net/): `#openstack-helm` - -Community Meetings: [Every other Tuesday @ 3PM UTC](https://calendar.google.com/calendar/embed?src=rnd4tpeoncig91pvs05il4p29o%40group.calendar.google.com&ctz=America/New_York) (Provided by [Zoom](https://zoom.us/j/562328746)) +Join us on [Slack](http://slack.k8s.io/): `#openstack-helm`
+Join us on [freenode](https://freenode.net/): `#openstack-helm`
+Community Meetings: [Every other Tuesday @ 3PM UTC](https://calendar.google.com/calendar/embed?src=rnd4tpeoncig91pvs05il4p29o%40group.calendar.google.com&ctz=America/New_York) (Provided by [Zoom](https://zoom.us/j/562328746))
+Community Agenda Items: [Google Docs](https://docs.google.com/document/d/1Vm2OnMzjSru3cuvxh4Oa7R_z7staU-7ivGy8foOzDCs/edit#heading=h.bfc0dkav9gk2) Openstack-Helm is a fully self-contained Helm-based OpenStack deployment on Kubernetes. It will provide baremetal provisioning, persistent storage, full-stack resiliency, full-stack scalability, performance monitoring and tracing, and an optional development pipeline (using Jenkins). This project, along with the tools used within are community-based and open sourced. From fc5a3a7c3909fe7a219619cca34f844e79c37905 Mon Sep 17 00:00:00 2001 From: "Brandon B. Jozsa" Date: Mon, 30 Jan 2017 17:59:08 -0500 Subject: [PATCH 09/11] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c239a5a5..d6ec1e1b 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Openstack-Helm -Join us on [Slack](http://slack.k8s.io/): `#openstack-helm`
-Join us on [freenode](https://freenode.net/): `#openstack-helm`
-Community Meetings: [Every other Tuesday @ 3PM UTC](https://calendar.google.com/calendar/embed?src=rnd4tpeoncig91pvs05il4p29o%40group.calendar.google.com&ctz=America/New_York) (Provided by [Zoom](https://zoom.us/j/562328746))
-Community Agenda Items: [Google Docs](https://docs.google.com/document/d/1Vm2OnMzjSru3cuvxh4Oa7R_z7staU-7ivGy8foOzDCs/edit#heading=h.bfc0dkav9gk2) +*Join us on [Slack](http://slack.k8s.io/):* `#openstack-helm`
+*Join us on [Freenode](https://freenode.net/):* `#openstack-helm`
+*Community Meetings:* [Every other Tuesday @ 3PM UTC](https://calendar.google.com/calendar/embed?src=rnd4tpeoncig91pvs05il4p29o%40group.calendar.google.com&ctz=America/New_York) (Provided by [Zoom](https://zoom.us/j/562328746))
+*Community Agenda Items:* [Google Docs](https://docs.google.com/document/d/1Vm2OnMzjSru3cuvxh4Oa7R_z7staU-7ivGy8foOzDCs/edit#heading=h.bfc0dkav9gk2) Openstack-Helm is a fully self-contained Helm-based OpenStack deployment on Kubernetes. It will provide baremetal provisioning, persistent storage, full-stack resiliency, full-stack scalability, performance monitoring and tracing, and an optional development pipeline (using Jenkins). This project, along with the tools used within are community-based and open sourced. From 1e2967cfe12f14232cf105e84cdc415c5b511f53 Mon Sep 17 00:00:00 2001 From: "Brandon B. Jozsa" Date: Mon, 30 Jan 2017 17:59:58 -0500 Subject: [PATCH 10/11] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d6ec1e1b..6014cf59 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Openstack-Helm -*Join us on [Slack](http://slack.k8s.io/):* `#openstack-helm`
-*Join us on [Freenode](https://freenode.net/):* `#openstack-helm`
-*Community Meetings:* [Every other Tuesday @ 3PM UTC](https://calendar.google.com/calendar/embed?src=rnd4tpeoncig91pvs05il4p29o%40group.calendar.google.com&ctz=America/New_York) (Provided by [Zoom](https://zoom.us/j/562328746))
-*Community Agenda Items:* [Google Docs](https://docs.google.com/document/d/1Vm2OnMzjSru3cuvxh4Oa7R_z7staU-7ivGy8foOzDCs/edit#heading=h.bfc0dkav9gk2) +**Join us on [Slack](http://slack.k8s.io/):** `#openstack-helm`
+**Join us on [Freenode](https://freenode.net/):** `#openstack-helm`
+**Community Meetings:** [Every other Tuesday @ 3PM UTC](https://calendar.google.com/calendar/embed?src=rnd4tpeoncig91pvs05il4p29o%40group.calendar.google.com&ctz=America/New_York) (Provided by [Zoom](https://zoom.us/j/562328746))
+**Community Agenda Items:** [Google Docs](https://docs.google.com/document/d/1Vm2OnMzjSru3cuvxh4Oa7R_z7staU-7ivGy8foOzDCs/edit#heading=h.bfc0dkav9gk2) Openstack-Helm is a fully self-contained Helm-based OpenStack deployment on Kubernetes. It will provide baremetal provisioning, persistent storage, full-stack resiliency, full-stack scalability, performance monitoring and tracing, and an optional development pipeline (using Jenkins). This project, along with the tools used within are community-based and open sourced. From 43fee7bfed9db55d04c34e306378e6f2c7f8518d Mon Sep 17 00:00:00 2001 From: Greg Althaus Date: Mon, 30 Jan 2017 17:16:36 -0600 Subject: [PATCH 11/11] CEPH Mons autodetection doesn't work reliably across all (#156) We should use known parameters for the custer POD ips and the MON_IP to make MON IP discovery more consistent. --- ceph/templates/statefulset-mon.yaml | 10 ++++++++-- ceph/values.yaml | 1 + docs/installation/getting-started.md | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ceph/templates/statefulset-mon.yaml b/ceph/templates/statefulset-mon.yaml index d7971a72..265dafba 100644 --- a/ceph/templates/statefulset-mon.yaml +++ b/ceph/templates/statefulset-mon.yaml @@ -72,10 +72,16 @@ spec: value: MON - name: KV_TYPE value: k8s - - name: NETWORK_AUTO_DETECT - value: "4" - name: CLUSTER value: ceph + - name: NETWORK_AUTO_DETECT + value: "0" + - name: CEPH_PUBLIC_NETWORK + value: {{ .Values.network.public | quote }} + - name: MON_IP + valueFrom: + fieldRef: + fieldPath: status.podIP volumeMounts: - name: ceph-conf mountPath: /etc/ceph diff --git a/ceph/values.yaml b/ceph/values.yaml index 2b9a94ab..aa55e644 100644 --- a/ceph/values.yaml +++ b/ceph/values.yaml @@ -25,6 +25,7 @@ labels: node_selector_value: enabled network: + public: "10.25.0.0/16" port: mon: 6789 rgw_ingress: 80 diff --git a/docs/installation/getting-started.md b/docs/installation/getting-started.md index 7ee83f80..a0d26172 100644 --- a/docs/installation/getting-started.md +++ b/docs/installation/getting-started.md @@ -268,7 +268,7 @@ Please ensure that you use ``--purge`` whenever deleting a project. ## Ceph Installation and Verification Install the first service, which is Ceph. If all instructions have been followed as mentioned above, this installation should go smoothly. Use the following command to install Ceph: ``` -admin@kubenode01:~$ helm install --name=ceph local/ceph --namespace=ceph +admin@kubenode01:~$ helm install --set network.public=$osd_public_network --name=ceph local/ceph --namespace=ceph ``` ## Bootstrap Installation