Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account
Port forwarding is broken due to missing socat package #135
Comments
chuckbutler
changed the title from
Missing socat package on kubernetes-master
to
Port forwarding is broken due to missing socat package
Nov 17, 2016
gerred
commented
Nov 17, 2016
|
kubernetes-worker as well! It also looks like it breaks through the load balancer as well. I've temporarily exposed the master and am working with it directly, but I get an upgrade request. I've done a lot less looking into that one. |
chuckbutler
added a commit
to chuckbutler/kubernetes
that referenced
this issue
Nov 17, 2016
chuckbutler
referenced this issue
in juju-solutions/kubernetes
Nov 17, 2016
Merged
Add the 'socat' package to both worker and master #87
|
@gerred - i'm half tempted to sit down and write an haproxy config for the api-lb and drop that in place of nginx instead of fiddling with the nginx vhost further. In the interrim i did propose a branch that adds the socat package to both worker and master in a nieve attempt to resolve the issue above. We'll get this shipped in the next release of the charms. |
|
@chuckbutler I've got the start of an HAProxy layer that we could colab on |
|
Sounds good @marcoceppi. Let's spike on that next week (if you're agreeable) for a day and come up with a suitable haproxy based replacement/migration for the api-lb. I'm not happy with what's there now that we have empirical evidence of its failure scenario when being used with third party apps. |
|
Aside from the off-topic bits about the HAProxy layer replacing the nginx based API-LB, I think this is satisfactorily closed. Please re-open if this is not the case. I'll create an additional issue to track the LoadBalanceer issue. |
chuckbutler
closed this
Dec 12, 2016
|
Linked against #148 |
chuckbutler
added a commit
to chuckbutler/kubernetes
that referenced
this issue
Jan 23, 2017
Squash commit including full commit history
Update the series and the README to reflect the change. Adds Operational Actions to the Kubernetes layer - pause - will cordon and drain a node forcefully - resume - will uncordon a node - microbot - Deploys a set number of pods to illustrate the operational actions Fixed a grammatical error Adds actions descriptions to the README Updates the action descriptions for a crisper CLI output. THe longer descriptions were word-wrapping and didn't add much value to the text. Longer descriptions have been moved to the README. Automated testing shouldn't bootstrap Juju bootstrapping is an act of cost. This should be an explicit action by the tooling surrounding bundle-tester when testing a charm. Setting bootstrap:false will allow us to get faster feedback at lower cost when running the kubernetes charm under ci. Additionally doesn't reset so no communication attempt is made to the controller Additionally add tox to test dependency list Fixes messaging on the master unit Removes a stale state, and now reacts when kubedns is available as it should. Adds templates, layer and config for the kube-master These systemd templates assume that the kubernetes services will be installed locally, and teh defaults files will be run through jinja2 templating. First commit of kubernetes_master reactive code. Adding dns templates, and making code render them. Changing install method to prevent infinite loop. Actually call the install command for kubectl. Temporarily commenting out the tls bits. Fixing the services rendering. Adds relations and resources Adds `kubernetes` resource Adds etcd and http relations Docker is no longer installed on the master node, remove the dependency on startup Corrects the rendering of the defaults files Adding auth and token code. Fixing the random token generator to 32 chars. Removing the create dir from the reactive method. Changing the tokens that are generated. Tweaks to the service definitions and defaults Removes the TLS flags from the apiserver flags tweaks the dependencies on service files for the controller-manager and scheduler Make systemd templates closer aligned to upstream This refactors the systemd templates so they no longer block application startup and are closer aligned to the systemd templates found in the kubernetes contrib repo for the master componentry Adds sdn-plugin interface - I added the sdn-plugin interface, and tweaked the post-render to ensure we have reloaded our daemons, so systemd will quit complianing at us that we have changes since initial launch. Adds the master modifications Adds the worker layer Cleanup per @mbruzek's review comments patches for when resources are missing This normalizes the states so the charm behaves accordingly when no resources have been provided, and refactors the end-user messaging. Application Version and minor patches Adds the application version declarations and fixes some bad imports Weekend exploration Cleanup layers with FlagManager - Cleanup syncthing botched transfer - Refactor service/env templates to follow upstream templates - Adds FlagManager to the master layer Adds the kubeapi-load-balancer layer Removed kube-dns layer in favor of shipping as master addon service Adds DNS Addon Adds kubedns templates Adjusts apiserver defaults Adds flagmanager in charms.layer.kubernetes Tweaks to kubelet defaults Changes private-address on kube-dns relation to sdn_ip Adjusts kubeconfig path for kubelet Review Comments per @mbruzek Adjusted resource delivery to be the consitent across both kubernetes-master and kubernetes-worker Updated the dns template with {{ arch }} jinja declarations normalized kube-dns states, corrected FlagManager dosctring, added arch to dns_context rendering Renamed config.defaults to kube-defaults.defaults for clarity First run at adding tls client interface to master. Removing unused kube-api interface. Adds initial README to the worker tls-client integration Adds tls-client layer Configures kubelet for certificate authentication with the master renames ServerOpts to charms.kubernetes.flagmanager Adds kubeconfig abstraction, tls to kube-proxy Adds a guard to wait for at least a single worker before launching addons Adds kubernetes dashboard addon Also fixes a bug when interrogating for nodes Adds tls-client support to kubeapi-load-balancer Adding kubeconfig code and loadbalancer interface. Fixing typos found in state name. Patches to resolve the functionality for routing through the loadbalancer relation in the user credentials Adds owner/group to install of kubectl and config Adds port default to the loadbalancer Replace relative path with absolute path in chwon command Adding tls to master, worker, loadbalancer and fixing some proof errors. Adding comments per review comment. Adds systemctl.enable stanza to systemd units The services were started but will not survive unit interruption, reboots, etc. as the systemd services were not enabled on boot Refactor out function enable_services in favor of inline calls to subprocess. Adding kubeconfig to the worker, fixing actions and removing templates. Removing depreciated flag from templates. Flag --api-servers has been deprecated, Use --kubeconfig instead. Will be removed in a future version. Adds --require-kubeconfig flag to kubelet This directive tells kubelet how to contact the master apiserver node(s) during cluster turn up. This is required when not using the deprecated --apiservers flag to the kubelet binary DNS options were being added without flags This will cause errors during cluster turnup without having the --'s, they get rendered in teh manifest without their flags and instead are interpreted as arguments to other flags. Decorate the certificates logic to halt for tools This patch makes the master wait until the prerequisit tools are available before attempting to generate kubeconfig files Remove worker caching states and re-work the user messaging There are transient states during turn up that can be confusing to the end user. This branch attempts to clean up those scenarios with clear messaging to the user to set expectations. - kubelet is waiting on cluster dns - kubelet is not running - kubelet needs to negotiate running the dns container with the master Removes the caching `data_changed` stanza on the cluster certificates management Adds new tls-client states to guard against unwritten file race conditions during turnup. Standardizing status messages and removing the arch blocker. Early work on the ingress controller. Doesn't appear to delete when toggled, so ymmv WIP ingress controller work Corrected mistaken hookenv.log typos Delay until we have the dns relationship established This prevents the ingress controller from firing before we have established the runtime is stable enough to receive workloads. Refactor the kubectl run method body Make the logic clearer than previously defined. Add guards for pre-defined resources, and refactor the messaging so its clearer whats happening in the logs Remove the resource constraints on the 404 provider Add missing parameter for kube-dns interface Corrected reference to undefined variable in kubectl Move the expose declaration into the manifest, and provide default-http-backend as a service to establish endpoint routing out of the box when ingress is enabled Moves microbot action to the worker Adding the icon from the Canonical design team. Adding new icons from the Canonical design team. Adds restart master action to cycle the control plane components The first attempt at implementing the ceph-admin interface. Normalizing states to use layer name. Revert "The first attempt at implementing the ceph-admin interface." This reverts commit 61a7e97. Fix inotify leak by killing child processes Removing the KillMode line to default to control-group. Moving the sdn config to docker. Updating messages and logging for master and worker. Adds missing ceph.conf template, and updates render logic The render stanza before was encapsulated in another stream writer, was missing the target location, and had some extra error handling that seemed unneccesary Adds the Ceph-Admin relation and kubernetes pv creation using ceph-rbd This is a feature branch commit rollup of: - Adds the ceph-storage relation - Revert "The first attempt at implementing the ceph-admin interface." - Adds state boundaries for controlling ceph-storage - Adds debug statements, as well as a health check for ceph remove k8s node when unit is stopped refactor kubectl cli interface function Corrects linting errors and messaging grammar Updates the action-set with grammar fix Fixes an extended comment failing lint Corrects a lint error Fixes an extended comment that was failing lint scale ingress controller to the number of kubernetes-workers docstring for ingress scaling scale ingress replicas as needed every update docstrings Adding nfs-common to the layer.yaml for master and worker. Fixing lint errors in the worker. Normalizing the layer.yaml file to get nfs-common Removing nfs-common from master and load balancer, and addressing line lenght issues. Removing tests from the individual layers. The integration tests should be in the bundle, not the charms because they depend on relations to other charms. Adds ceph-common to the worker packages Ceph-Common is a required component to interact with ceph clusters. Adding this to the worker packages works in tandem with the create-rbd-pv action to enlist persistent volumes from a ceph-cluster supporting the ceph-admin interface. Corrects typos in metdata.yaml per https://github.com/kubernetes/kubernetes/pull/32874/files this change set carries that patch forward into the split of master and worker charms. Fix bugs in create-rbd-pv Validate name and size for create-rbd-pv action * name and size are required * add minLength and minimum to name and size * rename `options:` to `params:` so the validation is picked up rbd action size validation flake8 fixes decode bytestring Fix kube-dns clusterIP clean up variable name and comment Fix --cluster-dns arg for kubelet Remove the explicit SecurityContextDeny due to failures in e2e E2E attempts to use container-level SELinux policy maps during it's evaluation of the cluster, despite having that access control policy disabled in the apiserver. We will never pass E2e with this enabled. addresses: juju-solutions/bundle-canonical-kubernetes#106 Add heapster, grafana, influxdb Start kubelet with --cluster-dns before we deploy kube-dns flake8 cleanup Use templates from kubernetes repo, not heapster use correct node count, minor code cleanup clean up DNS stuff to reuse create_addon function remove unnecessary creation of kube-system namespace seems to already exist Use `kubectl apply` instead of `kubectl create` This allows us to "create" addons multiple times without failing. Rename "dashboard" config to "enable-dashboard-addons" Add enable-dashboard-addons to README Initial commit of e2e layer fix an error where the reset_states step runs during upgrade-charm Prevent a loop that occurs in the dashboard steps Adds description to the test action and skeleton readme Implementing review feedback run e2e tests in parallel e2e: temporarily add serial to skip e2e: oops Updates to the kubernetes-master README.md Addressing review comments, renaming restart action. Fixing comments from @Cynerva. e2e junit output e2e junit output minor changes Ammend the kubernetes-e2e kubeconfig placement with a chown stanza Ammended the missing variable declaration Adds logic to reset resource delivery states when upgrading the charm Ammend last commit with docstring and missing import Without snark...i guess. Updating the action, and templates to get current with k8s upstream. Adds a guard to only execute relationship events when we have a resource address issue 122 Fixes for the kubernetes-worker microbot action The action would fail randomly if not being explicit on the CLI when launching microbot replicas. Updates w/ consistent icon from the remainder of the suite e2e ginkgo resource flake8 Add support for node labels Remove addon states when upgrading the charm This will cause us to re-render addon templates and redo `kubectl apply`. With any luck, that should do the trick! move addons to addons folder and build script for updating addons Rewrite update-addons build script in python add description and argparse mimic "cp -v" output for copying addons, looks nicer docstring and naming cleanup Replace makefile with a charm build tactic rename addons tactic use empty placeholder templates to make the tactic work WTF Update addons before charmtools walks the templates folder combine update-addon scripts and tactic, implement tactic correctly Add docstrings to UpdateAddonsTactic Refactor the pathing on the tar archives Extracing junit files to 'home/ubuntu/foobar-junit/*.xml' was going to be painful in CI, as we would have to scrub every archive that comes from the e2e charm. This is an attempt to clean up that output pathing by dropping the home/ubuntu portion of the path. Removing the UUID portion of the path as well Fix a bug with the config.previous for labels on first run Add the 'socat' package to both worker and master This nievely resolves juju-solutions/bundle-canonical-kubernetes#135 Add layer-sos and a couple kubernetes SOS scripts Rename sos -> debug Add docker debug script Manually pass kubeconfig to kubectl instead of running as ubuntu Updates the test action to embed the start/end and version This adds time from epoch to both start/finished portions of the log, and parses the server version from kubectl output. Add debug scripts to kubernetes-master add kube-proxy service to kubernetes-worker debug scripts Remove docker debug script It belongs in layer-docker cni - wip hard-code CIDR add sdn ip back into cert stuff replace hostPort with hostNetwork for ingress reintroduce kube-dns to master reintroduce kube-dns to worker fix missing kube-dns in metadata.yaml files fix some old sdn states i missed, oops wait for cni available before starting kubelet clean up kubernetes-master uncomment sdn_changed function add container scope to kubernetes-cni relation add service-cidr charm config update cni.configured states update service-cidr description Remove loopback plugin from master Add missing docstrings add a warning message when service-cidr changes add pyc files to gitignore Update kubedns addon template names to match upstream Wait for DNS before deploying dashboard addons Fixing flake8 errors and using the new tactic signature. Adding default parameters to fix signature problems. Use verbose copy in kubernetes-master debug scripts Use verbose copy in kubernetes-worker debug scripts Fixes 173 Adjust the permissions on the path of the ubuntu .kube directory for caching purposes and other future-forward things kubernetes will do that we're not thinking about today. This path needs to be writable by the owner so it can create files, temporary or otherwise, using kubectl. Make UpdateAddonsTactic less verbose workaround for offline installs Turning off proxy buffering for issue #172.
chuckbutler
added a commit
to chuckbutler/kubernetes
that referenced
this issue
Jan 23, 2017
squash commit
Removing the Storage plugin from the list Update the series and the README to reflect the change. Adds Operational Actions to the Kubernetes layer - pause - will cordon and drain a node forcefully - resume - will uncordon a node - microbot - Deploys a set number of pods to illustrate the operational actions Fixed a grammatical error Adds actions descriptions to the README Updates the action descriptions for a crisper CLI output. THe longer descriptions were word-wrapping and didn't add much value to the text. Longer descriptions have been moved to the README. Automated testing shouldn't bootstrap Juju bootstrapping is an act of cost. This should be an explicit action by the tooling surrounding bundle-tester when testing a charm. Setting bootstrap:false will allow us to get faster feedback at lower cost when running the kubernetes charm under ci. Additionally doesn't reset so no communication attempt is made to the controller Additionally add tox to test dependency list Fixes messaging on the master unit Removes a stale state, and now reacts when kubedns is available as it should. Adds templates, layer and config for the kube-master These systemd templates assume that the kubernetes services will be installed locally, and teh defaults files will be run through jinja2 templating. First commit of kubernetes_master reactive code. Adding dns templates, and making code render them. Changing install method to prevent infinite loop. Actually call the install command for kubectl. Temporarily commenting out the tls bits. Fixing the services rendering. Adds relations and resources Adds `kubernetes` resource Adds etcd and http relations Docker is no longer installed on the master node, remove the dependency on startup Corrects the rendering of the defaults files Adding auth and token code. Fixing the random token generator to 32 chars. Removing the create dir from the reactive method. Changing the tokens that are generated. Tweaks to the service definitions and defaults Removes the TLS flags from the apiserver flags tweaks the dependencies on service files for the controller-manager and scheduler Make systemd templates closer aligned to upstream This refactors the systemd templates so they no longer block application startup and are closer aligned to the systemd templates found in the kubernetes contrib repo for the master componentry Adds sdn-plugin interface - I added the sdn-plugin interface, and tweaked the post-render to ensure we have reloaded our daemons, so systemd will quit complianing at us that we have changes since initial launch. Adds the master modifications Adds the worker layer Cleanup per @mbruzek's review comments patches for when resources are missing This normalizes the states so the charm behaves accordingly when no resources have been provided, and refactors the end-user messaging. Application Version and minor patches Adds the application version declarations and fixes some bad imports Weekend exploration Cleanup layers with FlagManager - Cleanup syncthing botched transfer - Refactor service/env templates to follow upstream templates - Adds FlagManager to the master layer Adds the kubeapi-load-balancer layer Removed kube-dns layer in favor of shipping as master addon service Adds DNS Addon Adds kubedns templates Adjusts apiserver defaults Adds flagmanager in charms.layer.kubernetes Tweaks to kubelet defaults Changes private-address on kube-dns relation to sdn_ip Adjusts kubeconfig path for kubelet Review Comments per @mbruzek Adjusted resource delivery to be the consitent across both kubernetes-master and kubernetes-worker Updated the dns template with {{ arch }} jinja declarations normalized kube-dns states, corrected FlagManager dosctring, added arch to dns_context rendering Renamed config.defaults to kube-defaults.defaults for clarity First run at adding tls client interface to master. Removing unused kube-api interface. Adds initial README to the worker tls-client integration Adds tls-client layer Configures kubelet for certificate authentication with the master renames ServerOpts to charms.kubernetes.flagmanager Adds kubeconfig abstraction, tls to kube-proxy Adds a guard to wait for at least a single worker before launching addons Adds kubernetes dashboard addon Also fixes a bug when interrogating for nodes Adds tls-client support to kubeapi-load-balancer Adding kubeconfig code and loadbalancer interface. Fixing typos found in state name. Patches to resolve the functionality for routing through the loadbalancer relation in the user credentials Adds owner/group to install of kubectl and config Adds port default to the loadbalancer Replace relative path with absolute path in chwon command Adding tls to master, worker, loadbalancer and fixing some proof errors. Adding comments per review comment. Adds systemctl.enable stanza to systemd units The services were started but will not survive unit interruption, reboots, etc. as the systemd services were not enabled on boot Refactor out function enable_services in favor of inline calls to subprocess. Adding kubeconfig to the worker, fixing actions and removing templates. Removing depreciated flag from templates. Flag --api-servers has been deprecated, Use --kubeconfig instead. Will be removed in a future version. Adds --require-kubeconfig flag to kubelet This directive tells kubelet how to contact the master apiserver node(s) during cluster turn up. This is required when not using the deprecated --apiservers flag to the kubelet binary DNS options were being added without flags This will cause errors during cluster turnup without having the --'s, they get rendered in teh manifest without their flags and instead are interpreted as arguments to other flags. Decorate the certificates logic to halt for tools This patch makes the master wait until the prerequisit tools are available before attempting to generate kubeconfig files Remove worker caching states and re-work the user messaging There are transient states during turn up that can be confusing to the end user. This branch attempts to clean up those scenarios with clear messaging to the user to set expectations. - kubelet is waiting on cluster dns - kubelet is not running - kubelet needs to negotiate running the dns container with the master Removes the caching `data_changed` stanza on the cluster certificates management Adds new tls-client states to guard against unwritten file race conditions during turnup. Standardizing status messages and removing the arch blocker. Early work on the ingress controller. Doesn't appear to delete when toggled, so ymmv WIP ingress controller work Corrected mistaken hookenv.log typos Delay until we have the dns relationship established This prevents the ingress controller from firing before we have established the runtime is stable enough to receive workloads. Refactor the kubectl run method body Make the logic clearer than previously defined. Add guards for pre-defined resources, and refactor the messaging so its clearer whats happening in the logs Remove the resource constraints on the 404 provider Add missing parameter for kube-dns interface Corrected reference to undefined variable in kubectl Move the expose declaration into the manifest, and provide default-http-backend as a service to establish endpoint routing out of the box when ingress is enabled Moves microbot action to the worker Adding the icon from the Canonical design team. Adding new icons from the Canonical design team. Adds restart master action to cycle the control plane components The first attempt at implementing the ceph-admin interface. Normalizing states to use layer name. Revert "The first attempt at implementing the ceph-admin interface." This reverts commit 61a7e97. Fix inotify leak by killing child processes Removing the KillMode line to default to control-group. Moving the sdn config to docker. Updating messages and logging for master and worker. Adds missing ceph.conf template, and updates render logic The render stanza before was encapsulated in another stream writer, was missing the target location, and had some extra error handling that seemed unneccesary Adds the Ceph-Admin relation and kubernetes pv creation using ceph-rbd This is a feature branch commit rollup of: - Adds the ceph-storage relation - Revert "The first attempt at implementing the ceph-admin interface." - Adds state boundaries for controlling ceph-storage - Adds debug statements, as well as a health check for ceph remove k8s node when unit is stopped refactor kubectl cli interface function Corrects linting errors and messaging grammar Updates the action-set with grammar fix Fixes an extended comment failing lint Corrects a lint error Fixes an extended comment that was failing lint scale ingress controller to the number of kubernetes-workers docstring for ingress scaling scale ingress replicas as needed every update docstrings Adding nfs-common to the layer.yaml for master and worker. Fixing lint errors in the worker. Normalizing the layer.yaml file to get nfs-common Removing nfs-common from master and load balancer, and addressing line lenght issues. Removing tests from the individual layers. The integration tests should be in the bundle, not the charms because they depend on relations to other charms. Adds ceph-common to the worker packages Ceph-Common is a required component to interact with ceph clusters. Adding this to the worker packages works in tandem with the create-rbd-pv action to enlist persistent volumes from a ceph-cluster supporting the ceph-admin interface. Corrects typos in metdata.yaml per https://github.com/kubernetes/kubernetes/pull/32874/files this change set carries that patch forward into the split of master and worker charms. Fix bugs in create-rbd-pv Validate name and size for create-rbd-pv action * name and size are required * add minLength and minimum to name and size * rename `options:` to `params:` so the validation is picked up rbd action size validation flake8 fixes decode bytestring Fix kube-dns clusterIP clean up variable name and comment Fix --cluster-dns arg for kubelet Remove the explicit SecurityContextDeny due to failures in e2e E2E attempts to use container-level SELinux policy maps during it's evaluation of the cluster, despite having that access control policy disabled in the apiserver. We will never pass E2e with this enabled. addresses: juju-solutions/bundle-canonical-kubernetes#106 Add heapster, grafana, influxdb Start kubelet with --cluster-dns before we deploy kube-dns flake8 cleanup Use templates from kubernetes repo, not heapster use correct node count, minor code cleanup clean up DNS stuff to reuse create_addon function remove unnecessary creation of kube-system namespace seems to already exist Use `kubectl apply` instead of `kubectl create` This allows us to "create" addons multiple times without failing. Rename "dashboard" config to "enable-dashboard-addons" Add enable-dashboard-addons to README Initial commit of e2e layer fix an error where the reset_states step runs during upgrade-charm Prevent a loop that occurs in the dashboard steps Adds description to the test action and skeleton readme Implementing review feedback run e2e tests in parallel e2e: temporarily add serial to skip e2e: oops Updates to the kubernetes-master README.md Addressing review comments, renaming restart action. Fixing comments from @Cynerva. e2e junit output e2e junit output minor changes Ammend the kubernetes-e2e kubeconfig placement with a chown stanza Ammended the missing variable declaration Adds logic to reset resource delivery states when upgrading the charm Ammend last commit with docstring and missing import Without snark...i guess. Updating the action, and templates to get current with k8s upstream. Adds a guard to only execute relationship events when we have a resource address issue 122 Fixes for the kubernetes-worker microbot action The action would fail randomly if not being explicit on the CLI when launching microbot replicas. Updates w/ consistent icon from the remainder of the suite e2e ginkgo resource flake8 Add support for node labels Remove addon states when upgrading the charm This will cause us to re-render addon templates and redo `kubectl apply`. With any luck, that should do the trick! move addons to addons folder and build script for updating addons Rewrite update-addons build script in python add description and argparse mimic "cp -v" output for copying addons, looks nicer docstring and naming cleanup Replace makefile with a charm build tactic rename addons tactic use empty placeholder templates to make the tactic work WTF Update addons before charmtools walks the templates folder combine update-addon scripts and tactic, implement tactic correctly Add docstrings to UpdateAddonsTactic Refactor the pathing on the tar archives Extracing junit files to 'home/ubuntu/foobar-junit/*.xml' was going to be painful in CI, as we would have to scrub every archive that comes from the e2e charm. This is an attempt to clean up that output pathing by dropping the home/ubuntu portion of the path. Removing the UUID portion of the path as well Fix a bug with the config.previous for labels on first run Add the 'socat' package to both worker and master This nievely resolves juju-solutions/bundle-canonical-kubernetes#135 Add layer-sos and a couple kubernetes SOS scripts Rename sos -> debug Add docker debug script Manually pass kubeconfig to kubectl instead of running as ubuntu Updates the test action to embed the start/end and version This adds time from epoch to both start/finished portions of the log, and parses the server version from kubectl output. Add debug scripts to kubernetes-master add kube-proxy service to kubernetes-worker debug scripts Remove docker debug script It belongs in layer-docker cni - wip hard-code CIDR add sdn ip back into cert stuff replace hostPort with hostNetwork for ingress reintroduce kube-dns to master reintroduce kube-dns to worker fix missing kube-dns in metadata.yaml files fix some old sdn states i missed, oops wait for cni available before starting kubelet clean up kubernetes-master uncomment sdn_changed function add container scope to kubernetes-cni relation add service-cidr charm config update cni.configured states update service-cidr description Remove loopback plugin from master Add missing docstrings add a warning message when service-cidr changes add pyc files to gitignore Update kubedns addon template names to match upstream Wait for DNS before deploying dashboard addons Fixing flake8 errors and using the new tactic signature. Adding default parameters to fix signature problems. Use verbose copy in kubernetes-master debug scripts Use verbose copy in kubernetes-worker debug scripts Fixes 173 Adjust the permissions on the path of the ubuntu .kube directory for caching purposes and other future-forward things kubernetes will do that we're not thinking about today. This path needs to be writable by the owner so it can create files, temporary or otherwise, using kubectl. Make UpdateAddonsTactic less verbose workaround for offline installs Turning off proxy buffering for issue #172.
chuckbutler
added a commit
to chuckbutler/kubernetes
that referenced
this issue
Jan 23, 2017
squash commit
Removing the Storage plugin from the list Update the series and the README to reflect the change. Adds Operational Actions to the Kubernetes layer - pause - will cordon and drain a node forcefully - resume - will uncordon a node - microbot - Deploys a set number of pods to illustrate the operational actions Fixed a grammatical error Adds actions descriptions to the README Updates the action descriptions for a crisper CLI output. THe longer descriptions were word-wrapping and didn't add much value to the text. Longer descriptions have been moved to the README. Automated testing shouldn't bootstrap Juju bootstrapping is an act of cost. This should be an explicit action by the tooling surrounding bundle-tester when testing a charm. Setting bootstrap:false will allow us to get faster feedback at lower cost when running the kubernetes charm under ci. Additionally doesn't reset so no communication attempt is made to the controller Additionally add tox to test dependency list Fixes messaging on the master unit Removes a stale state, and now reacts when kubedns is available as it should. Adds templates, layer and config for the kube-master These systemd templates assume that the kubernetes services will be installed locally, and teh defaults files will be run through jinja2 templating. First commit of kubernetes_master reactive code. Adding dns templates, and making code render them. Changing install method to prevent infinite loop. Actually call the install command for kubectl. Temporarily commenting out the tls bits. Fixing the services rendering. Adds relations and resources Adds `kubernetes` resource Adds etcd and http relations Docker is no longer installed on the master node, remove the dependency on startup Corrects the rendering of the defaults files Adding auth and token code. Fixing the random token generator to 32 chars. Removing the create dir from the reactive method. Changing the tokens that are generated. Tweaks to the service definitions and defaults Removes the TLS flags from the apiserver flags tweaks the dependencies on service files for the controller-manager and scheduler Make systemd templates closer aligned to upstream This refactors the systemd templates so they no longer block application startup and are closer aligned to the systemd templates found in the kubernetes contrib repo for the master componentry Adds sdn-plugin interface - I added the sdn-plugin interface, and tweaked the post-render to ensure we have reloaded our daemons, so systemd will quit complianing at us that we have changes since initial launch. Adds the master modifications Adds the worker layer Cleanup per @mbruzek's review comments patches for when resources are missing This normalizes the states so the charm behaves accordingly when no resources have been provided, and refactors the end-user messaging. Application Version and minor patches Adds the application version declarations and fixes some bad imports Weekend exploration Cleanup layers with FlagManager - Cleanup syncthing botched transfer - Refactor service/env templates to follow upstream templates - Adds FlagManager to the master layer Adds the kubeapi-load-balancer layer Removed kube-dns layer in favor of shipping as master addon service Adds DNS Addon Adds kubedns templates Adjusts apiserver defaults Adds flagmanager in charms.layer.kubernetes Tweaks to kubelet defaults Changes private-address on kube-dns relation to sdn_ip Adjusts kubeconfig path for kubelet Review Comments per @mbruzek Adjusted resource delivery to be the consitent across both kubernetes-master and kubernetes-worker Updated the dns template with {{ arch }} jinja declarations normalized kube-dns states, corrected FlagManager dosctring, added arch to dns_context rendering Renamed config.defaults to kube-defaults.defaults for clarity First run at adding tls client interface to master. Removing unused kube-api interface. Adds initial README to the worker tls-client integration Adds tls-client layer Configures kubelet for certificate authentication with the master renames ServerOpts to charms.kubernetes.flagmanager Adds kubeconfig abstraction, tls to kube-proxy Adds a guard to wait for at least a single worker before launching addons Adds kubernetes dashboard addon Also fixes a bug when interrogating for nodes Adds tls-client support to kubeapi-load-balancer Adding kubeconfig code and loadbalancer interface. Fixing typos found in state name. Patches to resolve the functionality for routing through the loadbalancer relation in the user credentials Adds owner/group to install of kubectl and config Adds port default to the loadbalancer Replace relative path with absolute path in chwon command Adding tls to master, worker, loadbalancer and fixing some proof errors. Adding comments per review comment. Adds systemctl.enable stanza to systemd units The services were started but will not survive unit interruption, reboots, etc. as the systemd services were not enabled on boot Refactor out function enable_services in favor of inline calls to subprocess. Adding kubeconfig to the worker, fixing actions and removing templates. Removing depreciated flag from templates. Flag --api-servers has been deprecated, Use --kubeconfig instead. Will be removed in a future version. Adds --require-kubeconfig flag to kubelet This directive tells kubelet how to contact the master apiserver node(s) during cluster turn up. This is required when not using the deprecated --apiservers flag to the kubelet binary DNS options were being added without flags This will cause errors during cluster turnup without having the --'s, they get rendered in teh manifest without their flags and instead are interpreted as arguments to other flags. Decorate the certificates logic to halt for tools This patch makes the master wait until the prerequisit tools are available before attempting to generate kubeconfig files Remove worker caching states and re-work the user messaging There are transient states during turn up that can be confusing to the end user. This branch attempts to clean up those scenarios with clear messaging to the user to set expectations. - kubelet is waiting on cluster dns - kubelet is not running - kubelet needs to negotiate running the dns container with the master Removes the caching `data_changed` stanza on the cluster certificates management Adds new tls-client states to guard against unwritten file race conditions during turnup. Standardizing status messages and removing the arch blocker. Early work on the ingress controller. Doesn't appear to delete when toggled, so ymmv WIP ingress controller work Corrected mistaken hookenv.log typos Delay until we have the dns relationship established This prevents the ingress controller from firing before we have established the runtime is stable enough to receive workloads. Refactor the kubectl run method body Make the logic clearer than previously defined. Add guards for pre-defined resources, and refactor the messaging so its clearer whats happening in the logs Remove the resource constraints on the 404 provider Add missing parameter for kube-dns interface Corrected reference to undefined variable in kubectl Move the expose declaration into the manifest, and provide default-http-backend as a service to establish endpoint routing out of the box when ingress is enabled Moves microbot action to the worker Adding the icon from the Canonical design team. Adding new icons from the Canonical design team. Adds restart master action to cycle the control plane components The first attempt at implementing the ceph-admin interface. Normalizing states to use layer name. Revert "The first attempt at implementing the ceph-admin interface." This reverts commit 61a7e97. Fix inotify leak by killing child processes Removing the KillMode line to default to control-group. Moving the sdn config to docker. Updating messages and logging for master and worker. Adds missing ceph.conf template, and updates render logic The render stanza before was encapsulated in another stream writer, was missing the target location, and had some extra error handling that seemed unneccesary Adds the Ceph-Admin relation and kubernetes pv creation using ceph-rbd This is a feature branch commit rollup of: - Adds the ceph-storage relation - Revert "The first attempt at implementing the ceph-admin interface." - Adds state boundaries for controlling ceph-storage - Adds debug statements, as well as a health check for ceph remove k8s node when unit is stopped refactor kubectl cli interface function Corrects linting errors and messaging grammar Updates the action-set with grammar fix Fixes an extended comment failing lint Corrects a lint error Fixes an extended comment that was failing lint scale ingress controller to the number of kubernetes-workers docstring for ingress scaling scale ingress replicas as needed every update docstrings Adding nfs-common to the layer.yaml for master and worker. Fixing lint errors in the worker. Normalizing the layer.yaml file to get nfs-common Removing nfs-common from master and load balancer, and addressing line lenght issues. Removing tests from the individual layers. The integration tests should be in the bundle, not the charms because they depend on relations to other charms. Adds ceph-common to the worker packages Ceph-Common is a required component to interact with ceph clusters. Adding this to the worker packages works in tandem with the create-rbd-pv action to enlist persistent volumes from a ceph-cluster supporting the ceph-admin interface. Corrects typos in metdata.yaml per https://github.com/kubernetes/kubernetes/pull/32874/files this change set carries that patch forward into the split of master and worker charms. Fix bugs in create-rbd-pv Validate name and size for create-rbd-pv action * name and size are required * add minLength and minimum to name and size * rename `options:` to `params:` so the validation is picked up rbd action size validation flake8 fixes decode bytestring Fix kube-dns clusterIP clean up variable name and comment Fix --cluster-dns arg for kubelet Remove the explicit SecurityContextDeny due to failures in e2e E2E attempts to use container-level SELinux policy maps during it's evaluation of the cluster, despite having that access control policy disabled in the apiserver. We will never pass E2e with this enabled. addresses: juju-solutions/bundle-canonical-kubernetes#106 Add heapster, grafana, influxdb Start kubelet with --cluster-dns before we deploy kube-dns flake8 cleanup Use templates from kubernetes repo, not heapster use correct node count, minor code cleanup clean up DNS stuff to reuse create_addon function remove unnecessary creation of kube-system namespace seems to already exist Use `kubectl apply` instead of `kubectl create` This allows us to "create" addons multiple times without failing. Rename "dashboard" config to "enable-dashboard-addons" Add enable-dashboard-addons to README Initial commit of e2e layer fix an error where the reset_states step runs during upgrade-charm Prevent a loop that occurs in the dashboard steps Adds description to the test action and skeleton readme Implementing review feedback run e2e tests in parallel e2e: temporarily add serial to skip e2e: oops Updates to the kubernetes-master README.md Addressing review comments, renaming restart action. Fixing comments from @Cynerva. e2e junit output e2e junit output minor changes Ammend the kubernetes-e2e kubeconfig placement with a chown stanza Ammended the missing variable declaration Adds logic to reset resource delivery states when upgrading the charm Ammend last commit with docstring and missing import Without snark...i guess. Updating the action, and templates to get current with k8s upstream. Adds a guard to only execute relationship events when we have a resource address issue 122 Fixes for the kubernetes-worker microbot action The action would fail randomly if not being explicit on the CLI when launching microbot replicas. Updates w/ consistent icon from the remainder of the suite e2e ginkgo resource flake8 Add support for node labels Remove addon states when upgrading the charm This will cause us to re-render addon templates and redo `kubectl apply`. With any luck, that should do the trick! move addons to addons folder and build script for updating addons Rewrite update-addons build script in python add description and argparse mimic "cp -v" output for copying addons, looks nicer docstring and naming cleanup Replace makefile with a charm build tactic rename addons tactic use empty placeholder templates to make the tactic work WTF Update addons before charmtools walks the templates folder combine update-addon scripts and tactic, implement tactic correctly Add docstrings to UpdateAddonsTactic Refactor the pathing on the tar archives Extracing junit files to 'home/ubuntu/foobar-junit/*.xml' was going to be painful in CI, as we would have to scrub every archive that comes from the e2e charm. This is an attempt to clean up that output pathing by dropping the home/ubuntu portion of the path. Removing the UUID portion of the path as well Fix a bug with the config.previous for labels on first run Add the 'socat' package to both worker and master This nievely resolves juju-solutions/bundle-canonical-kubernetes#135 Add layer-sos and a couple kubernetes SOS scripts Rename sos -> debug Add docker debug script Manually pass kubeconfig to kubectl instead of running as ubuntu Updates the test action to embed the start/end and version This adds time from epoch to both start/finished portions of the log, and parses the server version from kubectl output. Add debug scripts to kubernetes-master add kube-proxy service to kubernetes-worker debug scripts Remove docker debug script It belongs in layer-docker cni - wip hard-code CIDR add sdn ip back into cert stuff replace hostPort with hostNetwork for ingress reintroduce kube-dns to master reintroduce kube-dns to worker fix missing kube-dns in metadata.yaml files fix some old sdn states i missed, oops wait for cni available before starting kubelet clean up kubernetes-master uncomment sdn_changed function add container scope to kubernetes-cni relation add service-cidr charm config update cni.configured states update service-cidr description Remove loopback plugin from master Add missing docstrings add a warning message when service-cidr changes add pyc files to gitignore Update kubedns addon template names to match upstream Wait for DNS before deploying dashboard addons Fixing flake8 errors and using the new tactic signature. Adding default parameters to fix signature problems. Use verbose copy in kubernetes-master debug scripts Use verbose copy in kubernetes-worker debug scripts Fixes 173 Adjust the permissions on the path of the ubuntu .kube directory for caching purposes and other future-forward things kubernetes will do that we're not thinking about today. This path needs to be writable by the owner so it can create files, temporary or otherwise, using kubectl. Make UpdateAddonsTactic less verbose workaround for offline installs Turning off proxy buffering for issue #172.
chuckbutler commentedNov 17, 2016
The
socatpackage appears to be required on the kubernetes-master charm.